OpenSpace/apps/dashboard/src/i18n/index.ts
2026-07-17 11:43:42 +08:00

34 lines
662 B
TypeScript

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import en from './en.json';
import zh from './zh.json';
const STORAGE_KEY = 'openspace-lang';
function getSavedLanguage(): string {
try {
return localStorage.getItem(STORAGE_KEY) || 'en';
} catch {
return 'en';
}
}
i18n.use(initReactI18next).init({
resources: {
en: { translation: en },
zh: { translation: zh },
},
lng: getSavedLanguage(),
fallbackLng: 'en',
interpolation: { escapeValue: false },
});
i18n.on('languageChanged', (lng) => {
try {
localStorage.setItem(STORAGE_KEY, lng);
} catch {
// ignore
}
});
export default i18n;