/** * getter for actual site language * * @param string $lang language shortcut * @return Language */ public static function getLanguage($lang = NULL) { $languageRepository = new LanguageRepository(TRUE); $language = NULL; // ak nemame zadany lang if ($lang === NULL) { // zistime ci je prihlaseny user a ci ma nastaveny nejaky jazyk $loggedUser = LoggedUser::whoIsLogged(); if ($loggedUser) { $lang = $loggedUser['language']; if ($lang) { $language = $languageRepository->getOneById($lang); } } // TODO nejaka lokalizacia podla goeip // ak stale nemame jazyk, pozrieme sa do url if (!$language) { $lang = Utils::get('language'); if ($lang) { $language = $languageRepository->getOneByShortcut($lang); } else { // ak nemame zadane nic, vratime anglictinu $language = $languageRepository->getOneByShortcut('sk'); } } if (!$language) { throw new Exception('Language "' . $lang . '" doesn\'t exist.'); } } else { $language = $languageRepository->getOneByShortcut($lang); } return $language; }
/** * Filters the locale and returns the user admin language of the current user, if set. * * @since 3.0.0 * @wp-hook locale * * @param string $locale The current locale. * * @return string The (filtered) locale. */ public function filter_locale($locale) { $user_language = $this->language_repository->get_user_language(); return $user_language ?: (string) $locale; }