查看原文
其他

应用程序本地化如何翻译 PO 文件

可爱的冬梅 职业译员玩转翻译技术
2024-09-09

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中导出最终译文

这里用了机器翻译的结果。


详见视频:

好啦~今天到这里哦~

更多翻译技术干货,欢迎关注职业译员玩转翻译技术公众号,嘻嘻~

下次见啦,拜~


往期精选

memoQ支持超过260种语言对

认识XML文档(一)什么是XML文档?

认识XML文档(二)XML的元素、标签、文本、属性和实体

如何翻译单语XML文档?

搞定应用程序本地化中的多语言XML文档

翻译包含HTML样式的XML文档(实体篇)

翻译包含HTML样式的XML文档 (CDATA篇)

XML文档篇:认识DTD(一)

如何翻译包含DTD的XML文档

认识XML文档:认识xsd文档篇(二)

如何翻译包含架构文件(xsd)的XML?

如何用memoQ翻译CAD文件

翻译WPS文档的最佳攻略

翻译PDF文档

如何用memoQ实现DITA本地化?

当Markdown遇见memoQ

继续滑动看下一个
职业译员玩转翻译技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存