/* global React */
const { useState, useRef, useEffect } = React;

// ───────────────────────────────────────────────────
// i18n content
// ───────────────────────────────────────────────────
const COPY = {
  ru: {
    nav: { features: "Возможности", demo: "Демо", languages: "Языки", audience: "Кому подходит", start: "Начать" },
    cta: "Открыть в Telegram",
    hero: {
      eyebrow: "Бесплатно · GPT‑4o под капотом",
      title1: "Переводчик,",
      title2: "который понимает",
      titleAccent: "как ты говоришь",
      lead: "Кидай текст, фото, скриншот — на любом языке. Бот сам определит исходный и переведёт естественно, как сказал бы носитель. Без шаблонов и цензуры.",
      cta: "Открыть @ai_translateme_bot",
      ctaSecondary: "Что внутри",
      meta: [
        ["22", "языка"],
        ["GPT‑4o", "движок"],
        ["0 ₽", "цена"],
      ],
    },
    features: {
      eyebrow: "Возможности",
      title1: "Всё, что нужно для",
      titleAccent: "живого перевода",
      sub: "От моментального автоопределения языка до личных словарей и распознавания текста с фото.",
      list: {
        autoTitle: "Автоопределение языка",
        autoDesc: "Не выбирай исходный язык. Бросай текст, фото или скриншот на любом из 100+ языков мира — бот разберётся сам и переведёт на твой целевой.",
        autoBadge: "Главное",

        freeTitle: "Полностью бесплатно",
        freeDesc: "Никаких подписок, лимитов на сообщения и платных тарифов. Поддержать проект можно по желанию через Telegram Stars.",

        photoTitle: "Перевод фото и скриншотов",
        photoDesc: "Меню, вывески, страницы книг, скриншоты сериалов — пришли фото и получи распознанный оригинал плюс перевод.",

        dictTitle: "Личные словари",
        dictDesc: "До 10 своих словарей. Сохраняй слова прямо из чата при чтении книг или просмотре сериалов — кнопка 📚+ есть на каждом переводе.",

        voiceTitle: "Голосовые сообщения",
        voiceDesc: "Распознаём и переводим голосовые. Удобно для разговорников, лекций и сообщений от друзей-иностранцев.",
        voiceBadge: "Скоро",

        natTitle: "Естественный, без цензуры",
        natDesc: "Бот переводит как нейтив: идиомы, сленг, мат и тон сохраняются. Никакого «промтоязыка».",

        statsTitle: "Уровень слова и стиль",
        statsDesc: "Тапни «📊 Stats» — узнаешь уровень CEFR, частотность и в каком регистре уместно использовать.",

        altTitle: "Альтернативные переводы",
        altDesc: "Для коротких фраз бот сразу предложит несколько вариантов — выбери, что точнее по смыслу.",

        revTitle: "Обратный перевод",
        revDesc: "Проверь себя: одной кнопкой переведи результат обратно и сравни с исходником.",
      },
    },
    demo: {
      eyebrow: "Как это выглядит",
      title1: "Один тап —",
      titleAccent: "и ты понял",
      sub: "Минимальный интерфейс, никакого выбора языков и настроек перед каждым сообщением.",
      points: [
        ["Просто пиши", "Любой язык — на входе. Целевой — твой. Всё."],
        ["Тап — копировать", "Перевод оборачивается в моноширинный блок с одним тапом для копии."],
        ["Альтернативы и Stats", "На коротких фразах подгружаются варианты, уровень и частотность слова."],
      ],
    },
    languages: {
      eyebrow: "22 языка",
      title1: "Целевой язык —",
      titleAccent: "по одному тапу",
      sub: "Выбираешь язык, на который переводить. Исходный определяется автоматически из любого языка.",
    },
    audience: {
      eyebrow: "Кому подходит",
      title1: "Если хоть раз",
      titleAccent: "застревал на чужом языке",
      sub: "Бот закрывает конкретные ситуации, в которых обычные переводчики раздражают или ломаются.",
      cards: [
        {
          tag: "Изучающим языки",
          icon: "📚",
          pain: "Гугл‑переводчик даёт стерильный текст без оттенков, а словари не показывают, насколько слово живое.",
          fix: "Естественный перевод как у носителя + уровень CEFR, частотность и регистр на каждое слово. Альтернативы помогут понять оттенки.",
        },
        {
          tag: "Любителям книг и сериалов",
          icon: "🎬",
          pain: "Постоянно лезешь в браузер, теряешь поток, новые слова забываются через час.",
          fix: "Скриншот страницы или субтитра — мгновенный перевод. Сохраняй слова в личные словари (до 10 штук) и возвращайся к ним позже.",
        },
        {
          tag: "Путешественникам",
          icon: "✈️",
          pain: "Меню в кафе, табличка на вокзале, инструкция в отеле — текст под рукой, но без интернета и времени набирать вручную.",
          fix: "Сфоткал — получил перевод. OCR + GPT‑4o справляются с рукописью, мелким шрифтом и кривыми углами.",
        },
        {
          tag: "Работающим с иностранцами",
          icon: "💼",
          pain: "Деловая переписка с клиентами и коллегами съедает время, а машинный перевод звучит как робот.",
          fix: "Идиомы, тон и стиль сохраняются. Обратный перевод даёт убедиться, что отправляешь именно то, что хотел.",
        },
        {
          tag: "Болтунам в чатах",
          icon: "💬",
          pain: "Друг пишет на своём, переводчик стерилизует мат, шутки и сленг — диалог теряет душу.",
          fix: "Без цензуры. Сленг, мат, ирония — всё на месте. Переписка остаётся живой.",
        },
        {
          tag: "Тем, кто просто хочет понять",
          icon: "🌍",
          pain: "Не знаешь, на каком языке текст, не хочешь разбираться в раскладках и настройках.",
          fix: "Брось что угодно — на любом языке. Бот определит сам и переведёт. Ноль настроек.",
        },
      ],
    },
    start: {
      eyebrow: "Старт за 30 секунд",
      title1: "Начни прямо",
      titleAccent: "сейчас",
      steps: [
        ["Открой бота", "Нажми кнопку или перейди по @ai_translateme_bot в Telegram."],
        ["Выбери язык", "Один раз укажи, на какой язык переводить. Можно поменять в любой момент."],
        ["Пиши что угодно", "Текст, фото, скриншот. На любом языке. Получи перевод за пару секунд."],
      ],
    },
    final: {
      title1: "Открой Telegram —",
      titleAccent: "и начни переводить",
      sub: "Бесплатно, без регистрации, без лимитов. Работает прямо в Telegram.",
      cta: "@ai_translateme_bot",
    },
    footer: {
      tag: "Open source · MIT",
      links: [["GitHub", "https://github.com/akperm/translator"], ["Telegram", "https://t.me/ai_translateme_bot"]],
    },
  },
  en: {
    nav: { features: "Features", demo: "Demo", languages: "Languages", audience: "Who it's for", start: "Start" },
    cta: "Open in Telegram",
    hero: {
      eyebrow: "Free · GPT‑4o inside",
      title1: "A translator",
      title2: "that gets",
      titleAccent: "how you talk",
      lead: "Drop text, photos, or screenshots in any language. The bot detects the source and translates naturally, like a native — no boilerplate, no censorship.",
      cta: "Open @ai_translateme_bot",
      ctaSecondary: "What's inside",
      meta: [
        ["22", "languages"],
        ["GPT‑4o", "engine"],
        ["$0", "price"],
      ],
    },
    features: {
      eyebrow: "Features",
      title1: "Everything you need for",
      titleAccent: "living translation",
      sub: "From instant language auto‑detection to personal dictionaries and OCR for any photo.",
      list: {
        autoTitle: "Language auto‑detection",
        autoDesc: "No need to pick the source. Send text, a photo, or a screenshot in any of 100+ world languages — the bot figures it out and translates to your target.",
        autoBadge: "Core",

        freeTitle: "Completely free",
        freeDesc: "No subscriptions, no message caps, no paid tiers. Support the project optionally with Telegram Stars.",

        photoTitle: "Photo & screenshot OCR",
        photoDesc: "Menus, signs, book pages, show subtitles — send a photo and get the recognised original plus a translation.",

        dictTitle: "Personal dictionaries",
        dictDesc: "Up to 10 custom dictionaries. Save words right from chat while reading books or watching series — the 📚+ button is on every translation.",

        voiceTitle: "Voice messages",
        voiceDesc: "Recognise and translate voice notes. Handy for phrasebooks, lectures, and messages from foreign friends.",
        voiceBadge: "Soon",

        natTitle: "Native, uncensored",
        natDesc: "Translates like a native — idioms, slang, profanity, and tone are preserved. No translation‑ese.",

        statsTitle: "Word level & style",
        statsDesc: "Tap '📊 Stats' to see CEFR level, frequency, and the register where it actually fits.",

        altTitle: "Alternative translations",
        altDesc: "For short phrases the bot pre‑loads multiple variants — pick the one closest to your intent.",

        revTitle: "Reverse translation",
        revDesc: "Sanity‑check yourself: one tap to translate the result back and compare with the source.",
      },
    },
    demo: {
      eyebrow: "What it looks like",
      title1: "One tap —",
      titleAccent: "and you got it",
      sub: "Minimal interface — no language pickers or settings between each message.",
      points: [
        ["Just type", "Any language in. Your target out. That's it."],
        ["Tap to copy", "Translations come wrapped in a monospace block with one‑tap copy."],
        ["Alts & stats", "Short phrases pre‑load alternatives, level, and frequency."],
      ],
    },
    languages: {
      eyebrow: "22 languages",
      title1: "Target language —",
      titleAccent: "one tap away",
      sub: "Pick the language to translate to. The source is auto‑detected from any language.",
    },
    audience: {
      eyebrow: "Who it's for",
      title1: "If you've ever",
      titleAccent: "got stuck on a foreign language",
      sub: "Specific situations where regular translators either annoy you or break.",
      cards: [
        {
          tag: "Language learners",
          icon: "📚",
          pain: "Google Translate gives sterile text with no nuance. Dictionaries don't show how alive a word actually is.",
          fix: "Native‑level translation plus CEFR level, frequency, and register on every word. Alternatives reveal the subtle differences.",
        },
        {
          tag: "Book & series fans",
          icon: "🎬",
          pain: "You keep jumping to a browser, lose the flow, and forget new words within an hour.",
          fix: "Screenshot a page or subtitle — translation in seconds. Save words to one of 10 personal dictionaries and revisit anytime.",
        },
        {
          tag: "Travellers",
          icon: "✈️",
          pain: "Menus, signs, hotel notes — the text is right there but you have no time to type it out.",
          fix: "Snap a photo, get a translation. OCR + GPT‑4o handle handwriting, tiny print, and crooked angles.",
        },
        {
          tag: "Working with foreigners",
          icon: "💼",
          pain: "Business chats with clients and colleagues eat time, and machine output sounds like a robot.",
          fix: "Idioms, tone, and style are preserved. Reverse translation lets you double‑check what you're actually sending.",
        },
        {
          tag: "Chat people",
          icon: "💬",
          pain: "Your friend writes in their language; the translator sanitises slang, jokes, and curses — the chat loses its soul.",
          fix: "No censorship. Slang, swearing, irony — all intact. The conversation stays alive.",
        },
        {
          tag: "Just need to understand",
          icon: "🌍",
          pain: "You don't know what language it's in and don't want to mess with keyboards and settings.",
          fix: "Drop anything — in any language. The bot figures it out and translates. Zero configuration.",
        },
      ],
    },
    start: {
      eyebrow: "Start in 30s",
      title1: "Get going",
      titleAccent: "right now",
      steps: [
        ["Open the bot", "Tap the button or go to @ai_translateme_bot in Telegram."],
        ["Pick a language", "Set your target language once. Change it any time."],
        ["Send anything", "Text, photo, screenshot — any language. Translation in seconds."],
      ],
    },
    final: {
      title1: "Open Telegram —",
      titleAccent: "and start translating",
      sub: "Free, no signup, no limits. Lives inside Telegram.",
      cta: "@ai_translateme_bot",
    },
    footer: {
      tag: "Open source · MIT",
      links: [["GitHub", "https://github.com/akperm/translator"], ["Telegram", "https://t.me/ai_translateme_bot"]],
    },
  },
};

