文章1
今天在网上搜了一下FLEX的多语言实现方法,发现实现方式还挺多的
这里介绍的多语言的实现方式其实不是我想要的,不过也可以实现一般的需求,下面来介绍我用到的多语言的实现方案:
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>
运行效果在这时里就不贴出来了,有兴趣的自己试一下吧。。。。。。。
文章2
flex实现多国语言化的方法
在这些目录下放入一个文件,名字是strings.properties,内容格式key=value 举例如下:
aaa = d
bbb = c
ccc = b
ddd = a
注意值 如果是汉字请用/u+unicode编码表示,举例 :下一个 用/u4e0b/u4e00/u4e2a表示。
使用方式
private static var stringResources:ResourceBundle;
[Bindable]
private var va:String;
[Bindable]
private var vb:String;
[Bindable]
private var vc:String;
[Bindable]
private var vd:String;
private function loadResources():void
{
va= stringResources.getString("aaa");
vb= stringResources.getString("bbb");
vc= stringResources.getString("ccc");
vd= stringResources.getString("ddd");
}
把va,vb,vc,vd这些变量绑定到显示上就ok了
编译的时候在工程中设置
project---properties-----Flex Compiler
在Additional compiler arguments:中加入
-locale ch-GB