应用程序本地化如何翻译 PO 文件
Hi,你好呀,我是May。
最近被朋友提醒感觉自己像劳模,近期可能不太更~最近工作太忙惹~
但是今天既然坐下了!就必须分享完!嘻嘻~
进行应用程序本地化时,最常见的语言包文档应该就是 PO 文件。
比如我在电脑一搜,就找到剪映云的PO文件。
所以今天分享:如何翻译多语言的 PO 文档。
1. 认识应用程序本地化中的 PO 文本
PO 是 portable object (可跨平台对象)的缩写,可以被 Java 程序、GNU gettext 或其他软件程序作为属性文件引用,是应用程序本地化时常见的文档。
我的观点还是:我们本地化人员不是程序员,不需要会写,只要认识就行!
(1)PO 文件的数据结构长这样:
其中:
#
井号后面一般是注释;msgid ""
——msgid空格引号,引号内是原文。msgstr ""
——msgstr空格引号,引号内是原文翻译结束后的译文的内容。
(2)原文可能会含有HTML样式或其它占位符,翻译时必须保留这些字符串。
2. memoQ 如何帮助处理 PO 文档
memoQ 中支持直接导入 PO 文件。
对于含有占位符或 HTML 样式的文档,还可以借助层叠过滤器实现。
层叠层叠嘛,第一层是PO gettext(也就是 PO) 过滤器,第二层是HTML过滤器,也可以再加一层正则表达式标注器。
2.1 PO gettext(也就是 PO) 过滤器,帮助解析不同列。
直接将文件导入至项目即可。
2.2 添加正则标注器,帮助处理字符串和非译元素
如果原文中有想<color=yellow>
和{PropName}
或者 \n
这样的字符串和非译元素,需要再加一层正则表达式标注器,并设置正则定义方式。
——这样的话原文中的非译元素可以固定为标签,译员就不会误翻译。
Step 1:在导入项目时,使用“选择性导入”;
Step 2:选择好原文后,默认用的过滤器是 PO gettext过滤器。因为原文有字符串,这里选择“更改过滤器和配置”;
Step 3:添加一层正则表达式标注器,并设置正则定义方式。
Step 4:设置完成过滤器,保存层叠过滤器,以供下次使用。然后,点击"确定"即可。
关于正则表达式如何写
我写过一篇应用程序本地化中常用字符串和正则表达式推荐,你可以来学习正则。
当然,memoQ 自带了一个 tags and entities 的标注器,内嵌了像 <color>
这样的标签,也设置了哪些是开标签哪些是关闭标签,你也可以直接使用,还是不错的。
3. 在 memoQ 中进行翻译
导入完成文档后,即可在memoQ中进行翻译了。
在翻译过程中,你会发现:
msgid中的原文就提取出来了,可以安心做翻译。
下方还可以预览原文和译文。
4. 导出译文
翻译结束后,导出就OK啦。
导出译文的操作可以参考如何在memoQ中导出最终译文
这里用了机器翻译的结果。
详见视频:
好啦~今天到这里哦~
更多翻译技术干货,欢迎关注职业译员玩转翻译技术公众号,嘻嘻~
下次见啦,拜~