在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、接下来就是如何在运行时改变语言,实现方式如下:
- private?function?changeLanguage():void{??
- ??????LocaleUtil.getInstance().changeLocale();??
- }??
?其中LocaleUtil的相关代码如下:
?
public?function?changeLocale():void{??
????_currentLanguage?=?_currentLanguage?==?"zh_CN"???"en_US"?:?"zh_CN";??
????ResourceManager.getInstance().localeChain?=?[_currentLanguage];??
?这样就修改了运行时的语言。效果如下:
在点击"英语"后,将切换为下面的效果。

?
?在点击"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
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!