From 9fbc7fa379bfb64ff94b12573c235d97ef7402d9 Mon Sep 17 00:00:00 2001 From: yyh <92089059+lyzno1@users.noreply.github.com> Date: Tue, 30 Dec 2025 15:36:58 +0800 Subject: [PATCH] fix(i18n): load server namespaces by kebab-case (#30368) --- web/i18n-config/server.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/i18n-config/server.ts b/web/i18n-config/server.ts index 91cb2f2a6d..4912e86323 100644 --- a/web/i18n-config/server.ts +++ b/web/i18n-config/server.ts @@ -2,7 +2,7 @@ import type { i18n as I18nInstance } from 'i18next' import type { Locale } from '.' import type { NamespaceCamelCase, NamespaceKebabCase } from './i18next-config' import { match } from '@formatjs/intl-localematcher' -import { camelCase } from 'es-toolkit/compat' +import { camelCase, kebabCase } from 'es-toolkit/compat' import { createInstance } from 'i18next' import resourcesToBackend from 'i18next-resources-to-backend' import Negotiator from 'negotiator' @@ -22,8 +22,9 @@ const getOrCreateI18next = async (lng: Locale) => { instance = createInstance() await instance .use(initReactI18next) - .use(resourcesToBackend((language: Locale, namespace: NamespaceKebabCase) => { - return import(`../i18n/${language}/${namespace}.json`) + .use(resourcesToBackend((language: Locale, namespace: NamespaceCamelCase | NamespaceKebabCase) => { + const fileNamespace = kebabCase(namespace) as NamespaceKebabCase + return import(`../i18n/${language}/${fileNamespace}.json`) })) .init({ lng,