Makelore 2.0 initial clean snapshot
This commit is contained in:
92
src/i18n/index.ts
Normal file
92
src/i18n/index.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import i18n from 'i18next';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
import {
|
||||
SUPPORTED_LANGUAGE_CODES,
|
||||
resolveSupportedLanguage,
|
||||
type LanguageCode,
|
||||
} from '../../shared/language';
|
||||
|
||||
// EN
|
||||
import enCommon from './locales/en/common.json';
|
||||
import enSettings from './locales/en/settings.json';
|
||||
import enChat from './locales/en/chat.json';
|
||||
import enSetup from './locales/en/setup.json';
|
||||
import enDashboard from './locales/en/dashboard.json';
|
||||
|
||||
// ZH
|
||||
import zhCommon from './locales/zh/common.json';
|
||||
import zhSettings from './locales/zh/settings.json';
|
||||
import zhChat from './locales/zh/chat.json';
|
||||
import zhSetup from './locales/zh/setup.json';
|
||||
import zhDashboard from './locales/zh/dashboard.json';
|
||||
|
||||
// JA
|
||||
import jaCommon from './locales/ja/common.json';
|
||||
import jaSettings from './locales/ja/settings.json';
|
||||
import jaChat from './locales/ja/chat.json';
|
||||
import jaSetup from './locales/ja/setup.json';
|
||||
import jaDashboard from './locales/ja/dashboard.json';
|
||||
|
||||
// RU
|
||||
import ruCommon from './locales/ru/common.json';
|
||||
import ruSettings from './locales/ru/settings.json';
|
||||
import ruChat from './locales/ru/chat.json';
|
||||
import ruSetup from './locales/ru/setup.json';
|
||||
import ruDashboard from './locales/ru/dashboard.json';
|
||||
|
||||
export const SUPPORTED_LANGUAGES = [
|
||||
{ code: 'en', label: 'English' },
|
||||
{ code: 'zh', label: '中文' },
|
||||
{ code: 'ja', label: '日本語' },
|
||||
{ code: 'ru', label: 'Русский' },
|
||||
] as const satisfies ReadonlyArray<{ code: LanguageCode; label: string }>;
|
||||
|
||||
const resources = {
|
||||
en: {
|
||||
common: enCommon,
|
||||
settings: enSettings,
|
||||
chat: enChat,
|
||||
setup: enSetup,
|
||||
dashboard: enDashboard,
|
||||
},
|
||||
zh: {
|
||||
common: zhCommon,
|
||||
settings: zhSettings,
|
||||
chat: zhChat,
|
||||
setup: zhSetup,
|
||||
dashboard: zhDashboard,
|
||||
},
|
||||
ja: {
|
||||
common: jaCommon,
|
||||
settings: jaSettings,
|
||||
chat: jaChat,
|
||||
setup: jaSetup,
|
||||
dashboard: jaDashboard,
|
||||
},
|
||||
ru: {
|
||||
common: ruCommon,
|
||||
settings: ruSettings,
|
||||
chat: ruChat,
|
||||
setup: ruSetup,
|
||||
dashboard: ruDashboard,
|
||||
},
|
||||
};
|
||||
|
||||
i18n
|
||||
.use(initReactI18next)
|
||||
.init({
|
||||
resources,
|
||||
lng: resolveSupportedLanguage(typeof navigator !== 'undefined' ? navigator.language : undefined),
|
||||
fallbackLng: 'en',
|
||||
supportedLngs: [...SUPPORTED_LANGUAGE_CODES],
|
||||
defaultNS: 'common',
|
||||
ns: ['common', 'settings', 'chat', 'setup', 'dashboard'],
|
||||
interpolation: {
|
||||
escapeValue: false, // React already escapes
|
||||
},
|
||||
react: {
|
||||
useSuspense: false,
|
||||
},
|
||||
});
|
||||
|
||||
export default i18n;
|
||||
Reference in New Issue
Block a user