7.0 设置中语言列表语言多出XB XA 两种语言

在开启开发者模式的情况下,进入Settings->Languages&input->Languages->Add a Language会看到建议语言下多出来English(XA),  العربية  (XB)两种语言,如下图,这个显示是Settings->Developer options这个菜单来控制的,当此菜单中switch为on时就会多出English(XA),  العربية  (XB)这两种语言。
PS:只有开机未进入过Settings->Languages&input->Languages->Add a Language菜单,先进入Settings->Developer options关闭并打开switch开关才会生效, 因为进Settings->Languages&input->Languages->Add a Language菜单会生成一个cache, 下次再进入会直接从cache中拿数据。

如果不希望在添加语言列表中看到这两种语言可以使用如下方式进行修改:
方法一:
(1)将/frameworks/base/core/res/res/values/locale_config.xml中的:
ar-XB
en-XA
移除掉。
(2) /frameworks/base/core/java/com/android/internal/app/LocaleStore.java文件中,
public static void fillCache(Context context)函数的如下代码都去掉:
/* for (String localeId : LocalePicker.getPseudoLocales()) {
LocaleInfo li = getLocaleInfo(Locale.forLanguageTag(localeId));
if (isInDeveloperMode) {
li.setTranslated(true);
li.mIsPseudo = true;
li.mSuggestionFlags |= LocaleInfo.SUGGESTION_TYPE_SIM;
} else {
sLocaleCache.remove(li.getId());
}
}*/
 
方法二:
不需要修改locale_config.xml文件,只需按照如下方式修改代码。
/frameworks/base/core/java/com/android/internal/app/LocaleStore.java文件中,
public static void fillCache(Context context)函数按照如下方式对代码进行屏蔽:
for (String localeId : LocalePicker.getPseudoLocales()) {
LocaleInfo li = getLocaleInfo(Locale.forLanguageTag(localeId));
/* if (isInDeveloperMode) {
li.setTranslated(true);
li.mIsPseudo = true;
li.mSuggestionFlags |= LocaleInfo.SUGGESTION_TYPE_SIM;
} else {*/
sLocaleCache.remove(li.getId());
// }
}

你可能感兴趣的:(android)