日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android locales本地化(整理)

發(fā)布時(shí)間:2024/3/24 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android locales本地化(整理) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 語言定制
1.1 ICU4C
1.1.1 ICU4C簡(jiǎn)介

ICU4C(ICU for C,http://site.icu-project.org/)是ICU在C/C++平臺(tái)下的版本, ICU(International Component for Unicode)是基于"IBM公共許可證"的,與開源組織合作研究的, 用于支持軟件國(guó)際化的開源項(xiàng)目。ICU4C提供了C/C++平臺(tái)強(qiáng)大的國(guó)際化開發(fā)能力,軟件開發(fā)者幾乎可以使用ICU4C解決任何國(guó)際化的問題,根據(jù)各地的風(fēng)俗和語言習(xí)慣,實(shí)現(xiàn)對(duì)數(shù)字、貨幣、時(shí)間、日期、和消息的格式化、解析,對(duì)字符串進(jìn)行大小寫轉(zhuǎn)換、整理、搜索和排序等功能,必須一提的是,ICU4C提供了強(qiáng)大的BIDI算法,對(duì)阿拉伯語等BIDI語言提供了完善的支持。

  ICU首先是由Taligent公司開發(fā)的,Taligent公司現(xiàn)在被合并為IBM?公司全球化認(rèn)證中心的Unicode研究組,然后ICU由IBM和開源組織合作繼續(xù)開發(fā),開源組織給與了ICU極大的幫助。

  開始ICU只有Java平臺(tái)的版本,后來這個(gè)平臺(tái)下的ICU類被吸納入SUN公司開發(fā)的JDK1.1,并在JDK以后的版本中不斷改進(jìn)。C++和C平臺(tái)下的ICU是由JAVA平臺(tái)下的ICU移植過來的,移植過的版本被稱為ICU4C,來支持這C/C++兩個(gè)平臺(tái)下的國(guó)際化應(yīng)用。

ICU4C和ICU4C區(qū)別不大,但由于ICU4C是開源的,并且緊密跟進(jìn)Unicode標(biāo)準(zhǔn),ICU4C支持的Unicode標(biāo)準(zhǔn)總是最新的;同時(shí),因?yàn)镴AVA平臺(tái)的ICU4J的發(fā)布需要和JDK綁定,ICU4C支持Unicode標(biāo)準(zhǔn)改變的速度要比ICU4J快的多。

ICU用戶指南:http://userguide.icu-project.org/locale


1.1.2 ANDROID語言包

Android 使用的語言包就是ICU4C,位置:external/icu4c。
Android2.1及2.2支持的26種語言(locales)
Android2.3以上版本支持的57種語言(locales).



1.2 定制語言

在PRODUCT_LOCALES字段里添加需要語言,如:

PRODUCT_LOCALES := en_US zh_CN

則系統(tǒng)里只有英語和漢語兩種語言。

然后語言的選擇處理是在external/icu4c/stubdata/Android.mk里進(jìn)行的,如下:

config := $(word 1, \

$(if $(findstring ar,$(PRODUCT_LOCALES)),large) \

$(if $(findstring da,$(PRODUCT_LOCALES)),large) \

$(if $(findstring el,$(PRODUCT_LOCALES)),large) \
..... \
us)
在android2.2中最終生成/system/lib/libicudata.so
在android2.3以上版本中最終生成使用的是/system/usr/ict/icudt44l.dat.

1.3 默認(rèn)語言

在PRODUCT_LOCALES字段里,將要選擇的語言放在第一位,如:PRODUCT_LOCALES := en_US zh_CN

1.4 增加語言支持
1.4.1 增加系統(tǒng)版本支持的語言范圍內(nèi)的語言,在setting中增加語言選擇
/build/target/product目錄下,language_full.mk|language_small.mk 看你的編譯選項(xiàng)使用那個(gè)文件了,修改PRODUCT_LOCALES ,如下PRODUCT_LOCALES包括了57中語言的支持:
PRODUCT_LOCALES :=ar_EG ar_IL bg_BG ca_ES cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_SG en_US en_ZA es_ES es_US fi_FI fr_BE fr_CA fr_CH fr_FR he_IL hi_IN hr_HR hu_HU id_ID it_CH it_IT ja_JP ko_KR lt_LT lv_LV nb_NO nl_BE nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU sk_SK sl_SI sr_RS sv_SE th_TH tl_PH tr_TR uk_UA vi_VN zh_CN zh_TW

1.4.2 增加android系統(tǒng)不支持的語言,如在android2.2中增加對(duì)越南語,泰語(這兩中語言android2.3中才支持)的支持。
例:android2.2系統(tǒng)添加希伯來文
我大概是這樣修改的:
1.frameworks\base\data\fonts目錄下的字體庫(kù),替換為希伯來的
2.將mk文件中的 PRODUCT_LOCALES 添加he_IL希伯來的支持
3.external\icu4c\stubdata\Android.mk 添加希伯來的國(guó)籍問題 $(if $(findstring he,$(PRODUCT_LOCALES)),large) \
4.在應(yīng)用程序中,在res下建立目錄 values-iw-rIL,并翻譯成希伯來文。。
5.make clean,之后整個(gè)make

1.5 修改或增加ICU資源或定義,比如對(duì)locales地區(qū)數(shù)字、貨幣、百分比等書寫習(xí)慣進(jìn)行修改。輕易不要修改,除非ICU資源本身有bug.
/external/icu4c/data/locales/


NumberElements{
",",
"",
";",
"%",
"0",
"#",
"-",
"E",
"‰",
"∞",
"NaN",
"+",
}
NumberPatterns{
"#,##0.###",
"¤#,##0.00",
"#,##0%",
"#E0",
}

編譯:
/external/icu4c/runConfigureICU Linux
make -j2
這個(gè)目錄下的文件定義了各國(guó)或地區(qū)的語言使用習(xí)慣,編譯后在android2.3中生成icudtxxl-all.dat,icudtxxl-large.dat數(shù)據(jù)文件(android2.2稍有不同) 數(shù)據(jù)文件android編譯過程中將復(fù)制到out/target/product/xxxxx/system/usr/icu/icudtxxl.dat,在android中經(jīng)JDK讀取解釋,如/java/text/NumberFormat.java 這樣同一個(gè)數(shù)字在不同的語言locales設(shè)置情況下,將按地區(qū)習(xí)慣顯示。





參考:

http://blog.csdn.net/zhq56030207/article/details/6239979 如何添加一種語言?
http://www.eoeandroid.com/thread-46129-1-1.html
http://www.eoeandroid.com/thread-46129-1-1.html
http://developer.android.com/reference/java/util/Locale.html
http://topic.csdn.net/u/20110308/11/7b29dfdf-f106-45ac-baa1-c4bcf19252f5.html?32827

http://hi.baidu.com/xie_jack/blog/item/ac3f390aef09339a0a7b823b.html

http://blog.csdn.net/seker_xinjian/article/details/6289191

http://www.douban.com/group/topic/13422793/


總結(jié)

以上是生活随笔為你收集整理的android locales本地化(整理)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。