Android产品定制多语言

android产品支持的多语言非常丰富,在很多市场上销售的android产品的语言列表很长很长。在国内,一般都默认中文,还有许多其他语言,有事列表太长了,一旦客户在前面点错了,要再选回来,要翻啊翻的,下翻很久才到。中文一般都在最下面,这样很不方面。虽然有很多方法去绕这个问题,比如把中文放到最上面,这样也需要修改android默认的语言列表排序方法,几十种语言那样去改太累了,有时还得考虑国内外软件版本的差异,会很辛苦。那我们怎么把这个列表缩短呢,怎么定制呢?

要缩短这个列表,不就是少加几种语言嘛!没什么技术含量的,只是要找到合适的地方加。笔者使用的android4.0平台。在build\target\product\locales_full.mk文件中,有:

PRODUCT_LOCALES := cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG en_US es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW am_ET hi_IN$(call inherit-product, build/target/product/languages_full.mk)


玄机就在这里,我们把加以对PRODUCT_LOCALES值的控制就能控制到列表的程度。在这里把我们需要支持的语言加进去,当然这里加的语言关键字都是有约定的。如下:

Locale CANADA Locale constant for en_CA.Locale CANADA_FRENCH Locale constant for fr_CA.Locale CHINA Locale constant for zh_CN.Locale CHINESE Locale constant for zh.Locale ENGLISH Locale constant for en.Locale FRANCE Locale constant for fr_FR.Locale FRENCH Locale constant for fr.Locale GERMAN Locale constant for de.Locale GERMANY Locale constant for de_DE.………………………………..


在这里可以很方便的做产品的差异化,利用$(TARGET_PRODUCT)环境变量,用ifeq就可以,示例如下:

ifeq ($(TARGET_PRODUCT), crane_ed1021tsd)PRODUCT_LOCALES := en_US en_GB zh_CN zh_HK zh_TW else ifeq ($(TARGET_PRODUCT), crane_ed1021)PRODUCT_LOCALES := en_US en_GB zh_CN zh_HK zh_TWelse PRODUCT_LOCALES := cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG en_US es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW am_ET hi_IN$(call inherit-product, build/target/product/languages_full.mk) Endif


笔者在PRODUCT_LOCALES中只选择了中文简体跟繁体,英文的美国版跟英国版,一共四种语言。当然这里面可以再加一些自己项目需要支持的语言。满足需求就好,不需要太多。

更多相关文章

  1. Android(安卓)SDK 1.5中文版 (Application基础—1)
  2. 打造Android的中文Siri语音助手(一)——小I机器人的接口
  3. Android、js&html5的基础资料&书籍
  4. Android(安卓)设计指南简体中文版
  5. 面对Android的衰落,路在何方?
  6. Android(安卓)UI 之TextView控件中可选择的属性列表,开发中经常用
  7. 一看就会Android之分组列表组件ExpandableListView的使用
  8. Android中文API(119)——TableRow
  9. Android(安卓)UI 之TextView控件中可选择的属性列表,开发中经常用

随机推荐

  1. 随笔之Android不吐不快
  2. Android(安卓)面试整理(持续更新)
  3. Cut the Rope Android版登場 現供免費下
  4. android常用控件(一)- TextView、EditView
  5. ListView中的Item项中有Button按钮时,setO
  6. [转载]Android开发真实谎言:个人无空间 无
  7. Android(安卓)Studio 的 build 过程
  8. Android之AVD中data目录问题
  9. Android(安卓)Jni开发之Android(安卓)Stu
  10. Android中ImageView无法居中的问题