fix(frontend-embed): localeのバージョンチェックが抜けており起動に失敗することがある問題を修正 (#15212)

* fix(frontend-embed): localeのバージョンチェックが抜けており起動に失敗することがある問題を修正

* Update Changelog
This commit is contained in:
かっこかり
2025-01-08 19:33:43 +09:00
committed by GitHub
parent 8652ce7cc0
commit c49a13de65
2 changed files with 19 additions and 2 deletions

View File

@@ -17,11 +17,11 @@ import { applyTheme, assertIsTheme } from '@/theme.js';
import { fetchCustomEmojis } from '@/custom-emojis.js';
import { DI } from '@/di.js';
import { serverMetadata } from '@/server-metadata.js';
import { url } from '@@/js/config.js';
import { url, version, locale, lang, updateLocale } from '@@/js/config.js';
import { parseEmbedParams } from '@@/js/embed-page.js';
import { postMessageToParentWindow, setIframeId } from '@/post-message.js';
import { serverContext } from '@/server-context.js';
import { i18n } from '@/i18n.js';
import { i18n, updateI18n } from '@/i18n.js';
import type { Theme } from '@/theme.js';
@@ -71,6 +71,22 @@ if (embedParams.colorMode === 'dark') {
}
//#endregion
//#region Detect language & fetch translations
const localeVersion = localStorage.getItem('localeVersion');
const localeOutdated = (localeVersion == null || localeVersion !== version || locale == null);
if (localeOutdated) {
const res = await window.fetch(`/assets/locales/${lang}.${version}.json`);
if (res.status === 200) {
const newLocale = await res.text();
const parsedNewLocale = JSON.parse(newLocale);
localStorage.setItem('locale', newLocale);
localStorage.setItem('localeVersion', version);
updateLocale(parsedNewLocale);
updateI18n(parsedNewLocale);
}
}
//#endregion
// サイズの制限
document.documentElement.style.maxWidth = '500px';