我现在接手的Wordpress出了点问题。
有一个包含一些翻译的.mo文件和一个看起来是源的.po文件。.po文件似乎是以某种方式生成的,但它的结构在我看来有点奇怪。
这是可以在里面找到的东西。
#: /Users/yui/Sites/fondation/wp-content/themes/fondation/taxonomy-programme.php:24
msgid "Exhibitions"
msgstr "Expositions"
#: /Users/yui/Sites/fondation/wp-content/themes/fondation/archive.php:69
#: /Users/yui/Sites/fondation/wp-content/themes/fondation/single.php:43
msgid "[:en]Events[:fr]Evénements[:de]Events[:pl]Events"
msgstr ""当我尝试生成.mo文件msgcat fondation-fr_FR.po | msgfmt -o fondation-fr_FR.mo -时,.mo文件只包含第一个文件(同时包含msgid和msgstr),而不包含另一个文件。该网站也有一个问题,只显示在.mo文件中找到的翻译。
对如何修复.po文件有什么想法吗?它是旧格式吗?
发布于 2017-02-15 16:54:44
,但是它的结构在我看来有点奇怪。
确实如此。看起来像是由一个不知道gettext如何工作的人做的,或者说手册是一种创造性地滥用gettext文件的东西(例如:查看所有地方的msgid中的多个翻译)。
第二个字符串不包括在编译的翻译表中(即MO),因为它没有翻译- msgstr为空。
顺便说一句,关于gettext如何工作的一切,包括字符串是如何检索的,以及为什么在MO中包含未翻译的条目是没有意义的(提示:字符串已经在代码中了!),在GNU gettext manual中都有很好的解释。
BTW2,调用msgcat也是一项毫无意义的忙碌工作-查看它的手册页了解它的功能(与cat相同,外加一些smarts)。
发布于 2020-02-14 20:54:09
记录在案。
该.po文件是由旧版本的qtranslate插件生成的,该插件不知道如何正确处理第一个版本中的gettext函数。
无法执行任何操作来使.po文件正常工作。我不得不手动创建一个新的。
https://stackoverflow.com/questions/42220883
复制相似问题