8

我正在开发一个 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 文件?

4

1 回答 1

4

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

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

查看官方本地化文档,了解有关这些 gettext 文件如何协同工作以创建翻译的更多信息。

于 2018-09-13T22:43:26.660 回答