【问题标题】:ZF2 empty output on underscore methodZF2 下划线方法的空输出
【发布时间】:2014-01-16 08:35:31
【问题描述】:

我有一个 ZF2 应用程序,它是一个扩展的骨架应用程序,带有一些额外的模块,如身份验证和授权,在 Zend Server 社区版上运行。

为了让 poedit 找到它必须翻译的字符串,我使用 _("string") 方法,如下所示:

    $this->add(array(
        'name' => 'eaddress',
        'type' => 'Zend\Form\Element\Text',
        'attributes' => array(
            'id' => 'eaddress',
            'type' => 'email',
        ),
        'options' => array(
            'label' => _('EMAIL'),
        ),
    ));

但是当我这样做时,应用程序不会向浏览器输出任何内容,甚至不会出现错误:

Firefox:连接已重置

Chrome:未收到数据

Safari:{显示 epmty 页面}

有谁知道如何解决这个问题?

提前致谢

【问题讨论】:

  • 您的 php/apache error_log 中有什么内容吗?您是否确认 function _($str) 实际上是您的问题的原因?最后:你在哪里定义函数?
  • 日志中没有错误,当我只输入 'label' => 'EMAIL' 时,我得到了预期的结果,但没有翻译。该函数位于 loginForm 的 __contruct 方法中。
  • 好的,那将是错误;)您不能在函数内部构造函数。创建一个文件globalFunctions.php 并将其放入/public 文件夹。将此添加到您的 index.php 中,然后一切都会起作用。
  • 好的,但是我到底在 globalFunctions.php 中放了什么?是否也可以将其放在 Module.php 中?
  • 我猜你可能需要了解更多关于 PHP 的知识。 function _($str) { return $str; }

标签: php zend-framework2 translate


【解决方案1】:

据我所知,您不需要编写任何函数来让 ZF2 翻译您的文字。实际上,它与 poedit 一起工作就像一种魅力。

如果您查看此manual page,您将了解如何轻松翻译视图中的内容,只需使用$this->translate(),并且实际上您必须这样做。

关于表单标签,您甚至不必担心,因为如果一切配置良好,表单视图助手已经翻译了标签。

如果你想了解更多关于 poedit 和 zf2 的信息,你可以去this blog post 或者这个great sams's post

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 2017-06-03
    • 2016-12-10
    • 2021-01-13
    • 2011-10-19
    • 1970-01-01
    • 2018-02-04
    • 2020-06-25
    • 2012-10-16
    相关资源
    最近更新 更多