您的位置:首页 > 其它

Flex多语言的实现方案一

2009-09-30 15:54 519 查看
效果图:





一、构建语言包。
原来的Flex Builder Plug-in可能只有en_US和ja_JP两种语言包,所以当我们需要使用中文语言包时,需要创建一个中文包,并且命名为zh_CN。



怎么创建呢,在{Flex Builder Plug-in root}/sdks/3.2.0下有个copylocale.exe可执行程序。但是要注意的是,这是个控制台输入输出程序,所以你需要在DOS界面操作。



进入copylocale.exe所在文件夹,执行语言包copy命令。成功后你会在图1的目录中发现多了一个zh_CN的语言包。



25种语言列表(去掉en_US,ja_JP):



二、在FLEX项目的根目录下创建resources/locale/en_US和 resources/locale/zh_CN目录,用于放置资源文件。



在FLEX项目中

右键—>properties—>source path—>add folder

在弹出的输入框中输入 resources/locale/{locale}

(注意:这里的路径要与第二步中创建的路径一致)

预编译,在FLEX项目中

右键—>properties—>Flex Compiler

在Additional compiler arguments中输入 -locale en_US zh_CN -source-path=resources/locale/{locale}

(注意:一定要添加这一命令,这样第三步中的{locale} 才能通过此命令找到对应的语言文件)

三、在en_US和zh_CN下分别创建admin.properties文件(注意:一定要以.properties作为文件后缀)

/en_US/admin.properties 中添加内容 admin.name = TEST_US

/zh_CN/admin.properties中添加内容 admin.name = TEST_CN

如果需要输入中文内容,则要把文件的类型改为UTF-8。选中文件à右击选中属性àResourceàText File Encodingà UTF-8

四、创建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")]
// 查找admin.propertes
</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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: