1 确定好语言和国家对照表,波斯与对照如下:
fa_IR
2 根据build\target\product\sdk.mk
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk) $(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk) # Overrides PRODUCT_BRAND := generic PRODUCT_NAME := sdk PRODUCT_DEVICE := generic # locale + densities. en_US is both first and in alphabetical order to # ensure this is the default locale. PRODUCT_LOCALES = \ en_US \ ldpi \ hdpi \ mdpi \ xhdpi \ ar_EG \ ar_IL \
由$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk) 可以知道添加语言库的位置
在frameworks/base/data/fonts 目录下添加 下载好的 DroidSansArabic.ttf 语言库。
并修改fonts.mk,添加新的拷贝路径
PRODUCT_COPY_FILES := \ frameworks/base/data/fonts/DroidSansArabic.ttf:system/fonts/DroidSansArabic.ttf \
最后在
PRODUCT_LOCALES = \
加上对波斯语的 支持
fa_IR
3 ndk采用的编码工具不同于JAVA,ndk采用的编码工具是ICU4C,源码目录为external\icu4c
在external\icu4c\stubdata\Android.mk 里面已经默认添加了对波斯语编码的支持,所以不需要改,2.3系统的则需要自行修改。
# Build configuration: # # 'all' includes all ICU's locale data, but is currently missing some Android # extensions (mostly extra charset converters). # # 'default' (icudt46l-default.txt) includes all the most-used locales, # covering 94% of internet users # (http://googleblog.blogspot.com/2008/07/hitting-40-languages.html): # ar, bg, ca, cs, da, de, el, en, es, fa, fi, fil, fr, he, hi, hr, hu, in, # it, ja, ko, lt, lv, nb, nl, pl, ps, pt, rm, ro, ru, sk, sl, sr, sv, th, # tr, uk, vi, zh. config := default
4 在 external\skia\src\ports\SkFontHost_simple.cpp 添加
static const FontInitRec gSystemFonts[] = { { "Arial.ttf", gSansNames }, { "Times.ttf", gSerifNames }, { "samplefont.ttf", gSansNames }, { "DroidSansArabic.ttf", gSansNames },5 最后在devices 目录下的product.mk 加上对波斯语的支持PRODUCT_LOCALES := fa_IR en_US zh_CN fr_FR es_ES de_DE ru_RU ko_KR