實(shí)踐答疑 | 游戲本地化中常用字符串和正則表達(dá)式推薦
以下文章來(lái)源于職業(yè)譯員玩轉(zhuǎn)翻譯技術(shù)?,作者可愛(ài)的冬梅
其實(shí)正則在游戲行業(yè)中的應(yīng)用場(chǎng)景挺多的,而且據(jù)我了解,現(xiàn)在有些游戲公司或者游戲本地化公司在招聘LPM(本地化項(xiàng)目經(jīng)理)時(shí),通常也會(huì)考察到求職者的源文檔解析能力,其中一個(gè)就是關(guān)于正則解析。
因此,這篇文檔推薦給游戲本地化的PM和譯員~以及想入行游戲本地化的同學(xué)們~帶大家認(rèn)識(shí)游戲本地化中常用的字符串和標(biāo)簽~
原文示例
舉幾個(gè)例子,這里有兩個(gè)原文本示例:
是否消耗{0}個(gè)道具?
{PropString}已售罄
你如何處理{0}
和{PropString}
這樣的文本呢?
當(dāng)然,還有可能這樣的原文本:
<color=yellow>使用后獲得10金幣</color>
這里的`<color=yellow>
和</color>
又應(yīng)該如何處理呢?
我們把上述幾個(gè)例子放在原文本中看,游戲中常見(jiàn)的文本一般是這樣的多語(yǔ)言Excel:
A列是id列;
B列是中文原文列;
C列是英文譯文列;
D列有譯文的字符限制。
當(dāng)然,不同的項(xiàng)目可能會(huì)有細(xì)微的區(qū)別,但是基本都是不同的列代表不同含義。

圖1 常見(jiàn)游戲文本
首先你要明確:字符串是不能翻譯的,不能動(dòng)的!
那么,怎么保證這些字符串不能被譯員誤翻譯呢?
解決方案
我們先來(lái)看,如果你不做任何處理,可能會(huì)出現(xiàn)的風(fēng)險(xiǎn),如圖2。

圖2 標(biāo)簽錯(cuò)誤
我們發(fā)現(xiàn):
譯員確實(shí)"不小心"修改了標(biāo)簽。
譯員也確實(shí)丟失了標(biāo)簽
這可不行,這在游戲本地化過(guò)程中是不可以的!
你可能會(huì)說(shuō),“哎呀,讓譯員不要修改就好了嘛”
——但是,資深的PM知道,口頭的規(guī)定往往是靠不住的~
或者你可能會(huì)說(shuō),“哎呀我的譯員都是高級(jí)譯員,不會(huì)犯這樣的低級(jí)錯(cuò)誤?!?/p>
——那太好了,恭喜你找到了一個(gè)好譯員!但是如果你的譯員是新人呢?
那應(yīng)該怎么辦呢?
嗯!跟我一塊玩的小伙伴一定會(huì)說(shuō):”用正則設(shè)置為標(biāo)簽“就好了。
沒(méi)錯(cuò)!是要設(shè)置為標(biāo)簽??墒牵?/p>
怎么將這些字符串設(shè)置為標(biāo)簽?zāi)兀?/strong>
正則應(yīng)該如何寫(xiě)呢?
游戲文本中有哪些常用的正則呢?
所以,今天就跟大家分享一些游戲文本中常見(jiàn)的字符串,當(dāng)然,有些也同樣適用于A(yíng)PP本地化。
如果你是正則表達(dá)式的新人,不知道正則是什么,有什么作用,請(qǐng)你參考我之前寫(xiě)的一篇匯總:這是一篇關(guān)于正則表達(dá)式的匯總(新).里面詳細(xì)記錄了什么是正則,有什么作用,如何寫(xiě)。
在本文中,我們需要用到memoQ自帶的正則標(biāo)注器,如圖3。

圖3 正則標(biāo)注器
正則示例
{0} 等被大括號(hào)包裹的字符串
第一個(gè)最常見(jiàn)的其實(shí)就是被大括號(hào)包裹的字符串,這樣的字符串比如前面提到的:{0}
、{1}
、{PropString}
。
推薦正則:{[^/]*?}
我們可以用正則標(biāo)注器輸入規(guī)則,可以在結(jié)果中看到設(shè)置后的效果,如圖4:

圖4 帶大括號(hào)的規(guī)則
當(dāng)然,如果你不確定,也可以先用memoQ的正則小助手測(cè)試一下嘛,如圖5。

圖5 正則小助手
設(shè)置完成后,如圖6,這一條就搞定啦~

圖6 添加帶大括號(hào)的規(guī)則后
<color=yellow>和</color>等被尖括號(hào)包裹的字符串
被尖括號(hào)包裹的字符串在游戲類(lèi)文本也很常見(jiàn),比如<color=yellow>
、</color>
、</font>
、</string>
等。
推薦正則:</*[^/]*?>
我們可以用正則標(biāo)注器輸入規(guī)則,可以在結(jié)果中看到設(shè)置后的效果,如圖7:

圖7 帶尖括號(hào)的規(guī)則
設(shè)置完成后,如圖8,這一條就搞定啦~

圖8 添加帶尖括號(hào)的規(guī)則后
[text]等被中括號(hào)包裹的字符串
推薦正則:\[[^/]*?]
我們依然可以用正則標(biāo)注器輸入規(guī)則,可以在結(jié)果中看到設(shè)置后的效果,如圖9:

圖9 帶中括號(hào)的規(guī)則
設(shè)置完成后,如圖10,又搞定一條啦~

圖10 添加帶中括號(hào)的規(guī)則后
單個(gè)或多個(gè)\n
推薦正則:(\\n)+
設(shè)置完成后,如圖11。

圖11 \n換行符
單個(gè)或多個(gè)$var
推薦正則:(\$var)+
設(shè)置完成后,如圖12。

圖12 單個(gè)或多個(gè)$var
%s字符串型格式符
推薦正則:(%s)+
設(shè)置完成后,如圖13。

圖13 %s等字符串型格式符
其它:@符號(hào)
當(dāng)然,有時(shí)也會(huì)有一些其他的特殊符號(hào),比如@。那你可以試試:@+
設(shè)置完成后,如圖14.

圖14 @符號(hào)
你可以把所有的正則保存為一個(gè)正則庫(kù),這樣下次就可以使用啦~如圖15所示~

15 正則標(biāo)注器
這樣的話(huà)下次在導(dǎo)入原文本的時(shí)候,你就可以在第一層過(guò)濾器的基礎(chǔ)上加一層正則標(biāo)注器啦,如圖16所示。

圖16 添加正則標(biāo)注器
這樣你導(dǎo)入進(jìn)來(lái)就可以直接是設(shè)置為標(biāo)簽的譯文啦~

圖17 設(shè)置標(biāo)簽后導(dǎo)入譯文
如果你想了解具體應(yīng)該如何設(shè)置過(guò)濾器,我同樣準(zhǔn)備了一個(gè)視頻,告訴你如何導(dǎo)入包含字符串的多語(yǔ)言excel。

本文來(lái)源于微信公眾號(hào)“翻譯技術(shù)教育與研究”、微信公眾號(hào)“語(yǔ)言服務(wù)行業(yè)”,致力于語(yǔ)言服務(wù)行業(yè)資訊、洞察、洞見(jiàn)~ 關(guān)注我們,了解更多精彩內(nèi)容~?