1

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

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

4

1 回答 1

2

参考它:- 参考这里

<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");
}
于 2013-07-15T12:32:03.520 回答