我刚刚测试了 Android 本地化,我发现你可以使用任意区域并且它会工作。
向项目中添加一个文件夹,其名称类似于values-sr-rZZ
ZZ 是一个从未存在的虚构区域。
然后将以下代码添加到 Application 类中,我从这里获取并稍作更改:
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Resources res = this.getResources();
Configuration conf = res.getConfiguration();
boolean isLatinAlphabet = PreferenceManager.getDefaultSharedPreferences(this)... // get a value from the application settings
if(conf.locale.getLanguage().equals("sr") && isLatinAlphabet) {
conf.locale = new Locale("sr", "ZZ");
res.updateConfiguration(conf, res.getDisplayMetrics());
}
}
}
在此代码中,只有当用户选择了塞尔维亚语作为默认语言conf.locale.getLanguage().equals("sr")
(isLatinAlphabet
您可以使用不同的条件并根据需要进行更改。
此外,这种更改语言的动态方式可能会在旧设备上出现菜单项错误,但不会在新设备上重现。