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

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

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

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

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

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

有帮助吗?

解决方案

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

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

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

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


另一篇关于 wordpress 的文章似乎表明我的猜测是正确的: 用户:Skippy/创建 POT 文件 ——尤其是这句话:

使.po文件可供下载(或在插件存档中将其包含在插件中)。Translator将使用此文件来构建.MO文件,该文件将由该文件使用 load_plugin_textdomain() 功能。

(显然,您将在应用程序中使用的函数名称将与 WordPress 中的函数名称不同 - 尽管如此,这个想法仍然存在)


希望这可以帮助 :-)
玩得开心 !

其他提示

不,poEdit没有读取您的所有来源。您使用gettext实用程序“xgettext”;要做到这一点。

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

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

当翻译完成后,您将.po编译成.mo,您的应用程序将用它来查找翻译。

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

PoEdit实际上使用 xgettext ,您可以在设置/解析器选项卡上正确设置。

您应该按顺序分发 .pot 文件,即 .po模板。所以翻译人员可以翻译它,设置语言,翻译团队等等。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top