Example #1
0
 public function translate($key)
 {
     $translated = $key;
     if ($key) {
         $locale = $_REQUEST["systemLocale"];
         if ($locale) {
             try {
                 $translation = Translation_Admin::getByKey($key);
             } catch (Exception $e) {
             }
             if ($translation instanceof Translation_Admin) {
                 if ($translation->getTranslation($locale)) {
                     $translated = $translation->getTranslation($locale);
                 } else {
                     if (PIMCORE_DEBUG) {
                         $translated = "+" . $key . "+";
                     }
                 }
             } else {
                 $t = new Translation_Admin();
                 $availableLanguages = Pimcore_Tool_Admin::getLanguages();
                 $t->setKey($key);
                 $t->setDate(time());
                 foreach ($availableLanguages as $lang) {
                     $t->addTranslation($lang, "");
                 }
                 try {
                     $t->save();
                 } catch (Exception $e) {
                     Logger::debug(get_class($this), ": could not save new translation for key [ {$key} ]");
                 }
             }
         }
     }
     return $translated;
 }
Example #2
0
 public static function initTranslations($instance)
 {
     //add translations to registry
     $coreLanguageFile = Pimcore_Tool_Admin::getLanguageFile("en");
     $translator = new Zend_Translate('csv', $coreLanguageFile, 'en', array('delimiter' => ','));
     $availableLanguages = Pimcore_Tool_Admin::getLanguages();
     foreach ($availableLanguages as $lang) {
         if ($lang != "en") {
             $languageFile = Pimcore_Tool_Admin::getLanguageFile($lang);
             $translator->addTranslation($languageFile, $lang);
         }
     }
     if (Zend_Registry::isRegistered("Zend_Locale")) {
         $locale = Zend_Registry::get("Zend_Locale");
         @$translator->setLocale($locale->getLanguage());
     }
     Zend_Registry::set("Zend_Translate", $translator);
     if ($instance) {
         $instance->setTranslator($translator);
     }
 }
Example #3
0
 public function getAvailableAdminLanguagesAction()
 {
     $langs = array();
     $availableLanguages = Pimcore_Tool_Admin::getLanguages();
     foreach ($availableLanguages as $lang) {
         $langs[] = array("language" => $lang, "display" => Zend_Locale::getTranslation($lang, 'language', $lang));
     }
     $this->_helper->json($langs);
 }
Example #4
0
 /**
  * Download language files for a specific language for pimcore core and all plugins or
  * download language files for all existing system languages for pimcore core and plugins if parameter is null
  * @static
  * @param  $language
  * @return bool
  */
 public static function downloadLanguage($lang = null)
 {
     $languages = Pimcore_Tool_Admin::getLanguages();
     if (!empty($lang)) {
         $languages = array($lang);
     } else {
         //omit core language
         $additonalLanguages = array();
         foreach ($languages as $lang) {
             if ($lang != "en") {
                 $additonalLanguages[] = $lang;
             }
         }
         $languages = $additonalLanguages;
     }
     //directory for additional languages
     $langDir = PIMCORE_WEBSITE_PATH . "/var/config/texts";
     if (!is_dir($langDir)) {
         mkdir($langDir, 0755, true);
     }
     $success = is_dir($langDir);
     if ($success) {
         if (is_array($languages)) {
             foreach ($languages as $language) {
                 //TODO: remove hard coded
                 $src = "http://www.pimcore.org/?controller=translation&action=download&language=" . $language;
                 $data = Pimcore_Tool::getHttpData($src);
                 if (!empty($language) and !empty($data)) {
                     try {
                         $languageFile = $langDir . "/" . $language . ".csv";
                         $fh = fopen($languageFile, 'w');
                         fwrite($fh, $data);
                         fclose($fh);
                     } catch (Exception $e) {
                         Logger::error("could not download language file");
                         Logger::error($e);
                         $success = false;
                     }
                 }
             }
         }
     } else {
         Logger::warning("Pimcore_Update: Could not create language dir [  {$langDir} ]");
     }
     return $success;
 }