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_TW
else
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中只选择了中文简体跟繁体,英文的美国版跟英国版,一共四种语言。当然这里面可以再加一些自己项目需要支持的语言。满足需求就好,不需要太多。

Android产品定制多语言相关推荐

  1. 记录android点滴(一)--通过build.prop实现产品定制的方法

    1.通过build.prop实现产品定制的方法: 1)以编译模拟器的Generic版本为例,system.prop文件处 于以下位置(相对于工程根目录): ./build/target/board/g ...

  2. android定制机测试,在 Android Studio 中利用 “产品定制” 进行封闭测试

    最近,我们借助 Android 开发者峰会的机会与开发者进行了交流,期间,我们以一个简单的 Notes 应用为例,探讨了它在 Android 上的测试情况.此示例应用是我们在测试 codelab 的过 ...

  3. Android系统定制源码修改 - MTK平台

                                         Android系统定制源码修改 -  MTK平台  1.修改开机弹出欢迎使用SIM MTK工程/mediatek/packag ...

  4. [转]Android产品研发(十九)

    转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了webview中问题集锦,讲解了webview的性能优化.webview种入Cookie信息.activity退出的时候清除webview信息报错 ...

  5. 为Android系统定制重启功能

    按计划每周更新一篇技术博文,第二篇:<为Android系统定制重启功能> 一.Android系统重启的实现方式 1.广播方式 之前的博文介绍过这种方式<使用广播实现的Android关 ...

  6. [置顶]Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  7. 论Android产品高效开发之路

    文/姚冬 通过对Android产业开发的简要分析,总结了Android系统开发中遇到的各种问题,从产品组合.需求管理.建模与重用.协同开发等角度分析和总结出能够加速Android系统开发并有效提高产品 ...

  8. Android产品研发(八)--App数据统计

    转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了Android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践.目 ...

  9. Android产品研发(十七)--Hybrid开发

    转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了Android开发中经常会涉及到但又常常被忽视掉的开发者模式.主要讲解了包括如何打开手机的开发者模式,开发者模式中各个菜单的意义和作用,如何清除手 ...

最新文章

  1. LeetCode简单题之判断国际象棋棋盘中一个格子的颜色
  2. 4.7 mini趴 走进猎豹
  3. 009_Redis的事物
  4. Python学习笔记--程序控制结构
  5. python中plot画图_matplotlib基础绘图命令之errorbar的使用
  6. 关于苹果与摄影的事。
  7. 大数据开发入门怎么学习?
  8. oracle查询本周本月本季本年时间
  9. 鸿蒙818与A73,荣耀智慧屏正式发布:鸿鹄818智慧芯片+鸿蒙OS,开启未来新视觉
  10. Activiti 设置工作代理人
  11. 你真的会用苹果备忘录吗?iPhone用户必须学会的10个备忘录使用技巧
  12. 【问题】PPS、PPSX自动放映格式打开直接进入编辑模式
  13. 企业微信与帆软BI内网服务器集成
  14. 高德地图缩放比例问题解决
  15. 专业课计算机专业综合,2009年计算机专业考研专业课大纲综合解析
  16. 明星扎堆,王嘉儿,张艺兴,娜扎,赵丽颖,陈小春,应采儿 给您拜年啦!!!...
  17. 2023 手术机器人现状
  18. 多媒体计算机技术在教学中的应用,多媒体计算机技术在教学中的应用浅析
  19. 电子科技大学中山学院计算机2 2,电子科技大学中山学院“2+2”联合培养实验班选拔、分流办法...
  20. 计算机俄文词汇,俄语IT词汇

热门文章

  1. 怪物猎人X护石系统详解 护石任务数据向分析
  2. RabbitMQ:Consumers的介绍和使用
  3. 【大屏项目】SpringBoot + Vue 实现的可视化拖拽编辑的
  4. 建一个网站费用到底要多少钱?
  5. 编程实现对任意字符串的加密处理
  6. 笨办法学python3 学习笔记 习题43 基本的面向对象分析和设计
  7. 职称计算机80分合格,达江发话:这样备考中级职称 考不了80分算我输!
  8. JVM<一>内存管理[三]垃圾回收器
  9. 高质量股票数据_10个网站免费下载高质量的股票视频
  10. 手机计算机的冷知识,冷知识:手机为什么能变得越来越智能?