设置阿尔巴尼亚语/蒙地格朗语的语言环境时,它会恢复为默认值

时间:2018-07-19 12:12:30

标签: java android

我遇到的问题是,以编程方式将语言环境设置为阿尔巴尼亚语(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 );

非常感谢任何人能提供帮助!

3 个答案:

答案 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" );