我遇到的问题是,以编程方式将语言环境设置为阿尔巴尼亚语(sq-AL)和黑山(sr-ME)时,该语言环境默认为英语,因此似乎无法识别。设置意大利语(it)或西班牙语(es)时没有问题,所以我不确定可能是什么问题。所有string.xml的格式均正确且名称正确。这是我用来设置语言环境的代码:
Context context = getBaseContext();
Resources res = context.getResources();
DisplayMetrics metrics = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
langCode = "sr-ME"; // Hard setting langCode for testing
Locale newLocale = new Locale( langCode ) ;
conf.setLocale( newLocale );
res.updateConfiguration( conf, metrics );
非常感谢任何人能提供帮助!
答案 0 :(得分:2)
“ sr-rME”似乎不存在,因此android重置为默认设置。这是android支持语言的详尽列表,您可能会找到答案: What is the list of supported languages/locales on Android?
答案 1 :(得分:1)
我认为您应该尝试类似的方法,因为“ sr-rME”用于值文件夹名称:
`langCode = "sq"; // or 'sr-ME' for Montenegran
Locale newLocale = new Locale( langCode ) ;`
否则,如果Montenegran是您的默认电话语言,则可以通过键入以下内容进行获取:
Locale current = getResources().getConfiguration().locale;
答案 2 :(得分:1)
问题是我设置语言环境的方式。使用特定于区域的语言环境时,设置语言环境的正确方法是在初始化语言环境时同时使用两个参数。对于sr-ME(黑山),应按以下方式初始化:
Locale newLocale = new Locale( "sr", "ME" );