예제 #1
0
파일: Bootstrap.php 프로젝트: ThalerR/GEBL
 protected function _initLanguage()
 {
     $locale = new Zend_Locale('de_AT');
     $translator = new Zend_Translate('array', APPLICATION_PATH . '/../resources/languages', 'de', array('scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
     Zend_Locale::setDefault($locale);
 }
예제 #2
0
파일: Bootstrap.php 프로젝트: rootzig/SNEP
 protected function startLocale()
 {
     require_once "Zend/Translate.php";
     // silenciando strict até arrumar zend_locale
     date_default_timezone_set("America/Sao_Paulo");
     $i18n = new Zend_Translate('gettext', $this->config->system->path->base . '/lang/pt_BR.mo', 'pt_BR');
     Zend_Registry::set('i18n', $i18n);
     $translation_files = $this->config->system->path->base . "/lang/";
     foreach (scandir($translation_files) as $filename) {
         // Todos os arquivos .php devem ser classes de descrição de modulos
         if (preg_match("/.*\\.mo\$/", $filename)) {
             $translation_id = basename($filename, '.mo');
             if ($translation_id != "pt_BR") {
                 $i18n->addTranslation($translation_files . "/{$filename}", $translation_id);
             }
         }
     }
     require_once "Zend/Locale.php";
     if (Zend_Locale::isLocale($this->config->system->locale)) {
         $locale = $this->config->system->locale;
     } else {
         $locale = "pt_BR";
     }
     Zend_Registry::set('Zend_Locale', new Zend_Locale($locale));
     Zend_Locale::setDefault($locale);
     Zend_Locale_Format::setOptions(array("locale" => $locale));
     $i18n->setLocale($locale);
     Zend_Registry::set("Zend_Translate", $i18n);
     $zend_validate_translator = new Zend_Translate_Adapter_Array($this->config->system->path->base . "/lang/Zend_Validate/{$locale}/Zend_Validate.php", $locale);
     Zend_Validate_Abstract::setDefaultTranslator($zend_validate_translator);
 }
예제 #3
0
 protected function _initTraslator()
 {
     $siteOptions = $this->getOption('site');
     $translator = new Zend_Translate('array', APPLICATION_PATH . DIRECTORY_SEPARATOR . 'languages', $siteOptions['default']['language'], array('scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
     return $translator;
 }
예제 #4
0
 protected function _initValidateMessages()
 {
     if (!$this->hasPluginResource('message')) {
         return;
     }
     $this->bootstrap('message');
     Zend_Validate_Abstract::setDefaultTranslator($this->getResource('message'));
 }
예제 #5
0
 public function _initTranslate()
 {
     try {
         $translate = new Zend_Translate('Array', APPLICATION_PATH . '/languages/es/Zend_Validate.php', 'pt_BR');
         Zend_Validate_Abstract::setDefaultTranslator($translate);
     } catch (Exception $e) {
         die($e->getMessage());
     }
 }
예제 #6
0
파일: Translate.php 프로젝트: netixx/Stock
 /**	@brief Changement de langue.
  * 
  * Exploitation du cache de l'application pour stocker l'instance de Zend_Translate correspondant.
  * Si le cache n'est pas présent, une nouvelle instance est créée, puis stockée dans le cache de Zend_Translate.
  * 
  * @see		Controller/Plugin/Zend_Controller_Plugin_Abstract::routeShutdown()
  * @throws	exception Projet_Exception en cas d'erreur au cours de la requête.
  * @return	void.
  */
 public function routeShutdown(Zend_Controller_Request_Abstract $request)
 {
     parent::routeShutdown($request);
     // Récupération du paramètre de langue passée dans l'URL
     $sLocal = $this->getRequest()->getParam('language') ? $this->getRequest()->getParam('language') : self::DEFAULT_LANGUAGE;
     // Récupération du local dans une combinaison du type "fr_FR"
     $aLanguage = explode("_", $sLocal);
     $sLanguage = isset($aLanguage[0]) ? $aLanguage[0] : self::DEFAULT_LANGUAGE;
     # Récupération de "fr"
     $sCountry = isset($aLanguage[1]) ? $aLanguage[1] : self::DEFAULT_COUNTRY;
     # Récupération de "FR"
     // Fonctionnalité réalisée si le fichier de langue n'existe pas
     if (!file_exists(LANGUAGE_PATH . $sLanguage . '.ini')) {
         $sLanguage = self::DEFAULT_LANGUAGE;
     }
     // Récupération du cache de la langue en cours dans le cache de Zend_Translate
     if ((bool) APP_CACHE) {
         $oCacheTranslate = Zend_Translate::getCache();
         $oTranslate = $oCacheTranslate->load($sLanguage);
     } else {
         $oTranslate = null;
     }
     // Fonctionnalité réalisé si
     if (empty($oTranslate)) {
         // Initialisation de la langue
         try {
             // Chargement du Zend_Translate
             $oTranslate = new Zend_Translate(array('adapter' => 'ini', 'content' => LANGUAGE_PATH . $sLanguage . '.ini', 'locale' => $sLocal));
             $sFichier = LANGUAGE_PATH . $sLanguage . '.php';
             if (file_exists($sFichier)) {
                 //traduction des erreurs de formulaires
                 $oTranslate->addTranslation(array('content' => new Zend_Translate('array', $sFichier, $sLanguage)));
             }
             if ((bool) APP_CACHE) {
                 // Enregistrement de la langue dans le cache
                 $oCacheTranslate = Zend_Translate::getCache();
                 $oCacheTranslate->save($oTranslate, $sLanguage);
             }
         } catch (Exception $e) {
             if ((bool) APP_CACHE) {
                 // Suppression du cache
                 $oCacheTranslate->remove($sLanguage);
             }
             // Création d'une exception au niveau du projet
             die($e->getMessage());
             throw new Projet_Exception($e->getMessage(), __METHOD__, $e);
         }
     }
     // Enregistrement du Zend_Translate dans les fonctionnalités de l'application
     Zend_Registry::set("Zend_Locale", $sLocal);
     Zend_Registry::set("Zend_Translate", $oTranslate);
     // Potentiellement inutile vu la ligne précédente...
     Zend_Form::setDefaultTranslator($oTranslate);
     Zend_Validate_Abstract::setDefaultTranslator($oTranslate);
     // Language par défaut pour toutes les routes
     Zend_Controller_Front::getInstance()->getRouter()->setGlobalParam('language', $sLocal);
 }
예제 #7
0
 protected function _initTranslation()
 {
     $bootstrap = $this->getApplication();
     $bootstrap->bootstrap('translate');
     $translator = $bootstrap->getResource('translate');
     if (method_exists($this, 'connect')) {
         $translator->connect();
     }
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
예제 #8
0
 protected function _initLocale()
 {
     Zend_Loader::loadClass('Zend_Locale');
     Zend_Locale::setDefault('fr');
     $session = new Zend_Session_Namespace();
     $session->locale = !empty($session->locale) ? $session->locale : DEFAULT_LOCALE;
     $translator = new Zend_Translate(array('adapter' => 'array', 'content' => APPLICATION_PATH . '/languages/' . $session->locale . '.php', 'locale' => $session->locale));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
     Zend_Form::setDefaultTranslator($translator);
     Zend_Validate::setDefaultTranslator($translator);
     Zend_Registry::set("Zend_Translate", $translator);
 }
예제 #9
0
 /**
  * Defined by Zend_Application_Resource_Resource
  *
  * @return Zend_View
  */
 public function init()
 {
     // locale Options
     $language = null;
     if (Zend_Registry::isRegistered("Zend_Locale")) {
         $locale = Zend_Registry::get("Zend_Locale");
         $language = $locale->getLanguage() . "_" . $locale->getRegion();
     }
     $options = $this->getOptions();
     if (!is_null($language) and isset($options["translate"])) {
         $options["translate"]["locale"] = $language;
         $translator = new Zend_Translate($options["translate"]);
         Zend_Validate_Abstract::setDefaultTranslator($translator);
     }
     Zend_Validate::addDefaultNamespaces('ZLayer_Validate');
 }
예제 #10
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     parent::preDispatch($request);
     $Zrt = new Zend_Session_Namespace('Zrt');
     if (!isset($Zrt->config->lang)) {
         $zl = new Zend_Locale();
         $Zrt->config->lang = $zl->getLanguage();
     }
     if ($Zrt->config->lang !== 'en' && $Zrt->config->lang !== 'de' && $Zrt->config->lang !== 'es' && $Zrt->config->lang !== 'pl') {
         $Zrt->config->lang = 'en';
     }
     if (!isset($Zrt->config->idlang)) {
         $_idioma = new Zrt_Models_Bussines_Idioma();
         $Zrt->config->idlang = $_idioma->getByPrefijo($Zrt->config->lang)->id;
     }
     $translate = new Zend_Translate(Zend_Translate::AN_GETTEXT, APPLICATION_PATH . '/configs/locale/', $Zrt->config->lang, array('scan' => Zend_Translate::LOCALE_FILENAME), $Zrt->config->lang);
     Zend_Registry::set('Zend_Translate', $translate);
     /* translate para Zend_Validate */
     $translator = new Zend_Translate(Zend_Translate::AN_ARRAY, APPLICATION_PATH . '/configs/resources/languages/', $Zrt->config->lang, array('scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
     /*         * variables para la vista* */
     $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
     if (null === $viewRenderer->view) {
         $viewRenderer->initView();
     }
     $view = $viewRenderer->view;
     $view->assign('sessionZrt', $Zrt);
     /*         * variables para la vista* */
     /* translate para Zend_Validate */
     /* formulario idioma */
     /* fixme formulario idiomapais */
     //        $data = array( );
     //        if ( isset( $Zrt->config->lang ) )
     //            {
     //            if ( isset( $Zrt->config->idlang ) )
     //                {
     //                $data['idioma'] = $Zrt->config->idlang;
     //                }
     //            if ( isset( $Zrt->config->idpais ) )
     //                {
     //                $data['pais'] = $Zrt->config->idpais;
     //                }
     //            }
     /**/
     /* formulario idioma */
 }
예제 #11
0
 protected function _initDoctype()
 {
     $this->bootstrap('view');
     $view = $this->getResource('view');
     $view->doctype('XHTML1_STRICT');
     $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
     Zend_Registry::set('config', $config);
     $db = Zend_Db::factory($config->resources->db);
     Zend_Registry::set('db', $db);
     $locale = new Zend_Locale($config->resources->locale->default);
     $translate = new Zend_Translate('array', APPLICATION_PATH . '/../data/locales/' . $locale->getLanguage($config->resources->locale->default) . '.php', $config->resources->locale->default, array('disableNotices' => TRUE));
     $languages = array('en' => 'en_US');
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Zend_Registry::set('db', $db);
     Zend_Registry::set('languages', $languages);
     Zend_Registry::set('Zend_Translate', $translate);
     Zend_Registry::set('Zend_Locale', $locale);
 }
예제 #12
0
 /**
  * Referência:
  * http://www.codeforest.net/multilanguage-support-in-zend-framework
  */
 protected function _initTranslate()
 {
     $locale = new Zend_Locale();
     if (!Zend_Locale::isLocale($locale, TRUE, FALSE)) {
         if (!Zend_Locale::isLocale($locale, FALSE, FALSE)) {
             throw new Zend_Locale_Exception("The locale '{$locale}' is no known locale");
         }
         $locale = new Zend_Locale($locale);
     }
     //$locale = "pt_BR";
     $translatorArray = new Zend_Translate(array('adapter' => 'array', 'content' => APPLICATION_PATH . '/../resources/languages', 'locale' => $locale, 'scan' => Zend_Translate::LOCALE_DIRECTORY));
     $translate = new Zend_Translate('gettext', APPLICATION_PATH . "/langs/", $locale, array('scan' => Zend_Translate::LOCALE_DIRECTORY));
     $translate->addTranslation($translatorArray);
     $registry = Zend_Registry::getInstance();
     $registry->set('Zend_Translate', $translate);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Zend_Form::setDefaultTranslator($translate);
 }
예제 #13
0
    protected function _initValidatorTranslation()
    {
        // traduction des messages d'erreur de validation
        $french = array(
	        'notAlnum' => "'%value%' ne contient pas que des lettres et/ou des chiffres.",
	        'notAlpha' => "'%value%' ne contient pas que des lettres.",
	        'notBetween' => "'%value%' n'est pas compris entre %min% et %max% inclus.",
	        'notBetweenStrict' => "'%value%' n'est pas compris entre %min% et %max% exclus.",
			'notSame' 	=> "Les deux champs ne correspondent pas.",
	        'dateNotYYYY-MM-DD'=> "'%value%' n'est pas une date au format AAAA-MM-JJ (exemple : 2000-12-31).",
	        'dateInvalid' => "'%value%' n'est pas une date valide.",
	        'dateFalseFormat' => "'%value%' n'est pas une date valide au format JJ/MM/AAAA (exemple : 31/12/2000).",
	        'notDigits' => "'%value%' ne contient pas que des chiffres.",
	        'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide au format adresse@domaine.",
	        'emailAddressInvalidFormat' => "'%value%' n'est pas une adresse mail valide au format adresse@domaine.tld",
	        'emailAddressInvalidHostname' => "'%hostname%' n'est pas un nom d'hôte DNS valide.",
	        'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse mail '%value%'.",
	        'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dot-atom.",
	        'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format quoted-string.",
	        'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse individuelle valide.",
	        'notFloat' => "'%value%' n'est pas un nombre décimal.",
	        'notGreaterThan' => "'%value%' n'est pas strictement supérieur à '%min%'.",
	        'notInt'=> "'%value%' n'est pas un nombre entier.",
	        'notLessThan' => "'%value%' n'est pas strictement inférieur à '%max%'.",
	        'isEmpty' => "Ce champ est vide : vous devez le compléter.",
	        'stringEmpty' => "Ce champ est vide : vous devez le compléter.",
	        'regexNotMatch' => "'%value%' ne respecte pas le format '%pattern%'.",
	        'stringLengthTooShort' => "'%value%' fait moins de %min% caractères.",
	        'stringLengthTooLong' => "'%value%' fait plus de %max% caractères.",
			'postcodeInvalid' => "'%value%' n'est pas du type attendu.",
	        'postcodeNoMatch' => "'%value%' n'est pas un code postal valide.",
			'notPhoneNumber' => "'%value%' ne semble pas être un numéro de téléphone français valide",
			'notIpAddress' => "'%value%' ne semble pas être une addresse IP valide"
        );

        $translate = new Zend_Translate('array', $french, 'fr_FR');
		Zend_Registry::set( 'translator', $translate );
        Zend_Validate_Abstract::setDefaultTranslator($translate);
    }
예제 #14
0
 /**
  * Initializes translator
  *
  * @return Zend_Translate_Adapter
  */
 public function _initTranslate()
 {
     $log = new Zend_Log();
     if (APPLICATION_ENV == 'development') {
         $log = new Zend_Log();
         $log->addWriter(new Zend_Log_Writer_Firebug());
         //$log->addWriter(new Zend_Log_Writer_Stream(APPLICATION_PATH . '/temporary/log/translate.log'));
     } else {
         $log->addWriter(new Zend_Log_Writer_Null());
     }
     $params['log'] = $log;
     // Create the object and add a language
     $translate = new Zend_Translate('Array', APPLICATION_PATH . '/languages/vi/vi.php', 'vi_VN');
     // Add another translation
     $translate->addTranslation(APPLICATION_PATH . '/languages/en/en.php', 'en_US');
     // Set nb_NO as default translation
     $translate->setLocale('vi_VN');
     Zend_Registry::set('Zend_Translate', $translate);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Zend_Form::setDefaultTranslator($translate);
     Zend_Controller_Router_Route::setDefaultTranslator($translate);
     return $translate;
 }
예제 #15
0
 /**
  * Set default translation object for all Zend validate objects.
  *
  * @throws iMSCP_Exception When $translator is not a Zend_Translate_Adapter instance
  * @param Zend_Translate_Adapter $translator Translator adapter
  * @return void
  */
 public function setDefaultTranslator($translator = null)
 {
     if (null === $translator) {
         $translator = new iMSCP_I18n_Adapter_Zend();
     } elseif (!$translator instanceof Zend_Translate_Adapter) {
         throw new iMSCP_Exception('$translator must be an instance of Zend_Translate_Adapter.');
     }
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
예제 #16
0
 protected function _initTranslation()
 {
     $oSiteSession = new Zend_Session_Namespace("site");
     $sRequestLang = null;
     if (!isset($sRequestLang)) {
         if ($oSiteSession->lang == "en") {
             $sRequestLang = $oSiteSession->lang;
         } else {
             $oLocale = new Zend_Locale();
             $sLang = $oLocale->getLanguage();
             if (in_array($sLang, array("pl", "en"))) {
                 $this->_sBrowserLanguage = $sLang;
                 $sRequestLang = $sLang;
             } else {
                 $sRequestLang = "pl";
             }
         }
         $oSiteSession->lang = $sRequestLang;
     } else {
         if (in_array($sRequestLang, array("pl", "en"))) {
             $oSiteSession->lang = $sRequestLang;
         } else {
             $sRequestLang = "pl";
             $oSiteSession->lang = $sRequestLang;
         }
     }
     if ($sRequestLang == "pl") {
         $sArrayFilePath = APPLICATION_PATH . "/resources/languages/" . $sRequestLang . "/Zend_Validate.php";
         if (file_exists($sArrayFilePath)) {
             $aTranslate = array("adapter" => "array", "content" => $sArrayFilePath, "locale" => $sRequestLang, "scan" => Zend_Translate::LOCALE_DIRECTORY);
             $oTranslator = new Zend_Translate($aTranslate);
             Zend_Validate_Abstract::setDefaultTranslator($oTranslator);
         }
     }
     if ($sRequestLang == "en") {
         $sArrayFilePath = APPLICATION_PATH . "/resources/languages/" . $sRequestLang . "/" . $sRequestLang . "_" . strtoupper($sRequestLang) . ".php";
         if (file_exists($sArrayFilePath)) {
             $aTranslate = array("adapter" => "array", "content" => $sArrayFilePath, "locale" => $sRequestLang, "scan" => Zend_Translate::LOCALE_DIRECTORY);
             $oTranslator = new Zend_Translate($aTranslate);
             Zend_Registry::set("Zend_Translate", $oTranslator);
             Zend_Form::setDefaultTranslator($oTranslator);
             Zend_Validate_Abstract::setDefaultTranslator(null);
         }
     }
     return $sRequestLang;
 }
예제 #17
0
 public function _initTranslate()
 {
     $translator = new Zend_Translate(array('adapter' => 'array', 'content' => '../resources/languages', 'locale' => 'pt_BR', 'scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
예제 #18
0
 public function testCanSetGlobalDefaultTranslator()
 {
     $this->testGlobalDefaultTranslatorNullByDefault();
     set_error_handler(array($this, 'errorHandlerIgnore'));
     $translator = new Zend_Translate('array', array(), 'en');
     restore_error_handler();
     Zend_Validate_Abstract::setDefaultTranslator($translator);
     $this->assertSame($translator->getAdapter(), Zend_Validate_Abstract::getDefaultTranslator());
 }
예제 #19
0
 /**
  * Execute validate
  *
  * @param  mixed $data Input data
  * @access public
  * @return boolean Result of validation
  */
 public function isValid($data = null)
 {
     if (!is_null($this->_validatorTranslate)) {
         Zend_Validate_Abstract::setDefaultTranslator($this->_validatorTranslate);
     }
     if (is_null($this->_rules)) {
         // Set validation rules, which is defined in sub class.
         $this->setRules();
     }
     $this->_validator = new Zend_Filter_Input($this->_filters, $this->_rules);
     // If $data is null, use $_request data.
     if (is_null($data)) {
         $data = $this->_request;
     }
     $this->_validator->setData($data);
     $ret = $this->_validator->isValid();
     if ($ret === false) {
         $errors = $this->_validator->getInvalid();
         $messages = array();
         if (is_array($errors)) {
             foreach ($errors as $fields) {
                 foreach ($fields as $key => $val) {
                     $messages[] = $val;
                 }
             }
         }
         $this->_errorMessages = $messages;
     }
     return $ret;
 }
예제 #20
0
 /**
  *
  * @param mixed $config
  * @param array $replacement
  * @param array $attachment
  * @param bool $log
  * @param integer $vsprintfTimes
  * @param callback $filter
  * @return bool
  */
 public function send($config = null, $replacement = array(), $attachment = array(), $log = false, $vsprintfTimes = 1, $filter = null)
 {
     if (is_scalar($config)) {
         $config = $this->getConfig($config);
     }
     if (isset($config['mail'])) {
         $config = $config['mail'];
     }
     //TODO
     if (count($config) > 0 && count($attachment) > 0) {
         foreach ($attachment as $att) {
             if ($att->filename) {
                 $extension = strtolower(pathinfo(strval($att->filename), PATHINFO_EXTENSION));
                 if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) {
                     $att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension];
                 }
             }
         }
     }
     if (!is_null($filter)) {
         if ($config[0]['zfversion'] == 1) {
             $tmp = Zend_Json::encode($replacement);
         } elseif ($config[0]['zfversion'] == 2) {
             $callback = array('Zend\\Json\\Json', 'encode');
             $param_arr = array($tmp);
             $tmp = call_user_func_array($callback, $param_arr);
         }
         $tmp = base64_encode($tmp);
         $tmp = ' replacement=\'' . $tmp . '\'';
     }
     $send = true;
     foreach ($config as $conf) {
         $fromEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['email'], $replacement, $vsprintfTimes);
         $fromName = null;
         $replytoEmail = null;
         $replytoName = null;
         $toEmail = array();
         $toName = array();
         $ccEmail = array();
         $ccName = array();
         $bccEmail = array();
         $bccName = array();
         $header = array();
         $subject = null;
         $bodyHtml = null;
         $bodyText = null;
         if (isset($conf['from']['name'])) {
             $fromName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['name'], $replacement, $vsprintfTimes);
         }
         if (isset($conf['replyto']['email'])) {
             $replytoEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['email'], $replacement, $vsprintfTimes);
         }
         if (isset($conf['replyto']['name'])) {
             $replytoName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['name'], $replacement, $vsprintfTimes);
         }
         if (count($conf['to']) > 0) {
             foreach ($conf['to'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 //TODO
                 /*
                 					if (isset($value['name']) && $value['name'] === $name)
                 					{
                 						$name = null;
                 					}
                 */
                 $toEmail[$key] = $email;
                 $toName[$key] = $name;
             }
         }
         if (count($conf['cc']) > 0) {
             foreach ($conf['cc'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 $ccEmail[$key] = $email;
                 $ccName[$key] = $name;
             }
         }
         if (count($conf['bcc']) > 0) {
             foreach ($conf['bcc'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 $bccEmail[$key] = $email;
                 $bccName[$key] = $name;
             }
         }
         if (count($conf['header']) > 0) {
             foreach ($conf['header'] as $key => $value) {
                 if (!isset($value['append'])) {
                     $value['append'] = false;
                 }
                 $header[] = $value;
             }
         }
         /*
         			if (isset($conf['subject']) && strlen($conf['subject']) > 0)
         			{
            $subject = $conf['subject'];
            
            if (!is_null($filter))
            {
                $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
            }
            else
            {
                $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject);
            }
            
            if (!is_null($filter))
            {
                $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
                
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes);
            }
            else
            {
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, 1);
                
                $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject);
                
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes - 1);
            }
         			}
         * 
         */
         if (isset($conf['subject']) && strlen($conf['subject']) > 0) {
             $subject = $conf['subject'];
             if (!is_null($filter)) {
                 $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
                 $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $subject);
                     $subject = str_replace(' replacement=\'%replacement%\'', '', $subject);
                     $subject = str_replace(' replacement=\'\'', '', $subject);
                     $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement);
                 }
             }
         }
         if (!is_null($subject) && !is_null($filter)) {
             $subject = call_user_func_array($filter, array($subject));
         }
         /*
         			if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0)
         			{
            $bodyHtml = $conf['body']['html'];
            
            if (!is_null($filter))
            {
                $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml);
                
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes);
            }
            else
            {
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, 1);
                
                $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyHtml);
                
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes - 1);
            }
         			}
         * 
         */
         if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0) {
             $bodyHtml = $conf['body']['html'];
             if (!is_null($filter)) {
                 $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml);
                 $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $bodyHtml);
                     $bodyHtml = str_replace(' replacement=\'%replacement%\'', '', $bodyHtml);
                     $bodyHtml = str_replace(' replacement=\'\'', '', $bodyHtml);
                     $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement);
                 }
             }
         }
         if (!is_null($bodyHtml) && !is_null($filter)) {
             $bodyHtml = call_user_func_array($filter, array($bodyHtml));
         }
         if (!is_null($bodyHtml)) {
             $bodyHtml = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyHtml);
         }
         /*
         			if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0)
         			{
            $bodyText = $conf['body']['text'];
            
            if (!is_null($filter))
            {
                $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText);
                
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
            }
            else
            {
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, 1);
                
                $bodyText = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyText);
                
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes - 1);
            }
            
         				$bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
         			}
         * 
         */
         if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0) {
             $bodyText = $conf['body']['text'];
             if (!is_null($filter)) {
                 $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText);
                 $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $bodyText = preg_replace('#\\[base64.*\\[/base64\\]#si', '', $bodyText);
                     $bodyText = str_replace(' replacement=\'%replacement%\'', '', $bodyText);
                     $bodyText = str_replace(' replacement=\'\'', '', $bodyText);
                     $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement);
                 }
             }
         }
         if (!is_null($bodyText) && !is_null($filter)) {
             $bodyText = call_user_func_array($filter, array($bodyText));
         }
         if (!is_null($bodyText)) {
             $bodyText = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyText);
         }
         if ($conf['zfversion'] == 1) {
             //require_once 'Zend/Mail.php';
             $message = new Zend_Mail($conf['charset']);
             $message->setHeaderEncoding($conf['encoding']);
         } elseif ($conf['zfversion'] == 2) {
             $classMailMessage = 'Zend\\Mail\\Message';
             $message = new $classMailMessage();
             $message->setEncoding($conf['charset']);
             $classMimeMessage = 'Zend\\Mime\\Message';
             $mimeBody = new $classMimeMessage();
             $message->setBody($mimeBody);
             $headers = $message->getHeaders();
             $headers->setEncoding('ASCII');
         }
         $message->setFrom($fromEmail, $fromName);
         if (!is_null($replytoEmail)) {
             $message->setReplyTo($replytoEmail, $replytoName);
         }
         foreach ($toEmail as $key => $email) {
             $name = $toName[$key];
             $message->addTo($email, $name);
         }
         foreach ($ccEmail as $key => $email) {
             $name = $ccName[$key];
             $message->addCc($email, $name);
         }
         foreach ($bccEmail as $key => $email) {
             $name = $bccName[$key];
             $message->addBcc($email, $name);
         }
         if ($conf['zfversion'] == 1) {
             foreach ($header as $key => $value) {
                 $message->addHeader($value['name'], $value['value'], $value['append']);
             }
         } elseif ($conf['zfversion'] == 2) {
             $headers = $message->getHeaders();
             //$headers->setEncoding($conf['charset']);
             foreach ($header as $key => $value) {
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader($value['name'], $value['value']);
                 $headerTmp->setEncoding($conf['charset']);
                 $headers->addHeader($headerTmp);
             }
         }
         if (!is_null($subject)) {
             $message->setSubject($subject);
         }
         if ($conf['zfversion'] == 1) {
             if (!is_null($bodyHtml)) {
                 $message->setBodyHtml($bodyHtml, $conf['charset'], $conf['encoding']);
             }
             if (!is_null($bodyText)) {
                 $message->setBodyText($bodyText, $conf['charset'], $conf['encoding']);
             }
         } elseif ($conf['zfversion'] == 2) {
             $htmlPart = null;
             $textPart = null;
             //$mimeMessage = null;
             if (!is_null($bodyText)) {
                 $classMimePart = 'Zend\\Mime\\Part';
                 $textPart = new $classMimePart($bodyText);
                 $textPart->type = 'text/plain';
                 $textPart->charset = $conf['charset'];
                 $textPart->encoding = $conf['encoding'];
                 $message->getBody()->addPart($textPart);
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'text/plain; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->removeHeader('content-type');
                 $headers->addHeader($headerTmp);
             }
             if (!is_null($bodyHtml)) {
                 $classMimePart = 'Zend\\Mime\\Part';
                 $htmlPart = new $classMimePart($bodyHtml);
                 $htmlPart->type = 'text/html';
                 $htmlPart->charset = $conf['charset'];
                 $htmlPart->encoding = $conf['encoding'];
                 $message->getBody()->addPart($htmlPart);
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'text/html; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->removeHeader('content-type');
                 $headers->addHeader($headerTmp);
             }
             /*
             				if (!is_null($htmlPart) || !is_null($textPart))
             				{
             					$mimeMessage = new Zend\Mime\Message();
             				}
             				
             				if (!is_null($htmlPart))
             				{
             					$mimeMessage->addPart($htmlPart);
             				}
             				
             				if (!is_null($textPart))
             				{
             					$mimeMessage->addPart($textPart);
             				}
             				
             				if (!is_null($mimeMessage))
             				{
             					$alternativePart = new Zend\Mime\Part($mimeMessage->generateMessage());
             					
             					$alternativePart->type = 'multipart/alternative';
             					
             					$alternativePart->boundary = $mimeMessage->getMime()->boundary();
             					
             					$alternativePart->charset = $conf['charset'];
             					
             					//$alternativePart->encoding = $conf['encoding'];
             					
             					
             					$message->getBody()->addPart($alternativePart);
             				}
             * 
             */
         }
         if ($conf['zfversion'] == 1) {
             if (isset($conf['attachment']) && strlen($conf['attachment']) > 0 && $conf['attachment']) {
                 foreach ($attachment as $att) {
                     $message->addAttachment($att);
                 }
             }
         } elseif ($conf['zfversion'] == 2) {
             //TODO add attachements
         }
         /*
         * 
         * TODO add attachements
         * 
         			if (count($config)>0&&count($attachment)>0) {
         				foreach ($attachment as $att) {
         					if ($att->filename) {
         						$extension = strtolower(pathinfo(strval($att->filename),PATHINFO_EXTENSION));
         						if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) {
         							$att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension];
         						}
         					}
         				}
         			}
         			
         			if (isset($conf['attachment'])&&strlen($conf['attachment'])>0&&$conf['attachment']) {
         				foreach ($attachment as $att) {
         					$mail->addAttachment($att);
         				}
         			}
         * 
         */
         if ($conf['zfversion'] == 1) {
         } elseif ($conf['zfversion'] == 2) {
             $headers = $message->getHeaders();
             //$headers->setEncoding('ASCII');
             $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
             $headerTmp = new $classGenericMultiHeader('Content-Transfer-Encoding', $conf['encoding']);
             $headerTmp->setEncoding('ASCII');
             $headers->addHeader($headerTmp);
             if (!is_null($bodyText) && !is_null($bodyHtml)) {
                 $headers->removeHeader('Content-Transfer-Encoding');
                 $headers->removeHeader('content-type');
                 $boundary = $message->getBody()->getMime()->boundary();
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; boundary="' . $boundary . '"');
                 $headerTmp->setEncoding('ASCII');
                 $headers->addHeader($headerTmp);
             }
             if (false && $message->getBody()->isMultiPart()) {
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->addHeader($headerTmp);
             }
         }
         /* *
            echo '<pre>';
            var_dump
            (
                $fromEmail,
                $fromName,
                $replytoEmail,
                $replytoName,
                $toEmail,
                $toName,
                $ccEmail,
                $ccName,
                $bccEmail,
                $bccName,
                $header,
                $subject,
                $bodyHtml,
                $bodyText
            );
            //print_r($replacement);
            //die();
            /* */
         if ($conf['zfversion'] == 1) {
             $defaultTranslator = Zend_Validate_Abstract::getDefaultTranslator();
             if (is_object($defaultTranslator)) {
                 Zend_Validate_Abstract::setDefaultTranslator(null);
                 $defaultTranslatorOptions = $defaultTranslator->getOptions();
                 $defaultTranslator->setOptions(array('logUntranslated' => false));
             }
         } else {
         }
         $messageTransport = $conf['transport'];
         try {
             $messageTransport->send($message);
             $sendTmp = true;
         } catch (Exception $e) {
             $sendTmp = false;
         }
         $send = $send && $sendTmp;
         if ($conf['zfversion'] == 1) {
             if (is_object($defaultTranslator)) {
                 $defaultTranslator->setOptions($defaultTranslatorOptions);
                 Zend_Validate_Abstract::setDefaultTranslator($defaultTranslator);
             }
         } else {
         }
     }
     return $send;
 }
