gpt4 book ai didi

android - 如何更改语言环境以使用拉丁塞尔维亚语(而不是西里尔塞尔维亚语)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:19 25 4
gpt4 key购买 nike

塞尔维亚语有拉丁字母和西里尔字母。在 Android 的日期和时间选择器小部件中,显示的塞尔维亚语言环境字母表似乎是西里尔字母,如此处所示。

enter image description here

我想更改语言环境,以便 android 小部件使用拉丁塞尔维亚字母表。

当前的语言/国家代码(产生西里尔字母)分别是srRS。因此,我的 setLocale 函数被称为

setLocale("sr", "RS");

这是我不确定的部分 - 根据 localeplanet.com ,拉丁塞尔维亚语的本地代码是 sr_Latn_RS。不过,我都试过了

setLocale("sr_Latn", "RS");
//and
setLocale("sr_Latn_RS", "RS");

两者都不起作用(没有变化发生,默认为英语)。根据 Android 文档,setLocale 似乎需要两个字母代码。

The language codes are two-letter lowercase ISO language codes (such as "en") as defined by ISO 639-1. The country codes are two-letter uppercase ISO country codes (such as "US") as defined by ISO 3166-1. The variant codes are unspecified.

那么我该如何指定拉丁塞尔维亚语言环境代码呢?还是不存在?

最佳答案

如果您只支持 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com