现在做Flex项目需要国际化,下面是些经验总结:
Flex3可以使用.properties文件实现国际化,用mx.resources.ResourceManager类来读取.properties文件。
下面介绍下我用到的多语言的实现方案:
1)在命令行中运行命令
-locale en_US zh_CN -source-path+=D:/BillYao/项目工程文件/Source/language/locale/{locale}(FLEX SDK目录下默认存在en_US目录,如果想添加其他的语言,则需要自己手动添加语言包,下面的例子中将使用到中文语言包,因此我添加一个zh_CN文件夹,默认目录 C:/Program Files/Adobe/Flex Builder 3/sdks/3.1.0/frameworks/locale)
2)设置目录 在FLEX项目的根目录下创建locale/en_US和locale/zh_CN目录

en_US目录下language.properties
admin.name = TEST_US
zh_CN目录下language.properties
admin.name = /u5927/u5bb6/u597d/uff01
language.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.resources.ResourceManager;
private function changeLocale(locale:String):void
{
// 修改语言
resourceManager.localeChain=[locale];
}
private function init():void
{
var str:String = "转";
var charNum:Number = str.charCodeAt();
mx.controls.Alert.show(charNum.toString(16));
}
]]>
</mx:Script>
<mx:Metadata>
[ResourceBundle("language")]
</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 width="400" height="140" text="{resourceManager.getString('language','admin.name')}"/>
</mx:Application>
2270

被折叠的 条评论
为什么被折叠?



