/** * @param $id * @param array $parameters * @param string $domain * @param null $locale * @return string */ function t($id, array $parameters = array(), $domain = 'messages', $locale = null) { if ($translator = Translator::getInstance()) { return Translator::getInstance()->trans($id, $parameters, $domain, $locale); } return $id; }
/** * factory Translator object * @return null|Translator */ public static function getInstance() { $i18nCfg = ConfigHandler::get('i18n'); if (!$i18nCfg['enable']) { return null; } if (null == static::$_instance) { $translator = new Translator($i18nCfg['default_locale'], new MessageSelector()); $translator->setFallbackLocales($i18nCfg['default_fallback']); $translator->addLoader('array', new ArrayLoader()); //add init resource if (isset($i18nCfg['resource']) && is_array($i18nCfg['resource'])) { foreach ($i18nCfg['resource'] as $locale => $files) { for ($i = 0, $size = sizeof($files); $i < $size; ++$i) { $translator->addResourceFromFile($files[$i], $locale); } } } static::$_instance = $translator; } return static::$_instance; }
/** * load languages */ private function _loadLanguage() { $i18nCfg = ConfigHandler::get('i18n'); if (!$i18nCfg['enable']) { return null; } $current_lang_code = $this->get('lang'); if (!$current_lang_code) { $current_lang_code = Factory::getCookie()->read('language'); } if (!$current_lang_code) { $this->currentLang = \Languages::retrieveByDefault(1); $current_lang_code = $this->currentLang->getLangCode(); } else { $this->currentLang = \Languages::retrieveByLangCode($current_lang_code); } if ($current_lang_code) { Factory::getCookie()->write('language', $current_lang_code); } //load message $translator = Translator::getInstance(); $translator->setLocale($current_lang_code); if ($translator) { $translator->addLoader('yml', new YamlFileLoader()); if (isset($i18nCfg['resource']) && is_array($i18nCfg['resource'])) { foreach ($i18nCfg['resource'] as $locale => $files) { for ($i = 0, $size = sizeof($files); $i < $size; ++$i) { $fileInfo = new \SplFileInfo($files[$i]); $filename = $fileInfo->getFilename(); $ext = $fileInfo->getExtension(); if ($ext == 'yml') { $domain = str_replace('.' . $fileInfo->getExtension(), '', $fileInfo->getFilename()); $translator->addResource('yml', $files[$i], $locale, $domain); } } } } } }
/** * * @deprecated since 1.1 to be removed in 1.2. Use \Flywheel\Translation\Translator::getInstance() instead. * * @return null|Translator */ public static function getTranslator() { return \Flywheel\Translation\Translator::getInstance(); }
protected function _initLanguages() { $this->languages = \Languages::findByPublished(true); if (sizeof($this->languages) < 2) { $this->currentLang = $this->languages[0]; return; } $currentLangCode = $this->request()->get('lang'); if (!$currentLangCode) { $currentLangCode = Factory::getCookie()->read('lang'); } if (!$currentLangCode) { $this->currentLang = \Languages::findOneByDefault(true); $currentLangCode = $this->currentLang->getLangCode(); } Factory::getCookie()->write('lang', $currentLangCode); if (Factory::getRouter()->getUrl() == '/' && !$this->request()->get('lang')) { $this->redirect($currentLangCode); } if (!$this->currentLang) { $this->currentLang = \Languages::findOneByLangCode($currentLangCode); } $translator = Translator::getInstance(); $translator->setLocale($currentLangCode); Cms::$currentLang = $this->currentLang; }