
import React, { createContext, useContext, useState, useEffect } from 'react';

type Language = 'en' | 'ne';

interface LanguageContextType {
  language: Language;
  setLanguage: (lang: Language) => void;
  t: (key: string, defaultText: string) => string;
}

const LanguageContext = createContext<LanguageContextType | undefined>(undefined);

export const LanguageProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
  const [language, setLanguage] = useState<Language>(() => {
    return (localStorage.getItem('rudraksha_lang') as Language) || 'en';
  });

  useEffect(() => {
    localStorage.setItem('rudraksha_lang', language);
  }, [language]);

  const t = (key: string, defaultText: string) => {
    if (language === 'en') return defaultText;
    
    const dictionary: Record<string, string> = {
      // Navigation & Layout
      "Dashboard": "ड्यासबोर्ड",
      "ACADEMIC": "शैक्षिक",
      "Academic": "शैक्षिक",
      "Rudra AI": "रुद्र एआई",
      "Guru AI": "रुद्र एआई",
      "Assignments": "गृहकार्य",
      "Analytics": "तथ्याङ्क",
      "Culture": "संस्कृति",
      "Calendar": "पात्रो",
      "Community": "समुदाय",
      "Network": "सञ्जाल",
      "Wellness": "कल्याण",
      "FTL Rescue": "उद्धार",
      "E-Library": "ई-पुस्तकालय",
      "Plan": "योजना",
      "Map & Provinces": "नक्सा र प्रदेश",
      "Kitchen": "भान्छा",
      "Health": "स्वास्थ्य",
      "Safety": "सुरक्षा",
      "Karma Bazaar": "कर्म बजार",
      "Arcade": "आर्केड",
      "Chat": "कुराकानी",
      "Settings": "सेटिङ्स",
      "Good Morning": "शुभ प्रभात",
      "Good Afternoon": "शुभ दिन",
      "Good Evening": "शुभ सन्ध्या",
      "Karma": "कर्म",
      "Level": "स्तर",

      // AI Guru Features
      "Text Chat": "पाठ कुराकानी",
      "Live Voice": "प्रत्यक्ष आवाज",
      "Video Insight": "भिडियो विश्लेषण",
      "Visual Scan": "दृष्टि स्क्यान",
      "Quiz Game": "हाजिरीजवाफ",
      "Voice Interface": "आवाज इन्टरफेस",
      "Conversational AI with Gemini 2.5 Native Audio.": "जेमिनी २.५ नेटिभ अडियोको साथ संवादात्मक एआई।",
      "Video Analyst": "भिडियो विश्लेषक",
      "Visual Scanner": "दृष्टि स्क्यानर",
      "Ask Rudra AI anything...": "रुद्र एआईलाई केहि सोध्नुहोस्...",
      "Ask Guru AI anything...": "रुद्र एआईलाई केहि सोध्नुहोस्...",
      "Extracting Wisdom...": "ज्ञान निकाल्दै...",
      "Insight Dossier": "अन्तर्दृष्टि डोसियर",
      "No Intel yet": "अझै कुनै जानकारी छैन",
      "Upload Lesson": "पाठ अपलोड गर्नुहोस्",
      "Upload Video": "भिडियो अपलोड गर्नुहोस्",
      "QUICK SCAN": "द्रुत स्क्यान",
      "Ask short questions about the video...": "भिडियोको बारेमा छोटो प्रश्नहरू सोध्नुहोस्...",
      "What should Guru AI focus on?": "रुद्र एआईले केमा ध्यान दिनुपर्छ?",
      "Paste text to summarize...": "सारांश गर्न पाठ टाँस्नुहोस्...",
      "SCAN & ANALYZE": "स्क्यान र विश्लेषण",
      "SUMMARIZE INTEL": "जानकारी सारांश",
      "Result Extraction": "परिणाम निष्कर्षण",
      "Cam": "क्यामेरा",
      "Library": "पुस्तकालय",
      "Clear": "स्पष्ट",
      "Clear Chat": "संवाद मेटाउनुहोस्",
      "Session Feed": "वर्तमान सत्र",
      "Test your heritage knowledge and earn karma points from Guru AI.": "आफ्नो सम्पदा ज्ञान परीक्षण गर्नुहोस् र रुद्र एआईबाट कर्म अंकहरू कमाउनुहोस्।",
      "ENTER CHALLENGE": "चुनौतीमा प्रवेश",
      "Syncing Intel...": "जानकारी सिंक गर्दै...",
      "Ritual Progress": "प्रगति",
      "Wisdom Note": "ज्ञान नोट",
      "CONTINUE": "जारी राख्नुहोस्",
      "Mission Cleared": "मिशन पुरा",
      "Final Score": "अन्तिम स्कोर",
      "RESTART RITUAL": "पुनः सुरु",
      "CONNECT TO": "जडान गर्नुहोस्",
      "Voice Persona Selection": "आवाज व्यक्तित्व चयन",
      "Voice Tuning": "आवाज ट्युनिङ",
      "Voice Speed": "आवाजको गति",
      "Voice Pitch": "आवाजको उतारचढाव",

      // Wellness & Health
      "Wellness Centre": "स्वास्थ्य केन्द्र",
      "Environment": "वातावरण",
      "Daily Log": "दैनिक लग",
      "Yoga Flow": "योग प्रवाह",
      "Yoga": "योग",
      "Wisdom": "ज्ञान",
      "Sapana": "सपना",
      "Climate Tracker": "जलवायु ट्रयाकर",
      "Personal Health": "व्यक्तिगत स्वास्थ्य",
      "Air Quality Index": "वायु गुणस्तर सूचकांक",
      "Mask Advice": "मास्क सुझाव",
      "Pollutants": "प्रदूषकहरू",
      "Feels Like": "महसुस हुने",
      "Humidity": "आर्द्रता",
      "Wind": "हावा",
      "Daily Wellness Wisdom": "दैनिक स्वास्थ्य ज्ञान",
      "Hydration Track": "पानीको ट्रयाक",
      "Mood Ritual": "मनस्थिति विधि",
      "Recovery Sleep": "निद्रा र आराम",
      "Happy": "खुसी",
      "Neutral": "सामान्य",
      "Stressed": "तनाव",
      "Tired": "थकित",
      "Yog Flow & Vitality": "योग र प्राण शक्ति",
      "Benefits": "फाइदाहरू",
      "Movement Guide": "अभ्यास मार्गदर्शक",
      "Ayurvedic Rituals": "आयुर्वेदिक विधिहरू",
      "Longevity Secrets": "दीर्घायुको रहस्य",
      "Active Lifestyle": "सक्रिय जीवनशैली",
      "Sattvic Diet": "सात्त्विक आहार",
      "Social Connection": "सामाजिक सम्बन्ध",
      "Consistent Sleep": "नियमित निद्रा",
      "Community Health Secret": "सामुदायिक स्वास्थ्य रहस्य",
      "Sapana Interpreter": "सपना व्याख्याता",
      "Unlock the hidden messages of your subconscious through the lens of ancient Nepali folklore and modern psychology.": "प्राचीन नेपाली लोककथा र आधुनिक मनोविज्ञानको माध्यमबाट आफ्नो अवचेतन मनका लुकेका सन्देशहरू बुझ्नुहोस्।",
      "Describe your dream here... (e.g. I saw a snake in a temple)": "तपाईंको सपना यहाँ वर्णन गर्नुहोस्... (जस्तै: मैले मन्दिरमा सर्प देखेँ)",
      "REVEAL MEANING": "अर्थ खोल्नुहोस्",
      "Traditional Folklore": "परम्परागत लोकविश्वास",
      "Psychological View": "मनोवैज्ञानिक दृष्टिकोण",

      // Safety & FTL
      "Find The Lost": "हराएकाको खोजी",
      "Report Loss": "हराएको जानकारी",
      "I Found Something": "मैले केहि भेट्टाएँ",
      "Report Eye-Witness": "प्रत्यक्षदर्शी जानकारी",
      "Active Feed": "प्रत्यक्ष अपडेट",
      "My Rescue Logs": "मेरा रिपोर्टहरू",
      "Rescue Tags": "सुरक्षा ट्यागहरू",
      "Community Vault": "सामुदायिक भल्ट",
      "Find My Item": "मेरो सामान खोजनुहोस्",
      "Nepal Police": "नेपाल प्रहरी",
      "Ambulance": "एम्बुलेन्स",
      "Fire Brigade": "दमकल",
      "MISSION COMMAND": "मिशन कमान्ड",

      // Common
      "Loading...": "लोड हुँदैछ...",
      "Save Changes": "परिवर्तनहरू सुरक्षित गर्नुहोस्",
      "Cancel": "रद्द गर्नुहोस्",
      "Close": "बन्द गर्नुहोस्",
      "Edit": "सम्पादन",
      "Delete": "हटाउनुहोस्",
      "Search": "खोज्नुहोस्",
    };
    return dictionary[key] || defaultText;
  };

  return (
    <LanguageContext.Provider value={{ language, setLanguage, t }}>
      {children}
    </LanguageContext.Provider>
  );
};

export const useLanguage = () => {
  const context = useContext(LanguageContext);
  if (!context) throw new Error("useLanguage must be used within a LanguageProvider");
  return context;
};
