电话+微信:185 1650 1391

  • memoQ翻译软件
    多语言翻译技术解决方案

游戏本地化中常用正则表达式推荐

其实正则在游戏行业中的应用场景挺多的,而且据我了解,现在有些游戏公司或者游戏本地化公司在招聘LPM(本地化项目经理)时,通常也会讲考察到求职者的源文档解析能力,其中一个就是关于正则解析。

原文示例

举几个例子,这里有两个原文本示例:

  • 是否消耗{0}个道具?
  • {PropString}已售罄

你如何处理{0}{PropString}这样的文本呢?

当然,还有可能这样的原文本:

  • <color=yellow>使用后获得10金币</color>

这里的`<color=yellow></color>又应该如何处理呢?

我们把上述几个例子放在原文本中看,游戏中常见的文本一般是这样的多语言Excel:

  • A列是id列;
  • B列是中文原文列;
  • C列是英文译文列;
  • D列有译文的字符限制。

当然,不同的项目可能会有细微的区别,但是基本都是不同的列代表不同含义。

01 常见游戏文本

图1 常见游戏文本

首先你要明确:字符串是不能翻译的,不能动的!

那么,怎么保证这些字符串不能被译员误翻译呢?

解决方案

我们先来看,如果你不做任何处理,可能会出现的风险,如图2。

02 标签错误

图2 标签错误

我们发现:

  • 译员确实"不小心"修改了标签
  • 译员也确实丢失了标签

这可不行,这在游戏本地化过程中是不可以的!

你可能会说,“哎呀,让译员不要修改就好了嘛

——但是,资深的PM知道,口头的规定往往是靠不住的~

或者你可能会说,“哎呀我的译员都是高级译员,不会犯这样的低级错误。”

——那太好了,恭喜你找到了一个好译员!但是如果你的译员是新人呢?

那应该怎么办呢?

嗯!跟我一块玩的小伙伴一定会说:”用正则设置为标签“就好了。

没错!是要设置为标签。可是:

  • 怎么将这些字符串设置为标签呢?
  • 正则应该如何写呢?
  • 游戏文本中有哪些常用的正则呢?

所以,今天就跟大家分享一些游戏文本中常见的字符串,当然,有些也同样适用于APP本地化。

如果你是正则表达式的新人,不知道正则是什么,有什么作用,请你参考我之前写的一篇汇总:这是一篇关于正则表达式的汇总(新).里面详细记录了什么是正则,有什么作用,如何写。

在本文中,我们需要用到memoQ自带的正则标注器,如图3。

03 正则标注器

图3 正则标注器

正则示例

{0} 等被大括号包裹的字符串

第一个最常见的其实就是被大括号包裹的字符串,这样的字符串比如前面提到的:{0}{1}{PropString}

推荐正则:<[^/]*?>

我们可以用正则表达器输入规则,可以在结果中看到设置后的效果,如图4:

04 带大括号的规则

图4 带大括号的规则

当然,如果你不确定,也可以先用memoQ的正则小助手测试一下嘛,如图5。

05 正则小助手

图5 正则小助手

设置完成后,如图6,这一条就搞定啦~

06 添加带大括号的规则后

图6 添加带大括号的规则后

<color=yellow>和</color>等被尖括号包裹的字符串

被尖括号包裹的字符串在游戏类文本也很常见,比如<color=yellow></color></font></string>等。

推荐正则:<\*[^/]*?>

我们可以用正则表达器输入规则,可以在结果中看到设置后的效果,如图7:

07 带尖括号的规则

图7 带尖括号的规则

设置完成后,如图8,这一条就搞定啦~

08 添加带尖括号的规则后

图8 添加带尖括号的规则后

[text]等被中括号包裹的字符串

推荐正则:\[[^/]*?]

我们依然可以用正则表达器输入规则,可以在结果中看到设置后的效果,如图9:

09 带中括号的规则

图9 带中括号的规则

设置完成后,如图10,又搞定一条啦~

10 添加带中括号的规则后

图10 添加带中括号的规则后

单个或多个\n

推荐正则:(\\n)+

设置完成后,如图11。

11 换行符

图11 \n换行符

单个或多个$var

推荐正则:(\$var)+

设置完成后,如图12。

12 特殊字符

图12 单个或多个$var

%s字符串型格式符

推荐正则:(%s)+

设置完成后,如图13。

13 %s等字符串型格式符

图13 %s等字符串型格式符

其它:@符号

当然,有时也会有一些其他的特殊符号,比如@。那你可以试试:@+

设置完成后,如图14.

14 @符号

图14 @符号

你可以把所有的正则保存为一个正则库,这样下次就可以使用啦~如图15所示~

15 正则标注器

15 正则标注器

这样的话下次在导入原文本的时候,你就可以在第一层过滤器的基础上加一层正则标注器啦,如图16所示。

16 添加正则标注器

图16 添加正则标注器

这样你导入进来就可以直接是设置为标签的译文啦~

17 导入后

图17 设置标签后导入译文

如果你想了解具体应该如何设置过滤器,我同样准备了一个视频,告诉你如何导入包含字符串的多语言excel

操作视频:

好啦今天内容先到这里,下节见啦~


往期精选

正则表达式系列
  1. 正则篇(一):认识正则表达式
  2. 正则篇(二):如何写一个正则表达式
  3. 正则篇(三):用正则在CAT中查找和替换
  4. 正则篇(四):源文件准备
  5. 正则篇(五):用正则进行文本解析
  6. 正则篇(六):用正则将文本标记为标签
  7. 正则篇(七):用正则检查译文质量
  8. memoQ中的正则表达式助手
  9. 这是一篇关于正则表达式的汇总(新)
计算机应用系列:

推荐一款磁盘和文档快速扫描和清理工具,TreeSize Free

译前处理系列:

巧用Vlookup、If、Or等函数解决数据合并问题

不会宏命令?试试用Transtool实现段段对照

如何导出段段对照的双语译文

翻译与本地化项目管理:

一名职业译员,在拿到翻译任务时,应该和PM确认哪些内容?

跟Evernote翻译风格指南学应用程序本地化

语言资产管理系列

术语管理篇:如何进行术语提取

行业报告和标准系列:

2022年语言服务行业报告

memoQ操作系列:

memoQ 客户端安装注意事项

无法向记忆库添加条目,需要修复一下记忆库

memoQweb端常见问题和注意事项