如何从 Wordpress 插件 PHP 文件自动生成 POT 文件?

How to auto-generate POT file from a Wordpress plugin PHP file?

我正在开发一个 Wordpress 插件并注意到主 PHP 文件 - 我们就称它为 blah.php - 包含如下调用:

100: <?php _e('Foo', 'blah'); ?>
101: <?php _e('Bar', 'blah'); ?>
...

在languages子文件夹中附有一个blah.pot文件,代码如下:

#: blah.php:100
msgid "Foo"
msgstr ""

#: blah.php:101
msgid "Bar"
msgstr ""

假设我想在上面两段之间添加一段新文本,在 PHP:

100: <?php _e('Foo', 'blah'); ?>
101: <?php _e('Baz', 'blah'); ?> <!-- New -->
102: <?php _e('Bar', 'blah'); ?>
...

这是否意味着我必须像这样重新编号 blah.pot

#: blah.php:100
msgid "Foo"
msgstr ""

#: blah.php:101
- msgid "Bar"
+ msgid "Baz"
msgstr ""

+ #: blah.php:102
+ msgid "Bar"
+ msgid "Bar"
+ msgstr ""

如果有数百个这样的项目怎么办?这不会很费时间吗?

有没有更快的方法,比如说,从 PHP 自动生成具有正确行号的 pot 文件?

通常 POT(可移植对象模板,.pot)文件由 Poedit or Easy Po 之类的 gettext 目录编辑器或类似程序编辑。文件本身充当需要翻译的模板,通常由同一个 gettext 程序通过扫描 PHP 文件并查找 gettext 函数生成,或者可以由另一个插件生成(例如 WPML 将生成这些文件)。

我不知道在 PHP 中独立执行此操作的方法。我建议尝试翻译程序,看看哪种最适合您。我过去曾成功使用过 Poedit。它是免费的。

查看 official Localization documentation 了解有关这些 gettext 文件如何协同工作以创建翻译的更多信息。