"use client";

import {
  createContext,
  useCallback,
  useContext,
  useEffect,
  useMemo,
  useState,
  type ReactNode,
} from "react";

export type Language = "en" | "hi";

export type TranslationKey = keyof typeof translations.en;
type LocalizedRecord = object;

const LANGUAGE_STORAGE_KEY = "app_language";

const translations = {
  en: {
    "common.loading": "Loading...",
    "common.dashboard": "Dashboard",
    "common.adminPanel": "Admin Panel",
    "common.signIn": "Sign In",
    "common.signOut": "Sign Out",
    "common.logout": "Logout",
    "common.registerAsGuide": "Register as a Guide",
    "common.becomeGuide": "Become a Guide",
    "common.home": "Home",
    "common.findGuides": "Find Guides",
    "common.blog": "Blog",
    "common.aboutUs": "About Us",
    "common.contactUs": "Contact Us",
    "common.sitemap": "Sitemap",
    "common.quickLinks": "Quick Links",
    "common.explore": "Explore",
    "common.privacyPolicy": "Privacy Policy",
    "common.policyGuidelines": "Policy and Guidelines",
    "common.termsOfService": "Terms of Service",
    "common.language": "Language",
    "common.english": "English",
    "common.hindi": "Hindi",
    "common.cancel": "Cancel",
    "common.save": "Save",
    "common.submit": "Submit",
    "common.view": "View",
    "common.viewAll": "View All",
    "common.edit": "Edit",
    "common.delete": "Delete",
    "common.actions": "Actions",
    "common.status": "Status",
    "common.search": "Search",
    "common.verified": "Verified",
    "common.pending": "Pending",
    "common.approved": "Approved",
    "common.rejected": "Rejected",
    "common.footerDescription":
      "Official platform for registered tourist guides in Uttarakhand. Find trusted, experienced guides for your journey through Dev Bhoomi.",
    "common.verifiedGuideNetwork": "trusted Guide Network",
    "common.trustedByTourism": "Trusted by Uttarakhand Tourism",
    "common.copyright":
      "Uttarakhand Tourism Development Board. All rights reserved.",
    "common.footerAddress":
      "Uttarakhand Tourism Development Board, Pt. Deen Dayal Upadhyay Paryatan Bhawan Near ONGC Helipad, Garhi Cantt, Dehradun, Uttarakhand 248001",
    "common.designedBy": "Designed and Developed by",
    "common.drishInfotech": "Drish Infotech Limited",
    "sitemap.websiteSitemap": "Website Sitemap",
    "sitemap.exploreStructure": "Explore the Website Structure",
    "sitemap.description":
      "A quick visual map of the main pages and visitor journeys across the Uttarakhand Tourism Guide website.",
    "sitemap.homepage": "Homepage",
    "sitemap.viewXml": "View XML Sitemap",
    "sitemap.discover": "Discover",
    "sitemap.guideServices": "Guide Services",
    "sitemap.account": "Account",
    "sitemap.officialLinks": "Official Links",
    "sitemap.blogs": "Blogs",
    "sitemap.charDhamGuides": "Char Dham Guides",
    "sitemap.adventureGuides": "Adventure Guides",
    "sitemap.wildlifeGuides": "Wildlife Guides",
    "sitemap.culturalGuides": "Cultural Guides",
    "nav.navigationMenu": "Navigation Menu",
    "nav.openMenu": "Open menu",
    "auth.welcomeBack": "Welcome back",
    "auth.continueJourney": "Sign in to your account to continue your journey",
    "auth.emailAddress": "Email Address",
    "auth.emailPlaceholder": "Enter your email",
    "auth.password": "Password",
    "auth.passwordPlaceholder": "Enter your password",
    "auth.forgotPassword": "Forgot password?",
    "auth.signingIn": "Signing in...",
    "auth.noAccount": "Don't have an account?",
    "auth.touristGuides": "tourist guides",
    "auth.heroTitle1": "Uttarakhand",
    "auth.heroTitle2": "Tourism",
    "auth.heroSubtitle": "Simply Heaven",
    "auth.loginSuccess": "Login successfully.",
    "auth.loginFailed": "Invalid email or password. Please try again.",
    "register.applicationReceived": "Application Received",
    "register.submitted": "Registration Submitted!",
    "register.submittedDescription":
      "Your application has been received. Our team will review your documents and verify your credentials. You will receive an email once your account is approved.",
    "register.returnHome": "Return to Home",
    "register.title": "Register as a Tourist Guide",
    "register.subtitle": "Join our network of trusted guides in Uttarakhand",
    "register.personalInfo": "Personal Info",
    "register.professional": "Professional",
    "register.location": "Service Locations",
    "register.documents": "Documents",
    "register.uploadDocuments": "Upload documents",
    "register.password": "Password",
    "register.review": "Review",
    "register.basicDetails": "Basic details",
    "register.experienceSkills": "Experience & skills",
    "register.areasOperation": "Areas of operation",
    "register.secureAccount": "Secure account",
    "register.confirmDetails": "Confirm details",
    "register.tellAboutYourself": "Tell us about yourself",
    "register.shareProfessional": "Share your professional background",
    "register.selectAreas": "Select your areas of operation",
    "register.documentRequirementsHelp":
      "Upload the required documents for verification",
    "register.documentRequirements": "Document Requirements",
    "register.documentQualityHelp":
      "Upload a clear, high-quality image of your document. Ensure all corners are visible, with no glare, blur, shadows, or cropped edges.",
    "register.clear": "Clear",
    "register.noGlare": "No Glare",
    "register.notCropped": "Not Cropped",
    "register.allCorners": "All Corners",
    "register.noDocumentRequirements": "No document requirements found.",
    "register.upload": "Upload",
    "register.view": "View",
    "register.delete": "Delete",
    "register.selected": "Selected",
    "register.uploaded": "Uploaded",
    "register.documentTypeError": "Only {formats} files are allowed.",
    "register.documentSizeError": "File size must not exceed {size}.",
    "register.createSecureAccess": "Create secure account access",
    "register.reviewSubmit": "Review and submit your application",
    "register.fullName": "Full Name",
    "register.fullNamePlaceholder": "Enter your full name",
    "register.email": "Email",
    "register.profileImage": "Profile Photo",
    "register.guidelinesTitle": "Personal Information Guidelines",
    "register.photoRequirements":
      "Photo Requirements: JPEG/PNG only, max size 2MB. Front-facing, neutral background, eyes open, and clearly visible from the shoulders up.",
    "register.textFormatting":
      "Text Formatting: Full Name, Father's Name, Mother's Name (Capital Letters only).",
    "register.dobRequirement": "Date of Birth: DD/MM/YYYY format.",
    "register.mobileAddressRequirement":
      "Mobile & Address: 10-digit number for mobile; permanent address for residential.",
    "register.photoTypeError": "Please select a JPEG or PNG image.",
    "register.photoSizeError": "Photo size must not exceed 2MB.",
    "register.uploadPhoto": "Upload photo",
    "register.changePhoto": "Change photo",
    "register.clearPhoto": "Clear photo",
    "register.currentPhoto": "Current photo on file",
    "register.noProfileImageSelected": "No profile photo selected",
    "register.fatherName": "Father Name",
    "register.fatherNamePlaceholder": "Enter father's name",
    "register.motherName": "Mother Name",
    "register.motherNamePlaceholder": "Enter mother's name",
    "register.dateOfBirth": "Date of Birth",
    "register.phoneNumber": "Phone Number",
    "register.phonePlaceholder": "Enter your phone number",
    "register.address": "Address",
    "register.addressPlaceholder": "Enter your full address",
    "register.experienceYears": "Experience (years)",
    "register.experiencePlaceholder": "e.g., 5",
    "register.companyName": "Company Name",
    "register.companyNamePlaceholder": "Enter company name",
    "register.bio": "Bio",
    "register.bioPlaceholder":
      "Tell tourists about yourself, your experience, and what makes you a great guide...",
    "register.languagesSpoken": "Spoken Languages",
    "register.areasExpertise": "Areas of Expertise",
    "register.selectDistrictsHelp":
      "Select all the districts where you can provide guide services.",
    "register.createPassword": "Create a password",
    "register.confirmPassword": "Confirm Password",
    "register.confirmPasswordPlaceholder": "Confirm your password",
    "register.hidePassword": "Hide password",
    "register.showPassword": "Show password",
    "register.hideConfirmPassword": "Hide confirm password",
    "register.showConfirmPassword": "Show confirm password",
    "register.passwordMismatch": "Passwords do not match.",
    "register.passwordFormat": "Password format",
    "register.ruleLength": "At least 8 characters",
    "register.ruleUppercase": "Contains uppercase letter",
    "register.ruleNumber": "Contains number",
    "register.ruleSpecial": "Contains special character",
    "register.personalInformation": "Personal Information",
    "register.name": "Name",
    "register.phone": "Phone",
    "register.professionalDetails": "Professional Details",
    "register.years": "years",
    "register.notSet": "Not set",
    "register.languages": "Spoken Languages",
    "register.expertise": "Expertise",
    "register.termsAgreement":
      "I agree to the Terms of Service and Privacy Policy. I confirm that all the information provided is accurate and I understand that my application will be trusted by the tourism department.",
    "register.back": "Back",
    "register.next": "Next",
    "register.submitting": "Submitting...",
    "register.submitApplication": "Submit Application",
    "register.alreadyRegistered": "Already registered?",
    "register.verificationStarts":
      "Verification usually starts after department review.",
    "register.emailUpdates":
      "Keep an eye on your registered email for approval updates.",
    "admin.dashboard": "Dashboard",
    "admin.masterDirectories": "Master Directories",
    "admin.documentTypes": "Document Types",
    "admin.languages": "Spoken Languages",
    "admin.locations": "Service Locations",
    "admin.serviceLocations": "Service Locations",
    "admin.serviceLocation": "Service Location",
    "admin.courses": "Courses",
    "admin.expertises": "Expertises",
    "admin.accountManagement": "Account Management",
    "admin.admins": "Admins",
    "admin.administrators": "Administrators",
    "admin.tourGuides": "Tour Guides",
    "admin.guideRequests": "Request Applications",
    "admin.newApplications": "New Applications",
    "admin.renewalApplications": "Renewal Applications",
    "admin.underReviewApplications": "Under Review",
    "admin.completedApplications": "Completed Applications",
    "admin.blogApprovals": "Blog Approvals",
    "admin.monthlyReports": "Monthly Reports",
    "admin.idCards": "ID Cards",
    "admin.idCardManagement": "ID Card Management",
    "admin.pendingIdCards": "Pending ID Cards",
    "admin.issuedIdCards": "Issued ID Cards",
    "admin.expiredIdCards": "Expired ID Cards",
    "admin.certifications": "Certifications",
    "admin.settings": "Settings",
    "admin.welcomeBack": "Welcome Back",
    "admin.today": "Today is Thursday, 02 July 2026",
    "admin.updateProfile": "Update Profile",
    "admin.changePassword": "Change Password",
    "admin.totalGuides": "Total Guides",
    "admin.blogPosts": "Blog Posts",
    "admin.idCardRequests": "ID Card Requests",
    "admin.verifiedPending": "{approved} verified, {pending} pending",
    "admin.pendingApproval": "{count} pending approval",
    "admin.pendingCount": "{count} pending",
    "admin.pendingVerification": "{count} pending verification",
    "admin.quickActions": "Quick Actions",
    "admin.quickActionsDescription": "Items that need administrator attention.",
    "admin.reviewPendingGuides": "Review Pending Guides",
    "admin.reviewPendingGuidesDescription":
      "New registrations awaiting approval",
    "admin.approveBlogPosts": "Approve Blog Posts",
    "admin.approveBlogPostsDescription": "Submitted articles ready for review",
    "admin.processIdCards": "Process ID Cards",
    "admin.processIdCardsDescription": "Issue cards for approved requests",
    "admin.verifyCertifications": "Verify Certifications",
    "admin.verifyCertificationsDescription": "Check uploaded guide credentials",
    "admin.recentActivity": "Recent Activity",
    "admin.recentActivityDescription":
      "Latest platform updates and approval events.",
    "admin.viewAll": "View All",
    "admin.allRecentActivityDescription":
      "All latest platform updates and approval events.",
    "admin.loadingRecentActivity": "Loading recent activity...",
    "admin.noRecentActivity": "No recent activity found.",
    "admin.monthlyReportsSummary": "Monthly Reports Summary",
    "admin.monthlyReportsSummaryDescription":
      "Overview of guide tour reports for the current reporting period.",
    "admin.touristsServed": "Tourists Served",
    "admin.toursConducted": "Tours Conducted",
    "admin.totalRevenue": "Total Revenue",
    "admin.failedLoadDashboard": "Failed to load dashboard.",
    "admin.statusApproved": "approved",
    "admin.statusPending": "pending",
    "admin.profileSettings": "Profile Settings",
    "admin.profileSettingsDescription":
      "Update administrator profile details and contact information.",
    "admin.passwordSecurity": "Password & Security",
    "admin.passwordSecurityDescription":
      "Manage password, access controls, and account security.",
    "admin.notifications": "Notifications",
    "admin.notificationsDescription":
      "Control alerts for approvals, reports, and ID card requests.",
    "admin.comingSoon": "Coming Soon",
    "admin.comingSoonTitle": "Coming Soon!",
    "admin.comingSoonDescription": "Stay tuned!",
    "admin.stayTunedTitle": "Stay tuned!",
    "admin.stayTunedDescription": "This feature will be available soon.",
    "admin.manageProfile": "Manage Profile",
    "admin.updatePersonalInformation": "Update your personal information",
    "admin.profilePhoto": "Profile Photo",
    "admin.profilePhotoHelp": "JPG, PNG or GIF. Max size 5MB.",
    "admin.uploading": "Uploading...",
    "admin.uploadNew": "Upload New",
    "admin.remove": "Remove",
    "admin.personalInformation": "Personal Information",
    "admin.updateProfileDetails": "Update your profile details here",
    "admin.fullName": "Full Name",
    "admin.fullNameHindi": "Full Name in Hindi",
    "admin.address": "Address",
    "admin.addressHindi": "Address in Hindi",
    "admin.phoneNumber": "Phone Number",
    "admin.alternatePhone": "Alternate Phone",
    "admin.saveChanges": "Save Changes",
    "admin.enterFullName": "Enter full name",
    "admin.enterFullNameHindi": "Enter full name in Hindi",
    "admin.enterAddress": "Enter your address",
    "admin.enterAddressHindi": "Enter address in Hindi",
    "admin.enterPhoneNumber": "Enter phone number",
    "admin.enterAlternatePhone": "Enter alternate phone",
    "admin.changePasswordTitle": "Change Password",
    "admin.changePasswordDescription":
      "Ensure your account is using a strong password to stay secure",
    "admin.currentPassword": "Current Password",
    "admin.newPassword": "New Password",
    "admin.confirmNewPassword": "Confirm New Password",
    "admin.enterCurrentPassword": "Enter current password",
    "admin.enterNewPassword": "Enter new password",
    "admin.confirmNewPasswordPlaceholder": "Confirm new password",
    "admin.passwordSecurityTips": "Password Security Tips",
    "admin.passwordSecurityTipsDescription":
      "Use a unique password you do not use elsewhere. Consider using a password manager for better security.",
    "admin.updatePassword": "Update Password",
    "admin.blogManagement": "Blog Management",
    "admin.blogPost": "Blog Post",
    "admin.author": "Author",
    "admin.created": "Created",
    "admin.total": "Total",
    "admin.active": "Active",
    "admin.inactive": "Inactive",
    "admin.all": "All",
    "admin.searchBlogs": "Search by title, category, or tag",
    "admin.loadingBlogs": "Loading blogs...",
    "admin.noBlogsFound": "No blogs found.",
    "admin.noImage": "No Image",
    "admin.preview": "Preview",
    "admin.blogPreview": "Blog Preview",
    "admin.blogPreviewDescription": "Review the blog content before approval.",
    "admin.noContentAvailable": "No content available.",
    "admin.published": "Published",
    "admin.draft": "Draft",
    "admin.reject": "Reject",
    "admin.approvePublish": "Approve & Publish",
    "admin.month": "Month",
    "admin.guide": "Guide",
    "admin.tourists": "Tourists",
    "admin.tours": "Tours",
    "admin.revenue": "Revenue",
    "admin.searchReports": "Search reports...",
    "admin.exportCsv": "Export CSV",
    "admin.exporting": "Exporting...",
    "admin.loadingReports": "Loading reports...",
    "admin.noReportsFound": "No reports found.",
    "admin.reportDetails": "Report Details",
    "admin.reportDetailsDescription":
      "Monthly guide report details and review workflow.",
    "admin.loadingReportDetails": "Loading report details...",
    "admin.guideInformation": "Guide Information",
    "admin.guideName": "Guide Name",
    "admin.guideEmail": "Guide Email",
    "admin.guidePhone": "Guide Phone",
    "admin.reportMonth": "Report Month",
    "admin.submittedAt": "Submitted At",
    "admin.reviewedBy": "Reviewed By",
    "admin.reviewedAt": "Reviewed At",
    "admin.locationsVisited": "Service Locations Visited",
    "admin.noLocationsAvailable": "No service locations available.",
    "admin.touristFeedback": "Tourist Feedback",
    "admin.reviewRemarks": "Review Remarks",
    "admin.reviewWorkflow": "Review Workflow",
    "admin.markAsReviewed": "Mark as Reviewed",
    "admin.approve": "Approve",
    "admin.addReviewRemarks": "Add review remarks",
    "admin.close": "Close",
    "admin.saving": "Saving...",
    "admin.saveReview": "Save Review",
    "admin.guideManagement": "Guide Management",
    "admin.phone": "Phone",
    "admin.searchGuides": "Search current page by name, email, or phone",
    "admin.loadingGuides": "Loading guides...",
    "admin.noGuidesFound": "No guides found.",
    "admin.editGuide": "Edit Guide",
    "admin.editGuideDescription":
      "Update guide profile, professional details, and operation areas.",
    "admin.masterDirectory": "Master Directories",
    "admin.hindiTitle": "Hindi Title",
    "admin.createdBy": "Created By",
    "admin.updatedBy": "Updated By",
    "admin.add": "Add",
    "admin.searchPrefix": "Search",
    "admin.title": "Title",
    "admin.description": "Description",
    "admin.descriptionHindi": "Description Hindi",
    "guide.profile": "Profile",
    "guide.myBlogs": "My Blogs",
    "guide.monthlyReports": "Monthly Reports",
    "guide.idCard": "ID Card",
    "guide.certifications": "Certifications",
    "guide.welcomeBack": "Welcome Back",
    "blog.readMore": "Read More",
    "blog.by": "By",
    "guide.experience": "Experience",
    "guide.districts": "Districts",
    "guide.expertise": "Expertise",
    "home.officialPlatform": "Official Tourism Platform",
    "home.heroDiscover": "Discover",
    "home.heroDevBhoomi": "Dev Bhoomi",
    "home.heroWithGuides": "with Expert Guides",
    "home.heroDescription":
      "Connect with trusted local guides for unforgettable journeys through Uttarakhand. From sacred Char Dham pilgrimages to Himalayan adventures.",
    "home.findGuide": "Find a Guide",
    "home.govtVerified": "Govt. Verified",
    "home.secureBooking": "Secure Booking",
    "home.rating": "4.9 Rating",
    "home.scrollExplore": "Scroll to explore",
    "home.previousSlide": "Previous hero slide",
    "home.nextSlide": "Next hero slide",
    "home.goToSlide": "Go to hero slide",
    "home.statsTitle": "Trusted Tourism Guide Network",
    "home.statsDescription":
      "trusted local experts, broad destination coverage, and years of dependable travel support across Uttarakhand.",
    "home.verifiedGuides": "Trusted Guides",
    "home.districtsCovered": "Districts Covered",
    "home.happyTourists": "Happy Tourists",
    "home.yearsTrust": "Years of Trust",
    "home.publishedBlogs": "Published Blogs",
    "home.topRated": "Top Rated",
    "home.featuredGuides": "Trusted Guides",
    "home.featuredGuidesDescription":
      "Meet our top-rated trusted guides ready to assist you",
    "home.viewAllGuides": "View All Guides",
    "home.findBestDestination": "Find the best destination",
    "home.exploreLocation": "Explore by Location",
    "home.locationDescription":
      "Find specialized guides in your preferred destination across Uttarakhand",
    "home.experiences": "Experiences",
    "home.exploreExperience": "Explore by Experience",
    "home.experienceDescription":
      "Choose guides based on your travel interests and adventure style",
    "home.exploreAction": "Explore",
    "home.whyUs": "Why Us",
    "home.whyChoose": "Why Choose Our Platform?",
    "home.whyDescription":
      "Everything guides need to stay trusted, visible, and trusted while helping tourists plan better journeys.",
    "home.governmentVerified": "Government trusted",
    "home.governmentVerifiedDesc":
      "All guides trusted by Uttarakhand Tourism Development Board with proper documentation and background checks.",
    "home.certifiedSpecialists": "Certified Specialists",
    "home.certifiedSpecialistsDesc":
      "Specialized certifications for Char Dham pilgrimage, adventure sports, wildlife safaris, and cultural experiences.",
    "home.qualityGuaranteed": "Quality Guaranteed",
    "home.qualityGuaranteedDesc":
      "Regular performance monitoring and tourist feedback systems ensure consistently high service standards.",
    "home.marketingPromotion": "Marketing and Promotion",
    "home.marketingPromotionDesc":
      "Get featured across tourism campaigns, guide listings, and digital channels to attract more travelers.",
    "home.increasedVisibility": "Increased Visibility",
    "home.increasedVisibilityDesc":
      "Improve your reach with profile discovery, destination filters, ratings, and tourist-friendly search tools.",
    "home.legalCompliance": "Legal Compliance",
    "home.legalComplianceDesc":
      "Stay aligned with official tourism requirements through trusted records, documentation, and approval workflows.",
    "home.travelInsights": "Travel Insights",
    "home.travelInsightsDesc":
      "Expert tips and guides from our trusted local experts",
    "home.viewAllPosts": "View All Posts",
    "home.readyExplore": "Ready to Explore Uttarakhand?",
    "home.readyExploreDesc":
      "Whether you are planning a spiritual pilgrimage to Char Dham or an adventure trek in the Himalayas, our trusted guides are here to make your journey unforgettable.",
    "home.findYourGuide": "Find Your Guide",
    "home.joinGuide": "Join as a Guide",
    "guides.findYourGuide": "Find Your Guide",
    "guides.findYourGuideDescription":
      "Browse our trusted guides and find the perfect match for your journey",
    "guides.yearsExperienced": "years experienced",
    "guides.languagesSpoken": "spoken languages",
    "guides.view": "View",
    "guides.verified": "Verified",
    "guides.trusted": "Trusted",
    "guides.languagesSpokenTitle": "Spoken Languages",
    "blogs.guideBlogs": "Guide Blogs",
    "blogs.availableSoon": "Available Soon",
    "blogs.availableSoonDescription":
      "Helpful articles, destination tips, and local knowledge will be available shortly.",
    "home.dehradun": "Dehradun",
    "home.haridwar": "Haridwar",
    "home.rishikesh": "Rishikesh",
    "home.mussoorie": "Mussoorie",
    "home.nainital": "Nainital",
    "home.charDhamPilgrimage": "Char Dham Pilgrimage",
    "home.adventureTourism": "Adventure Tourism",
    "home.wildlifeSafari": "Wildlife Safari",
    "home.culturalHeritage": "Cultural Heritage",
    "home.religiousTourism": "Religious Tourism",
    "home.ecoTourism": "Eco Tourism",
  },
  hi: {
    "common.loading": "लोड हो रहा है...",
    "common.dashboard": "डैशबोर्ड",
    "common.adminPanel": "एडमिन पैनल",
    "common.signIn": "साइन इन",
    "common.signOut": "साइन आउट",
    "common.logout": "लॉगआउट",
    "common.registerAsGuide": "गाइड के रूप में पंजीकरण",
    "common.becomeGuide": "गाइड बनें",
    "common.home": "होम",
    "common.findGuides": "गाइड खोजें",
    "common.blog": "ब्लॉग",
    "common.aboutUs": "हमारे बारे में",
    "common.contactUs": "संपर्क करें",
    "common.sitemap": "साइटमैप",
    "common.quickLinks": "त्वरित लिंक",
    "common.explore": "एक्सप्लोर करें",
    "common.privacyPolicy": "गोपनीयता नीति",
    "common.policyGuidelines": "नीति और दिशानिर्देश",
    "common.termsOfService": "सेवा की शर्तें",
    "common.language": "भाषा",
    "common.english": "अंग्रेजी",
    "common.hindi": "हिंदी",
    "common.cancel": "रद्द करें",
    "common.save": "सेव करें",
    "common.submit": "सबमिट करें",
    "common.view": "देखें",
    "common.viewAll": "सभी देखें",
    "common.edit": "संपादित करें",
    "common.delete": "हटाएं",
    "common.actions": "कार्रवाई",
    "common.status": "स्थिति",
    "common.search": "खोजें",
    "common.verified": "सत्यापित",
    "common.pending": "लंबित",
    "common.approved": "स्वीकृत",
    "common.rejected": "अस्वीकृत",
    "common.footerDescription":
      "उत्तराखंड में पंजीकृत पर्यटक गाइडों के लिए आधिकारिक मंच। देवभूमि की यात्रा के लिए सत्यापित और अनुभवी गाइड खोजें।",
    "common.verifiedGuideNetwork": "सत्यापित गाइड नेटवर्क",
    "common.trustedByTourism": "उत्तराखंड पर्यटन द्वारा विश्वसनीय",
    "common.copyright": "उत्तराखंड पर्यटन विकास बोर्ड। सर्वाधिकार सुरक्षित।",
    "common.footerAddress":
      "उत्तराखंड पर्यटन विकास बोर्ड, पं. दीन दयाल उपाध्याय पर्यटन भवन, ओएनजीसी हेलीपैड के पास, गढ़ी कैंट, देहरादून, उत्तराखंड 248001",
    "common.designedBy": "डिज़ाइन एवं विकास:",
    "common.drishInfotech": "डृश इन्फोटेक लिमिटेड",
    "sitemap.websiteSitemap": "वेबसाइट साइटमैप",
    "sitemap.exploreStructure": "वेबसाइट संरचना देखें",
    "sitemap.description":
      "उत्तराखंड पर्यटन गाइड वेबसाइट के मुख्य पृष्ठों और आगंतुक यात्राओं का त्वरित दृश्य मानचित्र।",
    "sitemap.homepage": "होमपेज",
    "sitemap.viewXml": "XML साइटमैप देखें",
    "sitemap.discover": "खोजें",
    "sitemap.guideServices": "गाइड सेवाएँ",
    "sitemap.account": "खाता",
    "sitemap.officialLinks": "आधिकारिक लिंक",
    "sitemap.blogs": "ब्लॉग",
    "sitemap.charDhamGuides": "चार धाम गाइड",
    "sitemap.adventureGuides": "साहसिक गाइड",
    "sitemap.wildlifeGuides": "वन्यजीव गाइड",
    "sitemap.culturalGuides": "सांस्कृतिक गाइड",
    "nav.navigationMenu": "नेविगेशन मेनू",
    "nav.openMenu": "मेनू खोलें",
    "auth.welcomeBack": "वापसी पर स्वागत है",
    "auth.continueJourney": "जारी रखने के लिए अपने खाते में साइन इन करें",
    "auth.emailAddress": "ईमेल पता",
    "auth.emailPlaceholder": "अपना ईमेल दर्ज करें",
    "auth.password": "पासवर्ड",
    "auth.passwordPlaceholder": "अपना पासवर्ड दर्ज करें",
    "auth.forgotPassword": "पासवर्ड भूल गए?",
    "auth.signingIn": "साइन इन हो रहा है...",
    "auth.noAccount": "खाता नहीं है?",
    "auth.touristGuides": "पर्यटक गाइड",
    "auth.heroTitle1": "उत्तराखंड",
    "auth.heroTitle2": "पर्यटन",
    "auth.heroSubtitle": "सिंपली हेवन",
    "auth.loginSuccess": "लॉगिन सफल रहा।",
    "auth.loginFailed": "ईमेल या पासवर्ड अमान्य है। कृपया पुनः प्रयास करें।",
    "register.applicationReceived": "आवेदन प्राप्त हुआ",
    "register.submitted": "पंजीकरण सबमिट हो गया!",
    "register.submittedDescription":
      "आपका आवेदन प्राप्त हो गया है। हमारी टीम आपके दस्तावेजों और प्रमाणों की समीक्षा करेगी। खाता स्वीकृत होने पर आपको ईमेल मिलेगा।",
    "register.returnHome": "होम पर लौटें",
    "register.title": "पर्यटक गाइड के रूप में पंजीकरण करें",
    "register.subtitle": "उत्तराखंड में सत्यापित गाइड नेटवर्क से जुड़ें",
    "register.personalInfo": "व्यक्तिगत जानकारी",
    "register.professional": "पेशेवर",
    "register.location": "सेवा स्थान",
    "register.password": "पासवर्ड",
    "register.review": "समीक्षा",
    "register.basicDetails": "मूल विवरण",
    "register.experienceSkills": "अनुभव और कौशल",
    "register.areasOperation": "कार्य क्षेत्र",
    "register.secureAccount": "सुरक्षित खाता",
    "register.confirmDetails": "विवरण पुष्टि करें",
    "register.tellAboutYourself": "अपने बारे में बताएं",
    "register.shareProfessional": "अपनी पेशेवर पृष्ठभूमि साझा करें",
    "register.selectAreas": "अपने कार्य क्षेत्र चुनें",
    "register.createSecureAccess": "सुरक्षित खाता एक्सेस बनाएं",
    "register.reviewSubmit": "अपने आवेदन की समीक्षा करें और सबमिट करें",
    "register.fullName": "पूरा नाम",
    "register.fullNamePlaceholder": "अपना पूरा नाम दर्ज करें",
    "register.email": "ईमेल",
    "register.profileImage": "प्रोफ़ाइल फोटो",
    "register.guidelinesTitle": "व्यक्तिगत जानकारी के दिशानिर्देश",
    "register.documents": "दस्तावेज़",
    "register.uploadDocuments": "दस्तावेज़ अपलोड करें",
    "register.documentRequirementsHelp":
      "सत्यापन के लिए आवश्यक दस्तावेज़ अपलोड करें",
    "register.documentRequirements": "दस्तावेज़ आवश्यकताएं",
    "register.documentQualityHelp":
      "अपने दस्तावेज़ की स्पष्ट और उच्च गुणवत्ता वाली छवि अपलोड करें। सभी कोने दिखाई देने चाहिए और चमक, धुंधलापन, छाया या कटे हुए किनारे नहीं होने चाहिए।",
    "register.clear": "स्पष्ट",
    "register.noGlare": "चमक नहीं",
    "register.notCropped": "कटा हुआ नहीं",
    "register.allCorners": "सभी कोने",
    "register.noDocumentRequirements": "कोई दस्तावेज़ आवश्यकता नहीं मिली।",
    "register.upload": "अपलोड",
    "register.view": "देखें",
    "register.delete": "हटाएं",
    "register.selected": "चयनित",
    "register.uploaded": "अपलोड किया गया",
    "register.documentTypeError": "केवल {formats} फ़ाइलें स्वीकार की जाती हैं।",
    "register.documentSizeError":
      "फ़ाइल का आकार {size} से अधिक नहीं होना चाहिए।",
    "register.photoRequirements":
      "फोटो आवश्यकताएं: केवल JPEG/PNG, अधिकतम आकार 2MB। सामने से ली गई फोटो, सामान्य पृष्ठभूमि, खुली आंखें और कंधों से ऊपर तक चेहरा स्पष्ट दिखाई देना चाहिए।",
    "register.textFormatting":
      "टेक्स्ट प्रारूप: पूरा नाम, पिता का नाम और माता का नाम केवल बड़े अक्षरों में लिखें।",
    "register.dobRequirement": "जन्म तिथि: DD/MM/YYYY प्रारूप में।",
    "register.mobileAddressRequirement":
      "मोबाइल और पता: मोबाइल नंबर 10 अंकों का और आवासीय पता स्थायी होना चाहिए।",
    "register.photoTypeError": "कृपया JPEG या PNG फोटो चुनें।",
    "register.photoSizeError": "फोटो का आकार 2MB से अधिक नहीं होना चाहिए।",
    "register.uploadPhoto": "फोटो अपलोड करें",
    "register.changePhoto": "फोटो बदलें",
    "register.clearPhoto": "फोटो हटाएँ",
    "register.currentPhoto": "मौजूदा फोटो",
    "register.noProfileImageSelected": "कोई प्रोफ़ाइल फोटो चयनित नहीं",
    "register.fatherName": "पिता का नाम",
    "register.fatherNamePlaceholder": "पिता का नाम दर्ज करें",
    "register.motherName": "माता का नाम",
    "register.motherNamePlaceholder": "माता का नाम दर्ज करें",
    "register.dateOfBirth": "जन्म तिथि",
    "register.phoneNumber": "फ़ोन नंबर",
    "register.phonePlaceholder": "अपना फ़ोन नंबर दर्ज करें",
    "register.address": "पता",
    "register.addressPlaceholder": "अपना पूरा पता दर्ज करें",
    "register.experienceYears": "अनुभव (वर्ष)",
    "register.experiencePlaceholder": "जैसे, 5",
    "register.companyName": "कंपनी का नाम",
    "register.companyNamePlaceholder": "कंपनी का नाम दर्ज करें",
    "register.bio": "परिचय",
    "register.bioPlaceholder":
      "पर्यटकों को अपने बारे में, अपने अनुभव और आपकी गाइड सेवा की खासियतों के बारे में बताएं...",
    "register.languagesSpoken": "बोली जाने वाली भाषाएँ",
    "register.areasExpertise": "विशेषज्ञता के क्षेत्र",
    "register.selectDistrictsHelp":
      "उन सभी जिलों का चयन करें जहाँ आप गाइड सेवा दे सकते हैं।",
    "register.createPassword": "पासवर्ड बनाएं",
    "register.confirmPassword": "पासवर्ड की पुष्टि करें",
    "register.confirmPasswordPlaceholder": "अपना पासवर्ड फिर से दर्ज करें",
    "register.hidePassword": "पासवर्ड छिपाएं",
    "register.showPassword": "पासवर्ड दिखाएं",
    "register.hideConfirmPassword": "पुष्टि पासवर्ड छिपाएं",
    "register.showConfirmPassword": "पुष्टि पासवर्ड दिखाएं",
    "register.passwordMismatch": "पासवर्ड मेल नहीं खाते।",
    "register.passwordFormat": "पासवर्ड प्रारूप",
    "register.ruleLength": "कम से कम 8 अक्षर",
    "register.ruleUppercase": "बड़ा अक्षर शामिल हो",
    "register.ruleNumber": "संख्या शामिल हो",
    "register.ruleSpecial": "विशेष अक्षर शामिल हो",
    "register.personalInformation": "व्यक्तिगत जानकारी",
    "register.name": "नाम",
    "register.phone": "फ़ोन",
    "register.professionalDetails": "पेशेवर विवरण",
    "register.years": "वर्ष",
    "register.notSet": "सेट नहीं",
    "register.languages": "बोली जाने वाली भाषाएँ",
    "register.expertise": "विशेषज्ञता",
    "register.termsAgreement":
      "मैं सेवा की शर्तों और गोपनीयता नीति से सहमत हूँ। मैं पुष्टि करता/करती हूँ कि दी गई सभी जानकारी सही है और मुझे पता है कि मेरा आवेदन पर्यटन विभाग द्वारा सत्यापित किया जाएगा।",
    "register.back": "पीछे",
    "register.next": "आगे",
    "register.submitting": "सबमिट हो रहा है...",
    "register.submitApplication": "आवेदन सबमिट करें",
    "register.alreadyRegistered": "पहले से पंजीकृत हैं?",
    "register.verificationStarts":
      "विभागीय समीक्षा के बाद सत्यापन सामान्यतः शुरू होता है।",
    "register.emailUpdates":
      "स्वीकृति अपडेट के लिए अपने पंजीकृत ईमेल पर नज़र रखें।",
    "admin.dashboard": "डैशबोर्ड",
    "admin.masterDirectories": "मास्टर डायरेक्टरी",
    "admin.documentTypes": "दस्तावेज़ प्रकार",
    "admin.languages": "बोली जाने वाली भाषाएँ",
    "admin.locations": "सेवा स्थान",
    "admin.serviceLocations": "सेवा स्थान",
    "admin.serviceLocation": "सेवा स्थान",
    "admin.courses": "\\u0915\\u094B\\u0930\\u094D\\u0938",
    "admin.expertises": "विशेषज्ञताएँ",
    "admin.accountManagement": "खाता प्रबंधन",
    "admin.admins": "एडमिन",
    "admin.administrators": "एडमिनिस्ट्रेटर",
    "admin.tourGuides": "टूर गाइड",
    "admin.guideRequests": "अनुरोध आवेदन",
    "admin.newApplications": "नए आवेदन",
    "admin.renewalApplications": "नवीनीकरण आवेदन",
    "admin.underReviewApplications": "समीक्षा में",
    "admin.completedApplications": "पूर्ण आवेदन",
    "admin.blogApprovals": "ब्लॉग स्वीकृतियाँ",
    "admin.monthlyReports": "मासिक रिपोर्ट",
    "admin.idCards": "आईडी कार्ड",
    "admin.idCardManagement": "आईडी कार्ड प्रबंधन",
    "admin.pendingIdCards": "लंबित आईडी कार्ड",
    "admin.issuedIdCards": "जारी आईडी कार्ड",
    "admin.expiredIdCards": "समाप्त आईडी कार्ड",
    "admin.certifications": "प्रमाणपत्र",
    "admin.settings": "सेटिंग्स",
    "admin.welcomeBack": "वापसी पर स्वागत है",
    "admin.today": "आज गुरुवार, 02 जुलाई 2026 है",
    "admin.updateProfile": "प्रोफ़ाइल अपडेट करें",
    "admin.changePassword": "पासवर्ड बदलें",
    "admin.totalGuides": "कुल गाइड",
    "admin.blogPosts": "ब्लॉग पोस्ट",
    "admin.idCardRequests": "आईडी कार्ड अनुरोध",
    "admin.verifiedPending": "{approved} सत्यापित, {pending} लंबित",
    "admin.pendingApproval": "{count} स्वीकृति हेतु लंबित",
    "admin.pendingCount": "{count} लंबित",
    "admin.pendingVerification": "{count} सत्यापन हेतु लंबित",
    "admin.quickActions": "त्वरित कार्य",
    "admin.quickActionsDescription": "वे आइटम जिन पर प्रशासक का ध्यान चाहिए।",
    "admin.reviewPendingGuides": "लंबित गाइड की समीक्षा करें",
    "admin.reviewPendingGuidesDescription":
      "नई पंजीकरण स्वीकृति की प्रतीक्षा में हैं",
    "admin.approveBlogPosts": "ब्लॉग पोस्ट स्वीकृत करें",
    "admin.approveBlogPostsDescription":
      "सबमिट किए गए लेख समीक्षा के लिए तैयार हैं",
    "admin.processIdCards": "आईडी कार्ड संसाधित करें",
    "admin.processIdCardsDescription":
      "स्वीकृत अनुरोधों के लिए कार्ड जारी करें",
    "admin.verifyCertifications": "प्रमाणपत्र सत्यापित करें",
    "admin.verifyCertificationsDescription":
      "अपलोड किए गए गाइड प्रमाणपत्र जाँचें",
    "admin.recentActivity": "हाल की गतिविधि",
    "admin.recentActivityDescription":
      "नवीनतम प्लेटफ़ॉर्म अपडेट और स्वीकृति घटनाएँ।",
    "admin.viewAll": "सभी देखें",
    "admin.allRecentActivityDescription":
      "सभी नवीनतम प्लेटफ़ॉर्म अपडेट और स्वीकृति घटनाएँ।",
    "admin.loadingRecentActivity": "हाल की गतिविधि लोड हो रही है...",
    "admin.noRecentActivity": "कोई हाल की गतिविधि नहीं मिली।",
    "admin.monthlyReportsSummary": "मासिक रिपोर्ट सारांश",
    "admin.monthlyReportsSummaryDescription":
      "वर्तमान रिपोर्टिंग अवधि के लिए गाइड टूर रिपोर्ट का सारांश।",
    "admin.touristsServed": "सेवा प्राप्त पर्यटक",
    "admin.toursConducted": "किए गए टूर",
    "admin.totalRevenue": "कुल राजस्व",
    "admin.failedLoadDashboard": "डैशबोर्ड लोड करने में विफल।",
    "admin.statusApproved": "स्वीकृत",
    "admin.statusPending": "लंबित",
    "admin.profileSettings": "प्रोफ़ाइल सेटिंग्स",
    "admin.profileSettingsDescription":
      "प्रशासक प्रोफ़ाइल विवरण और संपर्क जानकारी अपडेट करें।",
    "admin.passwordSecurity": "पासवर्ड और सुरक्षा",
    "admin.passwordSecurityDescription":
      "पासवर्ड, एक्सेस नियंत्रण और खाते की सुरक्षा प्रबंधित करें।",
    "admin.notifications": "सूचनाएँ",
    "admin.notificationsDescription":
      "स्वीकृतियों, रिपोर्ट और आईडी कार्ड अनुरोधों की सूचनाएँ नियंत्रित करें।",
    "admin.comingSoon": "जल्द आ रहा है",
    "admin.comingSoonTitle": "Coming Soon!",
    "admin.comingSoonDescription": "Stay tuned!",
    "admin.stayTunedTitle": "Stay tuned!",
    "admin.stayTunedDescription": "यह सुविधा जल्द उपलब्ध होगी।",
    "admin.manageProfile": "प्रोफ़ाइल प्रबंधित करें",
    "admin.updatePersonalInformation": "अपनी व्यक्तिगत जानकारी अपडेट करें",
    "admin.profilePhoto": "प्रोफ़ाइल फोटो",
    "admin.profilePhotoHelp": "JPG, PNG या GIF. अधिकतम आकार 5MB.",
    "admin.uploading": "अपलोड हो रहा है...",
    "admin.uploadNew": "नया अपलोड करें",
    "admin.remove": "हटाएँ",
    "admin.personalInformation": "व्यक्तिगत जानकारी",
    "admin.updateProfileDetails": "यहाँ अपनी प्रोफ़ाइल जानकारी अपडेट करें",
    "admin.fullName": "पूरा नाम",
    "admin.fullNameHindi": "हिंदी में पूरा नाम",
    "admin.address": "पता",
    "admin.addressHindi": "हिंदी में पता",
    "admin.phoneNumber": "फोन नंबर",
    "admin.alternatePhone": "वैकल्पिक फोन",
    "admin.saveChanges": "परिवर्तन सहेजें",
    "admin.enterFullName": "पूरा नाम दर्ज करें",
    "admin.enterFullNameHindi": "हिंदी में पूरा नाम दर्ज करें",
    "admin.enterAddress": "अपना पता दर्ज करें",
    "admin.enterAddressHindi": "हिंदी में पता दर्ज करें",
    "admin.enterPhoneNumber": "फोन नंबर दर्ज करें",
    "admin.enterAlternatePhone": "वैकल्पिक फोन दर्ज करें",
    "admin.changePasswordTitle": "पासवर्ड बदलें",
    "admin.changePasswordDescription":
      "सुरक्षा के लिए अपने खाते में मजबूत पासवर्ड उपयोग करें",
    "admin.currentPassword": "वर्तमान पासवर्ड",
    "admin.newPassword": "नया पासवर्ड",
    "admin.confirmNewPassword": "नए पासवर्ड की पुष्टि करें",
    "admin.enterCurrentPassword": "वर्तमान पासवर्ड दर्ज करें",
    "admin.enterNewPassword": "नया पासवर्ड दर्ज करें",
    "admin.confirmNewPasswordPlaceholder": "नए पासवर्ड की पुष्टि करें",
    "admin.passwordSecurityTips": "पासवर्ड सुरक्षा सुझाव",
    "admin.passwordSecurityTipsDescription":
      "ऐसा अनोखा पासवर्ड उपयोग करें जिसे आप कहीं और उपयोग नहीं करते। बेहतर सुरक्षा के लिए पासवर्ड मैनेजर का उपयोग करें।",
    "admin.updatePassword": "पासवर्ड अपडेट करें",
    "admin.blogManagement": "ब्लॉग प्रबंधन",
    "admin.blogPost": "ब्लॉग पोस्ट",
    "admin.author": "लेखक",
    "admin.created": "बनाया गया",
    "admin.total": "कुल",
    "admin.active": "सक्रिय",
    "admin.inactive": "निष्क्रिय",
    "admin.all": "सभी",
    "admin.searchBlogs": "शीर्षक, श्रेणी या टैग से खोजें",
    "admin.loadingBlogs": "ब्लॉग लोड हो रहे हैं...",
    "admin.noBlogsFound": "कोई ब्लॉग नहीं मिला।",
    "admin.noImage": "कोई छवि नहीं",
    "admin.preview": "पूर्वावलोकन",
    "admin.blogPreview": "ब्लॉग पूर्वावलोकन",
    "admin.blogPreviewDescription":
      "स्वीकृति से पहले ब्लॉग सामग्री की समीक्षा करें।",
    "admin.noContentAvailable": "कोई सामग्री उपलब्ध नहीं है।",
    "admin.published": "प्रकाशित",
    "admin.draft": "ड्राफ्ट",
    "admin.reject": "अस्वीकार करें",
    "admin.approvePublish": "स्वीकृत और प्रकाशित करें",
    "admin.month": "माह",
    "admin.guide": "गाइड",
    "admin.tourists": "पर्यटक",
    "admin.tours": "टूर",
    "admin.revenue": "राजस्व",
    "admin.searchReports": "रिपोर्ट खोजें...",
    "admin.exportCsv": "CSV निर्यात करें",
    "admin.exporting": "निर्यात हो रहा है...",
    "admin.loadingReports": "रिपोर्ट लोड हो रही हैं...",
    "admin.noReportsFound": "कोई रिपोर्ट नहीं मिली।",
    "admin.reportDetails": "रिपोर्ट विवरण",
    "admin.reportDetailsDescription":
      "मासिक गाइड रिपोर्ट विवरण और समीक्षा प्रक्रिया।",
    "admin.loadingReportDetails": "रिपोर्ट विवरण लोड हो रहा है...",
    "admin.guideInformation": "गाइड जानकारी",
    "admin.guideName": "गाइड नाम",
    "admin.guideEmail": "गाइड ईमेल",
    "admin.guidePhone": "गाइड फोन",
    "admin.reportMonth": "रिपोर्ट माह",
    "admin.submittedAt": "सबमिट समय",
    "admin.reviewedBy": "समीक्षा करने वाला",
    "admin.reviewedAt": "समीक्षा समय",
    "admin.locationsVisited": "देखे गए सेवा स्थान",
    "admin.noLocationsAvailable": "कोई सेवा स्थान उपलब्ध नहीं है।",
    "admin.touristFeedback": "पर्यटक प्रतिक्रिया",
    "admin.reviewRemarks": "समीक्षा टिप्पणी",
    "admin.reviewWorkflow": "समीक्षा प्रक्रिया",
    "admin.markAsReviewed": "समीक्षित चिह्नित करें",
    "admin.approve": "स्वीकृत करें",
    "admin.addReviewRemarks": "समीक्षा टिप्पणी जोड़ें",
    "admin.close": "बंद करें",
    "admin.saving": "सहेजा जा रहा है...",
    "admin.saveReview": "समीक्षा सहेजें",
    "admin.guideManagement": "गाइड प्रबंधन",
    "admin.phone": "फोन",
    "admin.searchGuides": "नाम, ईमेल या फोन से वर्तमान पेज खोजें",
    "admin.loadingGuides": "गाइड लोड हो रहे हैं...",
    "admin.noGuidesFound": "कोई गाइड नहीं मिला।",
    "admin.editGuide": "गाइड संपादित करें",
    "admin.editGuideDescription":
      "गाइड प्रोफ़ाइल, पेशेवर विवरण और संचालन क्षेत्र अपडेट करें।",
    "admin.masterDirectory": "मास्टर डायरेक्टरी",
    "admin.hindiTitle": "हिंदी शीर्षक",
    "admin.createdBy": "बनाने वाला",
    "admin.updatedBy": "अपडेट करने वाला",
    "admin.add": "जोड़ें",
    "admin.searchPrefix": "खोजें",
    "admin.title": "शीर्षक",
    "admin.description": "विवरण",
    "admin.descriptionHindi": "हिंदी विवरण",
    "guide.profile": "प्रोफ़ाइल",
    "guide.myBlogs": "मेरे ब्लॉग",
    "guide.monthlyReports": "मासिक रिपोर्ट",
    "guide.idCard": "आईडी कार्ड",
    "guide.certifications": "प्रमाणपत्र",
    "guide.welcomeBack": "वापसी पर स्वागत है",
    "blog.readMore": "और पढ़ें",
    "blog.by": "द्वारा",
    "guide.experience": "अनुभव",
    "guide.districts": "जिले",
    "guide.expertise": "विशेषज्ञता",
    "home.officialPlatform": "आधिकारिक पर्यटन मंच",
    "home.heroDiscover": "खोजें",
    "home.heroDevBhoomi": "देवभूमि",
    "home.heroWithGuides": "विशेषज्ञ गाइडों के साथ",
    "home.heroDescription":
      "उत्तराखंड की अविस्मरणीय यात्राओं के लिए सत्यापित स्थानीय गाइडों से जुड़ें। पवित्र चार धाम यात्रा से लेकर हिमालयी रोमांच तक।",
    "home.findGuide": "गाइड खोजें",
    "home.govtVerified": "सरकारी सत्यापित",
    "home.secureBooking": "सुरक्षित बुकिंग",
    "home.rating": "4.9 रेटिंग",
    "home.scrollExplore": "एक्सप्लोर करने के लिए स्क्रॉल करें",
    "home.previousSlide": "पिछली हीरो स्लाइड",
    "home.nextSlide": "अगली हीरो स्लाइड",
    "home.goToSlide": "हीरो स्लाइड पर जाएं",
    "home.statsTitle": "विश्वसनीय पर्यटन गाइड नेटवर्क",
    "home.statsDescription":
      "उत्तराखंड भर में सत्यापित स्थानीय विशेषज्ञ, व्यापक गंतव्य कवरेज और वर्षों का भरोसेमंद यात्रा सहयोग।",
    "home.verifiedGuides": "सत्यापित गाइड",
    "home.districtsCovered": "कवर किए गए जिले",
    "home.happyTourists": "संतुष्ट पर्यटक",
    "home.yearsTrust": "वर्षों का भरोसा",
    "home.publishedBlogs": "प्रकाशित ब्लॉग",
    "home.topRated": "शीर्ष रेटेड",
    "home.featuredGuides": "विश्वसनीय गाइड",
    "home.featuredGuidesDescription":
      "आपकी सहायता के लिए तैयार हमारे शीर्ष रेटेड सत्यापित गाइडों से मिलें",
    "home.viewAllGuides": "सभी गाइड देखें",
    "home.findBestDestination": "सर्वश्रेष्ठ गंतव्य खोजें",
    "home.exploreLocation": "स्थान के अनुसार खोजें",
    "home.locationDescription":
      "उत्तराखंड में अपने पसंदीदा गंतव्य के लिए विशेषज्ञ गाइड खोजें",
    "home.experiences": "अनुभव",
    "home.exploreExperience": "अनुभव के अनुसार खोजें",
    "home.experienceDescription":
      "अपनी यात्रा रुचियों और रोमांच शैली के अनुसार गाइड चुनें",
    "home.exploreAction": "एक्सप्लोर करें",
    "home.whyUs": "हमें क्यों चुनें",
    "home.whyChoose": "हमारा प्लेटफॉर्म क्यों चुनें?",
    "home.whyDescription":
      "गाइडों को सत्यापित, दृश्यमान और विश्वसनीय बनाए रखने तथा पर्यटकों को बेहतर यात्रा योजना में मदद करने के लिए सब कुछ।",
    "home.governmentVerified": "सरकारी सत्यापित",
    "home.governmentVerifiedDesc":
      "सभी गाइड उत्तराखंड पर्यटन विकास बोर्ड द्वारा उचित दस्तावेजों और पृष्ठभूमि जांच के साथ सत्यापित हैं।",
    "home.certifiedSpecialists": "प्रमाणित विशेषज्ञ",
    "home.certifiedSpecialistsDesc":
      "चार धाम यात्रा, साहसिक खेल, वन्यजीव सफारी और सांस्कृतिक अनुभवों के लिए विशेष प्रमाणन।",
    "home.qualityGuaranteed": "गुणवत्ता की गारंटी",
    "home.qualityGuaranteedDesc":
      "नियमित प्रदर्शन निगरानी और पर्यटक प्रतिक्रिया प्रणाली लगातार उच्च सेवा मानक सुनिश्चित करती है।",
    "home.marketingPromotion": "मार्केटिंग और प्रचार",
    "home.marketingPromotionDesc":
      "अधिक यात्रियों को आकर्षित करने के लिए पर्यटन अभियानों, गाइड लिस्टिंग और डिजिटल चैनलों पर फीचर हों।",
    "home.increasedVisibility": "बढ़ी हुई दृश्यता",
    "home.increasedVisibilityDesc":
      "प्रोफ़ाइल खोज, गंतव्य फ़िल्टर, रेटिंग और पर्यटक-अनुकूल खोज टूल के साथ अपनी पहुंच बढ़ाएं।",
    "home.legalCompliance": "कानूनी अनुपालन",
    "home.legalComplianceDesc":
      "सत्यापित रिकॉर्ड, दस्तावेज़ीकरण और स्वीकृति प्रक्रियाओं के माध्यम से आधिकारिक पर्यटन आवश्यकताओं के अनुरूप रहें।",
    "home.travelInsights": "यात्रा जानकारी",
    "home.travelInsightsDesc":
      "हमारे सत्यापित स्थानीय विशेषज्ञों से विशेषज्ञ सुझाव और गाइड",
    "home.viewAllPosts": "सभी पोस्ट देखें",
    "home.readyExplore": "उत्तराखंड घूमने के लिए तैयार हैं?",
    "home.readyExploreDesc":
      "चाहे आप चार धाम की आध्यात्मिक यात्रा की योजना बना रहे हों या हिमालय में रोमांचक ट्रेक की, हमारे सत्यापित गाइड आपकी यात्रा को यादगार बनाने के लिए तैयार हैं।",
    "home.findYourGuide": "अपना गाइड खोजें",
    "home.joinGuide": "गाइड के रूप में जुड़ें",
    "guides.findYourGuide": "अपना गाइड खोजें",
    "guides.findYourGuideDescription":
      "हमारे सत्यापित गाइड ब्राउज़ करें और अपनी यात्रा के लिए सही गाइड चुनें",
    "guides.yearsExperienced": "वर्षों का अनुभव",
    "guides.languagesSpoken": "बोली जाने वाली भाषाएँ",
    "guides.view": "देखें",
    "guides.verified": "सत्यापित",
    "guides.trusted": "विश्वसनीय",
    "guides.languagesSpokenTitle": "बोली जाने वाली भाषाएँ",
    "blogs.guideBlogs": "गाइड ब्लॉग",
    "blogs.availableSoon": "जल्द उपलब्ध",
    "blogs.availableSoonDescription":
      "उपयोगी लेख, गंतव्य सुझाव और स्थानीय जानकारी शीघ्र उपलब्ध होगी।",
    "home.dehradun": "देहरादून",
    "home.haridwar": "हरिद्वार",
    "home.rishikesh": "ऋषिकेश",
    "home.mussoorie": "मसूरी",
    "home.nainital": "नैनीताल",
    "home.charDhamPilgrimage": "चार धाम यात्रा",
    "home.adventureTourism": "साहसिक पर्यटन",
    "home.wildlifeSafari": "वन्यजीव सफारी",
    "home.culturalHeritage": "सांस्कृतिक विरासत",
    "home.religiousTourism": "धार्मिक पर्यटन",
    "home.ecoTourism": "ईको पर्यटन",
  },
} as const;

