我正在研究一个Wordpress插件,并注意到主要的PHP文件 - 让我们称之为blah.php
- 包含如下调用:
100: <?php _e('Foo', 'blah'); ?>
101: <?php _e('Bar', 'blah'); ?>
...
它伴随着一个语言子文件夹中的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或Easy Po或类似程序的gettext目录编辑器编辑。文件本身充当需要翻译的模板,并且通常由相同的gettext程序通过扫描PHP文件和查找gettext函数生成,或者可以由另一个插件生成(例如WPML将生成这些文件)。
我不知道在PHP独立中这样做的方法。我建议尝试翻译程序,看看哪种方式最适合你。我过去曾经成功使用过Poedit。这是免费的。
查看official Localization documentation以获取有关这些gettext文件如何协同工作以创建翻译的其他信息。