From 77e0ab1750987da88b640185a36311dc03b6dbfd Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Tue, 18 Aug 2026 12:23:40 +0100 Subject: [PATCH] [Backport staging] Cachebust languages.json (#34711) Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- apps/web/src/test/setupLanguage.ts | 2 +- apps/web/test/setup/setupLanguage.ts | 2 +- packages/shared-components/.storybook/main.ts | 2 +- packages/shared-components/src/core/i18n/i18n.tsx | 3 ++- packages/shared-components/src/test/setupTests.ts | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/web/src/test/setupLanguage.ts b/apps/web/src/test/setupLanguage.ts index 11d53f4d22..1533493176 100644 --- a/apps/web/src/test/setupLanguage.ts +++ b/apps/web/src/test/setupLanguage.ts @@ -45,7 +45,7 @@ export function setupLanguageMock() { fetchMock .get( - "end:/i18n/languages.json", + "include:/i18n/languages.json?", { en: "en_EN.json", de: "de_DE.json", diff --git a/apps/web/test/setup/setupLanguage.ts b/apps/web/test/setup/setupLanguage.ts index 40c98ae4ff..8579028d8e 100644 --- a/apps/web/test/setup/setupLanguage.ts +++ b/apps/web/test/setup/setupLanguage.ts @@ -48,7 +48,7 @@ export function setupLanguageMock() { fetchMock.mockGlobal(); fetchMock .get( - "end:/i18n/languages.json", + "include:/i18n/languages.json?", { en: "en_EN.json", de: "de_DE.json", diff --git a/packages/shared-components/.storybook/main.ts b/packages/shared-components/.storybook/main.ts index 990f5b51f7..ddd677fe6b 100644 --- a/packages/shared-components/.storybook/main.ts +++ b/packages/shared-components/.storybook/main.ts @@ -88,7 +88,7 @@ const config: StorybookConfig = { name: "language-middleware", configureServer(server) { server.middlewares.use((req, res, next) => { - if (req.url === "/i18n/languages.json") { + if (req.url?.split("?")[0] === "/i18n/languages.json") { // Dynamically generate a languages.json file based on what files are available res.setHeader("Content-Type", "application/json"); res.end(JSON.stringify(languages)); diff --git a/packages/shared-components/src/core/i18n/i18n.tsx b/packages/shared-components/src/core/i18n/i18n.tsx index ea6e0cf419..b24559574b 100644 --- a/packages/shared-components/src/core/i18n/i18n.tsx +++ b/packages/shared-components/src/core/i18n/i18n.tsx @@ -433,7 +433,8 @@ async function getLanguage(langPath: string): Promise { } export async function getLangsJson(): Promise { - const url = i18nFolder + "languages.json"; + const cachebust = Date.now(); + const url = `${i18nFolder}languages.json?${cachebust}`; const res = await fetch(url, { method: "GET" }); diff --git a/packages/shared-components/src/test/setupTests.ts b/packages/shared-components/src/test/setupTests.ts index f21999885c..ee0ead997e 100644 --- a/packages/shared-components/src/test/setupTests.ts +++ b/packages/shared-components/src/test/setupTests.ts @@ -51,7 +51,7 @@ expect.addSnapshotSerializer({ function setupLanguageMock(): void { fetchMock - .get("end:/i18n/languages.json", { + .get("include:/i18n/languages.json?", { en: "en_EN.json", }) .get("end:en_EN.json", en);