【问题标题】:Not translate select options in Zend Framework 1不翻译 Zend Framework 1 中的选择选项
【发布时间】:2015-06-21 15:52:04
【问题描述】:

我有一个很大的表单,其中包含很多选择元素,每个元素都有很多选项。所有翻译都运行良好(标签、描述、错误),但我不想翻译选择元素中显示的选项。

官方指南没有说明,请查看以下链接:http://framework.zend.com/manual/1.12/en/zend.form.standardElements.html#zend.form.standardElements.select

但是这里它说:http://framework.zend.com/manual/1.12/en/zend.form.standardElements.html#zend.form.standardElements.multiselect“如果翻译适配器注册到表单和/或元素,选项值将被翻译用于显示目的。”

我无法移除翻译适配器,所以我的问题是:是否可以忽略此元素选项?

期待您的消息。 BR

【问题讨论】:

    标签: zend-framework zend-form zend-form-element zend-translate zend-form-select


    【解决方案1】:

    在表单开头添加$this->setTranslator(new Zend_Translate_Adapter_Array(array()));。这将覆盖默认翻译器,并且因为新翻译器是空的,所以它不会翻译任何东西。

    【讨论】:

    • 您好,Volvox,我无法删除适配器,因为验证错误没有被翻译,我需要以多语言显示错误,因为它的形式很复杂。我可以翻译标签、描述和占位符而不会出现一个特定功能的问题,但我不知道如何处理错误消息......你知道怎么做吗?
    【解决方案2】:

    Zend_Form_Element_Multi 有这个:

    if ($this->translatorIsDisabled()) {
        return false;
    }
    

    Zend_Form_Element 上也有这个方法

    public function setDisableTranslator($flag)
    {
        $this->_translatorDisabled = (bool) $flag;
        return $this;
    }
    

    所以我创建了一个扩展 Zend_Form_Element_Select 的方法并调用:

    $this->setDisableTranslator(true); 
    

    这解决了我的问题。

    【讨论】:

    • 我用过一次,但它比我希望的要多一点。它还禁用字段标签翻译和错误翻译。
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多