写这个小工具之前,还遇到一些正则不知道怎么写的问题,由于,在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)) returnlanguag:String[languag];
return languag;
}
var equipDescription:String = _T("这是一个装备");
这样,我们的工具就可以针对_T("~~~");内字符串"~~~"提取出来;把所有这些信息都存到一个文本;并生成对应的Languag类代码,或是配置文件也可以;
这样方便给翻译人员翻译文本;
我看过一些项目,常常喜欢这样:
var description:String = _T("这是")+lvl + _T("级装备");
var description:String =_T("这是{0}级装备");
很显然很第二种:使用占位符的方式比较灵活,对提取语言的整句,在翻译时,就可以不考虑单词顺序,而使用占位符去替换;
前面说了这么多,给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后,效果图: