public function routeShutdown(Zend_Controller_Request_Abstract $request) { $language = $request->getParam("language", Zend_Registry::get('Zend_Locale')->getLanguage()); $locale = new Zend_Locale($language); Zend_Registry::get('Zend_Locale')->setLocale($locale); $translate = Zend_Registry::get('Zend_Translate'); $translate->getAdapter()->setLocale(Zend_Registry::get('Zend_Locale')); Zend_Controller_Router_Route::setDefaultTranslator($translate); }
public function testTranslationAssembleTranslatorStaticOverride() { $translator = new Zend_Translate('array', array('foo' => 'en_baz'), 'en'); Zend_Controller_Router_Route::setDefaultTranslator($translator); $route = new Zend_Controller_Router_Route('foo/@foo'); $url = $route->assemble(); $this->assertEquals('foo/en_baz', $url); }
/** * 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; }
<?php $conf = Zend_Registry::get("conf"); try { // Translation $translateUrl = new Zend_Translate('gettext', APPLICATION_DIRECTORY . '/Joobsbox/Languages/' . $locale . '/LC_MESSAGES/url.mo', $locale, array('disableNotices' => true)); } catch (Exception $e) { $translateUrl = new Zend_Translate('gettext', APPLICATION_DIRECTORY . '/Joobsbox/Languages/en/LC_MESSAGES/url.mo', 'en'); } Zend_Registry::set("Joobsbox_Translate_URL", $translateUrl); Zend_Controller_Router_Route::setDefaultTranslator($translateUrl); $front = Zend_Controller_Front::getInstance(); $router = $front->getRouter(); $rssRoute = new Zend_Controller_Router_Route('rss/@category/:category', array('controller' => 'rss', 'action' => 'index')); $mainRoute = new Zend_Controller_Router_Route(':@controller/:@action/*', array('controller' => 'index', 'action' => 'index')); $mainRoute2 = new Zend_Controller_Router_Route('index.php/:@controller/:@action/*', array('controller' => 'index', 'action' => 'index')); $router->addRoute("main", $mainRoute); $router->addRoute("main2", $mainRoute2); $router->addRoute("rss", $rssRoute); $mainRoute->assemble(array()); $mainRoute->assemble(array()); $mainRoute2->assemble(array()); $mainRoute2->assemble(array()); $front->setRouter($router);
/** * Initializes translator * * @return Zend_Translate_Adapter */ public function _initTranslate() { // Set cache if (isset($this->getContainer()->cache)) { Zend_Translate::setCache($this->getContainer()->cache); } // Get list of supported languages /* $languages = array(); $it = new DirectoryIterator(APPLICATION_PATH_COR . DIRECTORY_SEPARATOR . 'languages'); foreach( $it as $item ) { if( $item->isDot() || !$item->isDir() ) { continue; } $name = $item->getBasename(); if( !Zend_Locale::isLocale($name) ) { continue; } $languages[] = $name; } */ // If in development, log untranslated messages $params = array('scan' => Zend_Translate_Adapter::LOCALE_DIRECTORY, 'logUntranslated' => true); $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; // Check Locale $locale = Zend_Locale::findLocale(); // Make Sure Language Folder Exist $languageFolder = is_dir(APPLICATION_PATH . '/application/languages/' . $locale); if ($languageFolder === false) { $locale = substr($locale, 0, 2); $languageFolder = is_dir(APPLICATION_PATH . '/application/languages/' . $locale); if ($languageFolder == false) { $locale = 'en'; } } // Check which Translation Adapter has been selected $db = Engine_Db_Table::getDefaultAdapter(); $translationAdapter = $db->select()->from('engine4_core_settings', 'value')->where('`name` = ?', 'core.translate.adapter')->query()->fetchColumn(); // If adapter is 'array', Make sure array files exist /* if( $translationAdapter == 'array'){ // Check if Language File Exists if( !file_exists(APPLICATION_PATH . '/application/languages/' . $locale . '/' . $locale . '.php')){ //echo 'Locale does not exist ' . APPLICATION_PATH . '/application/languages/' . $locale . '/' . $locale . '_array.php<br />'; // Try looking elsewhere $newLocale = substr($locale, 0, 2); //echo 'Attempting to Look for ' . $newLocale . '<br />'; if( file_exists(APPLICATION_PATH . '/application/languages/' . $newLocale . '/' . $newLocale . '.php')){ $locale = $newLocale; //echo 'New Locale Found ' . APPLICATION_PATH . '/application/languages/' . $newLocale . '/' . $newLocale . '_array.php<br />'; } else { $translationAdapter = 'csv'; $locale = 'en'; } } } */ // Use Array Translation Adapter, Loop through all Availible Translations if ($translationAdapter == 'array') { // Find all Valid Language Arrays // Check For Array Files $languagePath = APPLICATION_PATH . '/application/languages'; // Get List of Folders $languageFolders = array_filter(glob($languagePath . DIRECTORY_SEPARATOR . '*'), 'is_dir'); // Look inside Folders for PHP array $locale_array = array(); foreach ($languageFolders as $folder) { // Get Locale code $locale_code = str_replace($languagePath . DIRECTORY_SEPARATOR, "", $folder); $locale_array[] = $locale_code; if (!file_exists($folder . DIRECTORY_SEPARATOR . $locale_code . '.php')) { // If Array files do not exist, switch to CSV $translationAdapter = 'csv'; } } $language_count = count($locale_array); // Add the First One $translate = new Zend_Translate(array('adapter' => 'array', 'content' => $languagePath . DIRECTORY_SEPARATOR . $locale_array[0] . DIRECTORY_SEPARATOR . $locale_array[0] . '.php', 'locale' => $locale_array[0])); if ($language_count > 1) { for ($i = 1; $i < $language_count; $i++) { $translate->addTranslation(array('content' => $languagePath . DIRECTORY_SEPARATOR . $locale_array[$i] . DIRECTORY_SEPARATOR . $locale_array[$i] . '.php', 'locale' => $locale_array[$i])); } } /* if( $language_count > 1) { for( $i = 1; $i < $language_count; $i++ ) { $translate->addTranslation( array( 'content' => $languageFolders[$i] . DIRECTORY_SEPARATOR . $locale_array[$i] . '.php', 'locale' => $locale_array[$i] ) ); echo $locale_array[$i] . ' Translation Added<br />'; } } * */ } else { $translate = new Zend_Translate('Csv', APPLICATION_PATH . '/application/languages', null, $params); } Zend_Registry::set('Zend_Translate', $translate); Zend_Validate_Abstract::setDefaultTranslator($translate); Zend_Form::setDefaultTranslator($translate); Zend_Controller_Router_Route::setDefaultTranslator($translate); return $translate; }
/** * Initializes translator * * @return Zend_Translate_Adapter */ public function _initTranslate() { // Create a log instance for untranslated messages //$writer = new Zend_Log_Writer_Firebug(); //$log = new Zend_Log($writer); // Create translate /* $translate = new Engine_Translate(array( //'scan' => Zend_Translate::LOCALE_FILENAME, 'log' => $this->getContainer()->log, //$log, 'logUntranslated' => ( APPLICATION_ENV === 'development' ) )); */ if (isset($this->getContainer()->cache)) { Zend_Translate::setCache($this->getContainer()->cache); } // If in development, log untranslated messages $params = array('scan' => Zend_Translate_Adapter::LOCALE_DIRECTORY, 'logUntranslated' => true); $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; $translate = new Zend_Translate('Csv', APPLICATION_PATH . '/application/languages', null, $params); Zend_Registry::set('Zend_Translate', $translate); Zend_Validate_Abstract::setDefaultTranslator($translate); Zend_Form::setDefaultTranslator($translate); Zend_Controller_Router_Route::setDefaultTranslator($translate); return $translate; }
public function initRoutes() { $config = Zend_Registry::get('config'); $this->_front->setBaseUrl($config->system->web->baseurl); $nl = array('content' => 'inhoud', 'news' => 'nieuws', 'events' => 'kalender', 'doctor' => 'team'); $fr = array('content' => 'contenu', 'news' => 'nouvelles', 'events' => 'kalender', 'doctor' => 'team'); $translator = new Zend_Translate('array', $nl, 'nl'); $translator->addTranslation($fr, 'fr'); $request = $this->getRequest(); $languageTranslator = substr($request->getRequestUri(), 1, 2); $locales = $config->locale->list->toArray(); if (!isset($locales[$languageTranslator])) { $languageTranslator = $config->locale->default; } $translator->setLocale($languageTranslator); Zend_Controller_Router_Route::setDefaultTranslator($translator); $router = $this->_front->getRouter(); $localeRoute = new Zend_Controller_Router_Route(':lng', array('controller' => 'index', 'action' => 'content', 'module' => 'default', 'lng' => 'nl'), array('lng' => '(nl|fr)')); $router->addRoute('locale', $localeRoute); $contentRoute = new Zend_Controller_Router_Route_Regex('(.+)', array('controller' => 'index', 'action' => 'content', 'url' => null), array(1 => 'url'), '%s'); $router->addRoute('content', $localeRoute->chain($contentRoute, '/')); $router->addRoute('events-index', $localeRoute->chain(new Zend_Controller_Router_Route('@events/*', array('controller' => 'events', 'action' => 'index')), '/')); $router->addRoute('events-detail', $localeRoute->chain(new Zend_Controller_Router_Route('@events/:id/:title', array('controller' => 'events', 'action' => 'detail'), array('id' => '\\d+')), '/')); $router->addRoute('contact', $localeRoute->chain(new Zend_Controller_Router_Route('@contact/*', array('controller' => 'contact', 'action' => 'form')), '/')); $router->addRoute('sitemap', $localeRoute->chain(new Zend_Controller_Router_Route('@sitemap/*', array('controller' => 'sitemap', 'action' => 'index')), '/')); $router->addRoute('doctor-index', $localeRoute->chain(new Zend_Controller_Router_Route('@doctor/*', array('controller' => 'doctor', 'action' => 'index')), '/')); $router->addRoute('doctor-detail', $localeRoute->chain(new Zend_Controller_Router_Route('@doctor/:id/:title', array('controller' => 'doctor', 'action' => 'detail'), array('id' => '\\d+')), '/')); $router->addRoute('ajax-captcha', $localeRoute->chain(new Zend_Controller_Router_Route('captcha', array('controller' => 'index', 'action' => 'ajaxcaptcha')), '/')); /* NEWS EXAMPLE */ $router->addRoute('news-index', $localeRoute->chain(new Zend_Controller_Router_Route('@news/*', array('controller' => 'news', 'action' => 'index')), '/')); $router->addRoute('news-detail', $localeRoute->chain(new Zend_Controller_Router_Route('@news/:id/:title', array('controller' => 'news', 'action' => 'detail'), array('id' => '\\d+')), '/')); /* NEWS EXAMPLE END */ $router->addRoute('admin', new Zend_Controller_Router_Route('admin/:controller/:action/*', array('controller' => 'index', 'action' => 'index', 'module' => 'admin'))); $router->addRoute('file-download', new Zend_Controller_Router_Route_Regex('files/(.*)', array('controller' => 'file', 'action' => 'download'), array(1 => 'filename'), 'files%s')); }