MTK Android4.0.3 ICS 添加缅甸语Myanmar
最近几个项目需要添加缅甸语,借助网络资源,同时结合自身实践,成功添加缅甸语,现分享经验如下。
一. 前期工作;
- 准备Myanmar字库,下载地址:http://www.myordbok.com/myanmar-fonts/ ,或者http://download.csdn.net/detail/marine8888/5813057 。
- 准备系统字串的缅甸文翻译,提供一份供各位测试缅甸语的Settings模块的字串,下载地址:http://download.csdn.net/detail/marine8888/5812889
二.修改icu模块
- 添加行coll/my.res
- 添加行 coll/my_MM.res
- 添加行curr/my.res
- 添加行lang/my.res
- 添加行region/my.res
- 添加行zone/my.res
- 添加行my.res
- 添加行my_MM.res
ICU_PREBUILT_DIR = os.path.join(os.environ.get("ANDROID_EABI_TOOLCHAIN"),
"..", "..", "..", "icu-%s.%s" % (icu_version[0], icu_version[1]))
ICU_PREBUILT_DIR = os.path.join(os.environ.get("ANDROID_BUILD_TOP"),
"prebuilt", "linux-x86","icu-%s.%s" % (icu_version[0], icu_version[1]))
三. 添加缅甸语字库文件到系统
1.添加文件夹,openfont,目录树如下:
├── Android.mk
├── CleanSpec.mk
├── fonts.mk
├── NOTICE
└── padauk-ttf
├── COPYRIGHT
├── OFL.txt
└── Padauk.ttf
2 directories, 10 files
LOCAL_PATH := $(call my-dir) ifneq ($(SMALLER_FONT_FOOTPRINT),true) ifneq (,$(filter my_MM,$(PRODUCT_LOCALES)))
include $(CLEAR_VARS)
LOCAL_MODULE := Padauk.ttf
LOCAL_SRC_FILES := padauk-ttf/$(LOCAL_MODULE)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT)/fonts
include $(BUILD_PREBUILT)
endif endif
fonts.mk内容如下:
PRODUCT_PACKAGES := \
Padauk.ttf
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/ETC/Mondulkiri.ttf_intermediates)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/fonts/Mondulkiri.ttf )
2. 修改frameworks/base/data/fonts/Android.mk,增加如下行:
# Use the following to include the added fonts.
include $(call all-makefiles-under,$(LOCAL_PATH))
使得可以编译到openfont文件夹。
3.修改frameworks/base/data/fonts/fallback_fonts.xml,增加如下内容:
<family>
<fileset>
<file>Padauk.ttf</file>
</fileset>
</family>
4. 修改build/target/product/common.mk,增加如下内容:
ifneq (,$(filter my_MM,$(MTK_PRODUCT_LOCALES)))
PRODUCT_PACKAGES += Padauk.ttf
endif
5. 修改mediatek/config/ztesz75_cu_ics/ProjectConfig.mk,添加缅甸语的国家码my_MM到MTK_PRODUCT_LOCALES中,如下所示:
MTK_PRODUCT_LOCALES = en_US hi_IN in_ID es_ES ru_RU pt_BR fa_IR fr_FR de_DE tr_TR it_IT ms_MY vi_VN ar_EG th_TH pt_PT my_MM nl_NL zh_CN zh_TW mdpi hdpi
另, MTK_PRODUCT_LOCALES的第一个字段是系统的默认语言,也就是出厂语言,如果要把缅甸语设置成默认语言,只需将my_MM放在第一个位置即可。
四. 添加缅甸语字串
从网络上了解到另外一种添加语言的方法,有参考的价值,但是没有验证过,有兴趣的朋友可以参考下,链接如下:http://androidandsandu.blogspot.com/2011/12/how-to-add-indian-languages-to-android.html。
可能有些朋友访问不了外网,现贴原文如下:
How to add Indian Languages to Android ICS (4.0.3)
The AOSP code supports rendering of three Indian languages in Web-kit. (Devanagari, Tamil, and Bengali).
I just added support for the other Indian languages as well. Tested it on my Nexus-S device
Prerequisites :
- ICS (4.0.3) AOSP source code.
- Nexus -s Device
Follow these instructions:
1) Download the "Binary" file of the Indian language from
this link.
Ex: lohit-kananda-ttf-2.5.0.tar.gz
2) Untar the downloaded file and Copy the extracted folder into
external/lohit-fonts directory
Ex: lohit-kannada-ttf-2.5.0
3) Rename the folder name to lohit-kannada-ttf
4) Modify the Android.mk file which is present in external\lohit-fonts directory
ifneq ($(SMALLER_FONT_FOOTPRINT),true)
extra_lohit_fonts := Lohit-Bengali.ttf Lohit-Tamil.ttf Lohit-Kannada.ttf
endif
include $(CLEAR_VARS)
LOCAL_MODULE := Lohit-Kannada.ttf
LOCAL_SRC_FILES := lohit-kannada-ttf/$(LOCAL_MODULE)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT)/fonts
include $(BUILD_PREBUILT)
5) Modify the FontAndroid.cpp file (external/webkit/source/webcore/platform/graphics/android)
a) Add an language entry to CustomScript enum
enum CustomScript {
Bengali,
Devanagari,
Kannada,
.......
};
b) Add the ttf file path to the TextRunWalker Paths
const char* TextRunWalker::paths[] = {
"/system/fonts/Lohit-Bengali.ttf",
"/system/fonts/Lohit-Devanagari.ttf",
"/system/fonts/Lohit-Kannada.ttf",
........
};
c) Now setup the Font for Script Run
TextRunWalker::setupFontForScriptRun()
{
case HB_Script_Kannada:
complexPlatformData = setupComplexFont(Kannada, platformData);
break;
}
6) Add the *.ttf file in Fallback_fonts.xml
(frameworks\base\data\fonts)
MTK Android4.0.3 ICS 添加缅甸语Myanmar的更多相关文章
- 关于解决android4.0系统中菜单无法添加Icon的问题
在Android4.0系统中,创建菜单Menu,然后通过setIcon方法给菜单添加图标是无效的,图标不会显出来,而之前的系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 ...
- 解决android4.0系统中菜单(Menu)添加Icon无效问题
本文转载自: http://blog.csdn.net/stevenhu_223/article/details/9705173 在Android4.0系统中,创建菜单Menu,通过setIcon方法 ...
- Android4.0.4-在build.prop中添加属性的方法【转】
本文转载自:http://blog.csdn.net/imyfriend/article/details/8939964 1.在*.rc文件中用setprop添加,例如在源码android4.0\sy ...
- android4.0 4.1 4.2 4.3 4.4新特性
http://blog.csdn.net/kaiyang45/article/details/7179349 4.0 http://digi.tech.qq.com/a/20120628/000827 ...
- [转载]jquery版小型婚礼(可动态添加祝福语)
原文链接:http://www.cnblogs.com/tattoo/p/3788019.html 前两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了.然后就开始我 的百度生涯,一直 ...
- QT210 android2.3 和android4.0 烧写编译日记
QT210下载烧录编译android2.3过程 工作环境:ubuntu12.04.5 | QT210开发板光盘 | QT210开发板 android2.3编译环境:gcc version 4.4.7 ...
- jquery版小型婚礼(可动态添加祝福语)
前两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了.然后就开始我的百度生涯,一直寻觅许愿墙背景图片和便利贴图片,觅了好久……一直没找到满意的……无意间看到祝福语和一些卡通婚礼图片.最 ...
- 一个Activity掌握Android4.0新控件 (转)
原文地址:http://blog.csdn.net/lavor_zl/article/details/51261380 谷歌在推出Android4.0的同时推出了一些新控件,Android4.0中最常 ...
- [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...
随机推荐
- IEEE发布2016年度编程语言排行榜
C 语言占据榜首,但大数据类是最大赢家. IEEE Spectrum 的第三次"最受欢迎编程语言"交互式排行榜新鲜出炉.因为不可能顾及到每一个程序员的想法,Spectrum 使用多 ...
- Unity 调用android插件
1. Unity的Bundle Identifier必须和你的android报名一致 Activity和View的区别: Activity应该是一个展示页面,View是页面上一些按钮视图等等. 如何调 ...
- Ajax跨域访问解决办法
方法1. jsonp实现ajax跨域访问示例 jsp代码: <body> <input type="button" onclick="testJsonp ...
- 在Android中建立Android project没有R.java文件
最近在搞一下安卓,在新建Android工程,既然发现在gen目录下没有R.java这个文件.我当时感到很郁闷,上次建Android工程才好好的,怎么这次既然报错没有R.java.后来我用以下才解决了. ...
- 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎
Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...
- andorid 控件 Bootstrap3.0风格的控件 精美UI控件库
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...
- sharepreference实现记住password功能
SharePreference是用于保存数据用的.主要调用Context.getSharePreferences(String name, int mode)方法来得到SharePrefere ...
- JSP 基础之 JSTL <c:forEach>用法
在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...
- UVALive 6959 - Judging Troubles
给两组字符串,最多有多少对相同. map做映射判断一下. #include <iostream> #include <cstdio> #include <map> ...
- 层次节点——NODE节点
1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...