Android中的俄语本地化

时间:2012-06-07 11:52:46

标签: android localization

我的应用程序支持4种语言。用户选择他/她的语言。但我不能为俄罗斯做那件事。

if (dil.equals("eng")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.ENGLISH;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());

    }
    else if (dil.equals("ger")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.GERMAN;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());

    }
    else if (dil.equals("rus")){
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.????????;
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());

    }
    else
    {
        Configuration c = new Configuration(context.getResources().getConfiguration());
        c.locale = Locale.getDefault();
        context.getResources().updateConfiguration(c,context.getResources().getDisplayMetrics());

    }

我不懂俄语;

c.locale = Locale.????????;

2 个答案:

答案 0 :(得分:28)

使用此constructor,您可以将语言环境设置为俄语:

Locale myLocale = new Locale("ru","RU");

以下是Java的supported locales列表。您可以看到支持“ru”,但未经过测试。

文档还说有时候更好地提供基本本地化和国际化,所以我从

编辑
Locale myLocale =  new Locale("ru") 

Locale myLocale = new Locale("ru","RU")

答案 1 :(得分:0)

根据Android documentation for Locale

  

这个类的构造函数不进行错误检查。您可以为不存在的语言和国家/地区创建区域设置,并且可以为不存在的组合创建实例(例如“de_US”表示“在美国使用德语”)。

     

请注意,除了en_US之外,区域设置数据不一定适用于此类中预定义为常量的任何语言环境,en_US是唯一的区域设置,Java保证始终可用。

     

假设所有设备都具有相同的区域设置也是错误的。在美国销售的设备几乎肯定会支持en_US和es_US,但不一定支持具有相同语言但具有不同国家/地区的任何语言环境(例如en_GB或es_ES),也不支持其他语言的任何语言环境(例如de_DE)。对于在欧洲销售的设备,情况恰恰相反。

此外,文档没有列出俄语的区域设置,所以看起来你必须创建一个。另外要注意上面引用的第三段。所以也许最好提供自己的。

检查this SO post,它还有一些有关语言环境的有用提示