import React, { createContext, useContext, useState, useEffect } from 'react'; // Import translation JSON files directly import en from '../lang/en.json'; import hi from '../lang/hi.json'; import sw from '../lang/sw.json'; import tl from '../lang/tl.json'; import ta from '../lang/ta.json'; const LanguageContext = createContext(); const translations = { en, hi, sw, tl, ta }; export const languages = [ { code: 'en', name: 'English', nativeName: 'English', flag: '🇬🇧' }, { code: 'hi', name: 'Hindi', nativeName: 'हिन्दी', flag: '🇮🇳' }, { code: 'sw', name: 'Swahili', nativeName: 'Kiswahili', flag: '🇰🇪' }, { code: 'tl', name: 'Tagalog', nativeName: 'Tagalog', flag: '🇵🇭' }, { code: 'ta', name: 'Tamil', nativeName: 'தமிழ்', flag: '🇮🇳' } ]; export function LanguageProvider({ children }) { const [locale, setLocale] = useState(() => { return localStorage.getItem('app_locale') || 'en'; }); useEffect(() => { localStorage.setItem('app_locale', locale); document.documentElement.lang = locale; }, [locale]); const t = (key, fallback = '') => { const langData = translations[locale] || translations['en']; return langData[key] || translations['en'][key] || fallback || key; }; return ( {children} ); } export function useTranslation() { const context = useContext(LanguageContext); if (!context) { throw new Error('useTranslation must be used within a LanguageProvider'); } return context; }