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 }