可以使用PHP将翻译添加到gettext(* .po)目录吗?

时间:2011-10-11 18:50:16

标签: php gettext

我正在为网站添加本地化。如果我可以通过PHP简单地将翻译添加到.po文件中,那么这个过程可以完全自动化,但我似乎无法找到允许这样的库(例如,PHP版本的POEdit)。

我一直在做的事情,因为HTML大体上遵循相同的格式,运行每个phtml文件(它们实际上是Zend Framework视图,如果它有所不同)通过我写的一个类来隔离原始的英文文本,为其分配索引(page.block.1),并在HTML注释中包装原始文本时编写<?php echo _('page.block.1'); ?>函数。然后我手动打开POEdit,检查要翻译的新字符串,并将评论文本从phtml文件剪切/粘贴到POEdit。

这非常耗时。假设我可以使用PHP库添加新的翻译,我已准备好索引和字符串,因此它不仅可以消除人为错误,还可以在几秒钟而不是几小时内完成任务。

对于PHP甚至python / perl,是否存在这样的类?我似乎无法找到一个。

1 个答案:

答案 0 :(得分:2)

有一种更简单的方法,特别是如果你使用Zend_Translate gettext adapter

您可以直接在.phtml文件中使用翻译功能,如下所示:

<label><?php echo $this->translate('some fancy text'); ?><label>

然后使用xgettext实用程序从.phtml文件创建.po文件。调用xgettext会是这样的:

xgettext -o nameOfTheGeneratedPOFile.po --keyword=translate -L php

然后您可以使用POEdit翻译.po文件和msgfmt来创建.mo文件。

查看Zend_Translate documentation了解有关如何使用它的更多信息。