添加缅甸语的流程

1         修改ProductConfig.mk文件

mediatek/config/${Project}/ProjectConfig.mk文件中找到宏 MTK_PRODUCT_LOCALES,添加要新加的语言代码,例如缅甸语是my_MM;

2         添加ICU资源

2.1    复制ICU资源txt文件到对应的文件夹

由于my_MMICU资源在4.4.1版本中没有,但是在Android4.04.6版本中是有的,所以可以从Android4.0上复制对应的txt文件到对应的目录下;

例如coll目录,添加my.txtmy_MM.txt文件后如下图:

8

 

这几个目录都复制过来后,data目录下搜索my,应该会有以下这样的结果:

9

这就表示已经都复制过来了

2.2    修改编译配置文件

GBICU资源编译到最终的工程中的是icudt44l-large.dat,所以配置文件在icudt44l-large.txt文件里,找到这个文件,往里面添加缅甸语的内容。

10

 

icudt44l-large.txt文件位置

 

打开这个文件,然后根据复制到data目录下的对应文件,往里面添加对应内容,就是my.resmy_MM.res这样的内容,可以参考下面几个截图:

2

修改ICU配置文件

2.3    修改external/icu4c/studata/ Android.mk文件

这也是修改ICU资源的编译配置,往里面加入my的内容到large.

 

2.4    编译ICU资源

GB上编译ICU资源的过程比较繁琐,具体流程请参考另一份文档“GB编译ICU流程”。

需要注意的是,需要按照那份文档中完整执行全部步骤,否则newremake工程的时候ICU资源仍然没有修改;

3         添加字库

这部分的详细流程可以参考另一份文档,“如何添加新的字库”,这里给出简要步骤

3.1    复制字库到framework/base/data/font目录

如下图所示,直接将ttf文件放到这个目录下面。

3

复制ttf文件

3.2    把字库文件加入编译选项里

修改frameworks/base/data/fonts/Android.mk文件:

copy_from := \

DroidSansMono.ttf \

my.ttf \

 ……

4

3.3    修改external/skia/src/ports/SKFontHost-android.app文件

如下图,my.ttf添加到gFBNames中:

5

4         添加Framework String

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

6

5         添加app String

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

6         重新Build整个工程

使用new或者remake命令重新Build,如果以上步骤都成功了,那么应该会看到语言选择中多了一个缅甸语选项.

7

7       添加过程常见的问题

1)、ICU资源添加完成且编译成功,字库也添加了,setting语言列表中找不到新增语言选项。

  原因可能是下面2种:

(A)  MTK_PRODUCT_LOCALES(mediatek/config/${Project}/ProjectConfig.mk)处没添加新语言的代码。语言代码格式为xx_YY其中xx是语言代码(ISO_639-1),YY是使用该语言的国家或者地区代码(ISO_3166-1)。比如缅甸语my_MM。

(B)  Frameworks/base/core/res/res下没有新增语言字串的翻译,应新增对应语言的翻译,如values-my,values-my-rMM.测试时可以把其他语言的字串文件拷贝过来验证。

2)、 添加新语言后,setting语言列表中新增语言选项显示□ □ 。

原因:没有添加对应的字库或者字库没有添加成功。添加步骤可参考:FAQ04513

3)、添加新语言后,在语言列表中选定该语言后,界面显示却是英文。

     原因:app的res下没有添加该语言的字串。

4)、 其他需要注意的问题。

(1)     如果所添加的语言在ICU的各个版本里都没有,那就需要按照既定的格式自行添加这些资源(可以找到与要添加的语言和地区最相近的,复制后进行修改,比如添加粤语,粤语与zh_CN就是很相近的),有关icu资源可参考FAQ04553

(2)     如果在对应的目录中(一般是external\icu4c\data\的coll、curr等)添加了txt资源,那么就需要修改对应的mk文件,否则执行编译过程是不会将新加的资源编译到dat文件中的.

(3)     修改该文件(external/skia/src/ports/SKFontHost-android.app)的时候,字体添加是对顺序敏感的,也就是放在前面的字体在系统加载的时候会优先进行判断.如果出现添加了改字体文件,但是Settings菜单中显示出空行的情况,请在此处把对应的字库文件的位置放到前面.

(4)     新增平台不支持的语言时,虽说可以按照步骤添加成功,但并不保证此语言可以正常使用。首先需要翻译所有framework和app下的字串资源,其次看该语言的字符是否完全正确的显示(一般是字库的问题,需要向第三方购买),对于复杂语言还存在字符变形的问题(如蒙古语,藏语,维语等)。再次需要考虑是平台是否支持这种语言的输入法,如果不支持,还需自己添加等。

(5)     需要添加或者打开一种语言时只需要在MTK_PRODUCT_LOCALES处添加该语言的代码以及使用国家代码就行,添加规则是XX_YY(参考常见问题1->A),如中文简体语正确的是zh_CN,不应添加zh或者CN。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值