如何生成 .po 文件?

2022-08-30 22:22:50

在使用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,但我不知道如何用该软件实现这一目标。

任何帮助都非常感谢!


答案 1

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

如果您显示一些有关您在哪里挂断poedit的细节,我可能会提供更多帮助。


答案 2

对于 php:

我有一个类似---- test_1.php ----

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

文件 -> 新建目录...在“源路径”选项卡中,您必须单击“新建文件夹”,添加包含文件的文件夹的路径(在本例中test_1.php)

...他们捕获了所有被调用的字符串,或者...此处解释了对这些功能的有用性,http://www.php.net/manual/es/function.gettext.phpgettext()_()

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


推荐