0

我在 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) ;

此代码来自我的控制器操作之一。

请指教

4

1 回答 1

0

您将需要指定一个“文本域”,可以是默认值,也可以是在调用 translate 方法时。如果这样做了,请确保 $msg1 实际上有一个字符串。

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

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

message 是您要翻译的消息的 ID。如果加载器翻译中不存在或为空,则返回原始消息 ID。文本域参数是您在添加翻译时指定的参数。如果省略,将使用默认文本域。locale 参数通常不会在此上下文中使用,因为默认情况下,语言环境取自翻译器中设置的语言环境。

于 2013-05-30T10:06:35.607 回答