flex國際化

在Flex中默認只支持en_US , ja_JP這兩種本地化,因此如果想在Flex中支持中文或者其他語言時,需要額外的操作:

1、首先添加新的本地化支持,比如:zh_CN,使用以下方法:

在命令行下進入{FlexBuilder的安裝目錄}/sdks/3.0.0/bin目錄下,運行命令:copylocale en_US zh_CN

該命令的格式爲(copylocale original_locale new_locale)

2、在Flex工程中添加與src同級的目錄用於放置本地化文件,比如:

message.properties中的內容如下(中文):


注意:locale文件夾一定要與src目錄同級。

3、然後在工程的Flex Compiler中添加如下的編譯項:

4、使用本地化文件,Flex中提供了兩種方法使用本地化文件:

第一種:使用@Resource直接使用,使用樣例如下:

<mx:Label text="@Resource(key='name', bundle='message')"/>

其中 key 表示的是要取資源的 key , bundle 表示的是本地化文件,去掉 .properties 之後的名稱

第二種:使用 Resource Manager 獲取,使用 ResourceManager 時,首先需要在 AS 或 FLex 中指定資源文件的元數據,比如上圖中的 message.properties, 需要添加如下的信息:

<mx:Metadata>

           [ResourceBundle("message")]

 

           </mx:Metadata>

在MXML中可以通過ResourceManager來使用,方式如下:

<shape:ToolBarButton label="{resourceManager.getString('message' , 'refresh')}" 
   icon="{resourceManager.getClass('message' ,'refreshIcon')}" />

         注意:如果容器中沒有resourceManager這個變量,可以使用ResourceManager.getInstance()代替resourceManager,因爲ResourceManager是單態的。

 5、接下來就是如何在運行時改變語言,實現方式如下:

Actionscript代碼  收藏代碼
  1. private function changeLanguage():void{  
  2.       LocaleUtil.getInstance().changeLocale();  
  3. }  

 其中LocaleUtil的相關代碼如下:

 

Actionscript代碼  收藏代碼
  1. public function changeLocale():void{  
  2.     _currentLanguage = _currentLanguage == "zh_CN" ? "en_US" : "zh_CN";  
  3.     ResourceManager.getInstance().localeChain = [_currentLanguage];  
  4. }  

 這樣就修改了運行時的語言。效果如下:

在點擊"英語"後,將切換爲下面的效果。



 
 在點擊"Chinese"後,將回復到中文的界面。





##########

下面的表格中列出了所有可用於各種系統設置的語言代碼。

語言代碼

af 南非荷蘭語 sq 阿爾巴尼亞語
ar-sa 阿拉伯語(沙特阿拉伯) ar-iq 阿拉伯語(伊拉克)
ar-eg 阿拉伯語(埃及) ar-ly 阿拉伯語(利比亞)
ar-dz 阿拉伯語(阿爾及利亞) ar-ma 阿拉伯語(摩洛哥)
ar-tn 阿拉伯語(突尼斯) ar-om 阿拉伯語(阿曼)
ar-ye 阿拉伯語(也門) ar-sy 阿拉伯語(敘利亞)
ar-jo 阿拉伯語(約旦) ar-lb 阿拉伯語(黎巴嫩)
ar-kw 阿拉伯語(科威特) ar-ae 阿拉伯語(阿拉伯聯合酋長國)
ar-bh 阿拉伯語(巴林) ar-qa 阿拉伯語(卡塔爾)
eu 巴斯克語 bg 保加利亞語
be 貝勞語 ca 加泰羅尼亞語
zh-tw 中文(中國臺灣) zh-cn 中文(中華人民共和國)
zh-hk 中文(中國香港特別行政區) zh-sg 中文(新加坡)
hr 克羅地亞語 cs 捷克語
da 丹麥語 nl 荷蘭語(標準)
nl-be 荷蘭語(比利時) en 英語
en-us 英語(美國) en-gb 英語(英國)
en-au 英語(澳大利亞) en-ca 英語(加拿大)
en-nz 英語(新西蘭) en-ie 英語(愛爾蘭)
en-za 英語(南非) en-jm 英語(牙買加)
en 英語(加勒比) en-bz 英語(伯利茲)
en-tt 英語(特立尼達) et 愛沙尼亞語
fo 法羅語 fa 波斯語
fi 芬蘭語 fr 法語(標準)
fr-be 法語(比利時) fr-ca 法語(加拿大)
fr-ch 法語(瑞士) fr-lu 法語(盧森堡)
gd 蓋爾語(蘇格蘭) gd-ie 蓋爾語(愛爾蘭)
de 德語(標準) de-ch 德語(瑞士)
de-at 德語(奧地利) de-lu 德語(盧森堡)
de-li 德語(列支敦士登) el 希臘語
he 希伯來語 hi 北印度語
hu 匈牙利語 is 冰島語
in 印度尼西亞語 it 意大利語(標準)
it-ch 意大利語(瑞士) ja 日語
ko 朝鮮語 ko 朝鮮語(韓國)
lv 拉脫維亞語 lt 立陶宛語
mk FYRO 馬其頓語 ms 馬來西亞語
mt 馬耳他語 no 挪威語(博克馬爾)
no 挪威語(尼諾斯克) pl 波蘭語
pt-br 葡萄牙語(巴西) pt 葡萄牙語(葡萄牙)
rm 拉丁語系 ro 羅馬尼亞語
ro-mo 羅馬尼亞語(摩爾達維亞) ru 俄語
ru-mo 俄語(摩爾達維亞) sz 薩摩斯語(拉普蘭)
sr 塞爾維亞語(西里爾) sr 塞爾維亞語(拉丁)
sk 斯洛伐克語 sl 斯洛文尼亞語
sb 索布語 es 西班牙語(西班牙傳統)
es-mx 西班牙語(墨西哥) es 西班牙語(西班牙現代)
es-gt 西班牙語(危地馬拉) es-cr 西班牙語(哥斯達黎加)
es-pa 西班牙語(巴拿馬) es-do 西班牙語(多米尼加共和國)
es-ve 西班牙語(委內瑞拉) es-co 西班牙語(哥倫比亞)
es-pe 西班牙語(祕魯) es-ar 西班牙語(阿根廷)
es-ec 西班牙語(厄瓜多爾) es-cl 西班牙語(智利)
es-uy 西班牙語(烏拉圭) es-py 西班牙語(巴拉圭)
es-bo 西班牙語(玻利維亞) es-sv 西班牙語(薩爾瓦多)
es-hn 西班牙語(洪都拉斯) es-ni 西班牙語(尼加拉瓜)
es-pr 西班牙語(波多黎各) sx 蘇圖語
sv 瑞典語 sv-fi 瑞典語(芬蘭)
th 泰語 ts 湯加語
tn 瓦納語 tr 土耳其語
uk 烏克蘭語 ur 烏爾都語
ve 文達語 vi 越南語
xh 科薩語 ji 依地語
zu 祖魯語
#########

 如果遇到locale folder找不到的問題執行copylocale,

如添加法語支持(mac系統):

在終端執行:

/Applications/Adobe\ Flash\ Builder\ 4/sdks/4.0.0/bin/copylocale en_US fr



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章