src/Core/I18N.php
public static function setLocale($locale=null)
    {
        global $CFG, $TSUGI_LOCALE, $TSUGI_LOCALE_RELOAD;

        // No internationalization support
        if ( isset($CFG->legacytranslation) ) {
            if ( ! function_exists('bindtextdomain') ) return;
            if ( ! function_exists('textdomain') ) return;
        }

        if ( isset($CFG->legacytranslation) && $locale && 
            strpos($locale, 'UTF-8') === false ) $locale = $locale . '.UTF-8';

        if ( $locale === null && isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) {

            if ( class_exists('\Locale') ) {
                try {
                    // Symfony may implement a stub for this function that throws an exception
                    $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
                } catch (exception $e) { }
            }
            if ($locale === null) { // Crude fallback if we can't use Locale::acceptFromHttp
                $pieces = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
                $locale = $pieces[0];
            }
        }

        if ( $locale === null && isset($CFG->fallbacklocale) && $CFG->fallbacklocale ) {
            $locale = $CFG->fallbacklocale;
        }

        if ( $locale === null ) return;

        $locale = str_replace('-','_',$locale);
        if ( isset($CFG->legacytranslation) ) {
            putenv('LC_ALL='.$locale);
            setlocale(LC_ALL, $locale);
        }
        // error_log("setLocale=$locale");
        if ( $TSUGI_LOCALE != $locale ) $TSUGI_LOCALE_RELOAD = true;
        $TSUGI_LOCALE = $locale;
    }
public static function setLocale($locale=null)
    {
        global $CFG, $TSUGI_LOCALE, $TSUGI_LOCALE_RELOAD;

        // No internationalization support
        if ( isset($CFG->legacytranslation) ) {
            if ( ! function_exists('bindtextdomain') ) return;
            if ( ! function_exists('textdomain') ) return;
        }

        if ( isset($CFG->legacytranslation) && $locale && 
            strpos($locale, 'UTF-8') === false ) $locale = $locale . '.UTF-8';

        if ( $locale === null && isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) {

            if ( class_exists('\Locale') ) {
                try {
                    // Symfony may implement a stub for this function that throws an exception
                    $locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
                } catch (exception $e) { }
            }
            if ($locale === null) { // Crude fallback if we can't use Locale::acceptFromHttp
                $pieces = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
                $locale = $pieces[0];
            }
        }

        if ( $locale === null && isset($CFG->fallbacklocale) && $CFG->fallbacklocale ) {
            $locale = $CFG->fallbacklocale;
        }

        if ( $locale === null ) return;

        $locale = str_replace('-','_',$locale);
        if ( isset($CFG->legacytranslation) ) {
            putenv('LC_ALL='.$locale);
            setlocale(LC_ALL, $locale);
        }
        // error_log("setLocale=$locale");
        if ( $TSUGI_LOCALE != $locale ) $TSUGI_LOCALE_RELOAD = true;
        $TSUGI_LOCALE = $locale;
    }
public static function setLocale ( $ locale = null ) { global $ CFG , $ TSUGI_LOCALE , $ TSUGI_LOCALE_RELOAD ; // No internationalization support if ( isset ( $ CFG -> legacytranslation ) ) { if ( ! function_exists ( 'bindtextdomain' ) ) return ; if ( ! function_exists ( 'textdomain' ) ) return ; } if ( isset ( $ CFG -> legacytranslation ) && $ locale && strpos ( $ locale , 'UTF-8' ) === false ) $ locale = $ locale . '.UTF-8' ; if ( $ locale === null && isset ( $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE' ] ) ) { if ( class_exists ( '\Locale' ) ) { try { // Symfony may implement a stub for this function that throws an exception $ locale = \ Locale :: acceptFromHttp ( $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE' ] ) ; } catch ( exception $ e ) { } } if ( $ locale === null ) { // Crude fallback if we can't use Locale::acceptFromHttp $ pieces = explode ( ',' , $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE' ] ) ; $ locale = $ pieces [ 0 ] ; } } if ( $ locale === null && isset ( $ CFG -> fallbacklocale ) && $ CFG -> fallbacklocale ) { $ locale = $ CFG -> fallbacklocale ; } if ( $ locale === null ) return ; $ locale = str_replace ( '-' , '_' , $ locale ) ; if ( isset ( $ CFG -> legacytranslation ) ) { putenv ( 'LC_ALL=' . $ locale ) ; setlocale ( LC_ALL , $ locale ) ; } // error_log("setLocale=$locale"); if ( $ TSUGI_LOCALE != $ locale ) $ TSUGI_LOCALE_RELOAD = true ; $ TSUGI_LOCALE = $ locale ; }
Set the LOCAL for the current user
Set the LOCAL for the current user