import { createContext, useContext, useState, ReactNode } from 'react' import { translations, Language, TranslationKey } from '@/lib/i18n' interface I18nContextType { language: Language setLanguage: (lang: Language) => void t: (key: TranslationKey) => string } const I18nContext = createContext(undefined) export function I18nProvider({ children }: { children: ReactNode }) { const [language, setLanguage] = useState(() => { const saved = localStorage.getItem('language') return (saved === 'zh' || saved === 'en') ? saved : 'zh' }) const handleSetLanguage = (lang: Language) => { setLanguage(lang) localStorage.setItem('language', lang) } const t = (key: TranslationKey): string => { return translations[language][key] || key } return ( {children} ) } export function useI18n() { const context = useContext(I18nContext) if (!context) { throw new Error('useI18n must be used within I18nProvider') } return context }