我有一个很大的形式,有很多选择元素,每个元素有很多选项。所有翻译都运行良好(标签,说明,错误),但我不想翻译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
答案 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);
这解决了我的问题。