Flex 3的本地化应用

这两天看了一下Flex 3的本地化应用支持的功能,比起Flex 2来,很大的一个进步就是支持运行时更换locale。先在google搜索了一把,找到了Gordon Smith的文章,介绍的非常详细,原文地址是http://labs.adobe.com/wiki/index.php /Flex_3:Feature_Introductions:_Runtime_Localization,照着这篇文章自己实践了一下,很顺利的实现 了该功能,下面就把主要的步骤记录一下
  • 在项目中新建一个locale的目录;
  • 在locale目录下创建需要支持语言的子目录,如locale/zh_CN, locale/en_US;
  • 在这些子目录下新建properties文件,各目录下的属性文件需要同名。属性文件的格式与java的属性文件相同,每行以"key=value"的形式列出键值对,以utf-8编码保存文件;
  • 编译mxml文件时加上 -locale=en_US,zh_CN -source-path=../locale/{locale}的选项;
  • 创建本地化的flex framework资源:在命令行中切换到{flex_sdk}/bin目录,使用copylocale程序复制新的资源 (copylocale en_US zh_CN)
接下去介绍一下如何编写mxml跟as文件中的代码

在mxml文件中,首先加入下列代码块
  1. <mx:metadata>
  2.     [ResourceBundle("resources")]
  3. </mx:metadata>

这里的"resource"对应之前添加的属性文件的文件名。然后就可以使用
  1. resourceManager.getString('resources''key')

的形式来获取某个属性,当属性的值为数值等其他类型时,也可以调用相应的如
  1. getNumber('resources''id')

等方法来实现。在mxml文件中还可以使用
  1. @Resource(bundle='resources', key='id')

这样的形式在标签中直接获取资源属性。

而在as文件中则可以通过
  1. ResourceManager.getInstance().getString('resources''key')

来获取属性值。之前mxml文件中所用得resourceManager起始就是ResourceManager的实例。

到此,已经实现了Flex应用的本地化了,如果需要在运行时切换locale,只需使用
  1. ResourceManage.getInstance().localeChain = ['zh_CN'];

即可,如果要在程序初始化前指定所使用的locale,在嵌入该flash的html文件的flashVars属性中加入localeChain=zh_CN,否则程序默认以编译参数中的第一个locale运行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值