В настоящее время использование 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"
Конечно, простым решением было бы просто отключить генерацию имя файла /linenumber в выводе xgettext. Но я действительно нахожу эти имена файлов являются весьма полезными подсказками при переводе.
Я, конечно, не могу быть единственным, кому не нравятся различия его файлов PO. Предложения?