diff --git a/resources/languages.ts b/resources/languages.ts index 06116f4e780..8c30546e8a6 100644 --- a/resources/languages.ts +++ b/resources/languages.ts @@ -89,8 +89,7 @@ export const langToLocale = (lang: Lang): string => { }[lang]; }; -export const browserLanguagesToLang = (languagesArr: readonly string[]): Lang => { - // languagesArr receives only `navigator.languages` as input +export const localesToLang = (locales: readonly string[]): Lang => { const mapLanguage = (lang: string): string => { // Handle Chinese variants if (lang.startsWith('zh-')) { @@ -107,8 +106,10 @@ export const browserLanguagesToLang = (languagesArr: readonly string[]): Lang => } return lang.slice(0, 2); }; - const lang = [...languagesArr, 'en'] + const lang = [...locales, 'en'] .map(mapLanguage) .filter((l) => languages.includes(l as Lang))[0]; return isLang(lang) ? lang : 'en'; }; + +export const browserLanguagesToLang = (): Lang => localesToLang(navigator.languages); diff --git a/ui/raidboss/raidemulator.ts b/ui/raidboss/raidemulator.ts index 5eb4165b6be..1c204d636a4 100644 --- a/ui/raidboss/raidemulator.ts +++ b/ui/raidboss/raidemulator.ts @@ -151,7 +151,7 @@ const raidEmulatorOnLoad = async () => { if (!websocketConnected) { // Find the most appropriate lang code to use based on browser language priority - const browserLang = browserLanguagesToLang(navigator.languages); + const browserLang = browserLanguagesToLang(); applyTranslation(browserLang); options.ParserLanguage = browserLang; diff --git a/util/coverage/coverage.ts b/util/coverage/coverage.ts index ae2bed5d23c..86959954596 100644 --- a/util/coverage/coverage.ts +++ b/util/coverage/coverage.ts @@ -1,6 +1,13 @@ import contentList from '../../resources/content_list'; import ContentType from '../../resources/content_type'; -import { isLang, Lang, langMap, langToLocale, languages } from '../../resources/languages'; +import { + browserLanguagesToLang, + isLang, + Lang, + langMap, + langToLocale, + languages, +} from '../../resources/languages'; import { UnreachableCode } from '../../resources/not_reached'; import ZoneInfo from '../../resources/zone_info'; import { LocaleObject, LocaleText } from '../../types/trigger'; @@ -512,7 +519,7 @@ const miscStrings = { fr: 'Erreur : Lancez npm run coverage-report pour générer des données.', ja: 'エラー:npm run coverage-report を実行し、データを生成しよう。', cn: '错误:请先运行 npm run coverage-report 以生成数据。', - ko: '에러: 데이터를 생성하려면 node npm run coverage-report를 실행하세요.', + ko: '에러: 데이터를 생성하려면 npm run coverage-report를 실행하세요.', tc: '錯誤:請先運行 npm run coverage-report 來產生資料。', }, // Indicator that content is unsupported @@ -1356,7 +1363,7 @@ const buildLanguageSelect = (container: HTMLElement, lang: Lang) => { document.addEventListener('DOMContentLoaded', () => { // Allow for `coverage.html?lang=de` style constructions. const params = new URLSearchParams(window.location.search); - const langStr = params.get('lang') ?? 'en'; + const langStr = params.get('lang') ?? browserLanguagesToLang(); // TODO: left for now as backwards compatibility with user css. Remove this later?? document.body.classList.add(`lang-${langStr}`); const lang = langStr !== null && isLang(langStr) ? langStr : 'en'; diff --git a/util/logtools/web_splitter.ts b/util/logtools/web_splitter.ts index 578b98598b9..622df5f8a5b 100644 --- a/util/logtools/web_splitter.ts +++ b/util/logtools/web_splitter.ts @@ -349,7 +349,7 @@ const downloadFile = (output: string[], filename: string): void => { }; const onLoaded = () => { - const lang = browserLanguagesToLang(navigator.languages); + const lang = browserLanguagesToLang(); const table = getElement('fight-table'); const fileDrop = getElement('filedrop');