ZF2翻译只接受内联字符串,不接受Php变量


ZF2 translate accepting only inline string not Php variables

我在ZF2中使用翻译器时面临问题。也就是说,它只接受内联字符串,不接受Php变量。

当我给出内联字符串来翻译

时,它工作完美,并在"更新"后的。po文件中显示翻译词。
    $translator = $this->getServiceLocator()->get('translator');
    $translator->translate("message to translate") ;

但我想翻译这是保存在PHP变量的字符串。"更新"后,po文件中没有显示翻译词。请参阅下面的代码。

    $translator = $this->getServiceLocator()->get('translator');
    $msg1="message to translate";
    $translator->translate($msg1) ;

这段代码来自我的一个控制器动作。

请建议

您需要指定一个'文本域',要么是默认的,要么是在调用translate方法时指定。如果这样做了,那么确保$msg1实际上有一个字符串。

http://framework.zend.com/manual/2.0/en/modules/zend.i18n.translating.html

$translator->translate($message, $textDomain, $locale);

消息是要翻译的消息的ID。如果没有存在于加载器翻译或为空的原始消息ID将被归还。文本域参数是您指定的参数添加翻译时。如果省略,则默认文本域为使用。locale参数通常不会在此上下文中使用,缺省情况下,区域设置取自翻译。