使用ZF2和ZfcTwig -gettext-extractor,我仍然不能通过poedit从小枝文件中提取要翻译的消息。如果我对转换使用了正式的twig关键字{% trans(MY_TEXT) %},但没有对内置视图助手translate使用它,我就可以工作。{{ translate(MY_Text) }}进行翻译,但poedit只是忽略它。对于新的twig文件,我希望像往常一样让poedit来完成这项工作。对解决方案有什么想法吗?
发布于 2015-02-10 19:57:34
也许您需要编辑目录属性关键字,使其对翻译可见。打开PoEdit,转到目录->属性->源关键字,然后添加另一个关键字"translate“。在这里我附上一个截图。

发布于 2015-08-24 23:11:56
问题是您正在使用的提取器只是缓存文件,并通过xgettext运行它们来提取对trans/translate/_/的调用。( Conti建议的关键字。遗憾的是,ZfcTwig会将对ZF2插件的调用交叉编译成plugin('translate')->__invoke('Your Text to be translated')。当然,您现在可以在poedit或任何您喜欢的gui中添加__invoke作为新关键字来使用xgettext,但它现在将查找对所有视图帮助器的所有调用,而不仅仅是对translate的调用。
我自己也遇到了这个问题,我还没有想出一个令人满意的解决方案。就编写自己的定制POT文件生成器而言,Twig Gettext Extension看起来很有前途,该生成器将处理translate和translatePlural视图助手调用。按原样使用扩展名将绕过来自ZF2的所有转换。ZF2将.mo文件解析成一个内部结构,而不是使用php-gettext mod。
总而言之,我现在放弃了自动生成ZF2+ZfcTwig的po(t)文件,而是回到了phpArray。
https://stackoverflow.com/questions/28416313
复制相似问题