FLEX实践:多语言实现

今天在网上搜了一下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>

运行效果在这时里就不贴出来了,有兴趣的自己试一下吧。。。。。。。

你可能感兴趣的:(xml,Flex,Adobe)