0

我一直在尝试使用下一个代码更改语言环境:

private void changeLocal(Locale locale){
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
          getBaseContext().getResources().getDisplayMetrics());
    refresh();
}

private void refresh() {
    finish();
    Intent myIntent = new Intent(this, getClass());
    startActivity(myIntent);
}

它适用于法语,但不适用于希伯来语。所以我通过调用查看了设备支持的语言环境Locale.getAvailableLocales(),我发现那里有法语但没有希伯来语。

如果我输入硬编码的希伯来语文本,我可以看到它,所以它已安装,但我不知道如何强制设备使用它。

请帮助我使用希伯来语强制设备。

refreshPS即使在添加时也无法完成这项工作

android:configChanges="locale|layoutDirection"

对我的清单它不调用onConfigurationChanged我的活动

4

1 回答 1

1

由于有 2 个不同的标准,因此您必须将值文件夹加倍。

将您的希伯来语字符串添加到这些文件夹中:

values-he

values-iw

某些设备将使用一个文件夹。其他设备将使用另一个。

请注意,实际上是deprecated. 因此,大多数设备将使用iw

于 2014-03-27T09:52:48.037 回答