原標題:游戲本地化深度指南:如何高效翻譯與處理多語言PO文件
Hi,你好呀,我是May。
今天繼續跟大家分享游戲本地化常見的源文檔,PO文件~
(其實之前寫過一篇簡單的,這次更新為新內容~)
在進行游戲和應用程序本地化時,我們最常見的文檔是多語言Excel文檔,詳見。
此外,還有一種常見的語言包文檔,就是PO文件。
比如我在電腦一搜,就找到很多語言包的PO文檔,如剪映云的PO文件。

所以今天分享:如何翻譯多語言的PO文檔。
PO是portable object (可跨平臺對象)的縮寫,可以被Java程序、GNU gettext或其他軟件程序作為屬性文件引用,是應用程序本地化時常見的文檔。
我的觀點還是:我們本地化人員不是程序員,不需要會寫,只要認識就行!
我們來以一個demo文檔認識一下,什么是PO文檔:
這里的例子我就用我下載好的剪映云自帶的PO文檔做案例了,如有侵權,聯系修改~
PO文件的數據結構長這樣。其中:
# 井號后面一般是注釋; msgid ""——msgid空格引號,引號內是原文; msgstr ""——msgstr空格引號,引號內是原文翻譯結束后的譯文的內容。
根據編程語言不同,原文可能會含有HTML樣式或其它占位符,翻譯時必須保留這些字符串。

既然是注釋,也注釋的類型怎么區分呢?在PO中,具體的注釋類型由緊隨井號的字符決定,比如:
#—— 井號后面緊跟空格,是譯員的注釋; #.——井號后面緊跟緊跟句點,是額外注釋,一般是從源代碼注釋生成; #:—— 井號后面緊跟冒號,表明待翻譯語句的出處,一般標記源代碼文件及行數; #,—— 井號后面緊跟逗號,一般是由編譯器生成的格式注釋。
有時,同一個句子在不同的場景里要翻譯成不同的意思。所以為了區分上下文的場景,在PO文件中也會通過msgctxt 字段,來明確句子在程序中的具體位置和含義。

對于有單復數的語言而言,PO支持設置單復數區分。
CCJK(簡中繁中日韓)是沒有單復數的,就不行~

那,這樣的文件如何翻譯呢?
memoQ支持直接導入PO文件。
對于含有占位符或HTML樣式的文檔,還可以借助層疊過濾器實現。
層疊層疊嘛,第一層是PO gettext(也就是PO)過濾器,第二層是HTML過濾器,也可以再加一層正則表達式標注器。
直接將文件導入至項目即可。

如果原文中有想<color=yellow>和{PropName}或者 \n 這樣的字符串和非譯元素,需要再加一層正則表達式標注器,并設置正則定義方式。
——這樣的話原文中的非譯元素可以固定為標簽,譯員就不會誤翻譯。
Step 1:在導入項目時,使用“選擇性導入”;

Step 2:選擇好原文后,默認用的過濾器是PO gettext過濾器。因為原文有字符串,這里選擇“更改過濾器和配置”;
Step 3:添加一層正則表達式標注器,并設置正則定義方式;
Step 4:設置完成過濾器,保存層疊過濾器,以供下次使用。然后,點擊“確定”即可。

我寫過一篇應用程序本地化中常用字符串和正則表達式推薦,你可以來學習正則。
當然,memoQ自帶了一個tags and entities的標注器,內嵌了像 <color>這樣的標簽,也設置了哪些是開標簽哪些是關閉標簽,你也可以直接使用,還是不錯的。

導入完成文檔后,即可在memoQ中進行翻譯了。
在翻譯過程中,你會發現:
msgid中的原文就提取出來了,可以安心做翻譯; 下方還可以預覽原文和譯文。
翻譯結束后,導出就OK啦。
導出譯文的操作可以參考。
這里用了機器翻譯的結果。

好啦,希望你上內容可以幫到你,有用可收藏~
特別說明:本文僅用于學術交流,如有侵權請后臺聯系小編刪除。- END -
轉載來源:職業譯員玩轉翻譯技術
轉載編輯:李倩楠返回搜狐,查看更多
責任編輯: