Twig,ZF2和PoEdit

时间:2015-02-09 18:03:18

标签: zend-framework2 twig gettext

将ZfcTwig用于ZF2和twig-gettext-extractor,我仍然无法通过poedit从twig-files中提取翻译消息。如果我使用正式的twig关键字进行翻译{%trans(MY_TEXT)%},而不是内置视图帮助器翻译,我就可以工作。 {{translate(MY_Text)}}执行翻译,但是poedit只是忽略它。对于新的twig文件,我想像往常一样让poedit做这个工作.... 有什么解决方案吗?

2 个答案:

答案 0 :(得分:1)

也许您需要编辑目录属性关键字才能看到翻译。打开PoEdit,转到目录 - >属性 - >来源关键字并添加另一个关键字“翻译”。我在这里附上截图。 enter image description here

答案 1 :(得分:0)

问题是您使用的提取器只是缓存文件并通过xgettext运行它们以提取对trans / translate / _ / ..的调用(Conti建议的关键字。 ZfcTwig会将对ZF2插件的调用交叉编译为plugin('translate')->__invoke('Your Text to be translated')。当然,您现在可以在poedit中添加__invoke作为新关键字,或者使用xgettext添加任何您喜欢的gui,但现在它将查找所有调用所有调用查看帮助程序,而不仅仅是translate

我自己遇到了这个问题,但我还没有找到令人满意的解决方案。 Twig Gettext Extension在编写自己定制的POT-File生成器方面看起来很有前途,它将处理translatetranslatePlural查看帮助程序调用。按原样使用扩展名将绕过ZF2的所有翻译。 ZF2将.mo文件解析为内部结构,而不是使用php-gettext mod。

总而言之,我现在放弃了ZF2 + ZfcTwig的自动po(t)文件生成,并回到了phpArray。