【问题标题】:Letting user choose language at application level [duplicate]让用户在应用程序级别选择语言[重复]
【发布时间】:2013-07-15 10:26:49
【问题描述】:

我已经本地化了我的 android 应用,当用户在设备上切换本地时会显示本地化文本。

但是,如果用户真的希望我的应用程序显示英文文本并且仍然不更改他的语言环境,该怎么办。我可以在我的应用程序中做些什么,比如询问他是否想在我的应用程序级别设置语言环境。如果他选择这样,我将如何让我的应用程序假定语言环境是英语而不是德语(我的意思是有没有像 setDefaultLocale() 这样的 API)?

【问题讨论】:

标签: android internationalization


【解决方案1】:

请参考:- refer here

<activity
    android:name=".ui.SomeActivity"
    android:configChanges="locale"
    :
    :
</activity>

然后在您的活动中从 onCreate 调用这样的方法:

public static void setLanguage(Context context, String languageToLoad) {
    Log.d(TAG, "setting language");
    Locale locale = new Locale(languageToLoad); //e.g "sv"
    Locale systemLocale = SystemLocale.getInstance().getCurrentLocale(context);
    if (systemLocale != null && systemLocale.equals(locale)) {
       Log.d(TAG, "Already correct language set");
       return;
    }
    Locale.setDefault(locale);
    android.content.res.Configuration config = new android.content.res.Configuration();
    config.locale = locale;
    context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
    Log.d(TAG, "Language set");
}

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • @CRUSADER 通常是正确的,但由于链接在 SE 上,这里存在一些冗余。无论如何,这应该是一个“相关:”评论
  • @YogeshTatwal 正确的行为,因为这个问题与您链接的问题基本相同,所以将其关闭(或标记)为重复而不是重复答案
猜你喜欢
  • 2012-10-06
  • 2017-09-19
  • 2022-08-15
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
相关资源
最近更新 更多