作者:wasw100
网址:http://www.wasw100.com/flex/flex_internationalization_example.html
测试环境:MyElipse(带Flex Builder3的插件)
可以根据 http://www.iteye.com/wiki/flex/1804-flex-internationalization 进行设置,下面就是更据这篇文章的补充
另外可参考:http://badqiu.iteye.com/blog/591493
1.一定要在sdks的bin下执行 copylocale en_US zh_CN 命令,否则编译flex时报错
2.这里稍微进行补充一下,文件目录可以和下面一样,也可以与flex_src平行,像参考文章中那样:
flex_src --locale --zh_CN message.properties --en_US message.properties
3.既可以在Eclipse开发环境中的Flex Compiler/Additional compiler arguments选项增加如下参数
-locale zh_CN -locale en_US -source-path=locale/{locale}
也可以这样配置:Flex Build Path/Source path选项卡下,Add Folder…,内容为:
flex_src/locale/{locale}
注意和上面的区别(多了一个flex_src)
具体可结合文章开头那两篇文章看,两种国际化方式也可看下面实例及注释
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Script> <![CDATA[ import mx.resources.ResourceManager; import mx.controls.Alert; private var _currentLanguage:String = "zh_CN"; public function changeLocale():void{ _currentLanguage = _currentLanguage == "zh_CN" ? "en_US" : "zh_CN"; resourceManager.localeChain = [_currentLanguage]; } ]]> </mx:Script> <mx:Metadata> [ResourceBundle("message")] </mx:Metadata> <!-- resourceManager.getString国际化,需要上面的mx:Metadata标签 --> <mx:ApplicationControlBar width="600"> <mx:Label text="{resourceManager.getString('message','file')}" width="50"/> <mx:Text text="{resourceManager.getString('message','edit')}" width="50"/> <mx:Button label="{resourceManager.getString('message','change')}" click="changeLocale()" width="70"/> </mx:ApplicationControlBar> <!-- 使用@Resource标签国际化 --> <mx:Label text="@Resource(key='file', bundle='message')"/> </mx:Application>
–EOF–