/* i18n.jsx — BG⇄EN. Keeps Bulgarian in source; translateTo() swaps visible text
   nodes (and input placeholders) within a root using the EN dictionary. Idempotent. */

window.I18N_EN = {
  // common / nav
  "Карта": "Map", "Маршрути": "Routes", "Общност": "Community", "Профил": "Profile",
  "Старт": "Start", "Край": "End", "Напред": "Next", "Прескочи": "Skip", "Започни": "Get started",
  "Готово": "Done", "Промени": "Change", "Публикувай": "Publish", "Добави място": "Add place",
  "Сигнал": "Report", "Докладвай": "Report", "Назад": "Back",

  // home
  "Накъде днес?": "Where to today?", "Вкъщи": "Home", "Работа": "Work", "Любими": "Favorites",
  "12 мин": "12 min", "24 мин": "24 min", "с колело": "by bike",
  "Слой „Общност“": "Community layer", "Безопасни улици": "Safe streets",
  "Опасни участъци": "Dangerous spots", "Непотвърдени": "Unconfirmed",

  // search
  "Резултати": "Results", "Скорошни": "Recent", "Запазени": "Saved",
  "Народен театър": "National Theatre", "Борисова градина": "Borisova Garden",
  "Народно събрание": "National Assembly", "Народна библиотека": "National Library",
  "пл. България 1 · Триадица": "1 Bulgaria Sq · Triaditsa",
  "Главен вход · Лозенец": "Main entrance · Lozenets",
  "ул. Дякон Игнатий 5 · Център": "5 Dyakon Ignatiy St · Center",
  "пл. Народно събрание 2 · Център": "2 Nat. Assembly Sq · Center",
  "бул. Васил Левски 88 · Център": "88 Vasil Levski Blvd · Center",
  "ж.к. Лозенец": "Lozenets district", "бул. Цариградско шосе": "Tsarigradsko Shose Blvd",

  // route select
  "ул. Дякон Игнатий 5 · 3 маршрута": "5 Dyakon Ignatiy St · 3 routes",
  "Изберете маршрут": "Choose a route", "с велосипед": "by bike",
  "Най-безопасен": "Safest", "Най-бърз": "Fastest", "През парка": "Through the park",
  "мин": "min", "велоалеи": "bike lanes", "трафик": "traffic",
  "нисък": "low", "висок": "high", "умерен": "moderate",
  "Тихи централни улици и велоалеи": "Quiet central streets and bike lanes",
  "По-кратък, но по-натоварени булеварди": "Shorter, but busier boulevards",
  "Покрай Борисова градина": "Along Borisova Garden",
  "избягва": "avoids", "докладвани опасности": "reported hazards",
  "докладвани опасности по пътя": "reported hazards en route",
  "2,6 км": "2.6 km", "3,8 км": "3.8 km", "4,5 км": "4.5 km", "4,2 км": "4.2 km",
  "5,0 км": "5.0 km", "3,6 км": "3.6 km", "6,2 км": "6.2 km", "5,6 км": "5.6 km", "4,1 км": "4.1 km",

  // active navigation
  "Тръгнете": "Depart", "Завийте наляво": "Turn left", "Завийте надясно": "Turn right",
  "Продължете направо": "Continue straight", "Леко наляво": "Slight left", "Леко надясно": "Slight right",
  "Пристигане": "Arrive",
  "завийте наляво": "turn left", "завийте надясно": "turn right", "продължете направо": "continue straight",
  "тръгнете": "depart", "пристигане": "arrive", "покрай борисова градина": "along borisova garden",
  "Покрай Борисова градина": "Along Borisova Garden", "към Орлов мост": "toward Orlov Most",
  "по": "on", "После": "Then", "· пристигане": "· arrival", "км/ч": "km/h",
  "Велоалеята свършва след 100 м": "Bike lane ends in 100 m",
  "Внимание — неравен паваж напред": "Caution — rough cobblestone ahead",
  "Натоварено движение при Орлов мост": "Heavy traffic at Orlov Most",

  // routes tab
  "ТАЗИ СЕДМИЦА": "THIS WEEK", "км": "km", "пътувания": "trips", "ср. безопасност": "avg safety",
  "Скорошни пътувания": "Recent trips",
  "Запазете маршрут със звездата в екрана с маршрути — ще се появи тук за бърз достъп.":
    "Save a route with the star on the route screen — it'll appear here for quick access.",
  "Тук ще се появят пътуванията ти — щом стартираш навигация по маршрут.":
    "Your trips will show up here once you start navigating a route.",
  "Запази маршрут": "Save route",
  "Днес": "Today", "Вчера": "Yesterday",
  "Днес · 08:24": "Today · 08:24", "Вчера · 18:10": "Yesterday · 18:10", "Пон · 09:02": "Mon · 09:02",
  "Витоша": "Vitosha", "Лозенец": "Lozenets",

  // community tab
  "сигнала": "reports", "колоездачи": "cyclists", "опасни зони": "danger zones",
  "Скорошни сигнали": "Recent reports",
  "Дупка": "Pothole", "Опасно движение": "Dangerous traffic", "Блокирана велоалея": "Blocked bike lane",
  "Ремонт на пътя": "Roadworks", "Блокирана алея": "Blocked lane", "Произшествие": "Accident",
  "Пътен ремонт": "Roadworks", "Лошо осветление": "Poor lighting",
  "ул. Граф Игнатиев": "Graf Ignatiev St", "Орлов мост": "Orlov Most",
  "бул. България": "Bulgaria Blvd", "бул. Витоша": "Vitosha Blvd",
  "преди 12 мин": "12 min ago", "преди 1 ч": "1 hr ago", "преди 2 ч": "2 hrs ago", "преди 3 ч": "3 hrs ago",
  "Топ участници": "Top contributors", "Локален експерт": "Local expert", "Доверен": "Trusted", "т.": "pts",
  "Добави към картата": "Add to map",
  "Маркирай безопасна улица или опасен участък": "Mark a safe street or dangerous spot",

  // profile
  "София · Колоездач ниво 4": "Sofia · Cyclist level 4",
  "км / месец": "km / month", "доклада": "reports",
  "Офлайн карти · анализи · история": "Offline maps · analytics · history",
  "Опитай безплатно": "Try for free",
  "Предпочитания за маршрут": "Route preferences",
  "Запазени места": "Saved places", "Моят велосипед": "My bike", "Градски": "City",
  "Гласова навигация": "Voice navigation", "Вкл.": "On", "Изкл.": "Off",
  "Известия": "Notifications", "Изход": "Log out",
  "Език": "Language", "Български": "Bulgarian", "English": "English",

  // onboarding
  "ДОБРЕ ДОШЪЛ": "WELCOME",
  "Карай по-спокойно из София": "Ride calmer across Sofia",
  "Veloroute подрежда маршрутите по безопасност и комфорт — не само по най-късото време.":
    "Veloroute ranks routes by safety and comfort — not just the shortest time.",
  "Виж безопасността, преди да тръгнеш": "See the safety before you go",
  "Сравни маршрути по защитени алеи, трафик и наклон. Избери спокойствие или скорост — ти решаваш.":
    "Compare routes by protected lanes, traffic and elevation. Choose calm or speed — you decide.",
  "Навигация и сигнали в реално време": "Navigation and alerts in real time",
  "Едри указания за един поглед и навременни предупреждения за дупки, паваж и опасно движение.":
    "Glanceable directions and timely warnings about potholes, cobblestones and dangerous traffic.",
  "Картата, която колоездачите създават": "The map cyclists build",
  "Хиляди местни рейдъри маркират безопасни улици и опасни участъци. Ти също можеш — и това прави маршрутите по-добри за всички.":
    "Thousands of local riders mark safe streets and dangerous spots. You can too — making routes better for everyone.",
  "Само две разрешения": "Just two permissions",
  "Нужни са единствено за навигацията и безопасността ти.": "Used only for navigation and your safety.",
  "Локация": "Location", "За навигация и маршрути в реално време.": "For navigation and real-time routes.",
  "Сигнали за опасности по пътя ти.": "Alerts for hazards on your route.",
  "Разреши": "Allow", "Разрешено": "Allowed",
  "Как обичаш да караш?": "How do you like to ride?",
  "Ще подредим маршрутите спрямо теб. Може да смениш по-късно.": "We'll tailor routes to you. Change anytime.",
  "Най-безопасни маршрути": "Safest routes", "Предпочитай велоалеи": "Prefer bike lanes",
  "Избягвай хълмове": "Avoid hills", "Избягвай трафик": "Avoid traffic", "Най-кратко време": "Shortest time",
  "Вече имаш профил?": "Already have an account?", "Вход": "Log in",

  // auth
  "Създайте профил": "Create account", "Добре дошли отново": "Welcome back",
  "Присъединете се към колоездачите в София.": "Join Sofia's cyclists.",
  "Влезте, за да продължите.": "Log in to continue.",
  "Име": "Name", "Имейл": "Email", "Парола": "Password",
  "Регистрация": "Sign up", "или": "or",
  "Продължи с Apple": "Continue with Apple", "Продължи с Google": "Continue with Google",
  "Момент…": "One moment…",
  "Бекендът не е свързан.": "The backend isn't connected.",
  "Бекендът не е свързан. Свържи се с поддръжката.": "The backend isn't connected. Contact support.",
  "Вече имате профил?": "Already have an account?", "Нямате профил?": "No account yet?",
  "Въведете имейл и парола.": "Enter your email and password.",
  "Грешен имейл или парола.": "Wrong email or password.",
  "Този имейл вече е регистриран.": "This email is already registered.",
  "Паролата трябва да е поне 6 символа.": "Password must be at least 6 characters.",
  "Невалиден имейл адрес.": "Invalid email address.",
  "Проверете имейла си, за да потвърдите профила.": "Check your email to confirm your account.",
  // auth — password reset / change
  "Забравена парола?": "Forgot password?", "Забравена парола": "Forgot password",
  "Въведете имейла си и ще изпратим връзка за нова парола.": "Enter your email and we'll send a reset link.",
  "Изпрати връзка": "Send link", "← Назад към вход": "← Back to log in",
  "Изпратихме връзка за нулиране на паролата на пощата ти. Отвори я, за да зададеш нова парола.":
    "We sent a password-reset link to your email. Open it to set a new password.",
  "Връзка за нулиране е изпратена (демо).": "Reset link sent (demo).",
  "Нова парола": "New password", "Смяна на парола": "Change password",
  "Задай нова парола за профила си.": "Set a new password for your account.",
  "Въведи новата парола за профила си.": "Enter a new password for your account.",
  "Запази паролата": "Save password", "Смени паролата": "Change password",
  "Повтори паролата": "Repeat password",
  "Паролите не съвпадат.": "Passwords don't match.",
  "Паролата е сменена": "Password changed",
  "Вече можеш да я ползваш при следващ вход.": "You can use it on your next sign-in.",
  "Запазване…": "Saving…",

  // contribute
  "Споделете каквото знаете за улиците в София. Приносите се проверяват от общността, преди да влияят на маршрутите.":
    "Share what you know about Sofia's streets. Contributions are reviewed by the community before affecting routes.",
  "Безопасна улица": "Safe street", "Опасен участък": "Dangerous spot", "Точков сигнал": "Point report",
  "КАКВО Е ДОБРОТО": "WHAT'S GOOD", "КАКЪВ Е ПРОБЛЕМЪТ": "WHAT'S THE ISSUE",
  "Защитена велоалея": "Protected bike lane", "Спокойна улица": "Calm street", "Добра настилка": "Good surface",
  "Добро осветление": "Good lighting", "Зелен маршрут": "Green route", "Лош паваж": "Bad cobblestone",
  "Стъкло / отломки": "Glass / debris", "Наводнение": "Flooding", "Опасно кръстовище": "Dangerous junction",
  "Агресивно движение": "Aggressive traffic", "Трамвайни релси": "Tram tracks", "Стеснение": "Narrowing",
  "Строеж": "Construction", "Паднало дърво": "Fallen tree",
  "СЕРИОЗНОСТ": "SEVERITY", "Ниска": "Low", "Средна": "Medium", "Висока": "High",
  "ИЗБРАН УЧАСТЪК": "SELECTED SEGMENT", "ТОЧКА НА КАРТАТА": "MAP POINT",
  "МЕСТОПОЛОЖЕНИЕ": "LOCATION", "Тук съм": "I'm here",
  "Място (напр. бул. Витоша)": "Place (e.g. Vitosha Blvd)",
  "Търси място (напр. бул. Витоша)": "Search a place (e.g. Vitosha Blvd)",
  "Избери на картата": "Pick on map", "Изберете местоположение": "Choose a location",
  "Тапнете картата или преместете щифта, после „Готово“.": "Tap the map or drag the pin, then 'Done'.",
  "Откажи": "Cancel", "Търсене…": "Searching…", "Избрано": "Selected",
  "Центрирайте картата върху мястото, преди да отворите този екран, или ползвайте „Тук съм“.":
    "Center the map on the spot before opening this screen, or use 'I'm here'.",
  "Изберете местоположение.": "Choose a location.",
  "Неуспешно изпращане. Опитайте отново.": "Could not submit. Try again.",
  "Локацията не е достъпна. Преместете картата до мястото.": "Location unavailable. Move the map to the spot.",
  "Ще влезете в профила си при публикуване.": "You'll sign in when you publish.",
  "Изпращане…": "Sending…", "Изпратено!": "Sent!",
  "бул. Г. С. Раковски": "G. S. Rakovski Blvd",
  "отсечка · ~320 м": "segment · ~320 m", "между Гурко и Славейков": "between Gurko and Slaveykov",
  "Добавете бележка (по желание)…": "Add a note (optional)…",
  "НАСТРОЙКИ": "SETTINGS", "Видимост": "Visibility", "Публично": "Public", "Само за мен": "Only me",
  "Вижда се от всички и помага на общността.": "Visible to everyone and helps the community.",
  "Видимо само за теб — лична бележка по картата.": "Visible only to you — a private note on the map.",
  "Отчитай в маршрутите": "Count toward routing",
  "Влияе при изчисляване на маршрути.": "Affects route calculation.",
  "Само информативно — без влияние.": "Informational only — no effect.",
  "Срок": "Duration", "Постоянно": "Permanent", "Временно": "Temporary", "изтича след 7 дни": "expires in 7 days",
  "Изпратено!": "Submitted!",
  "Записано": "Saved", "само за теб": "only for you",
  "Ще се отчита в твоите маршрути.": "It will count toward your routes.",
  "Само като лична бележка — без влияние върху маршрути.": "Just a personal note — no effect on routes.",
  "Появява се": "It appears", "пунктиран": "dashed",
  "на картата. Щом 3-ма колоездачи го потвърдят, става активен": "on the map. Once 3 cyclists confirm it, it goes active",
  "и влияе на маршрутите": "and affects routes",
  "Към Общност": "To Community",

  // report sheet
  "Подайте сигнал": "Report an issue",
  "Изберете тип — без писане, само едно докосване.": "Pick a type — no typing, just one tap.",
  "Добави снимка (по желание)": "Add a photo (optional)",
  "Сигналът е изпратен": "Report submitted",
  "благодарим, че пазиш града по-безопасен.": "thanks for keeping the city safer.",

  // saved places
  "Университет": "University", "Фитнес": "Gym",
  "бул. Цариградско шосе 47": "47 Tsarigradsko Shose Blvd",
  "СУ · бул. Цар Освободител 15": "Sofia Univ · 15 Tsar Osvoboditel Blvd",
  "бул. Витоша 102": "102 Vitosha Blvd",
  "Запазените места се появяват най-отгоре при търсене за по-бързо планиране.":
    "Saved places appear at the top of search for faster planning.",

  // premium / bike / notifications detail screens
  "Офлайн карти": "Offline maps", "Карти за цяла България без интернет.": "Maps for all of Bulgaria, offline.",
  "Разширени анализи": "Advanced analytics", "Темпо, наклон, безопасност след всяко каране.": "Pace, elevation, safety after every ride.",
  "Пълна история": "Full history", "Всичките ти пътувания, без ограничение.": "All your rides, with no limit.",
  "Умни препоръки": "Smart recommendations", "„Най-безопасен маршрут след 18:00“.": "“Safest route after 6 pm.”",
  "Smartwatch": "Smartwatch", "Навигация на китката ти.": "Navigation on your wrist.",
  "Активирай Veloroute+": "Activate Veloroute+", "7 дни безплатно, после 9,99 лв./мес.": "7 days free, then BGN 9.99/mo.",
  "Тип велосипед": "Bike type", "Шосеен": "Road", "Електрически": "E-bike", "Сгъваем": "Folding",
  "Влияе на скоростта и наклоните при изчисляване на маршрут.": "Affects speed and elevation in route calculation.",
  "Запази": "Save",
  "Опасности по пътя": "Hazards on route", "Сигнали при дупки, паваж и опасно движение.": "Alerts for potholes, cobblestones and dangerous traffic.",
  "Промени в маршрута": "Route changes", "Известия при по-добър или по-безопасен маршрут.": "Notify of a better or safer route.",
  "Общностни сигнали": "Community alerts", "Нови сигнали около теб.": "New reports near you.",
  "Седмичен отчет": "Weekly summary", "Резюме на твоите пътувания.": "A recap of your rides.",

  // community layer panel + detail sheet
  "Слой „Общност“": "Community layer",
  "Легенда": "Legend", "Избери всички": "Select all", "Изчисти всички": "Clear all",
  "Маршрути": "Routes", "Опасности": "Hazards", "Удобства": "Amenities",
  "Безопасни улици": "Safe streets", "Опасни участъци": "Dangerous spots",
  "Дупки и паваж": "Potholes & cobbles", "Опасно движение": "Dangerous traffic",
  "Блокирани алеи": "Blocked lanes", "Лошо осветление": "Poor lighting",
  "Велопаркинги": "Bike parking", "Чешми": "Water fountains", "Сервиз / помпа": "Repair / pump",
  "Непотвърдено": "Unconfirmed", "Официално": "Official",
  "Потвърдено от общността": "Confirmed by community",
  "Потвърди": "Confirm", "Потвърдено": "Confirmed", "полезно": "helpful",
  "Коментари": "Comments", "Бъди първият, който коментира.": "Be the first to comment.",
  "Добави коментар…": "Add a comment…",
  "Маршрут до тук": "Route here", "Заобиколи / маршрут": "Avoid / route",

  // saved places — add / remove
  "Промени": "Edit", "Ново място": "New place", "Адрес": "Address",
  "Име (напр. Вкъщи)": "Name (e.g. Home)", "Без адрес": "No address",
  "Още няма запазени места": "No saved places yet",
  "Добави вкъщи, работа или любими дестинации за по-бързо планиране.": "Add home, work or favourite spots for faster planning.",
  "Запазените места се появяват най-отгоре при търсене за по-бързо планиране. Можеш да ги добавяш и от резултатите при търсене.":
    "Saved places appear at the top of search. You can also add them from search results.",

  // language picker
  "Език": "Language", "Български": "Bulgarian", "English": "English",
  "Bulgarian": "Bulgarian", "Английски": "English",
  "Езикът се прилага веднага в цялото приложение.": "The language applies instantly across the app.",

  // route preferences
  "Стил на маршрута": "Route style", "Балансиран": "Balanced", "Допълнително": "Extras",
  "Защитени алеи и тихи улици, дори да отнема малко повече.": "Protected lanes and quiet streets, even if a bit longer.",
  "Разумен баланс между безопасност и време.": "A sensible balance of safety and time.",
  "Възможно най-кратко време, повече булеварди.": "The shortest possible time, more main roads.",
  "Избягвай хълмове": "Avoid hills", "Избягвай натоварени булеварди": "Avoid busy roads",
  "Избягвай неосветени улици": "Avoid unlit streets",
  "Тези настройки определят как Veloroute подрежда предложените маршрути.": "These settings shape how Veloroute ranks suggested routes.",

  // theme row
  "Тема": "Theme", "Светла": "Light", "Тъмна": "Dark",

  // onboarding — report slide
  "Докладвай проблем с два тапа": "Report a problem in two taps",
  "Дупка, опасно движение или блокирана алея — маркирай го за секунди и предупреди останалите колоездачи по пътя.":
    "A pothole, dangerous traffic or a blocked lane — flag it in seconds and warn other riders.",
  "Опасно": "Danger", "Алея": "Lane", "Ремонт": "Works", "Осветление": "Lighting", "Инцидент": "Crash",

  // community — vote / add to my map
  "на моята карта": "on my map",
  "Сигналите от всички колоездачи. Добави ги на своята карта и гласувай — след 20 гласа стават официални за всички.":
    "Reports from all riders. Add them to your map and vote — after 20 votes they become official for everyone.",
  "Официален": "Official", "Добави на моята карта": "Add to my map", "На моята карта": "On my map",
  "Потвърден от общността — винаги на картата": "Confirmed by the community — always on the map",
  "Блокирана велоалея": "Blocked bike lane", "Ремонт на пътя": "Roadworks",

  // stat strips
  "Тази седмица": "This week", "разстояние": "distance", "ср. безопасност": "avg safety",
  "опасни зони": "danger zones",

  // contribute — segment picker
  "Затвори": "Close", "Орлов мост": "Orlov Most", "при Цариградско шосе": "at Tsarigradsko Shose",
  "до пл. Славейков": "to Slaveykov Sq", "при НДК": "at NDK",
  "Или докосни картата, за да избереш друг участък.": "Or tap the map to pick another segment.",
};

window.translateTo = function (root, dict) {
  if (!root || !dict) return;
  const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null);
  const nodes = [];
  while (walker.nextNode()) nodes.push(walker.currentNode);
  nodes.forEach((n) => {
    const raw = n.nodeValue;
    const key = raw.trim();
    if (!key) return;
    if (dict[key] !== undefined) n.nodeValue = raw.replace(key, dict[key]);
  });
  root.querySelectorAll('input[placeholder]').forEach((i) => {
    const p = i.getAttribute('placeholder');
    if (p && dict[p.trim()] !== undefined) i.setAttribute('placeholder', dict[p.trim()]);
  });
};
