Как мы можем создать сообщения об ошибках перевода в Zend Framework? - PullRequest
2 голосов
/ 13 апреля 2010

как мы можем создать сообщения об ошибках перевода в рамках Zend Framework?

кто-нибудь может привести пример?

спасибо

Ответы [ 2 ]

7 голосов
/ 13 апреля 2010

Из ZF Manual на Zend_Validate Сообщения проверки

  $validator = new Zend_Validate_GreaterThan();
  $validator->setMessage('Please enter a lower value', 
                         Zend_Validate_GreaterThan::NOT_GREATER);

А также:

Zend Framework поставляется с более чем 45 различными валидаторами с более чем 200 сообщениями об ошибках. Переводить все эти сообщения может быть непростой задачей. Но для вашего удобства Zend Framework поставляется с уже переведенными сообщениями проверки. Вы можете найти их по пути /resources/languages в вашей установке Zend Framework. [...]
Так, например, чтобы перевести все сообщения проверки на немецкий язык, все, что вам нужно сделать, это присоединить переводчик к Zend_Validate, используя эти файлы ресурсов.

  $translator = new Zend_Translate(
      'array',
      '/resources/languages',
      $language,
      array('scan' => Zend_Locale::LOCALE_DIRECTORY)
  );
  Zend_Validate_Abstract::setDefaultTranslator($translator);

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

2 голосов
/ 12 октября 2011

Я просто хочу немного улучшить ответ Гордона: рабочий пример

$translator = new Zend_Translate(
    'array',
    'resources/languages',  // you need to copy the resources folder
                            // (from your Zend Framework installation)
                            // in the application folder 

    'it', // 'it' for italian, 'fr' for french, etc. 
          // Just look at the directories

    // Zend_Translate, NOT Zend_Locale
    array(
        'scan' => Zend_Translate::LOCALE_DIRECTORY
    )
);

Zend_Validate_Abstract::setDefaultTranslator($translator);

Ура! Bruno

...