我有一个由gettext翻译的Web项目(php + js)。 后来,它仅在服务器端进行翻译,通过各种奇怪的方式将翻译推向JS。 现在,我将其转换为所有gettext,通过po2json转换.po文件,并将其加载到Jed库中。 但是通过这种方式,我加载了所有翻译,甚至从未在客户端上使用过!
我现在想做什么:
xgettext -js-options *.js > js-empty.po
xgettext -php-options *.php > php-empty.po
magic both-translated.po js-empty.po > js-translated.po
magic both-translated.po php-empty.po > php-translated.po
我应该用什么作为“魔术”?
PS:我将在一个文件中进行实际翻译,然后在每个构建中仅出于优化目的进行拆分。
我找到了解决方案:
msgcomm both-translated.po js-empty.po -o js-translated.po
目视检查确认要翻译的行,以下命令确认空文件和已翻译文件中“ msgid”的数目相等:
grep msgid $1 | wc -l
为答案增加更多价值:强烈建议在哪里使用Python库https://pypi.python.org/pypi/polib ,或者在主要的Linux发行版中,打包“ python3-polib”或“ python-polib”。 我正在考虑使用它来执行任务,也许将来会用于其他与gettext相关的任务。