可以使用PHP向gettext (*.po)目录添加翻译


Possible to add a translation to a gettext (*.po) catalog using PHP?

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

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

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

是否存在这样的类,对于PHP或甚至python/perl?我好像找不到。

有一个更简单的方法,特别是如果你使用Zend_Translate gettext适配器。

你可以直接在你的。php文件中使用翻译函数,像这样:

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

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

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

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

查看Zend_Translate文档获取更多关于如何使用它的信息