.po和.mo文件是WordPress中语言相关的两种文件。po 是Portable Object(可移植对象)的缩写,存放待翻译的字符串信息,可直接用文本编辑器打开编辑;mo 是Machine Object的缩写,二进制文件,程序运行时从mo文件查找字符串的翻译。

本文介绍翻译po文件并转换成mo文件的三种办法。

Poedit

Poedit是一个跨平台、功能强大的po文件翻译软件,本人刚接触WordPress时翻译文本用的就是Poedit。Poedit支持安全检查,防止翻译过程中漏掉关键的”%”。打开po文件,翻译完成保存后会自动生成.mo文件,将其上传到WordPress对应的languages文件夹即可。

Poedit
Poedit

https://po2mo.net/

.po文件是文本文件,因此可以用vs code等文本编辑器打开和编辑。如果不想安装类似Poedit的软件,翻译完后可以上传到 https://po2mo.net/,通过在线服务转换成.mo文件。

po2mo
po2mo

msgfmt

习惯了Linux和vim,安装软件和网页版在线转换服务都不如敲命令转换来得直接。幸运的是,GNU getext 是Linux系统自带的核心文本工具之一,提供 msgfmt 命令将.po文件翻译成.mo文件:

msgfmt -o xxxx.mo xxxx.po

GNU getext 包还提供 msgunfmt 命令将.mo文件转换成.po文件:

msgunfmt -o xxxx.po xxxx.mo

参考

1. GNU gettext工具简介

2. Compile PO files to MO files