如何生成.po文件?

时间:2010-03-25 09:53:11

标签: php localization gettext poedit

在使用WAMPserver(Apache,MySQL,PHP)的Windows上,我有以下内容:

//test.php
if (!defined('LC_MESSAGES'))
define('LC_MESSAGES', 6);

$lang = "sv";
putenv("LANG=$lang");
setlocale(LC_ALL, $lang);

$domain = "messages";
bindtextdomain($domain, "./locale");
textdomain($domain);

echo _("This is a string");

它工作正常,即它输出“这是一个字符串”,这意味着我已正确设置gettext

但是我在世界上如何创建.po文件?

我下载了Poedit,但我看不出如何使用该软件实现这一点。

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:8)

PoEdit是创建.po文件的工具。你必须用它进行一些配置,这不是最容易的。它应该工作的方式是它找到源代码中包含在您配置的标记字符串中的所有文本。这将成为您为翻译人员提供的源文本。然后他们将其翻译成目标语言并保存翻译文件并将其返回给您。然后,将这些文件转储到php应用程序的特殊目录中,每当gettext扩展名看到其中一个转换字符串时,它就会获取相应的转换。

如果您展示一些关于poedit挂断的详细信息,我可能会提供更多帮助。

答案 1 :(得分:8)

FOR php:

我有一个类似的文件 ---- test_1.php ----

<?php
  echo _("Test phrase");
  echo gettext("Test phrase two");
  // NOTE: _ == gettext()
?>

档案 - &gt;新目录...... 在“源路径”选项卡中,您必须单击“新建文件夹”,添加您拥有该文件的文件夹的路径(在此示例中为test_1.php)

... 他们捕获了使用gettext()_()调用的所有字符串 ... 这里解释了对这些功能有用的内容 http://www.php.net/manual/es/function.gettext.php

AND ...如果您使用Apache(例如在Xampp中),请在停止和启动(重新启动)时使用gettext()以另一种方式测试已定义语言的新更改变化不会受到影响

答案 2 :(得分:0)

有许多工具,例如Poedit。在PHP中,它由Gettext extension处理。

另见:

如果您对Poedit有任何问题,请随时提供一些细节。

答案 3 :(得分:0)

使用xgettext从源代码中生成文件。

xgettext -D src/ -o ./locale/id_ID.po

然后,您可以编辑id_ID.po文件。

您可以使用提供的预编译二进制文件,例如this