summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2024-10-15 21:50:56 +0000
committerHazelnoot <acomputerdog@gmail.com>2024-10-15 21:50:56 +0000
commit68b90df00b2ea32a54d5de71a57b7d96d9767945 (patch)
tree530ed2d8020b3774646b05ce83a27df90ce59995 /packages/backend/src/server
parentmerge: Improvements and tweaks to latest note handling (resolves #744) (!688) (diff)
parentfix import order in common.ts (diff)
downloadsharkey-68b90df00b2ea32a54d5de71a57b7d96d9767945.tar.gz
sharkey-68b90df00b2ea32a54d5de71a57b7d96d9767945.tar.bz2
sharkey-68b90df00b2ea32a54d5de71a57b7d96d9767945.zip
merge: Refresh locales after any change, not just a version update (resolves #732) (!692)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/692 Closes #732 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src/server')
-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;