android 语言包 external,为Android添加多国语言包.pdf

虽 然 Android从2 3开始已经支持 50种以上的语言 但是不是每种语言都有字体可以显示 遇到一个新需求 有客户要求对hindi 语言的支持 于是上 网找了一些资料 发现网上介绍的大部分是如何替换默认字体 就 是替换 frameworks base data fonts DroidSansFallback ttf 但是替换完之后 中文就无法正常显示 其实 只要有下面几个步骤 就可以实现新曾加一种语言的显示支持 1 需要有可以显示 hindi语言的字体 我在网上下载了一个 DroidHindi ttf 2 需要修改的地方主要有 1 将下载的字体文件拷贝到 frameworks base data fonts 2 修改 frameworks base data fonts Android mk 将 DroidHindi ttf 添加到 copy from copy from DroidSans ttf DroidSans Bold ttf DroidSansArabic ttf DroidSansHebrew ttf DroidSansThai ttf DroidHindi ttf DroidSerif Regular ttf DroidSerif Bold ttf DroidSerif Italic ttf DroidSerif BoldItalic ttf DroidSansMono ttf Clockopia ttf 复制代码 3 Hindi的语言代码是hi IN 修改 device qcom common common mk 将 hindi的语言代码加进去 这样在你的设置 语言和键盘 选择语言里面就可以看见 hindi语言了 PRODUCT LOCALES en US en GB es ES es US fr FR zh CN zh TW hi IN it IT pt PT ru RU 4 修改 external skia src ports SkFontHost android cpp 将 DroidHindi ttf 加进去 网上 介绍的很多 方法都没有提到这一步 如果没有这一步的话 添加的语言是不生效的 显示的是乱码 因为 android 无法 找到hindi 语言可以显示的字体 还是会选择默认字体去显示 修改的地方为 Fonts must be grouped by family with the first font in a family having the list of names even if that list is empty and the following members having null for the list The names list must be NULL terminated static const FontInitRec gSystemFonts DroidSans ttf gSansNames DroidSans Bold ttf NULL DroidSerif Regular ttf gSerifNames DroidSerif Bold ttf NULL DroidSerif Italic ttf NULL DroidSerif BoldItalic ttf NULL DroidSansMono ttf gMonoNames These are optional and can be ignored if not found in the file system These are appended to gFallbackFonts as they are seen so we list them in the order we want them to be accessed by NextLogicalFont DroidSansArabic ttf gFBNames DroidSansHebrew ttf gFBNames DroidSansThai ttf gFBNames DroidHindi ttf gFBNames 新添加的语言 MTLmr3m ttf gFBNames Motoya Japanese Font MTLc3m ttf gFBNames Motoya Japanese Font DroidSansJapanese ttf gFBNames DroidSansFallback ttf gFBNames 复制代码 5 去 build target product full mk 看看系统选择的是哪个语言列表 我的是 call inherit product build target product languages small mk 那我就去修改 build target product languages small mk 若这里显示的是languages full mk 那么 就修改 build target product languages full mk 文件 修改如下 PRODUCT LOCALES en US en GB fr FR hi IN it IT de DE es ES 6 在external icu4c studata下的Android mk下添加 if findingstring hi PRODUCT LOCALS large 3 剩下的就是重新编译一下 然后 flash到手机或模拟器上就可以了 设置页面 打开一个Hindi 的网页 hindi 语言可以正常显示了

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值