Android 区域设置已更改但已翻译的字符串未出现在应用程序中

标签 android localization

以下是我的 Android 应用程序的应用程序代码:

public class MyApplication extends Application
{
    private Locale locale = null;

    @Override
    public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        if (locale != null)
        {
            newConfig.locale = locale;
            Locale.setDefault(locale);
            getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
        }
    }

    @Override
    public void onCreate()
    {
        super.onCreate();
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
        Configuration config = getBaseContext().getResources().getConfiguration();

        String lang = settings.getString(getString(R.string.pref_language), "");
        if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang))
        {
            locale = new Locale(lang);
            Log.i("Locale" , lang);
            Locale.setDefault(locale);
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
        }
    }
}

我必须从我的应用程序的设置 Activity 中更改 settings.getString(getString(R.string.pref_language), ""); 的值。

问题是使用 getString() 方法访问的字符串(有翻译)都没有显示翻译后的文本。

EDIT1:我正在使用 Android 8.0

最佳答案

在 android 8 中,语言环境的行为发生了变化,现在每个 Activity 上下文都将采用其语言环境,即如果您在 Activity1 中更改了 Activity1 的语言环境,那么 Activity2 将保持默认语言环境。

解决方案是更改每个 Activity 的语言环境,您的问题将得到解决。

关于Android 区域设置已更改但已翻译的字符串未出现在应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463259/

相关文章:

android - 制作具有原生外观和感觉的混合应用程序

java - 在 Android 上的 dalvik 中动态类重新加载

ios - 如何始终从 NSError 中获取英文字符串?

java - Struts2 中的属性文件位置

.net - 通过 Converter 或 ExtensionMethod 读取属性属性

android - Caused by : java. lang.IllegalStateException: 系统服务在onCreate()之前对Activity不可用

Android RadioButton *带有*图标并居中对齐

java - 动画列表上未绑定(bind)前缀错误

ios - 本地化原生开发区域、基础本地化和 Appstore 语言( bundle )

localization - 使用 Google 翻译插件自动翻译网站(IP 和接受语言)?