android 语言设置修改

来源:互联网 发布:遗传算法 优缺 编辑:程序博客网 时间:2024/04/27 17:37

1.建立自己的第三方**.mk文件:

PRODUCT_PROPERTY_OVERRIDES := \
persist.sys.language=zh \
persist.sys.country=CN


ifeq ($(MULTILANGUAGE_SUPPORT),true)
########
# when support multilanguage all languages is supported, unless you need to specify certain kinds of languages
# for example, just support Englist(United States) and Bengali(Bangladesh) should as follow:
# PRODUCT_LOCALES := en_US bn_BG
########
  PRODUCT_LOCALES :=
else
########
# by default we just support Chinese(China) and Englist(United States)
########
  PRODUCT_LOCALES := zh_CN en_US
end

2.编码方式修改

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);

    这步做完后setting的语言列表里就有了越南语了,但点击越南语后,界面没发现有什么变化,那是因为android系统没有对越南语写响应的国际化资源文件,你可以自己写应用测试。

3.

进入android 源代码build/target/product目录,在languages_full.mk或languages_small.mk文件中,修改PRODUCT_LOCALES的值。

假如当前PRODUCT_LOCALES := en_US zh_CN ... ... (English 简体中文)
可以修改为:PRODUCT_LOCALES := zh_CN en_US ... ... (简体中文 English )

 

4.在init.rc或者在其他的开机初始化文件如:default.prop中加入如下设置系统属性的代码:

  [persist.sys.language]: [zh]

  [persist.sys.country]: [CN]

  [persist.sys.localevar]: []

  [persist.sys.timezone]: [Asia/Shanghai]

  [ro.product.locale.language]: [zh]

  [ro.product.locale.region]: [CN]



如果是自己编译源码 编译的时候,通过指明编译参数为简体中文,这样编译传统就会编译出来的系统属性文件,在

系统初始化的时候将会把上面的属性给进行正确的初始化,例如:

  make PRODUCT-machineID-eng-zh_CN

或者修改build/tools/buildinfo.sh添加

 echo "persist.sys.language=zh"

 echo "persist.sys.country=CN"

 echo "persist.sys.localevar="

 echo "persist.sys.timezone=Asia/Shanghai"

 echo "ro.product.locale.language=zh"

 echo "ro.product.locale.region=CN"