예제 #1
0
 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);
     }
 }
예제 #2
0
 /**
  * This helper returns the admin language
  *
  * @return string
  */
 public function getAdminLanguage()
 {
     return Digitalus_Language::getAdminLanguage();
 }
예제 #3
0
 /**
  * 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;
 }