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文档