diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2024-10-15 12:23:18 -0400 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2024-10-15 12:23:18 -0400 |
| commit | 652cc8602cd358446bfb8e9276e3e694193495e9 (patch) | |
| tree | 3fe1bb1573b943bc93c46f4d0eb04e2455d36a3f /packages/backend | |
| parent | merge: try to avoid `insert` races in `FederatedInstanceService` (!683) (diff) | |
| download | sharkey-652cc8602cd358446bfb8e9276e3e694193495e9.tar.gz sharkey-652cc8602cd358446bfb8e9276e3e694193495e9.tar.bz2 sharkey-652cc8602cd358446bfb8e9276e3e694193495e9.zip | |
refresh locales after any change, not just a version update
Diffstat (limited to 'packages/backend')
| -rw-r--r-- | packages/backend/src/server/web/boot.js | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js index 38e37ce093..193bfa9585 100644 --- a/packages/backend/src/server/web/boot.js +++ b/packages/backend/src/server/web/boot.js @@ -33,8 +33,17 @@ return; } + // Force update when locales change + const langsVersion = LANGS_VERSION; + const localeVersion = localStorage.getItem('localeVersion'); + if (localeVersion !== langsVersion) { + console.info(`Updating locales from version ${localeVersion ?? 'N/A'} to ${langsVersion}`); + localStorage.removeItem('localeVersion'); + localStorage.removeItem('locale'); + } + //#region Detect language & fetch translations - if (!localStorage.hasOwnProperty('locale')) { + if (!localStorage.getItem('locale')) { const supportedLangs = LANGS; let lang = localStorage.getItem('lang'); if (lang == null || !supportedLangs.includes(lang)) { @@ -48,37 +57,17 @@ } } - const metaRes = await window.fetch('/api/meta', { - method: 'POST', - body: JSON.stringify({}), - credentials: 'omit', - cache: 'no-cache', - headers: { - 'Content-Type': 'application/json', - }, - }); - if (metaRes.status !== 200) { - renderError('META_FETCH'); - return; - } - const meta = await metaRes.json(); - const v = meta.version; - if (v == null) { - renderError('META_FETCH_V'); - 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`); + const localRes = await window.fetch(`/assets/locales/${lang}.${langsVersion}.json`); if (localRes.status === 200) { localStorage.setItem('lang', lang); localStorage.setItem('locale', await localRes.text()); - localStorage.setItem('localeVersion', v); + localStorage.setItem('localeVersion', langsVersion); } else { renderError('LOCALE_FETCH'); return; |