如何向android的setting语言列表中添加一门语言
发布网友
发布时间:2022-05-26 13:04
我来回答
共2个回答
热心网友
时间:2023-10-18 12:23
第一种:修改配置文件
位置:build/target/proct/languages_full.mk| languages_small.mk,这两个文件里头,有PRODUCT_LOCALES := en_US en_GB fr_FR it_IT es_ES es_US 这样的片段,其实setting中语言选择列表的数据源头就来源于此,既然找到了源头,那只要在之后加上想要的语言即可,比如要加越南语 只要在后面加上 “vi_VN”即可。里面都有PRODUCT_LOCALES :=这样的片段,从命名上也可发现一个full一个small,当不需要更多的语言时候,那languages_small.mk里面的语言就可以满足,而且语言少,生成的image所占用的空间也会相对小些,是根据同目录下full.mk里的注释“Get a list of languages. We use the small list to save space on smaller devices.”。
一个full.mk的文件,这里面有这样的片段:$(call inherit-proct, build/target/proct/languages_small.mk),后者路径就是我们要设置的地方。好了,改好后,得整个make下,好多模块都是重新编译。
第二种:编码方式修改
Android里一个listview会对应一个数据数组,那只需在这个数组里按格式添加所需要的数据就行了,目标是com.android.settings.LocalePicker.java,在该文件133行位置做如下修改:
mLocales = new Loc[finalSize+1];
for (int i = 0; i < finalSize ; i++) {
mLocales = preprocess;
}
Locale temp = new Locale("vi", "VN");
mLocales[finalSize] =new Loc(toTitleCase(temp.getDisplayLanguage(temp)), temp);
热心网友
时间:2023-10-18 12:23
Android setting中的语言列表是通过在编译android源码的时候,在makefile中修改编译选项来添加的,该编译选项为PRODUCT_LOCALES。在android源码工程的build目录中搜索PRODUCT_LOCALES,就能找到,可以仿照已有的例子,来定制自己的语言列表。