目前在项目上使用 Gettext 并且 .po 文件很好地保存在版本控制之下。
PO 文件当然包含翻译,但除此之外,它们还包含一些元数据 - 有关可翻译字符串所在的确切文件和行号的信息。
问题是每次更新 PO 文件时,元数据的变化都比实际翻译要大得多。这使得以后很难从版本控制差异中查看实际更改的内容 - 您只会看到对文件名和行号的无数更改。像那样:
- #: somefile.js:43
- #: somefile.js:45
- #: somefile.js:118
+ #: somefile.js:203
+ #: somefile.js:215
msgid "Translate me please"
msgstr "Tõlgi mind palun"
- #: somefile.js:23
- #: somefile.js:135
+ #: otherfile.js:23
+ #: otherfile.js:135
msgid "Note"
msgstr "Märkus"
- #: andThatFile.js:18
#: orThisFile.js:131
- msgid "Before I was like this"
- msgstr "Selline olin ma enne"
+ msgid "I happen to be changed"
+ msgstr "Paistab, et mind muudeti"
当然,一个简单的解决方法是在 xgettext 输出中禁用文件名/行号注释的生成。但我实际上发现这些文件名在翻译时是非常有用的提示。
我肯定不会是唯一一个不喜欢他的 PO 文件差异的人。建议?