正则:制作对文本信息提取,可方便于制作,WebGame的语言包提取

写这个小工具之前,还遇到一些正则不知道怎么写的问题,由于,在CSDN发贴:

http://bbs.csdn.net/topics/390634252

问了。。。只有几位元老级大神在回复一次之后就再也没收到回复;而且,CSDN那个:连续回复某个贴三次(包括自己回复自己的贴子都算),那么该贴,该帐号,就不可以回复信息,直到有别人回复之后才可以回复,这个限制,我只能说:恶心(也有可能,之前CSDN给别人恶意灌水程序攻击过,才这么干的)

然后那个问题我也处理不了,也不可以编辑(CSDN对贴子的编辑权限太低了,一但出手,你就不可以再改了,除非是管理员吧,恶心的限制)。

所以这个问题一直没有去处理,我就”无满意答案告终了“

但是工具里的正则还不算是非常完善。


假如我们的webgame中,*.as文件中,包括了大量的:文本描述信息;(无论是什么语言:中文版有中文,对象其版就会有N种语言:英文,韩文、泰文、越南文、繁体中文、印度文,等等)


如:

var equipDescription:String = "这是一个装备";


这样在制作工作提取:"~~~"之间的内容会提取到很多不相关的信息;

那么我们就可以使用一个比较奇葩,少用的方法名,把这些语言字符串信息都括起来如:


var _languagePackage:Dictionary = new Dictionary(); // 语言包

_T(languag:String):String

{

    if(_languagePackage.hasOwnProperty(languag)) return languag:String[languag];

    return languag;

}


var equipDescription:String = _T("这是一个装备");

这样,我们的工具就可以针对_T("~~~");内字符串"~~~"提取出来;把所有这些信息都存到一个文本;并生成对应的Languag类代码,或是配置文件也可以;

这样方便给翻译人员翻译文本;


我看过一些项目,常常喜欢这样:

var description:String = _T("这是")+lvl + _T("级装备");

var description:String = _T("这是{0}级装备");

很显然很第二种:使用占位符的方式比较灵活,对提取语言的整句,在翻译时,就可以不考虑单词顺序,而使用占位符去替换;


前面说了这么多,给DEMO吧。。。

DEMO下载


如:有一个Root.as文件,提取一些_T("提取信息");

package
{
	
	...
	/**
	 * [description]
	 * @author Jave.Lin
	 * @date 2013-9-18
	 **/
	public class Root extends Sprite
	{
		...
		
		private function _T(str:String):String
		{
			return str;
		}
		
		public function Root()
		{
			super();
			
			...
			
			_T("\"这是带双引号的内容")
			_T("'这是带单引号的内容")
			_T('\'这是带单引号的内容')
			
			...
		}
		
		private function onTouch(e:TouchEvent):void
		{
			...
			_T("这是内容2");
			_T("'这是内容3,\"这是带单引号的内容");
			_T("\"这是内容4,这是带双引号的内容");
			_T("\"这是内容4,这是带双引号的内容'test')");
			_T("\"这是带html内容5,<font color='#ff0000'>这是带双引号的内容'test</font>')")
			_T("\"这是带html内容6,<font color='#ff0000'>这是带双引号的内容'test</font>')")
			_T('"这是带html内容7,<font color="#ff0000">这是带双引号的内容\'test</font>这是强化{0}级,可以卖{1}的铜钱,这 是 测 试 内容)')
			_T('"这是带html内容7,<font color="#ff0000">这是带双引号的内容\'test</font>这是强化{0}级,可以卖{1}的铜钱,这 是 测 试 内容\')')
			...
		}
	}
}

运行DEMO后,效果图:


你可能感兴趣的:(正则:制作对文本信息提取,可方便于制作,WebGame的语言包提取)