标签: locale

Android - WebView语言在Android N上突然改变

我有一个多语言的应用程序与主要语言英语和第二语言阿拉伯语.

文档中所述,

  • android:supportsRtl="true"在清单中添加了.
  • 我已经改变了所有XML属性与leftright属性start,并end分别.
  • 我已添加阿拉伯语言字符串strings-ar(和其他资源类似).

以上设置正常.改变后的Localear-AE,阿拉伯文字和资源都正确地显示在我的活动.

但是,每次我导航到Activitya WebView 和/或a时WebViewClient,语言环境,文本和布局方向都会突然恢复为设备默认值.

进一步提示:

  • 在具有Android 7.0的Nexus 6P上发生.一切都在Android 6.0.1及更低版本上正常运行.
  • 只有当我导航到Activity有a WebView和/或a WebViewClient(并且我有几个)时才会发生语言环境的突然转变.它不会发生在任何其他活动上.

Android 7.0具有多语言环境支持,允许用户设置多个默认语言环境.因此,如果我将主要区域设置为Locale.UK:

在此输入图像描述

然后在导航到时WebView,语言环境从更改ar-AEen-GB.

Android 7.0 API更改:

API更改列表中所示,API 24中的以下类中添加了与语言环境相关的新方法:

Locale:

Configuration:

但是,我正在使用API​​ 23构建我的应用程序,并且我没有使用任何这些新方法.

此外......

  • 问题也出现在Nexus …

android locale android-webview android-7.0-nougat android-chrome

57
推荐指数
4
解决办法
1万
查看次数

如何检查系统是12小时还是24小时?

我试图确定当前的语言环境是设置为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)

time android locale

56
推荐指数
3
解决办法
2万
查看次数

en_US或en-US,您应该使用哪一个?

假设您要将用户首选项的区域设置存储在数据库中,您将使用哪个值?

en_US或en-US

它们是两个标准,但您更喜欢将哪一个用作自己应用程序的一部分?

更新:似乎许多网站使用破折号而不是下划线,例如

http://zh.wikipedia.org/zh-tw http://www.google.com.hk/search?hl=zh-TW

java locale localization

54
推荐指数
4
解决办法
7万
查看次数

将'decimal-mark'千位分隔符添加到数字中

我如何格式化10000001.000.000在Python?在哪里'.' 是十进制标记千位分隔符.

python format locale number-formatting digit-separator

52
推荐指数
4
解决办法
5万
查看次数

如何在不使用GPS的情况下获取我的Android设备国家代码?

Android移动设备实际上确实知道它在哪里 - 但有没有办法通过国家代码或国家/地区名称来检索国家/地区?

无需知道确切的GPS位置 - 国家代码或名称就足够了,我正在使用以下代码:

 String locale = context.getResources().getConfiguration().locale.getCountry(Locale.getDefault());      
 System.out.println("country = "+locale);
Run Code Online (Sandbox Code Playgroud)

但它给了我"美国"代码,
但我的设备保存在印度; 有没有办法找到设备当前国家代码而不使用GPS或网络提供商.因为我正在使用平板电脑 提前致谢.

android locale

51
推荐指数
7
解决办法
9万
查看次数

如何使用设备货币格式格式化浮点值?

我有一个打印计算金钱值的应用程序,我想用默认的货币格式显示该值.

例如在欧洲你会写:

1.000,95€

在美国,我想你会写

1,000.95 $

在其他货币中,小数部分显示的值或多或少,在美国,它将是2,但在日本则为0.

如何获得所有现有货币的确切格式?

android locale localization

49
推荐指数
2
解决办法
5万
查看次数

以印度编号格式显示货币

我有关于格式化卢比货币(印度卢比 - 印度卢比)的问题.

通常,类似的值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)

但这似乎并没有解决问题.任何有关此事的帮助将不胜感激.

谢谢

java locale internationalization

48
推荐指数
7
解决办法
7万
查看次数

按字母顺序排序时,字母"y"出现在"i"之后

当使用函数时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.

locale r alphabetical-sort

45
推荐指数
2
解决办法
3865
查看次数

如何更改R的语言环境?

我在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)

(为方便起见添加了行制动器)

locale r

45
推荐指数
7
解决办法
5万
查看次数

国际化的设计考虑因素

我读过Joel关于Unicode的文章,我觉得从字符集的角度来看,我至少掌握了国际化的基本知识.除了阅读这个问题之外,我还做了一些关于设计考虑的国际化研究,但是我不禁怀疑还有更多我不知道或者不知道的东西.不知道要问.

我学到的一些东西:

  • 有些语言从右到左而不是从左到右阅读.
  • 日历,日期,时间,货币和数字的显示方式因语言而异.
  • 设计应该足够灵活,以容纳更多的文本,因为有些语言比其他语言更冗长.
  • 当涉及到它们的语义时,不要把图标或颜色视为理所当然,因为这可能因文化而异.
  • 地理命名因语言而异.

我在哪里:

  • 我的设计非常灵活,可以容纳更多文字.
  • 我自动翻译每个字符串,包括错误消息和帮助对话框.
  • 我还没有到达需要显示时间,货币或数字单位的地方,但我很快就会在那里,需要开发一个解决方案.
  • 我正在全面使用UTF-8字符集.
  • 我的菜单和应用程序中的各种列表按字母顺序排列,以便于阅读.
  • 我有一个标记解析器,通过过滤掉停用词来提取标签.停用词列表是特定于语言的,可以换出.

我想更多地了解:

  • 我正在开发一个可下载的PHP Web应用程序,因此非常感谢有关PHP的任何具体建议.我已经开发了自己的框架,并且目前对使用其他框架不感兴趣.
  • 我对非西方语言知之甚少.我上面没有提到需要考虑的具体考虑因素吗?另外,PHP的数组排序函数如何处理非西方字符?
  • 你在实践中遇到过任何具体问题吗?我正在考虑GUI和应用程序代码本身.
  • 有关处理日期和时间的任何具体建议吗?根据地区或语言是否有细分?
  • 我已经看到很多项目和网站让他们的社区为他们的应用程序和内容提供翻译.您是否建议这样做以及确保您有良好翻译的一些好策略?
  • 这个问题基本上就是我对国际化的了解程度.什么我不知道我不知道我应该进一步研究?

编辑:我添加了赏金,因为我想从经验中获得更多真实世界的例子.

php locale internationalization

43
推荐指数
7
解决办法
6518
查看次数