我有一个多语言的应用程序与主要语言英语和第二语言阿拉伯语.
如文档中所述,
android:supportsRtl="true"在清单中添加了.left和right属性start,并end分别.strings-ar(和其他资源类似).以上设置正常.改变后的Locale到ar-AE,阿拉伯文字和资源都正确地显示在我的活动.
但是,每次我导航到
ActivityaWebView和/或a时WebViewClient,语言环境,文本和布局方向都会突然恢复为设备默认值.
进一步提示:
Activity有a WebView和/或a WebViewClient(并且我有几个)时才会发生语言环境的突然转变.它不会发生在任何其他活动上.Android 7.0具有多语言环境支持,允许用户设置多个默认语言环境.因此,如果我将主要区域设置为Locale.UK:
然后在导航到时
WebView,语言环境从更改ar-AE为en-GB.
Android 7.0 API更改:
如API更改列表中所示,API 24中的以下类中添加了与语言环境相关的新方法:
Locale:
Configuration:
但是,我正在使用API 23构建我的应用程序,并且我没有使用任何这些新方法.
此外......
问题也出现在Nexus …
android locale android-webview android-7.0-nougat android-chrome
我试图确定当前的语言环境是设置为12或24小时,并相应地设置上午/下午.这就是我现在所拥有的,但它始终显示am/pm,无论它是否设置为24.
if (DateFormat.is24HourFormat(this))
{
mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
int hourOfDay = mHour;
if (hourOfDay>12)
views.setTextViewText(R.id.AMPM, "pm");
if (hourOfDay==12)
views.setTextViewText(R.id.AMPM, "pm");
if (hourOfDay<12)
views.setTextViewText(R.id.AMPM, "am");
}
else {
views.setTextViewText(R.id.AMPM, "");
}
Run Code Online (Sandbox Code Playgroud) 假设您要将用户首选项的区域设置存储在数据库中,您将使用哪个值?
en_US或en-US
它们是两个标准,但您更喜欢将哪一个用作自己应用程序的一部分?
更新:似乎许多网站使用破折号而不是下划线,例如
http://zh.wikipedia.org/zh-tw http://www.google.com.hk/search?hl=zh-TW
我如何格式化1000000要1.000.000在Python?在哪里'.' 是十进制标记千位分隔符.
Android移动设备实际上确实知道它在哪里 - 但有没有办法通过国家代码或国家/地区名称来检索国家/地区?
无需知道确切的GPS位置 - 国家代码或名称就足够了,我正在使用以下代码:
String locale = context.getResources().getConfiguration().locale.getCountry(Locale.getDefault());
System.out.println("country = "+locale);
Run Code Online (Sandbox Code Playgroud)
但它给了我"美国"代码,
但我的设备保存在印度; 有没有办法找到设备当前国家代码而不使用GPS或网络提供商.因为我正在使用平板电脑 提前致谢.
我有一个打印计算金钱值的应用程序,我想用默认的货币格式显示该值.
例如在欧洲你会写:
1.000,95€
在美国,我想你会写
1,000.95 $
在其他货币中,小数部分显示的值或多或少,在美国,它将是2,但在日本则为0.
如何获得所有现有货币的确切格式?
我有关于格式化卢比货币(印度卢比 - 印度卢比)的问题.
通常,类似的值450500被格式化并显示为450,500.在印度,相同的值显示为4,50,500
例如,此处的数字表示为:
1
10
100
1,000
10,000
1,00,000
10,00,000
1,00,00,000
10,00,00,000
Run Code Online (Sandbox Code Playgroud)
参考印度编号系统
分隔符在两位数后面,除了最后一组,数千.
我在互联网上搜索过,人们要求使用区域设置en_GB或模式#,##,##,##,##0.00
我通过使用以下标记在JSTL上尝试了这个:
<fmt:formatNumber value="${product.price}" type="currency"
pattern="#,##,##,##,###.00"/>
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有解决问题.任何有关此事的帮助将不胜感激.
谢谢
当使用函数时sort(x),x字符在哪里,字母"y"跳到中间,紧跟在字母"i"之后:
> letters
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t"
[21] "u" "v" "w" "x" "y" "z"
> sort(letters)
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "y" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
[21] "t" "u" "v" "w" "x" "z"
Run Code Online (Sandbox Code Playgroud)
原因可能是我位于立陶宛,这是"立陶宛式"字母排序,但我需要正常排序.如何在R代码中将排序方法更改回正常状态?
我在Win7上使用R 2.15.2.
我在Ubuntu 12.10上使用R版本2.15.3(2013-03-01).系统是德语,因此是R.在搜索错误消息时,这是不方便的.
以这种方式在xterm中执行R $ LANG="C" R部分地解决了这个问题.然后R用英语显示所有内容.但是当以这种方式加载RStudio时,R解释器仍然是德语.所以我正在寻找一种方法来改变R本身的R语言环境.
我发现了这个:如何更改R中的语言设置,但Sys.setenv(LANG = "en")对我不起作用:
2+x
# Fehler: Objekt 'x' nicht gefunden
Sys.setenv(LANG = "en")
2+x
# Fehler: Objekt 'x' nicht gefunden
Run Code Online (Sandbox Code Playgroud)
我也尝试Sys.setenv(LANG = "en_US.UTF-8")过没有成功.
输出 Sys.getlocale()
Sys.getlocale()
# [1] "LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;
# LC_COLLATE=de_DE.UTF-8;LC_MONETARY=de_DE.UTF-8;LC_MESSAGES=de_DE.UTF-8;
# LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;
# LC_IDENTIFICATION=C"
Run Code Online (Sandbox Code Playgroud)
(为方便起见添加了行制动器)
我读过Joel关于Unicode的文章,我觉得从字符集的角度来看,我至少掌握了国际化的基本知识.除了阅读这个问题之外,我还做了一些关于设计考虑的国际化研究,但是我不禁怀疑还有更多我不知道或者不知道的东西.不知道要问.
我学到的一些东西:
我在哪里:
我想更多地了解:
编辑:我添加了赏金,因为我想从经验中获得更多真实世界的例子.