17

在使用 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

4 回答 4

10

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

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

于 2010-03-26T00:33:54.687 回答
8

对于 php:

我有一个文件---- test_1.php ----

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

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

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

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

于 2012-11-21T01:52:03.510 回答
0

有很多工具,例如Poedit。在 PHP 中,它由Gettext 扩展处理。

也可以看看:

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

于 2010-03-25T11:08:58.673 回答
0

用于xgettext从源代码生成文件。

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

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

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

于 2020-07-05T07:48:09.323 回答