Hi,你好呀,我是May。
最近被朋友提醒感覺自己像勞模,近期可能不太更~最近工作太忙惹~
但是今天既然坐下了!就必須分享完!嘻嘻~
進行應用程序本地化時,最常見的語言包文檔應該就是 PO 文件。
比如我在電腦一搜,就找到剪映云的PO文件。
所以今天分享:如何翻譯多語言的 PO 文檔。
PO 是 portable object (可跨平臺對象)的縮寫,可以被 Java 程序、GNU gettext 或其他軟件程序作為屬性文件引用,是應用程序本地化時常見的文檔。
我的觀點還是:我們本地化人員不是程序員,不需要會寫,只要認識就行!
(1)PO 文件的數據結構長這樣:
其中:
# 井號后面一般是注釋;
msgid ""——msgid空格引號,引號內是原文。
msgstr ""——msgstr空格引號,引號內是原文翻譯結束后的譯文的內容。
(2)原文可能會含有HTML樣式或其它占位符,翻譯時必須保留這些字符串。
memoQ 中支持直接導入 PO 文件。
對于含有占位符或 HTML 樣式的文檔,還可以借助層疊過濾器實現。
層疊層疊嘛,第一層是PO gettext(也就是 PO) 過濾器,第二層是HTML過濾器,也可以再加一層正則表達式標注器。
2.1 PO gettext(也就是 PO) 過濾器,幫助解析不同列。直接將文件導入至項目即可。
如果原文中有想<color=yellow>和{PropName}或者 \n 這樣的字符串和非譯元素,需要再加一層正則表達式標注器,并設置正則定義方式。
——這樣的話原文中的非譯元素可以固定為標簽,譯員就不會誤翻譯。
Step 1:在導入項目時,使用“選擇性導入”;
Step 2:選擇好原文后,默認用的過濾器是 PO gettext過濾器。因為原文有字符串,這里選擇“更改過濾器和配置”;
Step 3:添加一層正則表達式標注器,并設置正則定義方式。
Step 4:設置完成過濾器,保存層疊過濾器,以供下次使用。然后,點擊"確定"即可。
我寫過一篇應用程序本地化中常用字符串和正則表達式推薦,你可以來學習正則。
當然,memoQ 自帶了一個 tags and entities 的標注器,內嵌了像 <color>這樣的標簽,也設置了哪些是開標簽哪些是關閉標簽,你也可以直接使用,還是不錯的。
導入完成文檔后,即可在memoQ中進行翻譯了。
在翻譯過程中,你會發現:
msgid中的原文就提取出來了,可以安心做翻譯。
下方還可以預覽原文和譯文。
翻譯結束后,導出就OK啦。
導出譯文的操作可以參考如何在memoQ中導出最終譯文
這里用了機器翻譯的結果。
詳見視頻:
好啦~今天到這里哦~
更多翻譯技術干貨,歡迎關注職業譯員玩轉翻譯技術公眾號,嘻嘻~
下次見啦,拜~
往期精選搞定應用程序本地化中的多語言XML文檔