【问题标题】:ZF2 translate accepting only inline string not Php variablesZF2 翻译只接受内联字符串而不是 PHP 变量
【发布时间】:2013-05-25 19:52:20
【问题描述】:

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

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

请指教

【问题讨论】:

    标签: php zend-framework2 po


    【解决方案1】:

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

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

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

    消息是您要翻译的消息的 ID。如果没有 存在于加载器翻译中或为空,原始消息ID 将被退回。文本域参数是您指定的参数 添加翻译时。如果省略,默认文本域将是 用过的。在这种情况下,通常不会使用 locale 参数, 默认情况下,语言环境取自 翻译。

    【讨论】:

    • 谢谢@Rijidael。为什么我们需要文本域。$textDomain 的预期值是多少?
    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2021-10-22
    • 2013-12-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多