加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex国际化

发布时间:2020-12-15 05:14:51 所属栏目:百科 来源:网络整理
导读:在Flex中默认只支持en_US,ja_JP这两种本地化,因此如果想在Flex中支持中文或者其他语言时,需要额外的操作: 1、首先添加新的本地化支持,比如:zh_CN,使用以下方法: 在命令行下进入{FlexBuilder的安装目录}/sdks/3.0.0/bin目录下,运行命令:copylocale e

在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的相关代码如下:

?

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

  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读