在我的 Android 手机语言设置中,我将语言设置为English(United Kingdowm)。
我使用以下代码来获取语言:
Log.d(TAG,"getDisplayLanguage = " + Locale.getDefault().getDisplayLanguage());
Log.d(TAG,"getLanguage = " + Locale.getDefault().getLanguage());
Log.d(TAG,"Resources.getLanguage = " + Resources.getSystem().getConfiguration().locale.getLanguage());
Log.d(TAG,"getResources.getLanguage = " + getResources().getConfiguration().locale);
Run Code Online (Sandbox Code Playgroud)
日志显示如下:
getDisplayLanguage = English
getLanguage = en
Resources.getLanguage = en
getResources.getLanguage = en_GB
Run Code Online (Sandbox Code Playgroud)
它没有显示Local.UK。
我错过了什么吗?
根据Is en_UK an invalid locale?中的答案
正确的国家/地区代码是 en_GB。区域设置使用 ISO 3166-1 作为国家/地区代码。维基百科的文章包括:
根据 ISO 3166/MA,选择这些代码“是为了反映国家名称的重要、独特组成部分,以便在国家名称和国家代码之间建立视觉关联”。 [7] 因此,国家名称的常见组成部分(例如“共和国”、“王国”、“联合”、“联邦”或“民主”)通常不用于派生代码元素。因此,例如,根据其官方名称“大不列颠及北爱尔兰联合王国”,英国被正式分配了 alpha-2 代码 GB 而不是 UK(尽管 UK 是根据英国的要求保留的) )。
这不是我的答案,这是链接帖子的答案。以防万一链接的答案有时不可用。
| 归档时间: |
|
| 查看次数: |
4174 次 |
| 最近记录: |