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

问题分析:新添加一种语言需要几步,编译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,添加代码,把字库编译进去。

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. 构建、测试和部署驱动程序
  2. 如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?
  3. docker部署springboot_创建SpringBoot项目部署到docker全过程
  4. ajax请求相关问题
  5. Linux中几个实用快捷键
  6. php 加载redise_PHP Redis扩展无法加载的问题解决方法
  7. 微型计算机中常体积的,微型计算机原理及应用第2章.ppt
  8. 解决iSlider的一些问题(滑动组件)
  9. 可局部放大图片的例子,局部放大图片,javascript局部放大图片
  10. 一、网络安全专有名词汇编详解(黑话指南)-史上最全
  11. java坦克大战爆炸效果_Java坦克大战 (五) 之产生敌方坦克和爆炸效果
  12. 威纶触摸屏做modbus rtu主站控制风机 ZLAN5143的应用案例
  13. 实战 | 如何使用微搭低代码实现公差申请应用
  14. 数学实验基于matlab软件,数学实验:基于MATLAB软件
  15. 【自动驾驶】Frenet坐标系与Cartesian坐标系(一)
  16. zabbix使用自动发现添加主机
  17. 【论文笔记】UBR4CTR:User Behavior Retrieval for Click-Through Rate Prediction (SIGIR 20)
  18. java开发微信公众号:微信公众号对接
  19. 升级鸿蒙系统数据备份,鸿蒙系统手机怎么回退到稳定版的EMUI 11.0系统?鸿蒙系统回退到EMUI系统详细教程...
  20. Android MVVM架构

热门文章

  1. 中国商用车产业现状规模与投资前景规划分析报告2021年版
  2. 仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动
  3. 酒店预定android代码,毕业设计(论文)-基于Android的酒店预定系统设计(全套源代码).doc...
  4. 【物联网初探】- 03 - ESP32 结合 TFT_eSPI 库标定 TFT 触摸屏 (Arduino IDE)
  5. 华为c199刷android原生,华为C199(麦芒3 电信4G版)一键救砖教程,轻松刷回官方系统...
  6. 抖音新软件测试隐藏有什么东西,抖音上苹果手机隐藏应用是怎么做到的?学会这四步你也可以隐藏!...
  7. 机械键盘知识漫谈(二)- 键帽篇
  8. mac 免费的方法读写NTFS
  9. 在服务器上运行本地的项目 (部署亲测有效)转载请注明出处
  10. 如何在IE11中设置兼容模式?设置的具体方法