您的位置:首页 > 移动开发

如何添加一种新的语言

2016-06-30 16:56 246 查看

如何添加一种新的语言

1、修改编译配置文件

android L

在alps\device\公司名字\项目名字\项目名字.mk 中的 PRODUCT_LOCALES宏 添加需要添加的语言代码,例如斯瓦希里语(坦桑尼亚)是sw_TZ(查询语

言对应的language code和country code可参考FAQ17417);

例如我司自己内部的项目代号aubest52那么添加语言路径是(device\mediatek\aubest52\full_aubest52.mk中的

PRODUCT_LOCALES添加语言)

android kk 以及kk以前的版本

在mediatek/config/${Project}/ProjectConfig.mk或者mediatek/config/common/ProjectConfig.mk文件中找到宏

MTK_PRODUCT_LOCALES,添加要新

加的语言代码,例如斯瓦希里语(坦桑尼亚)是sw_TZ;

2、添加ICU资源

2.1添加ICU资源txt文件到对应的文件夹

把对应的txt文件放到(android L 的路径是external\icu\icu4c\source\data),(android KK路径是external/icu4c/data)目录下coll、curr、

lang、locales、region,zone这些子文件夹中。如斯瓦希里语(坦桑尼亚)资源为sw.txt,s w_TZ.txt。

并修改这些目录下的resfiles.mk文件,coll目录下的是colfiles.mk。

如果这些目录下没有这些txt文件,可以在更高android版本或者在http://site.icu-project.org/网站下载。

如果要详细了解ICU资源可以参考FAQ04553。

2.2修改编译配置文件 (ANDROID L无需此步骤)

把上一步添加的txt文件目录添加到下面文件中。

JB: external\icu4c\stubdata\icudt48l-default.txt

KK:external\icu4c\stubdata\icu-data-default.txt

例如:

coll/sw.res

curr/sw.res;

lang/sw.res、

region/sw.res

zone/sw.res

sw.res

2.3编译ICU资源

参考FAQ04011

3、添加字库

参考 FAQ12255 和 FAQ04513

4、翻译字符串

(1)在frameworks/base/core/res/res/下新增加一个values-sw-rTZ的文件夹,新建一个strings.xml文件,把frameworks翻译内容放在这个文件内:

(2) 对每个app做翻译,在每个app对应的res目录下面建立values-sw文件夹,并将翻译好的strings.xml放在里面;

5、重新Build整个工程

6、如果所添加的语言在ISO_639-1没有定义2个字母编码.

(1)自己定义ISO_639-1里面没有的2个字母组合如xx

(2)使用xx按照第2大步添加ICU资源

(3)在frameworks的res下新建values-xx-rYY文件夹(YY为国家码),并把string.xml放进去。其他模块string.xml可以放到values-xx下。

(4)ProjectConfig.mk文件的宏 MTK_PRODUCT_LOCALES处使用xx_YY.

7、对于一些复杂语言除了添加字库、icu资源和翻译以外,还需要有字体引擎,比如缅甸语,波斯语,藏语等。对于mtk支持的语言(FAQ03761)已有

对于复杂语言的处理引擎,如果要添加新的复杂语言需要添加相应的处理引擎。一般复杂语言会具有如下部分特征:

(1)显示或者输入方向从右到左。

(2)字符之间会发生变形或者替换。

(3)一般复杂语言的使用的字符都是非iso8859编码格式(欧洲使用)和非中日韩字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mtk 语言 编码 app