public function setVisitorLanguage($languageId) { $languages = XenForo_Application::isRegistered('languages') ? XenForo_Application::get('languages') : XenForo_Model::create('XenForo_Model_Language')->getAllLanguagesForCache(); if ($languageId && !empty($languages[$languageId])) { $language = $languages[$languageId]; } else { $defaultLanguageId = XenForo_Application::get('options')->defaultLanguageId; if (!empty($languages[$defaultLanguageId])) { $language = $languages[$defaultLanguageId]; } else { $language = reset($languages); } } if (!$language) { return; // this probably shouldn't happen } if (empty($language['phrase_cache'])) { $language['phrase_cache'] = array(); } $this->_language = $language; XenForo_Phrase::setLanguageId($language['language_id']); XenForo_Phrase::setPhrases($language['phrase_cache']); XenForo_Locale::setDefaultLanguage($language); }