如何为Zend_Dojo_Form元素设置本地化?

时间:2011-04-29 11:48:01

标签: php zend-framework dojo zend-form dijit.form

假设我有一个简单的表格:

class Form_Simple extends Zend_Dojo_Form
{
  public function  init() {
    $this->addElements(array(
      new Zend_Dojo_Form_Element_ValidationTextBox('name', array(
        'required'   => true,
        'label'      => 'Name:'
    ))
  }
}

“name”元素是必需的,因此错误消息将是“此字段是必需的”。如何更改此消息?

1 个答案:

答案 0 :(得分:0)

您可以像应用程序的任何其他部分一样本地化表单标签。

在您的引导程序文件中,您必须设置Zend_LocaleZend_Translate对象。它将在您的整个应用程序中提供。

例如你的boostrap:

//init locale
        $translate = new Zend_Translate('gettext', 
                        APPLICATION_PATH.'/languages',null,
                        array('scan' => Zend_Translate::LOCALE_FILENAME));

        $locale = new Zend_Locale();
        $locale->setLocale(Zend_Locale::BROWSER);
        $requestedLanguage = key($locale->getBrowser());

        if(in_array($requestedLanguage, $translate->getList())){
            $language = $requestedLanguage;
        }else{
            $language = 'en';
        }

        $translate->setLocale($language);
        $view->translate = $translate;

由于设置非常详细且可能很复杂,我建议您观看本教程http://www.youtube.com/watch?v=FwPgqla-cRk