1

从我之前关于 gettext 的问题来看,使用 PHP 的 gettext 扩展而不是其他语言翻译方法的最大好处之一是让其他人使用名为Poedit的程序制作翻译文件非常容易。

现在我在我的应用程序中使用了 gettext,但我还没有制作任何翻译文件,我在网上找到了一个演示文件并用它进行了测试,以使我的应用程序与 gettext 兼容。

现在我玩了一下poedit,我可能错了,希望有人能澄清一些问题。

  1. 据我所知,poedit 会读取您的 php 代码并找到所有可用的位置进行翻译,这是正确的吗?

  2. 如果以上是正确的,那么您如何在无法访问您的应用程序的情况下使用 poedit 进行人工翻译?

或者简单来说,是否可以使用 poedit 制作翻译文件而无需访问您的 php 代码?

4

3 回答 3

2

请注意,我自己从未使用过 poedit,所以这可能并不完全准确......

您可能会首先阅读一篇有趣的文章,以获取一些信息:使用 poEdit 本地化 WordPress 插件
它是 wordpress,意思是 PHP——所以基本思想应该适合您的应用程序。

基本上,如果我理解得很好:

  • 您首先从 PHP 源代码中提取所有字符串
    • 通过告诉 poedit 你的翻译功能是如何被调用的
    • 这应该回答你的 1)
  • 然后,你做翻译
    • 使用/处理 .po 文件
    • 而且我猜您可以将此 .po 文件分发给您的翻译人员,然后他们可以翻译其中包含的字符串
  • 最后,您使用 .po 文件生成将在您的应用程序中使用的 .mo 文件。


这篇关于 wordpress 的另一篇文章似乎表明我猜对了:User:Skippy/Creating POT Files——尤其是这句话:

使 .po 文件可供下载(或可选择将其包含在插件存档中)。翻译者将使用这个文件来构造一个 .mo 文件,该文件将被 load_plugin_textdomain()函数使用。

(显然,您将在应用程序中使用的函数名称与 wordpress 中的函数名称不同——不过,这个想法就在那里)


希望这会有所帮助 :-)
玩得开心!

于 2009-09-13T22:17:29.327 回答
2

不,poEdit 不会读取您的所有资源。您可以使用 gettext 实用程序“xgettext”来执行此操作。

基本上,xgettext 将生成一个 .po 文件。

您的翻译人员将使用 POEdit 处理该 .po 文件。

翻译器完成后,您会将 .po 编译为 .mo,您的应用将使用它来查找翻译。

如果您在某些 unixy 系统上安装了 gettext,请在 bash 中尝试“info gettext”。

于 2009-09-13T22:17:48.017 回答
0

PoEdit 实际上使用xgettext,您可以在Settings/Parsers选项卡上正确设置它。

你应该顺便分发一个.pot文件,它是一个.po 模板。所以翻译人员可以翻译它,设置语言,翻译团队等。

不幸的是,我看不到从源代码创建 .pot 文件的选项,但poedit可以读取(当然,它与 .po 相同)。

创建自己的 .po 后,您就可以拥有.mo了!

于 2012-04-28T07:00:42.367 回答