Flex多国语言示例

示例以中、英两个语言版本为例:

 

1、新建Flex Project

2、设置Project中的源路径,例如:locale/{locale}

image

 

 

3、设置Flex编译器的附加参数:-locale zh_CN en_US

image

4、新建文件夹:locale,然后在其目录下新建两个语言包文件夹:

zh_CN

en_US

两个文件夹内添加一个名为info.properties(文件后缀名必须是properties,文件名随意)

image 

info.properties里的内容为:

中文为:

info=当前语言: {0}  当前的IDE是{1}  当前使用的版本是:{2}

英文为:

info=Current Langunage: {0} Current use IDE {1}   Version now is {2}

image

 

5、打开Flex Project的mxml主文件

先绑定语言包

<mx:Metadata>
        [ResourceBundle("info")]
</mx:Metadata>

info为语言包文件的文件名(info.properties)

 

在界面添加两个按钮,点击时更改语言包设置,然后进行测试:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">
	
	<mx:Metadata>
		[ResourceBundle("info")]
	</mx:Metadata>
	
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.resources.ResourceBundle;
			import mx.resources.ResourceManager;
			import mx.utils.StringUtil;
			
			function show():void {
				var infoStr:String = ResourceManager.getInstance().getString("info", "info");
				
				var arr:Array = null;
				
				if (ResourceManager.getInstance().localeChain.toString() == "zh_CN") {
					arr = ['中文', 'Flash Builder', 'V1.0'];
				} else {
					arr = ["English", 'Flash Builder', 'V1.0'];
				}
				
				infoStr = StringUtil.substitute(infoStr, arr);
				
				Alert.show(infoStr, "这里是标题");
			}
			
			function show_CN(evt:MouseEvent):void {
				ResourceManager.getInstance().localeChain = ["zh_CN"]; 
				
				show();
			}
			
			function show_US(evt:MouseEvent):void {
				ResourceManager.getInstance().localeChain = ["en_US"];  
				
				show();
			}
		]]>
	</mx:Script>
	
	<mx:Button label="显示中文" x="339" y="230" click="show_CN(event);"></mx:Button>
	
	<mx:Button label="显示英文" x="339" y="280" click="show_US(event);"></mx:Button>
	
</mx:Application>

 

然后按F11,调试运行。

 

最终的效果图为:

image

image

 

在获取文本信息的时候,使用了flex中的字符串工具“StringUtil”包中的“substitute”方法:

image

 

源码就是一个使用正则替换的过程:

image

posted @ 2011-01-13 12:00  meteoric_cry  阅读(3666)  评论(1编辑  收藏  举报