Android在frameworks/base/core/res/res/values/locale_config.xml添加支持的语言,实现的类在frameworks/base/core/java/com/android/internal/app/LocaleStore.java中,添加支持的语言之后,我们在手机上可以看到有Suggested和All languages两个选项.
有的客户会要求把常用的语言加到Suggested,这是我们修改代码.
在解析语言的时候,LocaleStore的内部内LocaleInfo负责表示语言对象.
public static class LocaleInfo {
public boolean isTranslated() {
return mIsTranslated;
}
public void setTranslated(boolean isTranslated) {
mIsTranslated = isTranslated;
}
/* package */ boolean isSuggested() { //1
if (!mIsTranslated) { // Never suggest an untranslated locale
return false;
}
return mSuggestionFlags != SUGGESTION_TYPE_NONE;
}
}
它有一个方法(注释1处):isSuggested(),顾名思义,如果返回未true,就显示在Suggest的位置,反之在All languages中
可以看出suggest有两个条件:
1.mIsTranslated=true;可以setTranslated()实现
2. mSuggestionFlags != SUGGESTION_TY