From 46e92e537e940633a1548ae858558868fc2a675d Mon Sep 17 00:00:00 2001 From: NookieGrey Date: Tue, 18 Feb 2025 17:33:12 +0400 Subject: [PATCH] language fix WIP --- i18n.server.js | 4 +++- locales/en/chat.json | 3 +++ server.js | 6 ------ src/entry-client.tsx | 13 +++++++++---- 4 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 locales/en/chat.json diff --git a/i18n.server.js b/i18n.server.js index 1ffdefe..9082160 100644 --- a/i18n.server.js +++ b/i18n.server.js @@ -15,7 +15,6 @@ export function createI18nInstance() { .use(LanguageDetector) .init({ fallbackLng: "en", - preload: ["en", "ru"], ns: ["common", "auth", "chat"], defaultNS: "common", backend: { @@ -24,6 +23,9 @@ export function createI18nInstance() { react: { useSuspense: false, }, + detection: { + caches: ["cookie"], + }, }); return instance; diff --git a/locales/en/chat.json b/locales/en/chat.json new file mode 100644 index 0000000..8f27520 --- /dev/null +++ b/locales/en/chat.json @@ -0,0 +1,3 @@ +{ + "title": "Chats" +} \ No newline at end of file diff --git a/server.js b/server.js index 4fa37ce..21fd56c 100644 --- a/server.js +++ b/server.js @@ -66,11 +66,6 @@ app.use("*", async (req, res) => { try { const url = req.originalUrl.replace(base, "/"); - const initialI18nStore = {}; - req.i18n.languages.forEach((lng) => { - initialI18nStore[lng] = req.i18n.store.data[lng] || {}; - }); - /** @type {string} */ let template; /** @type {import('./src/entry-server.ts').render} */ @@ -96,7 +91,6 @@ app.use("*", async (req, res) => { ``, ` `, diff --git a/src/entry-client.tsx b/src/entry-client.tsx index 55d4dd4..feaa01a 100644 --- a/src/entry-client.tsx +++ b/src/entry-client.tsx @@ -10,13 +10,18 @@ i18next .use(LanguageDetector) .init( { - lng: window.initialLanguage, - fallbackLng: "en", - debug: false, - resources: window.initialI18nStore, + ns: ["common", "auth", "chat"], + defaultNS: "common", + fallbackLng: window.initialLanguage, react: { useSuspense: false, }, + backend: { + loadPath: "/locales/{{lng}}/{{ns}}.json", + }, + detection: { + caches: ["cookie"], + }, }, () => { const preloadedState = window.__PRELOADED_STATE__ || {};