塞尔维亚语有拉丁字母和西里尔字母。在 Android 的日期和时间选择器小部件中,塞尔维亚语语言环境的显示字母似乎是西里尔字母,如下所示。
我想更改语言环境,以便 android 小部件使用拉丁塞尔维亚字母表。
当前的语言/国家代码(产生西里尔文)分别是 sr
和 RS
。因此,我的 setLocale 函数被称为
setLocale("sr", "RS");
这是我不确定的部分 - 根据 localeplanet.com ,拉丁语塞尔维亚语的本地代码是
sr_Latn_RS
。但是,我尝试了两者setLocale("sr_Latn", "RS");
//and
setLocale("sr_Latn_RS", "RS");
两者都不起作用(没有变化,默认为英语)。根据 Android 文档,看起来 setLocale 需要两个字母代码。
那么如何指定拉丁语塞尔维亚语区域设置代码?或者它不存在?
最佳答案
如果您仅支持 Lollipop 或更高版本,则上一个答案效果很好。但是,如果您使用塞尔维亚语进行编码,那么您的大部分用户群可能不会使用它。这是一个适用于新旧版本的解决方案。
private static Locale serbianLatinLocale(){
Locale locale = null;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
for (Locale checkLocale : Locale.getAvailableLocales()) {
if (checkLocale.getISO3Language().equals("srp") && checkLocale.getCountry().equals("LATN") && checkLocale.getVariant().equals("")) {
locale = checkLocale;
}
}
} else {
locale = new Locale.Builder().setLanguage("sr").setRegion("RS").setScript("Latn").build();
}
return locale;
}
关于android - 如何更改语言环境以使用拉丁语塞尔维亚语(而不是西里尔语塞尔维亚语),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35877037/