我开始尝试使用gettext在C程序中翻译一些最常用的文本条目,但是当我深入研究这个时,我对所有不同的文件格式有点困惑,因为在功能上似乎有些重叠?
我想概述一下不同的格式
.po.pot.mo.gmo并学习
(1)我知道msgunfmt可以从.mo转换为.po,但由于.mo是最终结束格式,我认为这不是一个无损的过程.即如果我从hello1.mo转换为hello2.po然后从hello2.po转换为hello3.mo,我假设hello1.mo和hello3.mo将包含相同的语言字符串但是一些元信息将会丢失, 对?
Sta*_*ann 13
我错了但是:
.pot - 人类可读的gettext模板文件 - 这是你给译者的(人?).
.po - 基于POT的人类可读的gettext翻译文件 - 这是译者给你的回复.
.mo - PHP在进行实际翻译时使用的机器可读代码(字节码?).这种格式是你提供给php的.它是大多数程序都能理解的通用格式,但它可能不支持所有gnu gettext功能.这就是gmo到位的地方.
.gmo - 以.gmo结尾的文件实际上是MO文件,当知道这些文件使用GNU格式时.
您可以使用poedit来处理.pot - > .po - > .mo
PS就是说 - 只有程序员会将PO或XML等格式称为人类可读的.另外 - 你可能不需要将.mo转换为.po ......好吧.至少这对我来说似乎不是常见的场景:)