不翻译 Zend Framework 1 中的 select 个选项

Not translate select options in Zend Framework 1

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

官方指南没有说明,请查看以下内容link: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 "If a translation adapter is registered with the form and/or element, option values will be translated for display purposes. "

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

期待你的消息。 BR

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

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

这解决了我的问题。