不转换Zend Framework 1中的选择选项

时间:2015-04-15 15:30:25

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

我有一个很大的形式,有很多选择元素,每个元素有很多选项。所有翻译都运行良好(标签,说明,错误),但我不想翻译select元素中显示的选项。

官方指南对此一无所知,请查看以下链接: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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

这解决了我的问题。