interface LanguageContextValue {
  language: Language;
  setLanguage: (language: Language) => void;
  t: (key: string) => string;
  localize: <T extends LocalizedRecord>(item: T, field: string) => string;
}

const LanguageContext = createContext<LanguageContextValue | undefined>(
  undefined,
);

export function LanguageProvider({ children }: { children: ReactNode }) {
  const [language, setLanguageState] = useState<Language>("en");

  useEffect(() => {
    const timeoutId = window.setTimeout(() => {
      const savedLanguage = localStorage.getItem(LANGUAGE_STORAGE_KEY);
      if (savedLanguage === "en" || savedLanguage === "hi") {
        setLanguageState(savedLanguage);
        document.documentElement.lang = savedLanguage;
      }
    }, 0);

    return () => window.clearTimeout(timeoutId);
  }, []);

  const setLanguage = useCallback((nextLanguage: Language) => {
    setLanguageState(nextLanguage);
    localStorage.setItem(LANGUAGE_STORAGE_KEY, nextLanguage);
    document.documentElement.lang = nextLanguage;
  }, []);

  const t = useCallback(
    (key: string) =>
      translations[language][key as TranslationKey] ||
      translations.en[key as TranslationKey] ||
      key,
    [language],
  );

  const localize = useCallback(
    <T extends LocalizedRecord>(item: T, field: string) => {
      const localizedField = language === "hi" ? `${field}_hi` : field;
      const localizedItem = item as Record<string, unknown>;
      const localizedValue = localizedItem[localizedField];
      const fallbackValue = localizedItem[field];

      return String(localizedValue || fallbackValue || "");
    },
    [language],
  );

  const value = useMemo(
    () => ({ language, setLanguage, t, localize }),
    [language, localize, setLanguage, t],
  );

  return (
    <LanguageContext.Provider value={value}>
      {children}
    </LanguageContext.Provider>
  );
}

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