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升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...
随机推荐
- hdu 5627 Clarke and MST(最大 生成树)
Problem Description Clarke is a patient with multiple personality disorder. One day he turned into a ...
- ThreadPool(线程池) in .Net
本文来自:http://rickie.cnblogs.com/archive/2004/11/23/67275.html 在多线程的程序中,经常会出现两种情况.一种情况下,应用程序中的线程把大部分的时 ...
- 在Android中建立Android project没有R.java文件
最近在搞一下安卓,在新建Android工程,既然发现在gen目录下没有R.java这个文件.我当时感到很郁闷,上次建Android工程才好好的,怎么这次既然报错没有R.java.后来我用以下才解决了. ...
- apache如何在虚拟主机中实现用户验证
1,在相应的虚拟主机配置文件段,加入<Directory /data/www.admin.php> AllowOverride AuthConfig ...
- jquery初学者易犯的错误
1 获取类或者对象的时候,忘记写“#”或者“.” 错误案例: $(document).ready(function(){ $("btn1").click(function(){ a ...
- 关于String字符串反转
这是网上看到的一篇java面试题中的问题: 问题是: 如何将一个String字符串反转. String str = "1234567"; int length = str.leng ...
- MVC布局页占位符@RenderSection("bscript", false)
@RenderSection("bscript", false) //false表示不是必须填充 填充bscript占位符 @section bscript{}
- Spring整合Hibernate 一 - 注入SessionFactory
Spring3 整合 Hibernate4 - 注入SessionFactory 版本: spring-framework-3.2.4.RELEASE hibernate-release-4.2.5. ...
- GPS数据处理 - 字符串函数的灵活应用
题目内容: NMEA- 0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA- The National Mari ...
- python 和 c# 连接数据库 (Access)
模块pypyodbc 1.3.3下载: https://pypi.python.org/pypi/pypyodbc/ 安装:解压文件找到pypyodbc.py复制到python安装目录Lib文件夹 ...