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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值