可以使用 PHP 将翻译添加到 gettext (*.po) 目录吗?
我正在向网站添加本地化功能。如果我可以简单地通过 PHP 将翻译添加到 .po 文件,那么这个过程可以完全自动化,但我似乎找不到允许这样做的库(例如 PHP 版本的 POEdit)。
我一直在做的事情是,由于 HTML 基本上遵循相同的格式,所以通过我编写的一个类运行每个 phtml 文件(如果有区别的话,它们实际上是 Zend Framework 视图),以隔离原始英文文本,为其分配一个索引 (page.block.1
),并写入 函数,同时将原始文本包装在 HTML 注释中。然后,我手动打开 POEdit,检查要翻译的新字符串,并将注释文本从 phtml 文件剪切/粘贴到 POEdit。
这是非常耗时的。假设我可以使用 PHP 库添加新翻译,我已经准备好索引和字符串,因此它不仅可以消除人为错误,而且可以在几秒钟而不是几小时内完成任务。
对于 PHP 甚至 python/perl 是否存在这样的类?我好像找不到一个
I am adding localization to a website. This process could be fully automated if I could simply add the translation to the .po file through PHP, but I can't seem to find a library which allows this (a PHP version of POEdit for example).
What I've been doing, since the HTML largely follows the same format throughout, is run each phtml file (They are actually Zend Framework views if it makes a difference) through a class I wrote to isolate the original english text, assign it an index (page.block.1
), and write a <?php echo _('page.block.1'); ?>
function while wrapping the original text in HTML comments. I then manually open POEdit, check for new strings to be translated, and cut/paste the commented text from the phtml file to POEdit.
This is very time consuming. Assuming I could use a PHP library to add a new translation, I have both the index and the string ready, so it would not only eliminate human error but also complete the task in seconds rather than hours.
Does such a class exist, for PHP or even python/perl? I can't seem to find one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有更简单的方法,特别是如果您使用 Zend_Translate gettext 适配器。
您可以直接在 .phtml 文件中使用翻译函数,如下所示:
然后使用 xgettext 实用程序用于从 .phtml 文件创建 .po 文件。 xgettext 的调用将是这样的:
然后您可以使用 POEdit 来翻译 .po 文件和 msgfmt 创建 .mo 文件。
查看 Zend_Translate 文档 了解有关如何使用它的更多信息。
There is much simpler way especially if you're using Zend_Translate gettext adapter.
You can use translate functions directly in your .phtml files like this:
And then use the xgettext utility to create .po file from your .phtml files. The invocation of the xgettext would be something like this:
Then you can use the POEdit to translate the .po file and msgfmt to create the .mo file.
Check out the Zend_Translate documentation for more info on how to use it.