langs_app.js
1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*获取 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;
};