summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2024-10-15 12:23:18 -0400
committerHazelnoot <acomputerdog@gmail.com>2024-10-15 12:23:18 -0400
commit652cc8602cd358446bfb8e9276e3e694193495e9 (patch)
tree3fe1bb1573b943bc93c46f4d0eb04e2455d36a3f /packages/backend/src
parentmerge: try to avoid `insert` races in `FederatedInstanceService` (!683) (diff)
downloadsharkey-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/src')
-rw-r--r--packages/backend/src/server/web/boot.js35
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;