本地化 Android 阿拉伯语低于 android N

Localization Android Arabic below android N

大家好,我正在开发同时支持英语和阿拉伯语的应用程序,英语版本运行良好,但阿拉伯语在 Android N

以下无法正常运行
Locale locale = new Locale("ar");
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    context.getApplicationContext().getResources().updateConfiguration(config, null)

首先,检查您的设备是否支持阿拉伯语。

其次,确保使用以下方法在运行时针对不同的 API 更改 Android 上的语言:

updateConfiguration 对于 API < 17

createConfigurationContext 对于 API ≥ 17

更多信息,请查看以下文章:change-language-programmatically-at-runtime

您还需要在较低 API 上更新资源中的配置。试试这个:

Locale locale = new Locale("ar");

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    context.getApplicationContext().getResources().updateConfiguration(config, null);
} else {
    Configuration config = new Configuration();
    config.locale = locale;
    Locale.setDefault(config.locale);
    Resources resources = applicationContext.getResources();
    resources.updateConfiguration(config, resources.getDisplayMetrics());
}