以编程方式更改字符串的语言

时间:2013-04-03 21:35:22

标签: android localization

我有TextView根据情况向用户显示消息。我根据情况得到了改变的字符串,而且效果很好。

我的问题是,如何针对不同的语言进行管理?

我环顾四周,大多数建议是使用单独的string.xml,具体取决于区域设置。但由于这只是一个以编程方式更改其内容的字符串资源,因此无法正常工作。

有没有办法像

那样
if(language is blabla)
    change the text to "this"

或类似的东西。

3 个答案:

答案 0 :(得分:0)

您可以使用类以编程方式检查用户的语言: http://developer.android.com/reference/java/util/Locale.html 即。

Locale.getDefault().toString()

接下来,您应该使用相应string.xml的路径 您只能更改粗体部分:

值 - 的烯RMU

答案 1 :(得分:0)

我通过使用SQLite数据库来管理它。我有5种语言的5个不同的表。在我的listAdapter中,我从查询中导入了表名:     SELECT * FROM dbname.sqlite_master WHERE type ='table' 接下来,在一个名为OutputStrings的单例类中,我为UI导入所有使用过的字符串。 每个活动视图都从OutputStrings读取字符串。

最诚挚的问候,

答案 2 :(得分:0)

您可以轻松地将本地更改为所需的本地:

    Locale locale = new Locale("en");
    Locale.setDefault(locale);
    Configuration mConfig = new Configuration();
    mConfig.locale = locale;
    getBaseContext().getResources().updateConfiguration(mConfig, 
            getBaseContext().getResources().getDisplayMetrics());