public function _initFormErrorMessages() { Zend_Form::setDefaultTranslator( new Zend_Translate( 'array', APPLICATION_PATH. '/translations/forms.php', 'pl' ) ); }
/** */ public function preDispatch(Zend_Controller_Request_Abstract $request) { switch ($request->getModuleName()) { case 'default': Zend_Form::setDefaultTranslator(Zend_Registry::get('Zend_Translate')); break; } }
/** * Sets the application locale and translation based on the locale param, if * one is not provided it defaults to english * * @param Zend_Controller_Request_Abstract $request * @return Void */ public function routeShutdown(Zend_Controller_Request_Abstract $request) { $config = Zend_Registry::get('config'); $frontController = Zend_Controller_Front::getInstance(); $params = $request->getParams(); $registry = Zend_Registry::getInstance(); // Steps setting the locale. // 1. Default language is set in config // 2. TLD in host header // 3. Locale params specified in request $locale = $registry->get('Zend_Locale'); // Check host header TLD. $tld = preg_replace('/^.*\\./', '', $request->getHeader('Host')); // Provide a list of tld's and their corresponding default languages $tldLocales = $frontController->getParam('tldLocales'); if (is_array($tldLocales) && array_key_exists($tld, $tldLocales)) { // The TLD in the request matches one of our specified TLD -> Locales $locale->setLocale(strtolower($tldLocales[$tld])); } elseif (isset($params['locale'])) { // There is a locale specified in the request params. $locale->setLocale(strtolower($params['locale'])); } // Now that our locale is set, let's check which language has been selected // and try to load a translation file for it. $language = $locale->getLanguage(); $translate = Garp_I18n::getTranslateByLocale($locale); Zend_Registry::set('Zend_Translate', $translate); Zend_Form::setDefaultTranslator($translate); if (!$config->resources->router->locale->enabled) { return; } $path = '/' . ltrim($request->getPathInfo(), '/\\'); // If the language is in the path, then we will want to set the baseUrl // to the specified language. $langIsInUrl = preg_match('/^\\/' . $language . '\\/?/', $path); $uiDefaultLangIsInUrl = false; $uiDefaultLanguage = false; if (isset($config->resources->locale->uiDefault)) { $uiDefaultLanguage = $config->resources->locale->uiDefault; $uiDefaultLangIsInUrl = preg_match('/^\\/' . $uiDefaultLanguage . '\\/?/', $path); } if ($langIsInUrl || $uiDefaultLangIsInUrl) { if ($uiDefaultLangIsInUrl) { $frontController->setBaseUrl($frontController->getBaseUrl() . '/' . $uiDefaultLanguage); } else { $frontController->setBaseUrl($frontController->getBaseUrl() . '/' . $language); } } elseif (!empty($config->resources->router->locale->enabled) && $config->resources->router->locale->enabled) { $redirectUrl = '/' . $language . $path; if ($frontController->getRouter()->getCurrentRouteName() === 'admin' && !empty($config->resources->locale->adminDefault)) { $adminDefaultLanguage = $config->resources->locale->adminDefault; $redirectUrl = '/' . $adminDefaultLanguage . $path; } elseif ($uiDefaultLanguage) { $redirectUrl = '/' . $uiDefaultLanguage . $path; } $this->getResponse()->setRedirect($redirectUrl, 301); } }
protected function _setupTranslation() { if (self::getDefaultTranslator()) { return; } $path = dirname(dirname(dirname(__FILE__))) . '/translate/forms.php'; $translate = new Zend_Translate('array', $path, 'en'); Zend_Form::setDefaultTranslator($translate); }
/** @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); }
public function init() { //initialization function $this->locale = Zend_Registry::get('Zend_Locale'); $this->view->translate = Zend_Registry::get('Zend_Translate'); Zend_Form::setDefaultTranslator($this->view->translate); $this->lobjform = new App_Form_Search(); //local object for Search Form $this->lobjschemesetupmodel = new Reports_Model_DbTable_Mhssetup(); $this->gobjsessionsis = Zend_Registry::get('sis'); }
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); }
protected function _initTranslator() { $session = Zend_Registry::get('session'); Zend_Locale::setDefault('en'); $locale = isset($session->locale) ? $session->locale : new Zend_Locale(Zend_Locale::ZFDEFAULT); Zend_Registry::set('Zend_Locale', $locale); $session->locale = $locale; $translator = new Zend_Translate(array('adapter' => 'array', 'content' => INSTALL_PATH . DIRECTORY_SEPARATOR . 'system/languages/', 'scan' => Zend_Translate::LOCALE_FILENAME, 'locale' => $locale->getLanguage(), 'ignore' => array('.'), 'route' => array('fr' => 'en', 'it' => 'en', 'de' => 'en'))); Zend_Form::setDefaultTranslator($translator); Zend_Registry::set('Zend_Translate', $translator); Zend_Registry::set('session', $session); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { // Die CSV-Dateien laden $translate = new Zend_Translate('csv', '../application/config/lang.de.csv', 'de'); $translate->addTranslation('../application/config/lang.en.csv', 'en'); // sprache einstellen $translate->setLocale('de'); // translateobjekt in der registry speichern $registry = Zend_Registry::getInstance(); $registry->set('translate', $translate); // für alle Formular der Klasse Zend_Form das standard translate objekt setzen Zend_Form::setDefaultTranslator($translate); }
public function _initLocale() { $config = $this->getOptions(); try { $locale = new Zend_Locale(Zend_Locale::BROWSER); } catch (Zend_Locale_Exception $e) { $locale = new Zend_Locale($config['resources']['locale']['default']); } Zend_Registry::set('Zend_Locale', $locale); $translator = new Zend_Translate(array('adapter' => 'Csv', 'content' => APPLICATION_PATH . '/../data/lang/', 'scan' => Zend_Translate::LOCALE_DIRECTORY, 'delimiter' => ',', 'disableNotices' => true)); if (!$translator->isAvailable($locale->getLanguage())) { $translator->setLocale($config['resources']['locale']['default']); } Zend_Registry::set('Zend_Translate', $translator); Zend_Form::setDefaultTranslator($translator); }
function init() { Zend_Registry::set('languages', array('en' => 'English', 'es' => 'Español', 'ca' => 'Català', 'gl' => 'Galego', 'eu' => 'Euskara', 'nl' => 'Nederlands', 'de' => 'Deutsch', 'fr' => 'Français', 'pt' => 'Português', 'it' => 'Italiano')); $activelangs = array('en' => 0, 'es' => 0, 'ca' => 1, 'gl' => 1, 'eu' => 1, 'nl' => 1, 'de' => 1, 'fr' => 1, 'pt' => 1, 'it' => 1); Zend_Registry::set('activelangs', $activelangs); $this->lang = $this->getRequest()->getParam("language"); if ($this->lang == null) { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $this->lang = $auth->getIdentity()->lang; } } if ($this->lang == null && isset($_COOKIE['lang'])) { $this->lang = $_COOKIE['lang']; } $locale = new Zend_Locale(); // El setLocale del Zend está malito... // uso también el nativo de php $locale->setLocale($this->lang . '_' . strtoupper($this->lang) . '.utf8'); setlocale(LC_ALL, $this->lang . '_' . strtoupper($this->lang) . '.utf8'); if (!isset($activelangs[$locale->getLanguage()])) { $locale->setLocale('es_ES.utf8'); } $this->lang = $locale->getLanguage(); $this->langtest = $activelangs[$this->lang] == 1; $options = array('scan' => Zend_Translate::LOCALE_FILENAME); $translate = new Zend_Translate('csv', APPLICATION_PATH . '/languages/', $this->lang, $options); if ($translate->isAvailable($this->lang)) { $translate->setLocale($locale); Zend_Form::setDefaultTranslator($translate); Zend_Registry::set('Zend_Translate', $translate); } else { header('Location: /es'); exit; } if ($this->langtest && (!isset($_COOKIE['langtest']) || $_COOKIE['langtest'] != "0")) { $controller = $this->getActionController(); if (isset($controller->view)) { $controller->view->extra .= " advices"; if (!$controller->view->advices) { $controller->view->advices = array(); } $controller->view->advices["langtest"] = $controller->view->translate("BetaTranslation", "/{$this->lang}/page/translate?lang={$this->lang}"); $controller->view->headScript()->appendFile('/js/jquery.advice.js'); } } }
/** * 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); }
/** * This is where we set up the locale and set the translation adapters * @deprecate this could be set in the site.ini using resoruces * @return void */ protected function _initLocale() { //this is the locale try { $locale = new Zend_Locale(Zend_Locale::BROWSER); } catch (Zend_Locale_Exception $e) { $locale = new Zend_Locale('en_US'); } Zend_Locale::setDefault($locale); // here we define the translator $translatePath = APPLICATION_PATH . '/languages/translate.xml'; $options = array('log' => Zend_Registry::get('logger'), 'disableNotices' => false, 'logMessage' => "Untranslated message within '%locale%': %message% : %word%"); $translate = new Zend_Translate('tmx', $translatePath, $locale, $options); // hwere we add the translator to the registry Zend_Registry::set('translate', $translate); // here we set all forms attached to the translator // this will translate everything on the form Zend_Form::setDefaultTranslator($translate); }
public function __construct($app) { parent::__construct($app); date_default_timezone_set('America/Lima'); $this->bootstrap('multidb'); /* ejecuta un recurso */ $db = $this->getPluginResource('multidb')->getDb('db'); /* obtiene los datos del recurso */ Zend_Db_Table::setDefaultAdapter($db); /* registra el adaptador */ Zend_Registry::set('db', $db); /*registra la clase adaptadora*/ Zend_Form::setDefaultTranslator(new Zend_Translate('array', APPLICATION_PATH . '/configs/lang/es.php', 'es')); $this->getResourceLoader()->addResourceType('entity', 'entitys/', 'Entity'); $this->getResourceLoader()->addResourceType('service', 'services/', 'Service'); $response = new Zend_Controller_Response_Http(); $response->setHeader('Content-Type', 'text/html; charset=utf-8')->setHeader('Accept-Encoding', 'gzip, deflate')->setHeader('Expires', 'max-age=' . 20, true)->setHeader('Cache-Control', 'private', 'must-revalidate')->setHeader('Pragma', 'no-cache', true); $response->sendResponse(); }
/** * Sets the application locale and translation based on the lang param. * * If a lang param is not provided, it will default to english. * * @param Zend_Controller_Request_Abstract $request */ public function routeShutdown(Zend_Controller_Request_Abstract $request) { $registry = Zend_Registry::getInstance(); $locale = $registry->get('Zend_Locale'); $translate = $registry->get('Zend_Translate'); $params = $this->getRequest()->getParams(); $localeParam = isset($params['lang']) ? $param['lang'] : false; if (false === $localeParam) { $localeParam = $locale->getLanguage(); } if (!$translate->isAvailable($localeParam)) { $localeParam = 'en'; $this->getRequest()->setParam('lang', 'en'); } $locale->setLocale($localeParam); $translate->setLocale($locale); Zend_Form::setDefaultTranslator($translate); setcookie('lang', $locale->getLanguage(), null, '/'); }
public function init() { Zend_Loader::loadClass('Zend_Validate_Regex'); Zend_Loader::loadClass('Zend_Validate_EmailAddress'); // translate $this->translate = Zend_Registry::get('translate'); Zend_Form::setDefaultTranslator(Zend_Registry::get('translate')); $this->setMethod('post'); $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forgot-password.phtml')))); /* * username */ $login = $this->createElement('text', 'login', array('decorators' => $this->elDecorators, 'required' => true, 'label' => $this->translate->_('Username'), 'size' => 25, 'maxlength' => 50)); $login->addDecorator('FormElements', array('tag' => 'div', 'style' => 'width:10em; background-color:#E0F0FF;')); $login_validator = new Zend_Validate_Regex('/^[a-z0-9\\-_@\\.]+$/i'); $login_validator->setMessage($this->translate->_('Login characters incorrect. Allowed: alphabetical characters, digits, and "- . _ @" characters.')); $login->addValidator($login_validator)->addValidator('stringLength', false, array(1, 50))->setRequired(true); /* * email */ $email = $this->createElement('text', 'email', array('decorators' => $this->elDecorators, 'required' => true, 'label' => $this->translate->_('Email'), 'size' => 25, 'maxlength' => 50)); $email->addDecorator('FormElements', array('tag' => 'div', 'style' => 'width:10em; background-color:#E0F0FF;')); $email_validator = new Zend_Validate_Regex('/^(.+)@([^@]+)$/'); // $email_validator = new Zend_Validate_EmailAddress(); $email_validator->setMessage($this->translate->_('Email address incorrect.')); $email->addValidator($email_validator)->setRequired(true); /* * submit */ $submit = $this->createElement('submit', 'submit', array('decorators' => array('ViewHelper', 'Errors'), 'class' => 'forgot-btn', 'id' => 'submit', 'label' => $this->translate->_('Submit new password'))); /* * create captcha */ $captcha = $this->createElement('captcha', 'captcha', array('label' => $this->translate->_('Type the characters:'), 'captcha' => array('captcha' => 'Figlet', 'wordLen' => 5, 'timeout' => 120))); // And finally add some CSRF protection $csrf = $this->createElement('hash', 'csrf', array('ignore' => true)); // add elements to form $this->addElement($login)->addElement($email)->addElement($submit)->addElement($captcha)->addElement($csrf); }
public function preDispatch(Zend_Controller_Request_Abstract $request) { //$config = Zend_Registry::get('config'); // Get languages $locale = new Zend_Locale(); $options = array('scan' => Zend_Translate::LOCALE_FILENAME, 'disableNotices' => true); $cache = Zend_Registry::get('cache'); Zend_Translate::setCache($cache); $translate = @new Zend_Translate('tmx', APPLICATION_PATH . '/languages/', 'auto', $options); $params = $this->getRequest()->getParams(); $language = 'en'; /* if(isset($params['language'])) { $language = $params['language']; } if($language == false) { $language = $translate->isAvailable($locale->getLanguage) ? $locale->getLanguage() : $config->language->default; } if(!$translate->isAvailable($language)) { $language = 'en'; //throw new Zend_Controller_Action_Exception('This page does not exist', 404); } */ //else //{ $locale->setLocale($language); $translate->setLocale($locale); Zend_Form::setDefaultTranslator($translate); //setcookie('lang', $locale->getLanguage(), null, '/'); Zend_Registry::set('Zend_Locale', $locale); Zend_Registry::set('Zend_Translate', $translate); Zend_Registry::set('Available_Translations', $translate->getList()); //} }
/** * Sets up the fixture, for example, open a network connection. * This method is called before a test is executed. * * @return void */ public function setUp() { Zend_Registry::_unsetInstance(); Zend_Form::setDefaultTranslator(null); $this->element = new Zend_Form_Element_Submit('foo'); }
/** * 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); }
public function testLocalTranslatorPreferredOverDefaultGlobalTranslator() { $this->assertNull($this->form->getTranslator()); $translatorDefault = new Zend_Translate('array', array()); Zend_Form::setDefaultTranslator($translatorDefault); $received = $this->form->getTranslator(); $this->assertSame($translatorDefault->getAdapter(), $received); $translator = new Zend_Translate('array', array()); $this->form->setTranslator($translator); $received = $this->form->getTranslator(); $this->assertNotSame($translatorDefault->getAdapter(), $received); $this->assertSame($translator->getAdapter(), $received); }
public function setUp() { Zend_Form::setDefaultTranslator(null); $this->form = new Zend_Form_SubForm(); }
/** * 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')); } }
protected function _initTranslation() { $translator = new Zend_Translate(array('adapter' => 'array', 'content' => APPLICATION_PATH . '/../languages/Zend_Validate', 'scan' => Zend_Translate::LOCALE_DIRECTORY)); Zend_Form::setDefaultTranslator($translator); }
protected function _init() { set_include_path(implode(PATH_SEPARATOR, array(SP_LIB_PATH, SP_APP_PATH . DIRECTORY_SEPARATOR . 'modules', get_include_path()))); require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->setFallbackAutoloader(false); $autoloader->registerNamespace('SP_'); $autoloader->registerNamespace('Apache_'); //for solr try { Zend_Session::start(); } catch (Zend_Session_Exception $error) { Zend_Session::writeClose(); Zend_Session::start(); Zend_Session::regenerateId(); trigger_error($error->getMessage()); } self::_setAutoloader(); self::_setConfig(); self::_setView(); self::_setRouter(); self::_setDbAdapter(); self::_setLog(); self::_setCache(); self::_setACL(); self::_setAuthAdapter(); self::_setLayout(); self::_setTranslate(); self::_setActionHelper(); $front = Zend_Controller_Front::getInstance(); $front->setRouter(self::$_router)->addModuleDirectory(SP_APP_PATH . '/modules')->setDefaultModule('default')->setModuleControllerDirectoryName('controllers')->throwExceptions(true)->returnResponse(false)->setDefaultControllerName('Index')->setDefaultAction('index')->setParam('prefixDefaultModule', true)->setParam('noViewRenderer', true)->setParam('useDefaultControllerAlways', false); //register some useful plugins $front->registerPlugin(new SP_Controller_Plugin_AppPlugin()); //set default db table adapter Zend_Db_Table::setDefaultAdapter(self::$_db); //set default translator for Zend_Form Zend_Form::setDefaultTranslator(self::$_translate); }
/** * 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; }
/** * Translations & languages */ protected function _initSetTranslations() { $session = new Zend_Session_Namespace('Default'); $available_languages = array(); // load all php files from languages folder foreach (glob(APPLICATION_PATH . '/languages/*.php') as $file) { unset($data, $init); require_once $file; if (!isset($translate)) { $translate = new Zend_Translate('array', $data, $init['short']); } $translate->addTranslation($data, $init['short']); $available_languages[$init['short']] = $init['name']; } if (empty($available_languages)) { die('Error: language file is missing ' . APPLICATION_PATH . '/languages/*.php'); } // init Zend_Locale $locale = new Zend_Locale(); // set default language from options $default_language = Zend_Registry::get('config')->get('default_language'); if (!in_array($default_language, $translate->getList())) { // in case someone forgot to update settings -> general reset($available_languages); $default_language = key($available_languages); } $translate->setLocale($default_language); $locale->setLocale($default_language); Zend_Registry::set('locale', $default_language); // set current language based on user session if ($session->language && in_array($session->language, $translate->getList())) { $translate->setLocale($session->language); $locale->setLocale($session->language); Zend_Registry::set('locale', $session->language); } // push translator to registry Zend_Registry::set('Zend_Translate', $translate); // push translator to views $this->_view->translate = $translate; // push translator to forms Zend_Form::setDefaultTranslator($translate); // sort default as first & save array for forms $available_languages_sorted = array(); if (isset($available_languages[$default_language])) { $available_languages_sorted = array($default_language => $available_languages[$default_language]); unset($available_languages[$default_language]); } $available_languages_sorted = array_merge($available_languages_sorted, $available_languages); Zend_Registry::set('languages_array', $available_languages_sorted); }
public function testGetTranslatorRetrievesGlobalDefaultWhenAvailable() { $this->testNoTranslatorByDefault(); $translator = new Zend_Translate('array', array('foo' => 'bar')); Zend_Form::setDefaultTranslator($translator); $received = $this->group->getTranslator(); $this->assertSame($translator->getAdapter(), $received); }
public function getTwitterForm($name, $locale = null, $horizontal = true) { $this->getLanguages(); $table = new Formbuilder_Formbuilder(); $id = $table->getIdByName($name); if (is_numeric($id) == true) { if (file_exists(PIMCORE_PLUGINS_PATH . "/Zendformbuilder/data/form/form_" . $id . ".ini")) { $config = new Zend_Config_Ini(PIMCORE_PLUGINS_PATH . "/Zendformbuilder/data/form/form_" . $id . ".ini", 'config'); $trans = $this->translateForm($id, $locale); Zend_Form::setDefaultTranslator($trans); if ($horizontal == true) { $form = new Twitter_Bootstrap_Form_Horizontal($config->form); } else { $form = new Twitter_Bootstrap_Form_Vertical($config->form); } $form->setDisableTranslator(true); if ($locale != null && $locale != "") { $form->setTranslator($trans); } return $form; } else { return false; } } else { return false; } }
/** * @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']); }
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; }