Fluent::current_locale PHP Method

current_locale() public static method

Gets the current locale
public static current_locale ( boolean $persist = true ) : string
$persist boolean Attempt to persist any detected locale within session / cookies
return string i18n locale code
    public static function current_locale($persist = true)
    {
        // Check overridden locale
        if (self::$_override_locale) {
            return self::$_override_locale;
        }
        // Check direct request
        $locale = self::get_request_locale();
        // Persistant variables
        if (empty($locale)) {
            $locale = self::get_persist_locale();
        }
        // Check browser headers
        if (empty($locale)) {
            $locale = self::detect_browser_locale();
        }
        // Fallback to default if empty or invalid (for this domain)
        $caresAboutDomains = Fluent::is_frontend();
        if (empty($locale) || !in_array($locale, self::locales($caresAboutDomains))) {
            $locale = self::default_locale($caresAboutDomains);
        }
        // Persist locale if requested
        if ($persist) {
            self::set_persist_locale($locale);
        }
        return $locale;
    }

Usage Example

    public function fix_fluent_menu()
    {
        if (!class_exists('Fluent')) {
            return;
        }
        $conf = SiteConfig::current_site_config();
        $localesNames = Fluent::locale_names();
        if ($conf->hasExtension('ActiveLocalesExtension') && $conf->ActiveLocales) {
            $localesNames = $conf->ActiveLocalesNames();
        }
        $locales = json_encode($localesNames);
        $locale = json_encode(Fluent::current_locale());
        // If we have only one locale, set this one as default
        if (count($localesNames) === 1) {
            $locale = json_encode(key($localesNames));
        }
        $param = json_encode(Fluent::config()->query_param);
        $buttonTitle = json_encode(_t('Fluent.ChangeLocale', 'Change Locale'));
        Requirements::block('FluentHeadScript');
        Requirements::insertHeadTags(<<<EOT
<script type="text/javascript">
//<![CDATA[
\tvar fluentLocales = {$locales};
\tvar fluentLocale = {$locale};
\tvar fluentParam = {$param};
\tvar fluentButtonTitle = {$buttonTitle};
//]]>
</script>
EOT
, 'FluentHeadScriptSubsite');
    }
All Usage Examples Of Fluent::current_locale