问题描述:添加一种新的语言。

问题分析:新添加一种语言需要几步,编译ICU资源,添加字库,添加相应的字串资源。

解决方案:

以添加缅甸语为例。下面的方式适用于android4.0以上(包括4.0),android2.3的添加方式有些差异。

总共有四步。

1、编译icu资源(语言的名称是规定的,如缅甸语的名称是my_MM,可以在维基查找。)

1)在文件external/icu4c/stubdata/icudt46l-default.txt

添加行coll/my.res

添加行 coll/my_MM.res

添加行curr/my.res

添加行lang/my.res

添加行region/my.res

添加行zone/my.res

添加行my.res

添加行my_MM.res

2) mkdir external/icu4c/icuBuild

3) cd external/icu4c/icuBuild

4) ../runConfigureICU Linux

5) make -j2

6) cp data/out/tmp/icudt48l.dat../stubdata/icudt48l-all.dat.

7) cd ../stubdata

8) ./icu_dat_generator.py

9) mm

最终编译的icu文件icudt48l.dat放在system/usr/icu/icudt48l.dat

以上的编译方式在external/icu4c/stubdata/readme.txt有详细说明。

2、添加字库

1) 把字库放到frameworks\base\data\fonts这里面

2) 在该目录的fonts.mk和Android.mk,添加代码,把字库编译进去。

在fonts.mk中添加

PRODUCT_COPY_FILES := \

frameworks/base/data/fonts/Roboto-Regular.ttf:system/fonts/Roboto-Regular.ttf \

frameworks/base/data/fonts/Roboto-Bold.ttf:system/fonts/Roboto-Bold.ttf \

按照这样添加一行

3)在fallback_fonts.xml,添加相应代码。其直接目的是Resources.getSystem().getAssets().getLocales()获取到字库资源。如:

Padauk.ttf

字库资源的载入在这个文件: external\skia\src\ports\SkFontHost_android.cpp的gSystemFonts数组中。在android2.3,是手动添加,在4.0后,动态从system/etc/fallback_fonts.xml读取。

4) 在build/target/product/languages_full.mk中添加孟加拉语my_MM.

3、确保framework res和settings res都有缅甸语资源

4、make clean 后全编

可能遇到的问题:

1、在setting里面没有语言选项。

a)是否生成ICU文件,进入adb shell, system/usr/icu/icudt48l.dat是否最新生成

b)framework res和settings res都有对于语言的资源

c)languages_full.mk添加对于语言

d)语言的名称是规定的,如缅甸语的名称是my_MM,可以在维基查找。

2、在settings的语言栏有选项,但是空的。

a)System/etc下面是否新的fallback_fonts.xml

b)System/fonts是否有新的字库

android缅甸语,android 添加新语言之缅甸语相关推荐

  1. android添加新语言之缅甸语

    问题描述:添加一种新的语言. 问题分析:新添加一种语言需要几步,编译ICU资源,添加字库,添加相应的字串资源. 解决方案: 以添加缅甸语为例.下面的方式适用于android4.0以上(包括4.0),a ...

  2. android 添加新语言之缅甸语

    问题描述:添加一种新的语言. 问题分析:新添加一种语言需要几步,编译ICU资源,添加字库,添加相应的字串资源. 解决方案: 以添加缅甸语为例.下面的方式适用于android4.0以上(包括4.0),a ...

  3. android缅甸语,android添加新语言之缅甸语

    问题描述:添加一种新的语言. 问题分析:新添加一种语言需要几步,编译ICU资源,添加字库,添加相应的字串资源. 解决方案: 以添加缅甸语为例.下面的方式适用于android4.0以上(包括4.0),a ...

  4. 增加字库 安卓_【Android】Android4.4添加新语言和字库

    一.修改编译配置文件 目的:让PRODUCT_LOCALES := 后面有我们需要添加的语言. 一般原生安卓代码是修改这两个文件 Android/build/target/product/langua ...

  5. Android4.0中添加新语言实现方案(以缅甸语为例)

    查看了网上的一些 关于Android2.3实现的添加新的语言的方案.我没有验证过但发现在4.0中不适用 不适用的原因 是: Android4.0中关于 icu4c模块(处理语言国际化模块)是通过dat ...

  6. Android 系统添加新语言的方法

    方法1 在 frameworks/base/core/res/res/下添加语言对应的values文件夹即可 方法2 在frameworks\base\core\java\com\android\in ...

  7. android 8.1没声音,RingtonePreference无法在Android 8.1上添加新的铃声

    在xml文件中,我有以下代码.我可以通过点击ringtonepref屏幕中的广告铃声按钮来选择mp3声音,但是当我这样做时,我会看到以下异常.这曾经工作过,但更新到Android 8后它无法正常工作. ...

  8. Visual Studio 2019 添加新语言包

    步骤 找到并打开 Visual Studio Installer 点击"修改"("Modify") 点击"语言包" 勾选需要添加的语言 点击 ...

  9. vscode之添加新语言扩展——aspx-html

    2019独角兽企业重金招聘Python工程师标准>>> 语言支持插件必需的三种文件,均起源于TextMate .tmTheme .tmSnippets .tmLanguage vsc ...

最新文章

  1. 教程:4、文件权限和访问方式
  2. python编程基础之三十三
  3. python range()内建函数
  4. editor does not contain a main type 错误解决方
  5. java的方法什么时候加载,java – JVM什么时候加载类?
  6. docker 删除tag为none的docker镜像
  7. PHP的http_build_query
  8. java加载properties文件的几种方式,java高级面试笔试题
  9. 微信公众平台开发,API接入与推送事件(1)
  10. Neuralink新动作:在洛杉矶开设动物实验中心
  11. endnote 参考文献加序号_EndNote同一文章的插入不同编号参考文献的方法 | 科研动力...
  12. 在inDesign软件中如何覆盖母版页项目?
  13. mysql软件字体模糊_Windows 10字体模糊发虚! 如何解决?
  14. SQl2008配置管理工具服务显示远程过程调用失败
  15. 群晖系统设定定时NTP同步时间
  16. 【读后感】薛兆丰经济学讲义
  17. Oracle数据库中,deprecate和desupport的区别,以及Oracle 12.2中的deprecate 的参数
  18. 禁止网页右键查看源代码
  19. 【算法-枚举】熄灯问题 通俗详细的解题叙述(OpenJudege-2811)
  20. [架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计

热门文章

  1. PRML学习总结(8)——Graphical Models
  2. 2022年盲盒行业现状
  3. 独立站引流指南:Quora问答+Quora广告
  4. 军队文职(数学2+物理)——高等数学 2、极限
  5. 空间几何变换知识-摘自机器视觉(张广军,2005)
  6. 奇酷360 8692-A008692-M02卡刷线刷教程ROM固件包下载
  7. CIMCAI中集飞瞳成熟港口人工智能AI产品方案,打造高产出投入比的新一代高效能智能码头智能化港口智慧码头解决方案智能化港区口岸
  8. countries.sql
  9. 毕设模块之一 —— 基于PyQt5+openCV图像预处理软件系统设计
  10. USB驱动之USB网络共享