使用gettext翻译php应用程序

qxgroojn  于 2022-12-28  发布在  PHP
关注(0)|答案(3)|浏览(126)

从我之前关于gettext的问题来看,使用PHP的gettext扩展而不是其他语言翻译方法的最大好处之一是,让其他人用一个名为Poedit的程序制作翻译文件非常容易。
现在我有gettext工作在我的应用程序,但我还没有作出任何翻译文件,我发现一个演示文件在网上和测试与它,以符合我的应用程序与gettext虽然。
现在我玩了一下poedit,我可能是错的,希望有人能澄清一些问题。
1.据我所知,poedit阅读了你的php代码,并找到了所有可用的地方做翻译,这是正确的吗?
1.如果上面的描述是正确的,那么在没有访问应用程序的情况下,如何让人工翻译人员使用poedit进行翻译呢?
或者简单地说,有没有可能用poedit制作一个翻译文件,而不需要它访问你的php代码?

htzpubme

htzpubme1#

  • 请注意,我自己从来没有使用过poedit,所以这可能不完全准确... *

一个有趣的文章,你可能首先阅读,为一些信息:Localizing a WordPress Plugin Using poEdit。它是WordPress,意思是PHP--所以基本思想对于您的应用程序应该是可以的。
基本上:

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

这另一篇文章,关于WordPress太,似乎表明,我猜对了:尤其是这句话:
让. po文件可供下载(或者选择将其包含在插件存档中)。翻译人员将使用此文件构建一个. mo文件,该文件将由load_plugin_textdomain()函数使用。

  • (很明显,您将在应用程序中使用的函数名与WordPress中的函数名不同--不过,想法还是存在的)。*
oyxsuwqo

oyxsuwqo2#

不,poEdit不会读取所有的源代码,可以使用gettext实用程序“xgettext”来读取。
基本上,xgettext将生成一个.po文件。
翻译人员将使用POEdit处理该.po文件。
翻译完成后,您将把.po编译成一个.mo,应用将使用它来查找翻译。
如果你已经在某个unixy系统上安装了gettext,可以试试bash中的“info gettext”。

xkrw2x1b

xkrw2x1b3#

PoEdit实际上使用xgettext,您可以在 Settings/Parsers 选项卡上正确设置它。
顺便发一个**.pot文件,是一个 .po模板 ,这样译者就可以翻译,设置语言,翻译团队等。
不幸的是,我看不到从源代码创建.pot文件的选项,但是poedit可以读取(当然,它与.po相同)。
创建完自己的.po后,就可以拥有
.mo
了!

相关问题