// Russian primary copy. To add a string:
//   1. add the key + RU value here (this file is the canonical key list — `en.ts`
//      and the `StringKey` type derive from it),
//   2. add the same key + EN value in `en.ts`,
//   3. consume via `t('key', { var: 'x' })` in components.
// Interpolation uses `{name}` placeholders resolved against the second arg.

export const RU = {
  // --- Status pill ---------------------------------------------------------
  'status.checking': 'Проверка статуса…',
  'status.disconnected': 'Telegram не привязан',
  'status.connected-as': 'Привязан как {handle}',

  // --- Action cards ----------------------------------------------------------
  'card.login.name': 'Войти по номеру',
  'card.login.desc': 'Код придёт в Telegram или по SMS',
  'card.login-qr.name': 'Войти по QR-коду',
  'card.login-qr.desc': 'Отсканировать QR из приложения Telegram на телефоне',
  'card.refresh.name': 'Обновить статус',
  'card.refresh.desc': 'Перепроверить, привязан ли Telegram',
  'card.refresh.in-flight': 'Проверяю…',
  'card.logout.name': 'Выйти из Telegram',
  'card.logout.desc': 'Завершить сеанс на этом аккаунте',
  'card.logout.confirm-prompt': 'Точно выйти?',
  'card.logout.confirm-yes': 'Выйти',
  'card.logout.confirm-no': 'Отмена',

  // --- About panel -----------------------------------------------------------
  'card.about.name': 'Как работает Telegram-бот',
  'card.about.desc': 'Вход, безопасность и исходный код',
  'about.title': 'О боте Telegram',
  'about.body-1':
    'Этот бот подключает Telegram к Vojo. После входа личные чаты и группы из Telegram появятся в списке чатов Vojo, а ответы из приложения Vojo будут отправляться собеседникам как обычные сообщения в Telegram.',
  'about.body-2':
    'Для входа нужен номер телефона и код из Telegram — как при входе на новом устройстве. Если у вас включена двухэтапная проверка, Telegram дополнительно попросит облачный пароль.',
  'about.body-3':
    'Подключение работает через open-source мост mautrix-telegram. Он создаёт Telegram-сессию на сервере Vojo и использует её для связи Telegram с вашим аккаунтом Vojo: получает сообщения из Telegram и отправляет ваши ответы обратно.',
  'about.github-label': 'Исходный код моста открыт на GitHub:',
  'about.github-url': 'https://github.com/mautrix/telegram',
  'about.body-4':
    'Отозвать доступ можно в любой момент — кнопкой «Выйти из Telegram» здесь, либо в самом Telegram через «Настройки → Устройства».',
  'about.close': 'Закрыть',
  'about.aria-close': 'Закрыть «О боте»',

  // --- Phone form ------------------------------------------------------------
  'auth-card.phone.title': 'Вход по номеру',
  'auth-card.phone.label': 'Номер телефона',
  'auth-card.phone.placeholder': '+79991234567',
  'auth-card.phone.hint': 'SMS может идти до 30 секунд.',
  'auth-card.phone.submit': 'Отправить код',
  'auth-card.phone.cooldown': 'Повтор через {seconds} сек',
  'auth-card.phone.invalid': 'Похоже, номер ещё не полный или введён с ошибкой.',

  // --- Code form ---------------------------------------------------------
  'auth-card.code.title': 'Код подтверждения',
  'auth-card.code.label': 'Код из Telegram или SMS',
  'auth-card.code.placeholder': '123456',
  'auth-card.code.submit': 'Подтвердить',
  'auth-card.code.countdown': 'Код придёт через {seconds} сек',
  'auth-card.code.countdown-done': 'Не пришло — нажмите «Отмена» и попробуйте снова.',

  // --- 2FA password form -------------------------------------------------
  'auth-card.password.title': 'Облачный пароль Telegram',
  'auth-card.password.hint':
    'У вашего аккаунта включена двухэтапная проверка. Введите облачный пароль Telegram — это не пароль от Vojo.',
  'auth-card.password.label': 'Пароль',
  'auth-card.password.submit': 'Подтвердить',
  'auth-card.password.show': 'Показать',
  'auth-card.password.hide': 'Скрыть',

  // --- Shared form chrome ------------------------------------------------
  'auth-card.cancel': 'Отмена',
  'auth-card.waiting-hint': 'Мост ещё думает… ответ может идти до 30 секунд.',

  // --- QR panel ------------------------------------------------------------
  'auth-card.qr.title': 'Вход по QR-коду',
  'auth-card.qr.hint': 'Откройте Telegram на телефоне и отсканируйте этот QR-код.',
  'auth-card.qr.preparing': 'Готовим QR-код…',
  'auth-card.qr.aria': 'QR-код для входа в Telegram. Отсканируйте его телефоном.',
  'auth-card.qr.countdown': 'На сканирование осталось {minutes}:{seconds}',
  'auth-card.qr.expired': 'Окно входа истекло. Нажмите «Отмена» и попробуйте снова.',
  'auth-card.qr.step-1': 'Откройте «Настройки → Устройства» в Telegram.',
  'auth-card.qr.step-2': 'Нажмите «Подключить устройство» и отсканируйте этот QR-код.',
  'auth-card.qr.step-3': 'Если включён облачный пароль — введите его в следующем шаге.',

  // --- Inline form errors --------------------------------------------------
  'error.code-incorrect': 'Код неверный. Попробуйте снова.',
  'error.password-incorrect': 'Пароль неверный. Попробуйте снова.',

  // --- Global errors / notices ---------------------------------------------
  'error.network': 'Нет связи с сервером. Проверьте интернет и попробуйте ещё раз.',
  'error.auth':
    'Не удалось подтвердить ваш аккаунт у моста. Обновите страницу; если не помогает — попробуйте позже.',
  'error.openid-blocked':
    'Хост не выдал виджету разрешение на вход — в config.json у бота нет capability vojo.openid.',
  'error.flood': 'Telegram просит подождать: слишком много попыток. Попробуйте позже.',
  'error.phone-invalid': 'Telegram не принял этот номер. Проверьте его и попробуйте снова.',
  'error.phone-banned': 'Этот номер заблокирован в Telegram.',
  'error.login-timeout': 'Время входа истекло. Начните вход заново.',
  'error.login-restart': 'Сессия входа потерялась. Начните вход заново.',
  'error.too-many-logins': 'Достигнут лимит привязанных аккаунтов. Сначала выйдите из текущего.',
  'error.generic': 'Что-то пошло не так: {reason}',
  'notice.login-success': 'Telegram привязан! Чаты появятся в списке в течение минуты.',
  'notice.logged-out': 'Сеанс Telegram завершён.',

  // --- Contacts ------------------------------------------------------------
  'card.contacts.name': 'Контакты',
  'card.contacts.desc': 'Записная книжка Telegram: поиск по имени, нику или номеру',
  'contacts.back': 'Назад',
  'contacts.search-placeholder': 'Имя, @ник или +номер…',
  'contacts.hint':
    'Это контакты вашей записной книжки Telegram. Выберите, с кем начать чат в Vojo, — остальные никуда не денутся.',
  'contacts.loading': 'Загружаем контакты…',
  'contacts.error': 'Не удалось загрузить контакты.',
  'contacts.retry': 'Повторить',
  'contacts.empty': 'В записной книжке Telegram пока пусто.',
  'contacts.empty-filtered': 'Никого не нашли с таким именем.',
  'contacts.start-chat': 'Начать чат',
  'contacts.open-chat': 'Открыть чат',
  'contacts.creating': 'Создаём чат…',
  'contacts.opening': 'Открываем…',
  'contacts.probe-check': 'Проверить {handle} в Telegram',
  'contacts.probe-checking': 'Проверяем {handle}…',
  'contacts.probe-not-found': '{handle} не найден в Telegram.',
  'contacts.probe-found': 'Есть такой! Можно написать.',
  'contacts.probe-self': 'Это ваш собственный аккаунт.',
  'contacts.refresh': 'Обновить список',

  // --- Account tab -----------------------------------------------------------
  'account.state-bad':
    'Мост сообщает о проблеме с подключением: {reason}. Попробуйте выйти и привязать Telegram заново.',

  // --- Boot / config ---------------------------------------------------------
  'boot.connecting': 'Подключение к мосту…',
  'config.missing.title': 'Нужна настройка на сервере',
  'config.missing.body':
    'Виджет работает через API моста, но его адрес не задан в конфигурации (experience.provisioningUrl в config.json) или не выдано разрешение vojo.openid.',
  'error.retry': 'Повторить',

  // --- Bootstrap failure -------------------------------------------------
  'bootstrap.failed': 'Widget не запустился',
  'bootstrap.missing-params': 'Отсутствуют обязательные параметры URL: {names}.',
  'bootstrap.embedded-only': 'Эта страница предназначена для встраивания Vojo по маршруту {route}.',
} as const;

export type StringKey = keyof typeof RU;
