Exemple #1
0
 /**
  * @param $id
  * @param bool $create
  * @param bool $returnIdIfEmpty
  * @param null $language
  * @return array
  * @throws \Exception
  * @throws \Zend_Exception
  */
 public static function getByKeyLocalized($id, $create = false, $returnIdIfEmpty = false, $language = null)
 {
     if ($user = Tool\Admin::getCurrentUser()) {
         $language = $user->getLanguage();
     } elseif ($user = Tool\Authentication::authenticateSession()) {
         $language = $user->getLanguage();
     } elseif (\Zend_Registry::isRegistered("Zend_Locale")) {
         $language = (string) \Zend_Registry::get("Zend_Locale");
     }
     if (!in_array($language, Tool\Admin::getLanguages())) {
         $config = \Pimcore\Config::getSystemConfig();
         $language = $config->general->language;
     }
     return self::getByKey($id, $create, $returnIdIfEmpty)->getTranslation($language);
 }
Exemple #2
0
 /**
  * @param $instance
  * @throws \Zend_Exception
  */
 public static function initTranslations($instance)
 {
     $language = "en";
     $locale = $instance->getLanguage();
     if ($locale) {
         $locale = new \Zend_Locale($locale);
         foreach ([(string) $locale, $locale->getLanguage()] as $localeVariant) {
             if (in_array($localeVariant, AdminTool::getLanguages())) {
                 $language = $localeVariant;
                 break;
             }
         }
     }
     //add translations to registry
     $coreLanguageFile = AdminTool::getLanguageFile($language);
     $translator = new \Zend_Translate('Pimcore\\Translate\\Adapter\\Json', $coreLanguageFile, $language);
     $languageFile = AdminTool::getLanguageFile($language);
     $translator->addTranslation($languageFile, $language);
     if (\Zend_Registry::isRegistered("Zend_Locale")) {
         $locale = \Zend_Registry::get("Zend_Locale");
         @$translator->setLocale($locale);
     }
     \Zend_Registry::set("Zend_Translate", $translator);
     if ($instance) {
         $instance->setTranslator($translator);
     }
 }
Exemple #3
0
 /**
  * @param $instance
  * @throws \Zend_Exception
  */
 public static function initTranslations($instance)
 {
     //add translations to registry
     $coreLanguageFile = AdminTool::getLanguageFile("en");
     $translator = new \Zend_Translate('Pimcore\\Translate\\Adapter\\Json', $coreLanguageFile, 'en');
     $availableLanguages = AdminTool::getLanguages();
     foreach ($availableLanguages as $lang) {
         if ($lang != "en") {
             $languageFile = AdminTool::getLanguageFile($lang);
             $translator->addTranslation($languageFile, $lang);
         }
     }
     if (\Zend_Registry::isRegistered("Zend_Locale")) {
         $locale = \Zend_Registry::get("Zend_Locale");
         @$translator->setLocale($locale);
     }
     \Zend_Registry::set("Zend_Translate", $translator);
     if ($instance) {
         $instance->setTranslator($translator);
     }
 }
 /**
  * @param $id
  * @param bool $create
  * @param bool $returnIdIfEmpty
  * @return static
  * @throws \Exception
  * @throws \Zend_Exception
  */
 public static function getByKey($id, $create = false, $returnIdIfEmpty = false)
 {
     $cacheKey = "translation_" . $id;
     if (\Zend_Registry::isRegistered($cacheKey)) {
         return \Zend_Registry::get($cacheKey);
     }
     $translation = new static();
     $idOriginal = $id;
     $id = mb_strtolower($id);
     if ($translation instanceof Model\Translation\Admin) {
         $languages = Tool\Admin::getLanguages();
     } else {
         $languages = Tool::getValidLanguages();
     }
     try {
         $translation->getDao()->getByKey(self::getValidTranslationKey($id));
     } catch (\Exception $e) {
         if (!$create) {
             throw new \Exception($e->getMessage());
         } else {
             $translation->setKey($id);
             $translation->setCreationDate(time());
             $translation->setModificationDate(time());
             $translations = [];
             foreach ($languages as $lang) {
                 $translations[$lang] = "";
             }
             $translation->setTranslations($translations);
             $translation->save();
         }
     }
     if ($returnIdIfEmpty) {
         $translations = $translation->getTranslations();
         foreach ($languages as $language) {
             if (!array_key_exists($language, $translations) || empty($translations[$language])) {
                 $translations[$language] = $idOriginal;
             }
         }
         $translation->setTranslations($translations);
     }
     // add to key cache
     \Zend_Registry::set($cacheKey, $translation);
     return $translation;
 }
 public function getAvailableAdminLanguagesAction()
 {
     $langs = array();
     $availableLanguages = Tool\Admin::getLanguages();
     $locales = Tool::getSupportedLocales();
     foreach ($availableLanguages as $lang) {
         if (array_key_exists($lang, $locales)) {
             $langs[] = array("language" => $lang, "display" => $locales[$lang]);
         }
     }
     $this->_helper->json($langs);
 }
 public function addAdminTranslationKeysAction()
 {
     $this->removeViewRenderer();
     $keys = $this->getParam("keys");
     if ($keys) {
         $availableLanguages = Tool\Admin::getLanguages();
         $data = \Zend_Json_Decoder::decode($keys);
         foreach ($data as $translationData) {
             $t = null;
             // reset
             try {
                 $t = Translation\Admin::getByKey($translationData);
             } catch (\Exception $e) {
                 \Logger::log($e);
             }
             if (!$t instanceof Translation\Admin) {
                 $t = new Translation\Admin();
                 $t->setKey($translationData);
                 $t->setCreationDate(time());
                 $t->setModificationDate(time());
                 foreach ($availableLanguages as $lang) {
                     $t->addTranslation($lang, "");
                 }
                 try {
                     $t->save();
                 } catch (\Exception $e) {
                     \Logger::log($e);
                 }
             }
         }
     }
 }
 public function installAdminTranslations()
 {
     $csv = PIMCORE_PLUGINS_PATH . '/Toolbox/install/translations/data.csv';
     Admin::importTranslationsFromFile($csv, true, \Pimcore\Tool\Admin::getLanguages());
 }