// 22 supported languages from bot/config.py
const LANGS = [
  ["🇬🇧", "English", "EN"],
  ["🇷🇺", "Русский", "RU"],
  ["🇪🇸", "Español", "ES"],
  ["🇫🇷", "Français", "FR"],
  ["🇩🇪", "Deutsch", "DE"],
  ["🇨🇳", "中文", "ZH"],
  ["🇯🇵", "日本語", "JA"],
  ["🇰🇷", "한국어", "KO"],
  ["🇸🇦", "العربية", "AR"],
  ["🇧🇷", "Português", "PT"],
  ["🇮🇹", "Italiano", "IT"],
  ["🇹🇷", "Türkçe", "TR"],
  ["🇮🇳", "हिन्दी", "HI"],
  ["🇺🇦", "Українська", "UK"],
  ["🇵🇱", "Polski", "PL"],
  ["🇮🇷", "فارسی", "FA"],
  ["🇺🇿", "Oʻzbekcha", "UZ"],
  ["🇰🇿", "Қазақша", "KK"],
  ["🇮🇩", "Bahasa Indonesia", "ID"],
  ["🇻🇳", "Tiếng Việt", "VI"],
  ["🇧🇩", "বাংলা", "BN"],
  ["🇲🇾", "Bahasa Melayu", "MS"],
];

window.COPY = COPY;
window.LANGS = LANGS;
