From 2803c59f9dba208162cc69d438bccea9ff4bd7ec Mon Sep 17 00:00:00 2001 From: "tangly1024.com" Date: Tue, 30 Apr 2024 18:21:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/lang.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/lang.js b/lib/lang.js index ff2201b8..a6ef7b57 100644 --- a/lib/lang.js +++ b/lib/lang.js @@ -69,13 +69,22 @@ export function generateLocaleDict(langString) { */ export function initLocale(lang, locale, changeLang, changeLocale) { if (isBrowser) { - // 用户请求的预研 - const queryLang = + // 用户请求的语言 + let queryLang = getQueryVariable('locale') || getQueryVariable('lang') || loadLangFromLocalStorage() + + if (queryLang) { + // 用正则表达式匹配有效的语言标识符例如zh-CN(可选的 -CN 部分) + queryLang = queryLang.match(/[a-zA-Z]{2}(?:-[a-zA-Z]{2})?/) + if (queryLang) { + queryLang = queryLang[0] + } + } + let currentLang = lang - if (queryLang && queryLang !== 'undefined' && queryLang !== lang) { + if (queryLang && queryLang !== lang) { currentLang = queryLang }