我正在为网站添加本地化。如果我可以通过PHP简单地将翻译添加到.po文件中,那么这个过程可以完全自动化,但我似乎无法找到允许这样的库(例如,PHP版本的POEdit)。
我一直在做的事情,因为HTML大体上遵循相同的格式,运行每个phtml文件(它们实际上是Zend Framework视图,如果它有所不同)通过我写的一个类来隔离原始的英文文本,为其分配索引(page.block.1
),并在HTML注释中包装原始文本时编写<?php echo _('page.block.1'); ?>
函数。然后我手动打开POEdit,检查要翻译的新字符串,并将评论文本从phtml文件剪切/粘贴到POEdit。
这非常耗时。假设我可以使用PHP库添加新的翻译,我已准备好索引和字符串,因此它不仅可以消除人为错误,还可以在几秒钟而不是几小时内完成任务。
对于PHP甚至python / perl,是否存在这样的类?我似乎无法找到一个。
答案 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了解有关如何使用它的更多信息。