langs_app.js 1.48 KB
/*获取 Cookie 值的辅助函数*/
String.prototype.GetCookieValue_langs = function (name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length === 2) {
        return parts.pop().split(";").shift();
    }
    return null;
}

//从 Cookie 解析当前文化的函数 外部只要调用这个
String.prototype.GetLangConf = function () {
    var cookieValue = "".GetCookieValue_langs('.AspNetCore.Culture');
    if (!cookieValue) return 'en-us'; // 默认英文

    try {
        // 解码 URL 编码
        cookieValue = decodeURIComponent(cookieValue);
    } catch (e) {
        console.warn("解码 Cookie 失败,使用原始值:", cookieValue);
    }

    var culture = 'en-us';
    // 方式1:正则表达式
    var match = cookieValue.match(/c=([^|;]+)/i);
    if (match && match[1]) {
        culture = match[1].toLowerCase();
    } else {
        // 方式2:split 方法
        var parts = cookieValue.split('|');
        for (var i = 0; i < parts.length; i++) {
            var part = parts[i].trim();
            if (part.toLowerCase().startsWith('c=')) {
                culture = part.substring(2).toLowerCase();
                break;
            }
        }
    }
    return culture;
}


const lang = "".GetLangConf() || 'en-us';
window.$gl = (params) => {
    if (lang == "zh-cn") return params;
    const data = window.langConf[lang];
    if (data && data[params]) {
        return data[params];
    }
    return params;
};