protected function _setTranslator($adapter = null) { if (empty($adapter)) { $adapter = Zend_Registry::get('Zend_Translate'); $request = Zend_Controller_Front::getInstance()->getRequest(); $module = $request->getModuleName(); $controller = $request->getControllerName(); // Add translation file depending on current module ('public' or 'admin') if ('public' == $module || 'public' == $controller) { $key = Digitalus_Language::getLanguage(); } else { $key = Digitalus_Language::getAdminLanguage(); } if (!empty($key)) { // Get site config $config = Zend_Registry::get('config'); $languageFiles = $config->language->translations->toArray(); $languagePath = $config->language->path . '/form/' . $languageFiles[$key] . '.form.csv'; if (is_file($languagePath)) { $adapter->addTranslation($languagePath, $key); } } } else { self::setDefaultTranslator($adapter); } }
/** * This helper returns the admin language * * @return string */ public function getAdminLanguage() { return Digitalus_Language::getAdminLanguage(); }
/** * Initialize translations * * @return Zend_Translate */ protected function _initTranslation() { // Get site settings $settings = Zend_Registry::get('siteSettings'); // Get site config $config = Zend_Registry::get('config'); $languageFiles = $config->language->translations->toArray(); // Get cache object $cache = Zend_Registry::get('cache'); Zend_Translate::setCache($cache); $module = $this->_request->getModuleName(); $controller = $this->_request->getControllerName(); // Add translation file depending on current module ('public' or 'admin') if ('public' == $module || 'public' == $controller) { $end = 'front'; $key = Digitalus_Language::getLanguage(); } else { $end = 'back'; $key = Digitalus_Language::getAdminLanguage(); } // always load english translation file $adapter = new Zend_Translate('csv', $csvPath = $config->language->path . '/' . $end . '/' . $languageFiles['en'] . '.' . $end . '.csv', $key, array('disableNotices' => true)); Zend_Registry::set('Zend_Translate', $adapter); $csvPath = $config->language->path . '/' . $end . '/' . $languageFiles[$key] . '.' . $end . '.csv'; if (is_file($csvPath) && 'en' != $key) { $this->_addTranslation($csvPath, $key); } // Module translations (are NOT separated into 'back' and 'front') if ($modules = Digitalus_Module::getModules()) { foreach ($modules as $module) { $this->_addTranslation(APPLICATION_PATH . '/modules/' . $module . '/data/languages/' . $languageFiles[$key] . '.csv', $key); } } return $adapter; }