From ba59b5d20eb486d50bac06f71d5c2b809ec0d942 Mon Sep 17 00:00:00 2001 From: DDDDD12138 <43703884+DDDDD12138@users.noreply.github.com> Date: Sat, 12 Oct 2024 10:14:39 +0800 Subject: [PATCH] docs: improve language matching logic (#18412) fix(docs): improve language matching logic --- docs/.vitepress/lang.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/docs/.vitepress/lang.js b/docs/.vitepress/lang.js index 11c385cefd..e4cfefddd4 100644 --- a/docs/.vitepress/lang.js +++ b/docs/.vitepress/lang.js @@ -2,18 +2,15 @@ const supportedLangs = window.supportedLangs const cacheKey = 'preferred_lang' const defaultLang = 'en-US' - // docs supported languages - const langAlias = { - en: 'en-US', - fr: 'fr-FR', - es: 'es-ES', + const handleNavigatorLang = (navLang) => { + const { language, region } = new Intl.Locale(navLang).maximize() + return `${language}-${region}` } - let userPreferredLang = localStorage.getItem(cacheKey) || navigator.language - const language = - langAlias[userPreferredLang] || - (supportedLangs.includes(userPreferredLang) - ? userPreferredLang - : defaultLang) + let userPreferredLang = + localStorage.getItem(cacheKey) || handleNavigatorLang(navigator.language) + const language = supportedLangs.includes(userPreferredLang) + ? userPreferredLang + : defaultLang localStorage.setItem(cacheKey, language) userPreferredLang = language if (!location.pathname.startsWith(`/${userPreferredLang}`)) {