/** * Choose the language the site is currently on. * If $_GET['locale'] is set, then it will use that language, and store it in the session. * Otherwise it checks the session for a possible stored language, either from namespace to the site_mode * ('site' or 'cms'), or for a 'global' language setting. * The final option is the member preference. * * @todo Re-implement cookie and member option * * @uses Director::get_site_mode() * @param $langsAvailable array A numerical array of languages which are valid choices (optional) * @return string Selected language (also saved in $current_locale). */ static function choose_site_locale($langsAvailable = array()) { $siteMode = Director::get_site_mode(); // either 'cms' or 'site' if (self::$current_locale) { return self::$current_locale; } if (isset($_GET['locale']) && !$langsAvailable || isset($_GET['locale']) && in_array($_GET['locale'], $langsAvailable)) { // get from GET parameter self::set_current_locale($_GET['locale']); } else { self::set_current_locale(self::default_locale()); } return self::$current_locale; }
/** * Set the reading language, either namespaced to 'site' (website content) * or 'cms' (management backend). * * @param string $lang New reading language. */ static function set_reading_lang($lang) { $key = (Director::get_site_mode()) ? 'lang.' . Director::get_site_mode() : 'lang.global'; Session::set($key, $lang); self::$reading_lang = $lang; }