游戏本地化中常用字符串和正则表达式推荐
其实正则在游戏行业中的应用场景挺多的,而且据我了解,现在有些游戏公司或者游戏本地化公司在招聘LPM(本地化项目经理)时,通常也会考察到求职者的源文档解析能力,其中一个就是关于正则解析。
因此,这篇文档推荐给游戏本地化的PM和译员~以及想入行游戏本地化的同学们~带大家认识游戏本地化中常用的字符串和标签~
原文示例
举几个例子,这里有两个原文本示例:
是否消耗{0}个道具?
{PropString}已售罄
你如何处理{0}
和{PropString}
这样的文本呢?
当然,还有可能这样的原文本:
<color=yellow>使用后获得10金币</color>
这里的`<color=yellow>
和</color>
又应该如何处理呢?
我们把上述几个例子放在原文本中看,游戏中常见的文本一般是这样的多语言Excel:
A列是id列;
B列是中文原文列;
C列是英文译文列;
D列有译文的字符限制。
当然,不同的项目可能会有细微的区别,但是基本都是不同的列代表不同含义。
图1 常见游戏文本
首先你要明确:字符串是不能翻译的,不能动的!
那么,怎么保证这些字符串不能被译员误翻译呢?
解决方案
我们先来看,如果你不做任何处理,可能会出现的风险,如图2。
图2 标签错误
我们发现:
译员确实"不小心"修改了标签。
译员也确实丢失了标签
这可不行,这在游戏本地化过程中是不可以的!
你可能会说,“哎呀,让译员不要修改就好了嘛”
——但是,资深的PM知道,口头的规定往往是靠不住的~
或者你可能会说,“哎呀我的译员都是高级译员,不会犯这样的低级错误。”
——那太好了,恭喜你找到了一个好译员!但是如果你的译员是新人呢?
那应该怎么办呢?
嗯!跟我一块玩的小伙伴一定会说:”用正则设置为标签“就好了。
没错!是要设置为标签。可是:
怎么将这些字符串设置为标签呢?
正则应该如何写呢?
游戏文本中有哪些常用的正则呢?
所以,今天就跟大家分享一些游戏文本中常见的字符串,当然,有些也同样适用于APP本地化。
如果你是正则表达式的新人,不知道正则是什么,有什么作用,请你参考我之前写的一篇汇总:这是一篇关于正则表达式的汇总(新).里面详细记录了什么是正则,有什么作用,如何写。
在本文中,我们需要用到memoQ自带的正则标注器,如图3。
图3 正则标注器
正则示例
{0} 等被大括号包裹的字符串
第一个最常见的其实就是被大括号包裹的字符串,这样的字符串比如前面提到的:{0}
、{1}
、{PropString}
。
推荐正则:{[^/]*?}
我们可以用正则标注器输入规则,可以在结果中看到设置后的效果,如图4:
图4 带大括号的规则
当然,如果你不确定,也可以先用memoQ的正则小助手测试一下嘛,如图5。
图5 正则小助手
设置完成后,如图6,这一条就搞定啦~
图6 添加带大括号的规则后
<color=yellow>和</color>等被尖括号包裹的字符串
被尖括号包裹的字符串在游戏类文本也很常见,比如<color=yellow>
、</color>
、</font>
、</string>
等。
推荐正则:</*[^/]*?>
我们可以用正则标注器输入规则,可以在结果中看到设置后的效果,如图7:
图7 带尖括号的规则
设置完成后,如图8,这一条就搞定啦~
图8 添加带尖括号的规则后
[text]等被中括号包裹的字符串
推荐正则:\[[^/]*?]
我们依然可以用正则标注器输入规则,可以在结果中看到设置后的效果,如图9:
图9 带中括号的规则
设置完成后,如图10,又搞定一条啦~
图10 添加带中括号的规则后
单个或多个\n
推荐正则:(\\n)+
设置完成后,如图11。
图11 \n换行符
单个或多个$var
推荐正则:(\$var)+
设置完成后,如图12。
图12 单个或多个$var
%s字符串型格式符
推荐正则:(%s)+
设置完成后,如图13。
图13 %s等字符串型格式符
其它:@符号
当然,有时也会有一些其他的特殊符号,比如@。那你可以试试:@+
设置完成后,如图14.
图14 @符号
你可以把所有的正则保存为一个正则库,这样下次就可以使用啦~如图15所示~
15 正则标注器
这样的话下次在导入原文本的时候,你就可以在第一层过滤器的基础上加一层正则标注器啦,如图16所示。
图16 添加正则标注器
这样你导入进来就可以直接是设置为标签的译文啦~
图17 设置标签后导入译文
如果你想了解具体应该如何设置过滤器,我同样准备了一个视频,告诉你如何导入包含字符串的多语言excel。
操作视频:
往期精选
正则表达式系列:
计算机应用系列:
推荐一款磁盘和文档快速扫描和清理工具,TreeSize Free