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

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

概述塞尔维亚语有拉丁语和西里尔语字母.在 Android的日期和时间选择器小部件中,塞尔维亚语区域设置的显示字母似乎是西里尔字母,如此处所示. 我想更改语言环境,以便android小部件使用拉丁塞尔维亚语字母表. 当前的语言/国家代码(产生西里尔语)分别是sr和RS.因此,我的setLocale函数被调用为 setLocale("sr", "RS"); 这是我不确定的部分 – 根据localeplan 塞尔维亚语有拉丁语和西里尔语字母.在 Android的日期和时间选择器小部件中,塞尔维亚语区域设置的显示字母似乎是西里尔字母,如此处所示.

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

当前的语言/国家代码(产生西里尔语)分别是sr和RS.因此,我的setLocale函数被调用为

setLocale("sr","RS");

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

setLocale("sr_Latn","RS");//andsetLocale("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 – 如何更改语言环境以使用拉丁语塞尔维亚语(而不是西里尔语塞尔维亚语)全部内容,希望文章能够帮你解决android – 如何更改语言环境以使用拉丁语塞尔维亚语(而不是西里尔语塞尔维亚语)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存