如何获取区域的语言环境?

时间:2014-08-25 10:59:50

标签: android

我正在尝试使用“en_us”,“en_gb”等区域获取当前设备区域设置。

我正在调用Locale.getDefault().getLanguage(),它只返回两个字母代码en

3 个答案:

答案 0 :(得分:16)

“en_us”或“en_gb”等格式包含“语言代码”_“国家/地区代码”

Locale对象包含国家/地区代码和语言代码。

因此,您可以使用以下代码段格式化您自己的代码..

String cCode = Locale.getDefault().getCountry();
String lCode = Locale.getDefault().getLanguage();
String code = lCode+"_"+cCode;

您可以在Locale对象上使用toString()方法来获取数据

String code = Locale.getDefault().toString();

答案 1 :(得分:1)

默认Locale是在运行时为系统属性设置中的应用程序进程静态构建的,因此它将代表在应用程序启动时在该设备上选择的Locale 。通常,这很好,但它确实意味着如果用户在应用程序进程运行后更改其Locale设置,则getDefaultLocale()的值可能不会立即更新。

如果您需要在应用程序中出于某种原因捕获此类事件,您可以尝试从资源Locale对象获取Configuration,即

Locale current = getResources().getConfiguration().locale;

如果您的应用程序需要更改设置,您可能会发现更快地更新此值。

我测试了这个:)

我来自this因为链接可能会被删除所以答案被复制了:)

答案 2 :(得分:-2)

使用

Locale.getDisplayName();

这是

的简写
Locale.getDisplayName(Locale.getDefault());

文档位于此处:http://developer.android.com/reference/java/util/Locale.html