使用 gettext 翻译 php 应用程序
-
07-07-2019 - |
题
从我之前关于 gettext 的问题来看,使用 PHP 的 gettext 扩展而不是其他语言翻译方法的最大好处之一是,让其他人使用名为的程序制作翻译文件非常容易 诗歌.
现在我已经在我的应用程序中使用了 gettext,但我还没有制作任何翻译文件,我在网上找到了一个演示文件并对其进行了测试,以确保我的应用程序可以与 gettext 兼容。
现在我稍微玩了一下poedit,我可能是错的,希望有人能澄清一些问题。
据我所知,poedit 会读取您的 php 代码并找到所有可用的位置进行翻译,这是正确的吗?
如果上述内容正确,那么如何让人工翻译人员在无法访问您的应用程序的情况下使用 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 !