Как установить локализацию для элементов Zend_Dojo_Form? - PullRequest
0 голосов
/ 29 апреля 2011

Допустим, у меня есть простая форма:

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 голосов
/ 29 апреля 2011

Вы можете локализовать метки форм так же, как и в любой другой части вашего приложения.

В вашем файле начальной загрузки вы должны установить Zend_Locale и Zend_Translate объект.Это будет доступно во всех ваших приложениях.

Например, в вашей надстройке:

//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

...