通知文本未在Android P中本地化

拉索尔·穆罕默德(Rasool Mohamed)

我正在用英语和阿拉伯语开发一个应用程序。我已经使用阿拉伯语模式在5.0.2和5.1中进行了测试。一切正常,并且通知文本也已本地化。

但是在Android 9 Pie(API 28)中,通知文本仅以英语显示。它未本地化为阿拉伯语,而整个应用程序均已本地化为阿拉伯语(通知文本除外)。

注意:正在触发来自前台服务的通知

拉索尔·穆罕默德(Rasool Mohamed)

我正在MainActivity的onCreate()中更新新配置

现在,我也更新了Foreground Service中的新配置从而解决了该问题。

setLanguage();在前景服务的onBind,onRebind和onUnbind中添加方法。

private void setLanguage() {
    String language = SharedPreferencesUtils.getAppLanguage(this);

    if (language.equals("en")) {
        Swithch_to_English();
    } else {
        Swithch_to_Arabic();
    }
}

private void Swithch_to_English() {
    Locale current = getResources().getConfiguration().locale;
    String current_language = current.toString();

    if (!current_language.equals("en")) {
        Configuration config = new Configuration();
        String languageToLoad = "en";
        Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        config.locale = locale;
        onConfigurationChanged(config);

    }
}

private void Swithch_to_Arabic() {
    Locale current = getResources().getConfiguration().locale;
    String current_language = current.toString();

    if (!current_language.equals("ar")) {
        Configuration config = new Configuration();
        String languageToLoad = "ar";
        Locale locale = new Locale(languageToLoad);
        Locale.setDefault(locale);
        config.locale = locale;
        onConfigurationChanged(config);

    }
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());

}

SharedPreferencesUtils

public static String getAppLanguage(Context context) {
    SharedPreferences settings = context
            .getSharedPreferences(context.getString(R.string.APP_DATA),
                    Context.MODE_PRIVATE);
    return settings.getString(context.getString(R.string.selected_language), "en");

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章