예제 #21
0
 protected function _initTranslate()
 {
     $translator = new Zend_Translate(array('adapter' => 'array', 'content' => '../library/Numenor/Form/Translate', 'locale' => 'pt_BR', 'scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
예제 #22
0
 /**
  * Initialize the translation system
  *
  * @return void
  */
 protected function _initTranslator()
 {
     $this->bootstrap('Locale');
     //Extract some info from the request
     $lang = Zend_Registry::get('Zend_Locale')->getLanguage();
     $translationFile = ROOT_PATH . '/library/App/Translations/' . $lang . '.mo';
     //Check if the translations file is available, if not fallback default to english
     if (!file_exists($translationFile)) {
         $translationFile = APPLICATION_PATH . '/modules/' . CURRENT_MODULE . '/translations/en.mo';
     }
     $options = array('adapter' => 'gettext', 'content' => $translationFile, 'locale' => $lang, 'disableNotices' => App_DI_Container::get('ConfigObject')->translations->disable_notices, 'logMessage' => "Missing translation: %message%", 'logUntranslated' => App_DI_Container::get('ConfigObject')->translations->log_missing_translations);
     //Create a zend_log for missing translations
     if (App_DI_Container::get('ConfigObject')->translations->log_missing_translations) {
         $pathLog = ROOT_PATH . '/logs/' . CURRENT_MODULE . '/missing_translations/' . date('Ymd') . '_' . $lang . '.log';
         $writer = new Zend_Log_Writer_Stream($pathLog);
         $logger = new Zend_Log($writer);
         $options['log'] = $logger;
     }
     $translate = new Zend_Translate($options);
     Zend_Registry::set('Zend_Translate', $translate);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Zend_Form::setDefaultTranslator($translate);
 }
예제 #23
0
 /**
  * @group ZF-11831
  */
 public function testElementsOfSubFormReceiveCorrectDefaultTranslator()
 {
     // Global default translator
     $trDefault = new Zend_Translate(array('adapter' => 'array', 'content' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'Default'), 'locale' => 'en'));
     Zend_Registry::set('Zend_Translate', $trDefault);
     // Translator to use for elements
     $trElement = new Zend_Translate(array('adapter' => 'array', 'content' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'Element'), 'locale' => 'en'));
     Zend_Validate_Abstract::setDefaultTranslator($trElement);
     // Change the form's translator
     $form = new Zend_Form();
     $form->addElement(new Zend_Form_Element_Text('foo', array('required' => true, 'validators' => array('NotEmpty'))));
     // Create a subform with it's own validator
     $sf1 = new Zend_Form_SubForm();
     $sf1->addElement(new Zend_Form_Element_Text('foosub', array('required' => true, 'validators' => array('NotEmpty'))));
     $form->addSubForm($sf1, 'Test1');
     $form->isValid(array());
     $messages = $form->getMessages();
     $this->assertEquals('Element', @$messages['foo'][Zend_Validate_NotEmpty::IS_EMPTY], 'Form element received wrong validator');
     $this->assertEquals('Element', @$messages['Test1']['foosub'][Zend_Validate_NotEmpty::IS_EMPTY], 'SubForm element received wrong validator');
 }
예제 #24
0
 /**
  * Translation object setup
  */
 public function setTranslationObject()
 {
     // set language
     if (isset($this->requestLang)) {
         $lg = $this->requestLang;
     } else {
         $lg = $this->config->general->lang;
     }
     if ($lg == '' || !$lg) {
         $lg = 'en';
     }
     $this->registry->set('language', $lg);
     $translate = new Zend_Translate('csv', $this->corePath . '/application/language/en.csv', $this->config->general->lang);
     $translate->setLocale($this->config->general->locale);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Zend_Form::setDefaultTranslator($translate);
     $this->registry->set('Zend_Translate', $translate);
     $path1 = $this->corePath . '/application/language/';
     $path2 = Sydney_Tools::getLocalPath() . '/application/language/';
     // general global translations
     if (is_dir($path1) && file_exists($path1 . $lg . '.csv')) {
         $translate->addTranslation($path1 . $lg . '.csv', $lg);
     }
     if (is_dir($path2) && file_exists($path2 . $lg . '.csv')) {
         $translate->addTranslation($path2 . $lg . '.csv', $lg);
     }
     // Create a log instance
     if ($this->debugTranslationsNotFound) {
         $writer = new Zend_Log_Writer_Stream(Sydney_Tools_Paths::getLogPath() . '/' . $lg . '-translation-notfound.log');
         $log = new Zend_Log($writer);
         // Attach it to the translation instance
         $translate->setOptions(array('log' => $log, 'logUntranslated' => $this->config->general->env != 'PROD'));
     }
 }
예제 #25
0
 protected function _initTranslate()
 {
     $language = 'pl';
     $translator = new Zend_Translate(array('adapter' => 'array', 'content' => APPLICATION_PATH . '/resources/languages/', 'locale' => $language, 'scan' => Zend_Translate::LOCALE_DIRECTORY));
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
 /**
  * @group ZF-9275
  */
 public function testZendValidateDefaultTranslatorOverridesZendTranslateDefaultTranslator()
 {
     $translate = new Zend_Translate('array', array('isEmpty' => 'translate'));
     Zend_Registry::set('Zend_Translate', $translate);
     $translateValidate = new Zend_Translate('array', array('isEmpty' => 'validate'));
     Zend_Validate_Abstract::setDefaultTranslator($translateValidate);
     $this->form->addElement('text', 'foo', array('required' => 1));
     $this->form->isValid(array());
     $this->assertSame(array('isEmpty' => 'validate'), $this->form->foo->getMessages());
 }
예제 #27
0
 protected function _initTranslate()
 {
     // If in development, log untranslated messages
     $params = array('scan' => Zend_Translate_Adapter::LOCALE_FILENAME, 'logUntranslated' => true);
     $log = new Zend_Log();
     if (APPLICATION_ENV == 'development') {
         $log = new Zend_Log();
         $log->addWriter(new Zend_Log_Writer_Firebug());
     } else {
         $log->addWriter(new Zend_Log_Writer_Null());
     }
     $params['log'] = $log;
     $translate = new Zend_Translate('Csv', APPLICATION_PATH . '/install/languages', null, $params);
     Zend_Registry::set('Zend_Translate', $translate);
     Zend_Validate_Abstract::setDefaultTranslator($translate);
     Engine_Sanity::setDefaultTranslator($translate);
     Zend_Registry::set('Locale', new Zend_Locale());
     return $translate;
 }
예제 #28
0
파일: ElementTest.php 프로젝트: netvlies/zf
 /**
  * @group ZF-9275
  */
 public function testValidatorsDefaultTranslatorDoesntOverrideFormsDefaultTranslator()
 {
     $formTranslations = array('alphaInvalid' => 'Form message');
     $formTranslate = new Zend_Translate('array', $formTranslations);
     Zend_Form::setDefaultTranslator($formTranslate);
     $validatorTranslations = array('alphaInvalid' => 'Validator message');
     $validatorTranslate = new Zend_Translate('array', $validatorTranslations);
     Zend_Validate_Abstract::setDefaultTranslator($validatorTranslate);
     // the default validate translator should beat the registry one
     $this->element->addValidator('Alpha');
     $this->assertFalse($this->element->isValid(123));
     $messages = $this->element->getMessages();
     $this->assertEquals('Form message', $messages['alphaInvalid']);
 }
예제 #29
0
 /**
  * Sets a default translation object for all validation objects
  *
  * @param Zend_Translate|Zend_Translate_Adapter|null $translator
  */
 public static function setDefaultTranslator($translator = null)
 {
     require_once 'Zend/Validate/Abstract.php';
     Zend_Validate_Abstract::setDefaultTranslator($translator);
 }
예제 #30
0
<?php

//Путь для автоподгрузки классов
set_include_path(get_include_path() . PATH_SEPARATOR . ABS_PATH . '/classes/');
// Перевод сообщений об ошибках заполнения форм Zend_Form
$translateValidators = array(Zend_Validate_Alnum::NOT_ALNUM => 'Введенное значение неправильное. Разрешены только латинские символы и цифры', Zend_Validate_Alnum::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста', Zend_Validate_Alpha::NOT_ALPHA => 'Введите в это поле только латинские символы', Zend_Validate_Alpha::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста', Zend_Validate_Between::NOT_BETWEEN => 'Значение должно быть в диапазоне между "%min%" и "%max%"', Zend_Validate_Between::NOT_BETWEEN_STRICT => 'Значение не находится строго между "%min%" и "%max%"', Zend_Validate_Ccnum::LENGTH => 'Значение должно быть численным значением от 13 до 19 цифр длинной', Zend_Validate_Ccnum::CHECKSUM => 'Подсчёт контрольной суммы неудался. Значение неверно', Zend_Validate_Date::INVALID => 'Неверная дата', Zend_Validate_Date::FALSEFORMAT => 'Значение не подходит по формату', Zend_Validate_Digits::NOT_DIGITS => 'Значение неправильное. Введите только цифры', Zend_Validate_Digits::STRING_EMPTY => 'Поле не может быть пустым. Заполните его, пожалуйста', Zend_Validate_EmailAddress::INVALID => 'Неправильный адрес електронной почты. Введите его в формате имя@домен', Zend_Validate_EmailAddress::INVALID_FORMAT => "Адрес электронной почты должен содержать @, точку и, минимум, два символа после точки.", Zend_Validate_EmailAddress::INVALID_HOSTNAME => '"%hostname%" неверный домен для адреса "%value%"', Zend_Validate_EmailAddress::INVALID_MX_RECORD => 'Домен "%hostname%" не имеет MX-записи об адресе "%value%"', Zend_Validate_EmailAddress::DOT_ATOM => '"%localPart%" не соответствует формату dot-atom', Zend_Validate_EmailAddress::QUOTED_STRING => '"%localPart%" не соответствует формату указанной строки', Zend_Validate_EmailAddress::INVALID_LOCAL_PART => '"%localPart%" не правильное имя для адреса, вводите адрес вида имя@домен', Zend_Validate_Float::NOT_FLOAT => 'Значение не является дробным числом', Zend_Validate_GreaterThan::NOT_GREATER => 'Значение не превышает "%min%"', Zend_Validate_Hex::NOT_HEX => 'Значение содержит в себе не только шестнадцатеричные символы', Zend_Validate_Hostname::IP_ADDRESS_NOT_ALLOWED => '"%value%" - это IP-адрес, но IP-адреса не разрешены ', Zend_Validate_Hostname::UNKNOWN_TLD => '"%value%" - это DNS имя хоста, но оно не дожно быть из TLD-списка', Zend_Validate_Hostname::INVALID_DASH => '"%value%" - это DNS имя хоста, но знак "-" находится в неправильном месте', Zend_Validate_Hostname::INVALID_HOSTNAME_SCHEMA => '"%value%" - это DNS имя хоста, но оно не соответствует TLD для TLD "%tld%"', Zend_Validate_Hostname::UNDECIPHERABLE_TLD => '"%value%" - это DNS имя хоста. Не удаётся извлечь TLD часть', Zend_Validate_Hostname::INVALID_HOSTNAME => '"%value%" - не соответствует ожидаемой структуре для DNS имени хоста', Zend_Validate_Hostname::INVALID_LOCAL_NAME => '"%value%" - адрес является недопустимым локальным сетевым адресом', Zend_Validate_Hostname::LOCAL_NAME_NOT_ALLOWED => '"%value%" - адрес является сетевым расположением, но локальные сетевые адреса не разрешены', Zend_Validate_Identical::NOT_SAME => 'Значения не совпадают', Zend_Validate_Identical::MISSING_TOKEN => 'Не было введено значения для проверки на идентичность', Zend_Validate_InArray::NOT_IN_ARRAY => 'Значение не найдено в перечисленных допустимых значениях', Zend_Validate_Int::NOT_INT => 'Значение не является целочисленным значением', Zend_Validate_Ip::NOT_IP_ADDRESS => 'Значение не является правильным IP-адресом', Zend_Validate_LessThan::NOT_LESS => 'Значение не меньше, чем "%max%"', Zend_Validate_NotEmpty::IS_EMPTY => 'Введённое значение пустое, заполните поле, пожалуйста', Zend_Validate_StringLength::TOO_SHORT => 'Длина введённого значения, меньше чем %min% симв.', Zend_Validate_StringLength::TOO_LONG => 'Длина введённого значения не должна быть больше чем %max% символов');
$translator = new Zend_Translate('Zend_Translate_Adapter_Array', $translateValidators);
Zend_Validate_Abstract::setDefaultTranslator($translator);
class Form_View extends Zend_Form
{
    protected $viewScriptPrefixPath = 'classes/Form/Templates';
    protected $_idSuffix = null;
    protected $_idPreffix = null;
    public function __construct($options = null)
    {
        parent::__construct($options);
        $view = new Zend_View();
        $view->setScriptPath($_SERVER['DOCUMENT_ROOT']);
        $this->setView($view);
        //Где ищем кастомные фильтры
        $this->addElementPrefixPath('Form_Filter', 'Form/Filter', 'filter');
        //Где ищем кастомные валидаторы
        $this->addElementPrefixPath('Form_Validate', 'Form/Validate', 'validate');
        //По умолчанию для элементов ставим преффикс ID - имя класса объекта
        $this->setDefaultIdPreffix();
    }
    public function loadDefaultDecorators()
    {
        $this->setDecorators(array('FormElements', 'Form'));
        $this->setSubFormDecorators(array('FormElements'));
    }