import i18n from 'i18next' import { initReactI18next } from 'react-i18next' import { useSettingsStore } from '@/stores/settings' import en from './locales/en.json' import zh from './locales/zh.json' // Function to sync i18n with store state export const initializeI18n = async (): Promise => { // Get initial language from store const initialLanguage = useSettingsStore.getState().language // Initialize with store language await i18n.use(initReactI18next).init({ resources: { en: { translation: en }, zh: { translation: zh } }, lng: initialLanguage, fallbackLng: 'en', interpolation: { escapeValue: false } }) // Subscribe to language changes useSettingsStore.subscribe((state) => { const currentLanguage = state.language if (i18n.language !== currentLanguage) { i18n.changeLanguage(currentLanguage) } }) return i18n } export default i18n