今天在网上搜了一下FLEX的多语言实现方法,发现实现方式还挺多的
推荐一个网站:
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=11143
这里介绍的多语言的实现方式其实不是我想要的,不过也可以实现一般的需求,下面来介绍我用到的多语言的实现方案:
1)在命令行中运行命令
locale en_US zh_CN (FLEX SDK目录下默认存在en_US目录,如果想添加其他的语言,则需要自己手动添加语言包,下面的例子中将使用到中文语言包,因此我添加一个zh_CN文件夹)
2)在FLEX项目的根目录下创建resources/locale/en_US和 resources/locale/zh_CN目录
3)在FLEX项目中
右键—>properties—>source path—>add folder
在弹出的输入框中输入 resources/locale/{locale}
(注意:这里的路径要与第二步中创建的路径一致)
4)在FLEX项目中
右键—>properties—>Flex Compiler
在Additional compiler arguments中输入 -locale en_US zh_CN
(注意:一定要添加这一命令,这样第三步中的{locale} 才能通过此命令找到对应的语言文件)
5)在en_US和zh_CN下分别创建admin.properties文件(注意:一定要以.properties作为文件后缀)
/en_US/admin.properties 中添加内容 admin.name = TEST_US
/zh_CN/admin.properties中添加内容 admin.name = TEST_CN
6)创建index.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" >
<mx:Script>
<![CDATA[
import mx.resources.ResourceManager;
private function changeLocale(locale:String):void{
// 修改语言
resourceManager.localeChain=[locale];
}
]]>
</mx:Script>
<mx:Metadata>
[ResourceBundle("admin")]
</mx:Metadata>
<mx:ApplicationControlBar width="400">
<mx:Label text="Content" width="100%"/>
<mx:Button label="eng" click="changeLocale('en_US')" />
<mx:Button label="ch" click="changeLocale('zh_CN)" />
</mx:ApplicationControlBar>
<mx:Text text="{resourceManager.getString('admin','admin.name')}" width="400" height="240"/>
</mx:Application>
运行效果在这时里就不贴出来了,有兴趣的自己试一下吧。。。。。。。