// check the current language
    $sysutil_ml_langs = explode(',', SYSUTIL_ML_LANGS);
    if (!empty($_GET[SYSUTIL_ML_PARAM_NAME]) && in_array($_GET[SYSUTIL_ML_PARAM_NAME], $sysutil_ml_langs)) {
        $sysutil_ml_lang = $_GET[SYSUTIL_ML_PARAM_NAME];
        setcookie(SYSUTIL_ML_PARAM_NAME, $sysutil_ml_lang, time() + SYSUTIL_ML_COOKIELIFETIME, $xoops_cookie_path, '', 0);
    } else {
        if (!empty($_COOKIE[SYSUTIL_ML_PARAM_NAME]) && in_array($_COOKIE[SYSUTIL_ML_PARAM_NAME], $sysutil_ml_langs)) {
            $sysutil_ml_lang = $_COOKIE[SYSUTIL_ML_PARAM_NAME];
        } else {
            $sysutil_ml_lang = sysutil_ml_getlangbyname(sysutil_get_xoops_option('sysutil', 'sysutil_default_lang'));
        }
    }
    ob_start('sysutil_ml_filter');
}
if (sysutil_get_xoops_option('sysutil', 'sysutil_change_lang_conf')) {
    if (!empty($_GET[SYSUTIL_ML_PARAM_NAME]) && ($sysutil_ml_langname = sysutil_ml_getlangname($_GET[SYSUTIL_ML_PARAM_NAME]))) {
        $xoopsConfig['language'] = $sysutil_ml_langname;
        $_SERVER['QUERY_STRING'] = preg_replace('/(^|&)' . SYSUTIL_ML_PARAM_NAME . '\\=.*$/', '', $_SERVER['QUERY_STRING']);
        $_SERVER['argv'][0] = preg_replace('/(^|&)' . SYSUTIL_ML_PARAM_NAME . '\\=.*$/', '', $_SERVER['argv'][0]);
    } else {
        if (!empty($_COOKIE[SYSUTIL_ML_COOKIE_NAME])) {
            $xoopsConfig['language'] = $_COOKIE[SYSUTIL_ML_COOKIE_NAME];
        } else {
            $xoopsConfig['language'] = sysutil_get_xoops_option('sysutil', 'sysutil_default_lang');
        }
    }
    if (empty($_COOKIE[SYSUTIL_ML_COOKIE_NAME]) || $_COOKIE[SYSUTIL_ML_COOKIE_NAME] != $xoopsConfig['language']) {
        setcookie(SYSUTIL_ML_COOKIE_NAME, $sysutil_ml_langname, time() + SYSUTIL_ML_COOKIELIFETIME, $xoops_cookie_path, '', 0);
    }
} else {
    $xoopsConfig['language'] = sysutil_get_xoops_option('sysutil', 'sysutil_default_lang');
if (sysutil_get_xoops_option('sysutil', 'sysutil_change_lang_conf')) {
    if (!empty($_GET[SYSUTIL_ML_PARAM_NAME]) && ($sysutil_ml_langname = sysutil_ml_getlangname($_GET[SYSUTIL_ML_PARAM_NAME]))) {
        $xoopsConfig['language'] = $sysutil_ml_langname;
        $_SERVER['QUERY_STRING'] = preg_replace('/(^|&)' . SYSUTIL_ML_PARAM_NAME . '\\=.*$/', '', $_SERVER['QUERY_STRING']);
        $_SERVER['argv'][0] = preg_replace('/(^|&)' . SYSUTIL_ML_PARAM_NAME . '\\=.*$/', '', $_SERVER['argv'][0]);
    } else {
        //Modifierd by domifara start
        if (!empty($_COOKIE[SYSUTIL_ML_COOKIE_NAME])) {
            $xoopsConfig['language'] = $_COOKIE[SYSUTIL_ML_COOKIE_NAME];
        } else {
            //---access languagedefault check
            if (isset($sysutil_ml_lang) && ($sysutil_ml_langname = sysutil_ml_getlangname($sysutil_ml_lang))) {
                $xoopsConfig['language'] = $sysutil_ml_langname;
            } else {
                //default or match
                if ($sysutil_ml_langname = sysutil_ml_getlangname(sysutil_ml_getlangbrowsaccept())) {
                    $xoopsConfig['language'] = $sysutil_ml_langname;
                } else {
                    $xoopsConfig['language'] = sysutil_get_xoops_option('sysutil', 'sysutil_default_lang');
                }
            }
        }
        //Modifierd by domifara end
    }
    if (empty($_COOKIE[SYSUTIL_ML_COOKIE_NAME]) || $_COOKIE[SYSUTIL_ML_COOKIE_NAME] != $xoopsConfig['language']) {
        setcookie(SYSUTIL_ML_COOKIE_NAME, $xoopsConfig['language'], time() + SYSUTIL_ML_COOKIELIFETIME, $xoops_cookie_path, '', 0);
    }
} else {
    $xoopsConfig['language'] = sysutil_get_xoops_option('sysutil', 'sysutil_default_lang');
}
// ob filter