动态本地化

时间:2014-10-02 09:49:50

标签: android string localization android-location

自从过去几天以来,我遇到了一个问题。我正在创建一个全球发布的应用程序,其中字符串将来自服务器端意味着动态本地化,因为我们都知道我们不能在运行时修改strings.xml。那么有没有办法实现这个目标呢?

2 个答案:

答案 0 :(得分:0)

您可以在应用程序的某个位置以编程方式设置区域设置。

可能在开始时,例如您的基本活动的onCreate()方法

以前曾问过类似的问题:Set Locale programmatically

正如以下记者的评论所述:

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

答案 1 :(得分:0)

创建一种更改语言的方法:

private void setLocale (String localeCode , Bundle b)
{
    locale = new Locale(localeCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    getApplicationContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    UserDetail.this.getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    onCreate(null);
}

并调用函数:

setLocale("en-us",savedInstanceStat); // English