mirror of
https://github.com/HKUDS/OpenSpace.git
synced 2026-08-28 05:15:00 +00:00
34 lines
662 B
TypeScript
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;
|