Created
June 13, 2024 18:20
-
-
Save Rplus/9729a17a15c8fa971ff6bc16faf96a43 to your computer and use it in GitHub Desktop.
getUserLanguage from BD2 coupon page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** 언어 판별 - "쿼리스트링": "내부 언어코드" */ | |
const LANGS = { | |
en: 'en-us', | |
us: 'en-us', | |
ko: 'ko-kr', | |
kr: 'ko-kr', | |
ja: 'ja-jp', | |
jp: 'ja-jp', | |
cn: 'zh-cn', | |
'cn-tw': 'zh-tw', // 대만 클라이언트용 | |
zh: 'zh-tw', | |
tw: 'zh-tw', | |
}; | |
const SUPPORTED_LANGS = new Set(Object.values(LANGS)); | |
/** @return {string} 쿼리스트링 또는 브라우저에 설정된 언어 중 지원되는 것. en-us 형식 */ | |
function getUserLanguage() { | |
const qs = new URLSearchParams(location.search); | |
const maybeLang = qs.get('lang') || '__NONE__'; | |
const lang = maybeLang.toLowerCase(); // 소문자 | |
// @ts-ignore | |
const langCode = LANGS[lang] || lang; | |
// 브라우저 언어 코드 첫번째 | |
const userLang = | |
(window.navigator.languages && window.navigator.languages[0]) || | |
window.navigator.language; | |
// @ts-ignore | |
const userLangCode = LANGS[userLang.toLowerCase()] || 'en-us'; | |
// 쿼리스트링으로 넘어온 값 우선, 없으면 브라우저 언어 판별 | |
return SUPPORTED_LANGS.has(langCode) ? langCode : userLangCode; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment