flex国际化

来源:互联网 发布:秋冬季女帽淘宝 编辑:程序博客网 时间:2024/05/21 06:26

在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



原创粉丝点击