Android产品定制多语言
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产品定制多语言相关推荐
- 记录android点滴(一)--通过build.prop实现产品定制的方法
1.通过build.prop实现产品定制的方法: 1)以编译模拟器的Generic版本为例,system.prop文件处 于以下位置(相对于工程根目录): ./build/target/board/g ...
- android定制机测试,在 Android Studio 中利用 “产品定制” 进行封闭测试
最近,我们借助 Android 开发者峰会的机会与开发者进行了交流,期间,我们以一个简单的 Notes 应用为例,探讨了它在 Android 上的测试情况.此示例应用是我们在测试 codelab 的过 ...
- Android系统定制源码修改 - MTK平台
Android系统定制源码修改 - MTK平台 1.修改开机弹出欢迎使用SIM MTK工程/mediatek/packag ...
- [转]Android产品研发(十九)
转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了webview中问题集锦,讲解了webview的性能优化.webview种入Cookie信息.activity退出的时候清除webview信息报错 ...
- 为Android系统定制重启功能
按计划每周更新一篇技术博文,第二篇:<为Android系统定制重启功能> 一.Android系统重启的实现方式 1.广播方式 之前的博文介绍过这种方式<使用广播实现的Android关 ...
- [置顶]Gradle 实现 Android 多渠道定制化打包
Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...
- 论Android产品高效开发之路
文/姚冬 通过对Android产业开发的简要分析,总结了Android系统开发中遇到的各种问题,从产品组合.需求管理.建模与重用.协同开发等角度分析和总结出能够加速Android系统开发并有效提高产品 ...
- Android产品研发(八)--App数据统计
转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了Android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践.目 ...
- Android产品研发(十七)--Hybrid开发
转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了Android开发中经常会涉及到但又常常被忽视掉的开发者模式.主要讲解了包括如何打开手机的开发者模式,开发者模式中各个菜单的意义和作用,如何清除手 ...
最新文章
- LeetCode简单题之判断国际象棋棋盘中一个格子的颜色
- 4.7 mini趴 走进猎豹
- 009_Redis的事物
- Python学习笔记--程序控制结构
- python中plot画图_matplotlib基础绘图命令之errorbar的使用
- 关于苹果与摄影的事。
- 大数据开发入门怎么学习?
- oracle查询本周本月本季本年时间
- 鸿蒙818与A73,荣耀智慧屏正式发布:鸿鹄818智慧芯片+鸿蒙OS,开启未来新视觉
- Activiti 设置工作代理人
- 你真的会用苹果备忘录吗?iPhone用户必须学会的10个备忘录使用技巧
- 【问题】PPS、PPSX自动放映格式打开直接进入编辑模式
- 企业微信与帆软BI内网服务器集成
- 高德地图缩放比例问题解决
- 专业课计算机专业综合,2009年计算机专业考研专业课大纲综合解析
- 明星扎堆,王嘉儿,张艺兴,娜扎,赵丽颖,陈小春,应采儿 给您拜年啦!!!...
- 2023 手术机器人现状
- 多媒体计算机技术在教学中的应用,多媒体计算机技术在教学中的应用浅析
- 电子科技大学中山学院计算机2 2,电子科技大学中山学院“2+2”联合培养实验班选拔、分流办法...
- 计算机俄文词汇,俄语IT词汇