diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index 60f1e05e8..aa473cbaf 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -34,9 +34,17 @@ //#region Detect language & fetch translations if (!localStorage.hasOwnProperty('locale')) { + const supportedLangs = LANGS; let lang = localStorage.getItem('lang'); - if (lang == null || lang.toString == null || lang.toString() === 'null') { - lang = 'ja-JP'; + if (lang == null || !supportedLangs.includes(lang)) { + if (supportedLangs.includes(navigator.language)) { + lang = navigator.language; + } else { + lang = supportedLangs.find(x => x.split('-')[0] === navigator.language); + + // Fallback + if (lang == null) lang = 'en-US'; + } } const metaRes = await window.fetch('/api/meta', { @@ -59,6 +67,12 @@ return; } + // for https://github.com/misskey-dev/misskey/issues/10202 + if (lang == null || lang.toString == null || lang.toString() === 'null') { + console.error('invalid lang value detected!!!', typeof lang, lang); + lang = 'en-US'; + } + const localRes = await window.fetch(`/assets/locales/${lang}.${v}.json`); if (localRes.status === 200) { localStorage.setItem('lang', lang); diff --git a/packages/frontend/src/config.ts b/packages/frontend/src/config.ts index fec8bfa16..277dfc12a 100644 --- a/packages/frontend/src/config.ts +++ b/packages/frontend/src/config.ts @@ -13,7 +13,7 @@ export const hostname = address.hostname; export const url = address.origin; export const apiUrl = location.origin + '/api'; export const wsOrigin = location.origin; -export const lang = miLocalStorage.getItem('lang') ?? 'ja-JP'; +export const lang = miLocalStorage.getItem('lang') ?? 'en-US'; export const langs = _LANGS_; const preParseLocale = miLocalStorage.getItem('locale'); export let locale = preParseLocale ? JSON.parse(preParseLocale) : null; diff --git a/packages/sw/src/scripts/lang.ts b/packages/sw/src/scripts/lang.ts index 022e31874..6fccedd74 100644 --- a/packages/sw/src/scripts/lang.ts +++ b/packages/sw/src/scripts/lang.ts @@ -13,7 +13,7 @@ class SwLang { public cacheName = `mk-cache-${_VERSION_}`; public lang: Promise = get('lang').then(async prelang => { - if (!prelang) return 'ja-JP'; + if (!prelang) return 'en-US'; return prelang; });