{
  "auth": {
    "login": "Войти",
    "signup": "Регистрация",
    "logout": "Выйти",
    "loginRequired": "Нужен вход",
    "loginDescription": "Войдите, чтобы пользоваться сканированием. Новые аккаунты получают 10 бесплатных кредитов.",
    "loginNow": "Войти / Зарегистрироваться",
    "email": "Эл. почта",
    "password": "Пароль",
    "confirmPassword": "Повторите пароль",
    "forgotPassword": "Забыли пароль?",
    "noAccount": "Ещё нет аккаунта?",
    "hasAccount": "Уже есть аккаунт?",
    "signupSuccess": "Аккаунт создан",
    "orContinueWith": "Или продолжить через",
    "loginSuccess": "Вход выполнен",
    "logoutSuccess": "Вы вышли",
    "emailNotVerified": "Почта не подтверждена",
    "emailNotVerifiedDesc": "Проверьте почту и перейдите по ссылке подтверждения, чтобы активировать аккаунт.",
    "invalidCredentials": "Неверная почта или пароль",
    "emailAlreadyRegistered": "Этот адрес уже зарегистрирован",
    "verificationSent": "Письмо с подтверждением отправлено",
    "verificationSentDesc": "Проверьте входящие и перейдите по ссылке подтверждения.",
    "checkYourEmail": "Проверьте почту",
    "verificationSentTo": "Мы отправили письмо с подтверждением на {{email}}. Перейдите по ссылке, чтобы активировать аккаунт.",
    "resendEmail": "Отправить письмо ещё раз",
    "verificationResent": "Письмо отправлено повторно",
    "verificationResentDesc": "Новое письмо с подтверждением отправлено.",
    "enterEmailFirst": "Сначала укажите адрес электронной почты",
    "didntReceiveEmail": "Письмо не пришло? Отправить снова",
    "referralBonus": "Введите код приглашения и получите 5 дополнительных кредитов",
    "emailVerificationNotice": "Чтобы завершить регистрацию, нужно будет подтвердить адрес почты.",
    "emailVerified": "Почта подтверждена",
    "emailUnverified": "Почта не подтверждена",
    "verifyStatus": {
      "waiting": {
        "title": "Проверьте почту",
        "description": "Откройте отправленную нами ссылку подтверждения, прежде чем тратить кредиты."
      },
      "verifying": {
        "title": "Проверяем вашу почту",
        "description": "Это займёт одно мгновение."
      },
      "verified": {
        "title": "Почта подтверждена",
        "description": "Аккаунт готов к сканированию."
      },
      "failed": {
        "title": "Ссылка подтверждения недействительна",
        "description": "Ссылка неверна или устарела. Войдите, чтобы запросить новую."
      }
    },
    "welcomeBack": "С возвращением.",
    "welcome": "Добро пожаловать в ScanChess.",
    "emailPlaceholder": "vy@primer.com",
    "passwordPlaceholder": "Не менее 6 символов",
    "signupWithCredits": "Зарегистрироваться — 10 бесплатных кредитов",
    "enterValidEmail": "Введите корректный адрес электронной почты",
    "passwordResetSent": "Проверьте почту",
    "passwordResetSentDesc": "Если аккаунт с таким адресом существует, мы отправили ссылку для смены пароля.",
    "validation": {
      "emailInvalid": "Введите корректный адрес электронной почты.",
      "passwordMin": "Пароль должен содержать не менее 6 символов."
    },
    "agreement": "Продолжая, вы принимаете <terms>Условия обслуживания</terms> и <privacy>Политику конфиденциальности</privacy>.",
    "pageTitle": "Вход в ScanChess",
    "popup": {
      "title": {
        "default": "Войдите, чтобы продолжить",
        "scan": "Войдите, чтобы начать сканирование",
        "save": "Войдите, чтобы сохранить партию",
        "checkout": "Войдите, чтобы улучшить тариф",
        "session": "Сеанс завершён — войдите снова",
        "signup": "Создайте бесплатный аккаунт"
      },
      "staysHere": "Вы останетесь на этой странице и продолжите с того же места.",
      "signingIn": "Выполняется вход…",
      "otherWays": "Другие способы входа",
      "orEmail": "или по эл. почте",
      "createWithEmail": "Создать аккаунт по эл. почте",
      "resetNeedsEmail": "Укажите эл. почту выше, и мы пришлём ссылку для сброса пароля.",
      "fullPage": "Не получается войти? Откройте полную страницу входа",
      "embedded": "Вход через Google не работает во встроенных браузерах приложений. Откройте страницу в Safari или Chrome либо войдите по эл. почте ниже.",
      "googleUnavailable": "Сервис входа Google сейчас недоступен. Войдите по эл. почте.",
      "gateTitle": "Войдите, чтобы открыть эту страницу",
      "joinTitle": "Войдите, чтобы принять приглашение в клуб"
    }
  },
  "scan": {
    "title": "Начать сканирование",
    "seoHeading": "Отсканируйте шахматный бланк или фотографию доски",
    "seoIntro": "Загрузите чёткое фото, чтобы превратить рукописные ходы в проверенную нотацию SAN и PGN, а позицию на доске — в FEN.",
    "inputType": "Тип изображения",
    "scoresheetMode": "Бланк партии",
    "boardMode": "Изображение доски",
    "uploadBoardImage": "Загрузить фото доски",
    "scanning": "ИИ читает...",
    "uploadImages": "Загрузить изображения",
    "dragDrop": "Перетащите сюда изображения бланка",
    "orClick": "или нажмите, чтобы выбрать",
    "tapUpload": "Нажмите, чтобы добавить фото бланка",
    "tapUploadHint": "Сделайте снимок или выберите его из галереи",
    "pasteSupport": "Можно вставить (Ctrl+V)",
    "maxImages": "Не более {{count}} изображений",
    "maxSize": "Не более {{size}} МБ на изображение",
    "scanSuccess": "Сканирование завершено",
    "scanSuccessDesc": "Распознано ходов: {{count}}, списано кредитов: {{credits}}",
    "scanSuccessSavedDesc": "Распознано ходов: {{count}}, списано кредитов: {{credits}}, партия сохранена в ваших партиях",
    "scanSuccessImagePending": "Распознано ходов: {{count}}, партия сохранена в ваших партиях, но исходное изображение ещё предстоит сохранить",
    "notationTranslated": "Буквы фигур прочитаны как {{language}} нотация ({{mapping}}).",
    "scanFailed": "Сканирование не удалось",
    "noImages": "Загрузите изображения",
    "noImagesDesc": "Загрузите изображения бланка, чтобы начать сканирование",
    "insufficientCredits": "Недостаточно кредитов",
    "insufficientCreditsDesc": "Сканирование стоит {{cost}} кредитов, на балансе {{balance}}",
    "inviteFriends": "Приглашайте друзей и получайте больше кредитов",
    "scoresheetImages": "Изображения бланка",
    "uploadedImages": "Загруженные изображения",
    "monthlyQuotaUsed": "Недостаточно кредитов",
    "monthlyQuotaUsedDesc": "Для этого нужно больше кредитов, чем у вас есть. Следующие кредиты ({{credits}}) поступят {{date}}.",
    "monthlyQuotaUsedDescNoDate": "Для этого нужно больше кредитов, чем у вас есть. Следующие кредиты тарифа поступят в начале следующего 30-дневного периода.",
    "outOfCredits": "На это сканирование кредитов не осталось.",
    "seePricing": "Получить больше кредитов — $4,99 в месяц",
    "overlayDescription": "Анализируем изображения бланка и извлекаем ходы.",
    "cancelWait": "Перестать ждать",
    "cancelWaitDesc": "Обработка может завершиться в фоне. Отправьте те же изображения ещё раз, чтобы забрать результат без повторной оплаты.",
    "uploadRejected": "Некоторые изображения не добавлены",
    "uploadRejectedDesc": "Файлов с неподходящим форматом, размером или сверх лимита в {{max}} изображений: {{count}}.",
    "verifyEmailRequired": "Сначала подтвердите почту",
    "verifyEmailRequiredDesc": "Сканирование станет доступно, как только вы подтвердите адрес почты. Проверьте входящие или запросите ссылку ещё раз.",
    "verifyEmailCta": "Отправить ссылку подтверждения",
    "repeatScanTitle": "То же изображение — кредиты не списаны",
    "repeatScanDesc": "Это результат предыдущего сканирования этой фотографии. Повторное сканирование неизменённого изображения никогда не стоит кредитов. Чтобы получить другой результат, сделайте более чёткий или более полный снимок.",
    "lowBalance": "Осталось {{balance}} кредитов — примерно ещё на один бланк.",
    "onlineSourceNotice": "Похоже на скриншот онлайн-партии. Скриншот показывает только ходы, видимые в панели, поэтому остальное восстановить не получится: на Chess.com или Lichess экспорт PGN из самой партии даёт полную партию.",
    "scanWithCost_one": "Сканировать · {{cost}} кредит",
    "scanWithCost_few": "Сканировать · {{cost}} кредита",
    "scanWithCost_many": "Сканировать · {{cost}} кредитов",
    "scanWithCost_other": "Сканировать · {{cost}} кредита",
    "recognizeWithCost_one": "Распознать · {{cost}} кредит",
    "recognizeWithCost_few": "Распознать · {{cost}} кредита",
    "recognizeWithCost_many": "Распознать · {{cost}} кредитов",
    "recognizeWithCost_other": "Распознать · {{cost}} кредита",
    "pasteHint": "Вставьте с помощью {{shortcut}}",
    "uploadLimits": "До {{max}} изображений по {{size}} МБ каждое — JPG, PNG или WebP. HEIC не поддерживается, сначала преобразуйте его.",
    "uploadLimitsBoard": "Одно изображение до {{size}} МБ — JPG, PNG или WebP. HEIC не поддерживается, сначала преобразуйте его.",
    "imageCount": "Добавлено {{count}} из {{max}} изображений",
    "fileRejectedType": "{{name}}: формат не поддерживается. Используйте JPG, PNG или WebP — HEIC нужно сначала преобразовать.",
    "fileRejectedSize": "{{name}}: больше {{size}} МБ.",
    "fileRejectedCount": "{{name}}: за один раз можно отсканировать не больше {{max}} изображений.",
    "fileRejectedRead": "{{name}}: не удалось прочитать как изображение.",
    "switchToBoardTitle": "Оставить только первое изображение?",
    "switchToBoardDesc": "Распознавание доски читает одну фотографию. При переключении останется первое из ваших {{count}} изображений, остальные будут удалены.",
    "switchToBoardConfirm": "Оставить первое",
    "signInHint": "Перед сканированием попросим войти. Новые аккаунты получают 10 бесплатных кредитов.",
    "unverifiedNotice": "Первое сканирование работает без подтверждения почты; подтвердите её, чтобы сканировать дальше.",
    "unverifiedUsedTitle": "Бесплатное сканирование без подтверждения уже использовано",
    "unverifiedUsedDesc": "Подтвердите почту, чтобы сканировать дальше. Мы можем отправить ссылку ещё раз.",
    "resendVerification": "Отправить ссылку снова",
    "stillRunningTitle": "Сканирование ещё идёт",
    "stillRunningDesc": "Сервер всё ещё обрабатывает это фото. Кредиты списаны один раз, и за то же фото повторно не спишутся — попробуйте через минуту, чтобы забрать результат.",
    "replayedTitle": "Загрузили ваш прежний результат",
    "replayedDesc": "Это фото уже сканировалось. Кредиты не списаны.",
    "getCredits": "Получить кредиты",
    "insufficientInline": "У вас {{balance}} кредитов; этому сканированию нужно {{cost}}.",
    "imageAlt": "Страница {{n}} бланка",
    "boardImageAlt": "Фото доски",
    "removeImage": "Убрать изображение {{n}}",
    "moveImageEarlier": "Переместить изображение {{n}} раньше",
    "moveImageLater": "Переместить изображение {{n}} позже",
    "restoredTitle": "Вернули несохранённую партию",
    "restoredDesc": "Ваши ходы и изображения до перезагрузки на месте.",
    "restoredDismiss": "Скрыть",
    "batchHint": "Сканируете целый тур? Воспользуйтесь сканом тура",
    "wrongKindScoresheet": "На фото, похоже, бланк партии, а не доска. Кредит возвращён.",
    "wrongKindBoard": "На фото, похоже, доска, а не бланк партии. Кредиты возвращены.",
    "wrongKindScoresheetAction": "Сканировать как бланк · {{cost}} кредита",
    "wrongKindBoardAction": "Распознать как доску · {{cost}} кредит",
    "detectedSwitchedScoresheet": "На фото, похоже, бланк партии — он будет отсканирован как бланк.",
    "detectedSwitchedBoard": "На фото, похоже, доска — позиция будет распознана.",
    "detectedSuggestScoresheet": "На фото, похоже, бланк партии, а не доска.",
    "detectedSuggestBoard": "На фото, похоже, доска, а не бланк партии.",
    "switchToScoresheet": "Сканировать как бланк",
    "switchToBoard": "Распознать как доску"
  },
  "notation": {
    "de": "немецкая",
    "es": "испанская",
    "fr": "французская",
    "pt": "португальская",
    "nl": "нидерландская",
    "pl": "польская",
    "cs": "чешская",
    "hu": "венгерская",
    "ru": "русская",
    "zh": "китайская"
  },
  "game": {
    "moves": "Ходы",
    "totalMoves_one": "Всего ходов: {{count}}",
    "totalMoves_few": "Всего ходов: {{count}}",
    "totalMoves_many": "Всего ходов: {{count}}",
    "totalMoves_other": "Всего ходов: {{count}}",
    "doubleClickEdit": "Для правки нажмите на карандаш",
    "noMoves": "Партии нет",
    "noMovesDesc": "Загрузите изображения бланка, чтобы начать сканирование",
    "suspiciousMoves_one": "Ходов, требующих проверки: {{count}}",
    "suspiciousMoves_few": "Ходов, требующих проверки: {{count}}",
    "suspiciousMoves_many": "Ходов, требующих проверки: {{count}}",
    "suspiciousMoves_other": "Ходов, требующих проверки: {{count}}",
    "autoFixPrompt": "Проверка отметила проблемных ходов: {{issues}}; автоисправление изменит мест: {{changes}}",
    "autoFixApply": "Попробовать автоисправление",
    "autoFixDismiss": "Оставить как распознано",
    "allMovesValid": "Все ходы успешно проверены",
    "alternatives": "Варианты",
    "moveEmpty": "Ход не может быть пустым",
    "illegalMove": "Ход {{move}} невозможно сделать из предыдущей позиции. Исправьте его карандашом, и следующая проблема, если она есть, появится после.",
    "white": "Белые",
    "black": "Чёрные",
    "event": "Турнир",
    "site": "Место",
    "date": "Дата",
    "result": "Результат",
    "unknown": "Неизвестно",
    "unknownEvent": "Турнир неизвестен",
    "unknownSite": "Место неизвестно",
    "unknownDate": "Дата неизвестна",
    "navStart": "В начало",
    "navPrev": "Предыдущий ход",
    "navNext": "Следующий ход",
    "navEnd": "К финальной позиции",
    "navReset": "Сбросить доску",
    "navFlip": "Развернуть доску",
    "resultWhite": "Победили белые",
    "resultBlack": "Победили чёрные",
    "resultDraw": "Ничья",
    "resultOngoing": "Идёт",
    "editMove": "Изменить {{move}}",
    "goToMove": "Показать позицию после {{move}}",
    "resetTitle": "Отменить это сканирование?",
    "resetDescription": "Это удалит текущие изображения, ходы и все несохранённые правки. Отменить не получится.",
    "scanUnreliable": {
      "notFromStartingPosition": "Этот список ходов начинается не с дебюта",
      "notFromStartingPositionHint": "Похоже на фрагмент партии: скриншот панели ходов или более позднюю страницу бланка. Ходы показаны ровно так, как распознаны; без предыдущих ходов их нельзя ни воспроизвести, ни исправить. Отсканируйте бланк целиком с 1-го хода или отредактируйте ходы вручную.",
      "descriptiveNotation": "На этом бланке описательная нотация",
      "descriptiveNotationHint": "Ходы вроде P-K4 или P4R называют фигуры, а не поля. Пока мы умеем читать только алгебраическую нотацию (e4, Кf3), поэтому ходы показаны как распознаны, без преобразования."
    },
    "lowConfidence": "Прочитано с уверенностью {{percent}}% — сверьте с бланком.",
    "implausible": "Разрешённый правилами ход, которому партия противоречит: {{san}} выиграл бы {{gain}} пешек на {{square}}, и никто его не сделал. Скорее всего, этот полуход или следующий прочитан неверно.",
    "replaceWith": "Заменить на {{move}}",
    "insertBefore": "Вставить ход перед {{move}}",
    "insertMove": "Вставить ход",
    "deleteMove": "Удалить {{move}}",
    "undoEdit": "Отменить последнюю правку",
    "newMovePlaceholder": "например, Кf3",
    "moreActions": "Другие действия для {{move}}",
    "round": "Тур",
    "opening": "Дебют",
    "addWhite": "Добавить белых",
    "addBlack": "Добавить чёрных",
    "addEvent": "Добавить турнир",
    "addSite": "Добавить место",
    "addDate": "Добавить дату",
    "addRound": "Добавить тур",
    "editField": "Изменить {{field}}",
    "keepMove": "Оставить {{move}}",
    "flaggedPosition": "Отмеченный ход {{current}} из {{total}}",
    "playerSide": {
      "label": "Я играл",
      "neither": "Ни за кого",
      "neitherTitle": "Я не играл эту партию",
      "fromAliases": "Определено по именам, под которыми вы играете. Выберите сторону, чтобы подтвердить.",
      "saved": "Сохранено",
      "saving": "Сохранение",
      "failed": "Не удалось сохранить, за кого вы играли",
      "cardsHint": "Выберите свою сторону, и упущенные ходы станут карточками для тренировки.",
      "summaryLabel": "Я играл:",
      "notSet": "Не выбрано",
      "changeInAnalysis": "Изменить в анализе"
    }
  },
  "history": {
    "title": "История",
    "viewAll": "Показать всё",
    "noHistory": "История пуста",
    "cloudSync": "Войдите, чтобы синхронизировать историю с облаком",
    "deleted": "Удалено",
    "deletedDesc": "Запись из истории удалена",
    "justNow": "Только что",
    "minutesAgo": "{{count}} мин назад",
    "hoursAgo": "{{count}} ч назад",
    "daysAgo": "{{count}} дн назад",
    "startScan": "Отсканировать бланк",
    "totalRecords_one": "Сохранена {{count}} партия",
    "totalRecords_few": "Сохранено {{count}} партии",
    "totalRecords_many": "Сохранено {{count}} партий",
    "totalRecords_other": "Сохранено {{count}} партии",
    "loadedRecords": "Загружено партий: {{count}} — есть ещё",
    "moveCount_one": "{{count}} ход",
    "moveCount_few": "{{count}} хода",
    "moveCount_many": "{{count}} ходов",
    "moveCount_other": "{{count}} хода",
    "scanAnother": "Отсканировать ещё",
    "noHistoryDesc": "Партии, которые вы сохраняете после сканирования, появляются здесь — на каждом устройстве, где вы вошли.",
    "deleteGame": "Удалить {{game}}",
    "deleteTitle": "Удалить эту партию?",
    "deleteDesc": "{{game}} будет убрана из вашей библиотеки. Отменить не получится — сначала экспортируйте PGN, если хотите её сохранить.",
    "searchLabel": "Поиск по сохранённым партиям",
    "searchPlaceholder": "Поиск по игроку, турниру или дате",
    "matchCount": "{{count}} из {{total}} партий",
    "savedAt": "Сохранена {{when}}",
    "loadMore": "Загрузить ещё партии",
    "openGame": "Открыть {{game}}",
    "deleteFailed": "Не удалось удалить партию",
    "deleteFailedDesc": "Партия всё ещё в вашей библиотеке. Попробуйте снова.",
    "sharedBadge": "С общей ссылкой",
    "revokeShare": "Отозвать общую ссылку на {{game}}",
    "revokeTitle": "Отозвать эту ссылку?",
    "revokeDesc": "Ссылка на {{game}} перестанет работать у всех, у кого она есть. Позже можно создать новую.",
    "needsCorrection_one": "{{count}} ход требует исправления",
    "needsCorrection_few": "{{count}} хода требуют исправления",
    "needsCorrection_many": "{{count}} ходов требуют исправления",
    "needsCorrection_other": "{{count}} хода требуют исправления",
    "sortLabel": "Сортировка",
    "sort": {
      "savedDesc": "Сохранённые недавно",
      "savedAsc": "Сохранённые давно",
      "gameDateDesc": "Дата партии, сначала новые",
      "gameDateAsc": "Дата партии, сначала старые",
      "white": "Белые, от А до Я",
      "black": "Чёрные, от А до Я"
    },
    "filterLabel": "Результат",
    "filter": {
      "all": "Все",
      "whiteWins": "1-0",
      "blackWins": "0-1",
      "draws": "½-½",
      "unfinished": "Незавершённые"
    },
    "tryBatch": "Отсканировать целый тур сразу"
  },
  "export": {
    "exportPGN": "Экспорт PGN",
    "copyPGN": "Скопировать PGN",
    "copied": "Скопировано",
    "embed": "Встроить партию",
    "embedCopied": "Код для вставки скопирован",
    "exportSuccess": "Экспорт выполнен",
    "exportSuccessDesc": "Файл PGN скачан",
    "copySuccess": "Скопировано",
    "copySuccessDesc": "PGN скопирован в буфер обмена",
    "noData": "Партии нет",
    "noDataDesc": "Сначала отсканируйте изображения бланка",
    "saveGame": "Сохранить партию",
    "saving": "Сохраняем...",
    "gameSaved": "Партия сохранена",
    "gameSavedDesc": "Партия сохранена в ваших партиях",
    "saveFailed": "Не удалось сохранить",
    "saveFailedDesc": "Партию не удалось сохранить. Попробуйте снова.",
    "gameSavedWithCorrections_one": "Сохранено — {{count}} ход всё ещё требует исправления",
    "gameSavedWithCorrections_few": "Сохранено — {{count}} хода всё ещё требуют исправления",
    "gameSavedWithCorrections_many": "Сохранено — {{count}} ходов всё ещё требуют исправления",
    "gameSavedWithCorrections_other": "Сохранено — {{count}} хода всё ещё требуют исправления",
    "gameSavedWithCorrectionsDesc": "Воспроизведение останавливается на ходе {{ply}}. Исправьте ходы и сохраните ещё раз.",
    "signInToSave": "Войдите, чтобы сохранить",
    "openLichess": "Открыть на Lichess",
    "lichessOpening": "Отправляем на Lichess…",
    "lichessFailed": "Lichess не принял партию",
    "lichessFailedDesc": "Импорт не прошёл. Скопируйте PGN и вставьте его на lichess.org/paste.",
    "lichessRateLimited": "Lichess сейчас ограничивает импорт. Подождите минуту и повторите или вставьте PGN на lichess.org/paste.",
    "lichessPasteReady": "Мы открыли страницу вставки Lichess и скопировали PGN — нажмите там ⌘V / Ctrl+V и импортируйте.",
    "moreShare": "Другие способы экспорта и публикации"
  },
  "share": {
    "title": "Поделиться",
    "text": "Посмотрите эту партию: {{title}} ({{count}} ходов) - Отсканировано на ScanChess.com",
    "wechat": "WeChat",
    "wechatTitle": "Поделиться в WeChat",
    "wechatDesc": "Ссылка скопирована! Вставьте её в WeChat, чтобы поделиться.",
    "copyLink": "Скопировать ссылку",
    "copied": "Скопировано!",
    "linkCopied": "Ссылка скопирована",
    "linkCopiedDesc": "Ссылка для доступа скопирована в буфер обмена",
    "more": "Другие варианты",
    "cardTitle": "Поделитесь с соперником",
    "cardBody": "Вы играли эту партию вдвоём — отправьте ему ссылку, чтобы он мог её просмотреть. Открыть может кто угодно, аккаунт не нужен.",
    "cardBodyShared": "Ссылка работает. Любой, у кого она есть, может просмотреть эту партию.",
    "needsSave": "Сначала сохраните партию — ссылка ведёт на сохранённую копию.",
    "createLink": "Создать ссылку",
    "linkReady": "Ссылка готова",
    "linkReadyDesc": "Отправьте её сопернику — он откроет её без входа в аккаунт.",
    "linkFailed": "Не удалось создать ссылку",
    "linkFailedDesc": "Попробуйте ещё раз через мгновение.",
    "linkRevoked": "Ссылка отозвана",
    "linkRevokedDesc": "Старая ссылка больше не открывает эту партию.",
    "revokeLink": "Отозвать",
    "anyoneWithLink": "Любой, у кого есть ссылка, может увидеть эту партию.",
    "anyoneWithLinkImages": "Любой, у кого есть ссылка, может увидеть эту партию и фотографии бланка.",
    "unsavedEdits": "Вы правили эту партию после сохранения. Сохраните ещё раз, чтобы ссылка показывала ваши исправления.",
    "includeImages": "Приложить исходные фотографии бланка",
    "includeImagesHint": "По умолчанию выключено. Включите, если получателю ссылки нужно видеть загруженные фотографии.",
    "imagesNowShared": "Фотографии бланка теперь видны по ссылке",
    "imagesNowPrivate": "Фотографий бланка по ссылке больше нет",
    "updateFailed": "Не удалось обновить ссылку",
    "revokeFailed": "Не удалось отозвать ссылку",
    "copyFailedDesc": "Скопируйте ссылку из поля выше."
  },
  "user": {
    "credits": "Кредиты",
    "settings": "Настройки",
    "referralCode": "Код приглашения",
    "codeCopied": "Код скопирован",
    "copyReferralLink": "Скопировать ссылку-приглашение",
    "referralBonusDesc": "Поделитесь с друзьями — оба получите по 5 кредитов!",
    "referralPlaceholder": "Код приглашения друга",
    "proUntil": "Pro до",
    "creditsRefresh": "Обновление кредитов",
    "manageSubscription": "Управление подпиской",
    "inviteFriends": "Пригласить друзей"
  },
  "demo": {
    "title": "Как это работает",
    "source": "Бланк",
    "sourceBoard": "Фото доски",
    "result": "Цифровая доска"
  },
  "nav": {
    "home": "Главная",
    "history": "История",
    "about": "О проекте",
    "faq": "Вопросы и ответы",
    "boardRecognition": "Распознавание доски",
    "scan": "Сканировать",
    "howItWorks": "Как это работает",
    "blog": "Блог",
    "solutions": "Решения",
    "scanCta": "Отсканировать бланк",
    "pricing": "Цены",
    "settings": "Настройки",
    "tools": "Инструменты",
    "extension": "Расширение для браузера",
    "analyze": "Анализ",
    "scanBoard": "Изображение доски → FEN",
    "scanScoresheet": "Бланк → PGN",
    "roundScan": "Скан тура для клубов",
    "coachesClubs": "Тренерам и клубам",
    "coachesClubsHint": "Сканируйте партии группы, ведите турниры, делитесь отчётами",
    "help": "Помощь и FAQ",
    "analyzeMenu": {
      "game-analysis": {
        "label": "Разобрать партию",
        "hint": "Вставьте PGN: точность, ключевые моменты, упущенная тактика"
      },
      "analysis-board": {
        "label": "Доска для анализа",
        "hint": "Любая позиция и лучший ход по движку"
      },
      "best-move": {
        "label": "Поиск лучшего хода",
        "hint": "По скриншоту доски"
      },
      "pgn-viewer": {
        "label": "Просмотрщик PGN",
        "hint": "Просмотр партии ход за ходом"
      },
      "missed-tactics": {
        "label": "Тренировать упущенную тактику",
        "hint": "Упущенная в ваших партиях тактика в виде задач"
      },
      "opening-identifier": {
        "label": "Определение дебюта",
        "hint": "Название и код ECO дебюта любой партии"
      }
    },
    "toolsMenu": {
      "groups": {
        "analyze": "Анализ",
        "create": "Создание и конвертация",
        "play": "Турниры и досуг"
      },
      "hints": {
        "board-editor": "Расставьте позицию, скопируйте FEN",
        "pgn-to-gif": "Анимация партии, чтобы поделиться",
        "fen-to-image": "Скачайте диаграмму позиции",
        "pgn-validator": "Найдите и исправьте ошибки в PGN",
        "fen-validator": "Проверьте, что FEN корректен",
        "pgn-to-pdf": "Печать партии с диаграммами",
        "fen-to-pgn": "PGN с заданной позиции",
        "pgn-to-fen": "FEN после любого хода",
        "printable-scoresheets": "Пустые бланки для печати",
        "time-control-calculator": "Сколько длится партия 90+30",
        "rating-calculator": "Изменение вашего рейтинга ФИДЕ",
        "chess-wrapped": "Ваш шахматный год в цифрах",
        "tiebreak-calculator": "Тай-брейки и места"
      }
    }
  },
  "footer": {
    "rights": "Все права защищены",
    "product": "Продукт",
    "resources": "Материалы",
    "company": "Компания",
    "howItWorks": "Как это работает",
    "blog": "Блог",
    "solutions": "Решения",
    "about": "О проекте",
    "privacy": "Политика конфиденциальности",
    "terms": "Условия обслуживания",
    "deleteAccount": "Удалить аккаунт",
    "pricing": "Цены",
    "contactSupport": "Написать в поддержку",
    "supportLabel": "Поддержка",
    "refunds": "Политика возвратов",
    "operator": "ScanChess работает под управлением SudoAI. Веб-подписки продаёт Waffo как зарегистрированный продавец.",
    "security": "Безопасность",
    "status": "Состояние",
    "changelog": "Изменения",
    "cookieSettings": "Настройки cookie",
    "tools": "Бесплатные шахматные инструменты",
    "allTools": "Все инструменты",
    "extension": "Расширение для браузера"
  },
  "about": {
    "kicker": "О ScanChess",
    "title": "Сканер бланков и инструмент для изучения партий от маленькой команды, которая сама играет",
    "lead": "ScanChess превращает фотографии рукописных шахматных бланков в редактируемый PGN, проверенный по правилам, а затем помогает изучать партии. Эта страница рассказывает, кто его делает, зачем, как работает распознавание и чего оно не делает.",
    "cta": "Отсканировать бланк",
    "who": {
      "title": "Кто разрабатывает",
      "body1": "ScanChess делает SudoAI, небольшая софтверная студия. Нет ни отдела продаж, ни отдела поддержки: те, кто пишет код, читают почту поддержки и смотрят каждое сканирование, о котором пользователь сообщил как об ошибочном.",
      "body2": "Руководства в блоге пишет та же команда, сверяя их со справочником ФИДЕ и с платформами, о которых идёт речь."
    },
    "why": {
      "title": "Зачем это нужно",
      "body": "Партии за доской превращаются в стопку бумаги, а вводить их в базу так долго, что большинство больше никто не открывает. Мы хотели, чтобы путь от фотографии бланка до партии, которую можно просмотреть, занимал около минуты — вместе с проверкой."
    },
    "how": {
      "title": "Как работает распознавание",
      "steps": [
        "Зрительная модель читает почерк на каждой фотографии и предлагает ход для каждой ячейки вместе с оценкой уверенности.",
        "Предложенные ходы воспроизводятся на доске с помощью chess.js. Ход, невозможный в своей позиции или тот, в котором модель сомневалась, помечается. Ничего не исправляется молча.",
        "Вы сверяете помеченные ходы с бланком в редакторе — перепишите ход, выберите один из допустимых правилами вариантов, вставьте или удалите ход — а затем экспортируете PGN или сохраняете партию."
      ],
      "note": "Качество распознавания зависит от почерка, освещения и использованной нотации, поэтому мы не называем цифру точности. Рассчитывайте проверить несколько ходов в обычной партии."
    },
    "not": {
      "title": "Чего он не делает",
      "items": [
        "Он не гарантирует безошибочную расшифровку. Помеченный ход — это ход, который надо проверить; непомеченный тоже может оказаться неверным, если ошибочное прочтение было уверенным.",
        "Он читает алгебраическую нотацию (e4, Кf3, O-O), включая длинную алгебраическую (e2-e4), приставку P для пешек, буквенные обозначения фигур на нескольких языках и фигурки. Описательная нотация (P-K4) не преобразуется.",
        "Он не загружает партии на Lichess или Chess.com за вас. Он выдаёт стандартный файл .pgn, который эти сайты и настольные программы импортируют.",
        "Сканирование расходует кредиты и требует аккаунта. Бесплатные инструменты ({{tools}}) работают без входа; их дополнительные функции — объяснения ИИ и распознавание фотографии реальной доски в поиске лучшего хода — требуют бесплатного аккаунта с подтверждённой почтой."
      ]
    },
    "links": {
      "title": "Ещё на этом сайте",
      "security": "Безопасность — как защищены загрузки и аккаунты и как сообщить об уязвимости",
      "status": "Состояние — живая проверка сайта и API сканирования",
      "changelog": "Изменения — что и когда вышло",
      "contact": "Контакты — напишите команде о неудачном сканировании или вопросе по оплате",
      "tools": "Бесплатные шахматные инструменты — все {{tools}}, прямо в браузере"
    }
  },
  "common": {
    "loading": "Загрузка...",
    "error": "Ошибка",
    "cancel": "Отмена",
    "confirm": "Подтвердить",
    "save": "Сохранить",
    "delete": "Удалить",
    "back": "Назад",
    "next": "Далее",
    "prev": "Назад",
    "language": "Язык",
    "optional": "необязательно",
    "closeMenu": "Закрыть меню",
    "copyFailed": "Не удалось скопировать",
    "pageNotFound": "Страница не найдена",
    "returnHome": "Вернуться на главную",
    "imgScoresheet": "Шахматный бланк",
    "imgBoard": "Шахматная доска",
    "imgDigitalBoard": "Цифровая шахматная доска",
    "menu": "Меню",
    "versus": "против",
    "sentenceEnd": ".",
    "close": "Закрыть",
    "skipToContent": "Перейти к содержимому"
  },
  "notFound": {
    "description": "Возможно, в адресе опечатка или страница переехала. Вот то, что ищут чаще всего.",
    "tools": "Бесплатные шахматные инструменты"
  },
  "errors": {
    "INVALID_CREDENTIALS": "Неверная почта или пароль.",
    "EMAIL_EXISTS": "Этот адрес уже зарегистрирован. Войдите или воспользуйтесь ссылкой для смены пароля, если забыли его.",
    "REAUTH_REQUIRED": "Этот пароль или проверка входа не подходят к этому аккаунту.",
    "INVALID_RESET_TOKEN": "Эта ссылка для смены пароля неверна или устарела. Запросите новую на странице входа.",
    "INVALID_VERIFICATION_TOKEN": "Эта ссылка подтверждения неверна или устарела. Войдите, чтобы запросить новую.",
    "VERIFICATION_UNAVAILABLE": "Сейчас письма с подтверждением отправить нельзя. Попробуйте позже.",
    "INVALID_GOOGLE_TOKEN": "Google не смог подтвердить вашу личность. Попробуйте снова.",
    "GOOGLE_EMAIL_UNVERIFIED": "Почта вашего аккаунта Google не подтверждена, поэтому войти через неё нельзя.",
    "GOOGLE_LOGIN_DISABLED": "Вход через Google сейчас недоступен.",
    "INVALID_INPUT": "Часть введённых данных некорректна. Проверьте их и попробуйте снова.",
    "NOT_FOUND": "Такую запись мы не нашли.",
    "SESSION_EXPIRED": "Сессия истекла. Войдите снова.",
    "EMAIL_NOT_VERIFIED": "Подтвердите адрес почты, прежде чем тратить кредиты.",
    "INSUFFICIENT_CREDITS": "Для этого действия не хватает кредитов.",
    "SUBSCRIPTION_ACTIVE": "Отмените активную подписку App Store, прежде чем удалять этот аккаунт.",
    "CHECKOUT_FAILED": "Не удалось начать оплату. Попробуйте ещё раз через мгновение.",
    "CANCEL_FAILED": "Подписку не удалось отменить. Попробуйте снова или напишите в поддержку.",
    "server": "На нашей стороне что-то пошло не так. Попробуйте ещё раз через мгновение.",
    "network": "Не удалось связаться со ScanChess. Проверьте соединение и попробуйте снова.",
    "generic": "Что-то пошло не так. Попробуйте снова.",
    "PERMISSION_DENIED": "Ваша роль в этом клубе не позволяет это сделать.",
    "WORKSPACE_FORBIDDEN": "Вы больше не состоите в этом клубе.",
    "OWNER_MUST_TRANSFER": "Сначала сделайте владельцем другого участника, а затем выйдите из клуба или удалите аккаунт.",
    "INVITE_INVALID": "Срок действия ссылки-приглашения истёк или она отозвана. Попросите у клуба новую.",
    "RATE_LIMITED": "Слишком много запросов. Подождите немного и попробуйте снова."
  },
  "resetPassword": {
    "title": "Смена пароля",
    "checkingLink": "Проверяем вашу ссылку…",
    "missingToken": "В этой ссылке нет токена. Запросите новое письмо для смены пароля на странице входа или в приложении.",
    "goToSignIn": "Перейти ко входу",
    "done": "Пароль обновлён. Войдите с новым паролем.",
    "confirmNew": "Повторите новый пароль",
    "submit": "Установить новый пароль"
  },
  "boardRecognition": {
    "dragDrop": "Перетащите сюда изображение доски",
    "tapUpload": "Нажмите, чтобы добавить фото доски",
    "recognitionSuccess": "Распознавание выполнено",
    "recognitionSuccessDesc_one": "Позиция распознана, списано кредитов: {{credits}}",
    "recognitionSuccessDesc_few": "Позиция распознана, списано кредитов: {{credits}}",
    "recognitionSuccessDesc_many": "Позиция распознана, списано кредитов: {{credits}}",
    "recognitionSuccessDesc_other": "Позиция распознана, списано кредитов: {{credits}}",
    "recognitionFailed": "Распознавание не удалось",
    "fenCopied": "FEN скопирован в буфер обмена",
    "copyFen": "Скопировать FEN",
    "uncertainSquares": "Проверьте выделенные поля: {{squares}}",
    "flipBoard": "Развернуть доску",
    "openInEditor": "Открыть в редакторе доски",
    "analyseLichess": "Разобрать на Lichess"
  },
  "analysis": {
    "title": "Анализ движка",
    "depth": "Глубина",
    "calculating": "Считает",
    "startAnalysis": "Запустить анализ",
    "stopAnalysis": "Остановить анализ",
    "bestMove": "Лучший ход",
    "evaluation": "Оценка",
    "annotations": "Пометки",
    "comment": "Комментарий",
    "addComment": "Добавьте комментарий...",
    "arrows": "Стрелки",
    "arrowsHighlights": "Стрелки и поля",
    "bookmark": "Закладка",
    "symbols": "Символы",
    "engineOff": "Движок выключен",
    "engineLoading": "Загружаем движок...",
    "engineReady": "Движок готов",
    "engineError": "Движок не запустился",
    "enable": "Включить движок",
    "disable": "Выключить движок",
    "unavailable": "Движок не удалось загрузить в этом браузере.",
    "lines": "Лучшие варианты",
    "noLegalMoves": "Допустимых ходов нет: партия окончена.",
    "reviewGame": "Разобрать всю партию",
    "analyzeGame": "Анализировать партию",
    "reviewing": "Разбираем позицию {{done}} из {{total}}…",
    "stopReview": "Остановить разбор",
    "accuracy": "Точность",
    "bestWas": "Лучшим было {{san}}",
    "kind": {
      "book": "Теория",
      "best": "Лучший",
      "good": "Хороший",
      "inaccuracy": "Неточность",
      "mistake": "Ошибка",
      "blunder": "Грубая ошибка"
    },
    "poweredBy": "Stockfish 18 работает в вашем браузере; ничего не загружается на сервер.",
    "poweredByLibrary": "Stockfish 18 работает в вашем браузере. Несохранённые партии остаются на вашем устройстве; когда вы сохраняете партию, её анализ сохраняется вместе с ней.",
    "licence": "Исходный код движка (GPL-3.0)",
    "linePreview": "Просмотр варианта",
    "previewingLine": "Просмотр · ход {{current}} из {{total}}",
    "exitPreview": "Выйти из просмотра",
    "previewLineHint": "Разыграть этот вариант на доске",
    "saveAsVariation": "Сохранить как вариант",
    "tactics": {
      "title": "Упущенные тактики",
      "practice": "Разобрать {{count}} упущенных тактик",
      "practiceOne": "Разобрать эту упущенную тактику",
      "enginePaused": "Пока вы решаете, движок на паузе — иначе он подскажет ответ. Анализ продолжится, когда вы закроете упражнение.",
      "none": "Упущенных тактик нет — только тихие ошибки, или движок не предлагал форсированный ход.",
      "toMove": "Ход {{side}}",
      "moveNumber": "Ход {{number}}",
      "findTheShot": "Найдите ход, который был упущен.",
      "correct": "Именно так.",
      "wrong": "Не тот — попробуйте ещё раз.",
      "reveal": "Показать решение",
      "next": "Дальше",
      "previous": "Назад",
      "youPlayed": "В партии вы сыграли {{san}}.",
      "solution": "Решение: {{line}}",
      "save": "Сохранить, чтобы решить позже",
      "saved": "Сохранено",
      "savedCount_one": "{{count}} сохранена из ваших партий",
      "savedCount_few": "{{count}} сохранены из ваших партий",
      "savedCount_many": "{{count}} сохранено из ваших партий",
      "savedCount_other": "{{count}} сохранено из ваших партий",
      "practiceSaved_one": "Решить {{count}} сохранённую тактику",
      "practiceSaved_few": "Решить {{count}} сохранённые тактики",
      "practiceSaved_many": "Решить {{count}} сохранённых тактик",
      "practiceSaved_other": "Решить {{count}} сохранённой тактики",
      "clearSaved": "Очистить сохранённые",
      "close": "Закрыть тренажёр",
      "of": "{{current}} из {{total}}",
      "foundInGame_one": "В этой партии упущен {{count}} форсированный удар.",
      "foundInGame_few": "В этой партии упущено {{count}} форсированных удара.",
      "foundInGame_many": "В этой партии упущено {{count}} форсированных ударов.",
      "foundInGame_other": "В этой партии упущено {{count}} форсированного удара.",
      "find": "Найти мои упущенные тактики",
      "searching": "Ищем упущенные тактики: позиция {{done}} из {{total}}…",
      "addToPractice": "Добавить в ежедневную тренировку",
      "addedToPractice": "Добавлено в тренировку",
      "addedDetail_one": "{{count}} новая карточка.",
      "addedDetail_few": "{{count}} новые карточки.",
      "addedDetail_many": "{{count}} новых карточек.",
      "addedDetail_other": "{{count}} новой карточки.",
      "openPractice": "Открыть тренировку",
      "savedLocally": "Сохранено в этом браузере.",
      "signUpToKeep": "Зарегистрируйтесь бесплатно, чтобы они стали карточками ежедневной тренировки",
      "saveFailed": "Не удалось добавить тактики в тренировку."
    },
    "gameReview": {
      "title": "Где решилась партия",
      "lead": "Stockfish проверяет каждый ход прямо в браузере и находит моменты, которые решили партию. Бесплатно. Сохраните партию — и её анализ сохранится вместе с ней и будет готов при следующем открытии.",
      "checkFirst": "Сначала проверьте отмеченные ходы: один неверно распознанный ход собьёт весь анализ.",
      "start": "Анализировать партию",
      "fromStorage": "Загружено из сохранённого анализа этой партии.",
      "runAgain": "Пересчитать",
      "none": "Переломных моментов нет: ни один ход не отдал заметной доли шансов на победу.",
      "winChance": "Шансы на победу у сделавшей ход стороны, до → после",
      "phase": {
        "opening": "Дебют",
        "middlegame": "Миттельшпиль",
        "endgame": "Эндшпиль"
      },
      "side": {
        "white": "Белые",
        "black": "Чёрные"
      },
      "pieces": {
        "p": "пешка",
        "n": "конь",
        "b": "слон",
        "r": "ладья",
        "q": "ферзь",
        "k": "король"
      },
      "sentence": {
        "allowedMate": "{{played}} допустил форсированный мат, начиная с {{refutation}}. Нужно было {{best}}.",
        "missedMate": "{{best}} форсировал мат; {{played}} упустил возможность.",
        "hungPiece": "После {{played}} фигура осталась под боем ({{piece}} на {{square}}): {{refutation}}.",
        "missedFork": "{{best}} выигрывал материал вилкой ({{piece}} на {{square}} против {{targets}}).",
        "missedCapture": "{{best}} выигрывал материал ({{piece}} на {{square}}).",
        "missedPromotion": "{{best}} превращал пешку; {{played}} это упустил.",
        "allowedFork": "{{played}} допустил вилку, начиная с {{refutation}} ({{piece}} на {{square}} против {{targets}}).",
        "missedPin": "{{best}} выигрывал связанную с королём фигуру ({{piece}} на {{square}}).",
        "allowedPin": "После {{played}} фигура попала под связку с королём и пропала ({{piece}} на {{square}}), начиная с {{refutation}}.",
        "missedSkewer": "{{best}} выигрывал материал сквозным ударом ({{piece}} на {{square}}): фигура отходит, и падает та, что за ней.",
        "missedDiscovered": "{{best}} начинал вскрытое нападение; {{played}} это упустил.",
        "allowedDiscovered": "{{played}} допустил вскрытое нападение, начиная с {{refutation}}. Нужно было {{best}}.",
        "missedBackRank": "{{best}} форсировал мат по последней горизонтали; {{played}} упустил возможность.",
        "allowedBackRank": "{{played}} допустил мат по последней горизонтали, начиная с {{refutation}}. Нужно было {{best}}.",
        "swing": {
          "winning": {
            "winning": "После {{played}} позиция по-прежнему выиграна, но {{best}} сохранял гораздо больший перевес.",
            "equal": "{{played}} упустил выигранную позицию до равенства. {{best}} сохранял перевес.",
            "losing": "{{played}} превратил выигранную позицию в проигранную. Нужно было {{best}}."
          },
          "equal": {
            "equal": "{{played}} кое-что уступил; {{best}} был точнее.",
            "losing": "{{played}} склонил равную позицию к поражению. {{best}} сохранял равновесие."
          },
          "losing": {
            "losing": "{{played}} ухудшил трудную позицию; {{best}} позволял сопротивляться упорнее."
          }
        }
      },
      "marks": "Оценки ходов",
      "goTo": "К анализу",
      "countsMine": "Ваши ошибки:",
      "countsBoth": "Обе стороны:",
      "noneMine": "С вашей стороны переломных моментов нет: ни один ваш ход не отдал заметной доли шансов на победу.",
      "leadSaved": "Stockfish проверяет каждый ход прямо в браузере и находит моменты, которые решили партию. Бесплатно. Анализ сохранится вместе с этой партией и будет готов при следующем открытии."
    },
    "coach": {
      "title": "Разбор от ИИ-тренера",
      "lead": "Тренер простыми словами объясняет каждый переломный момент: что произошло, что мог сделать соперник и что нужно было играть. Только на основе данных движка.",
      "iPlayed": "Я играл",
      "explain": "Объяснить с ИИ-тренером · {{count}} кредит",
      "explainFree": "Объяснить с ИИ-тренером · сегодня бесплатно (осталось {{count}})",
      "freeNote": "Одно объяснение в день бесплатно, дальше — {{cost}} кредит за партию.",
      "freeUsed": "Бесплатное объяснение на сегодня использовано; следующее снова бесплатно с {{time}}.",
      "getCredits": "Получить кредиты",
      "checking": "Ключевые моменты проверяются глубже… {{done}}/{{total}}",
      "writing": "Тренер пишет… (около 10 секунд)",
      "cleared": "При более глубокой проверке ни один из этих ходов не стоил многого: объяснять нечего, кредит не списан.",
      "noCredits": "Недостаточно кредитов для разбора от тренера.",
      "inProgress": "Тренер уже разбирает эту партию. Попробуйте чуть позже.",
      "verifyEmail": "Подтвердите e-mail, чтобы пользоваться ИИ-тренером: одно объяснение в день бесплатно.",
      "signIn": "Войдите, чтобы пользоваться ИИ-тренером: одно объяснение в день бесплатно.",
      "createAccount": "Создайте бесплатный аккаунт, чтобы пользоваться ИИ-тренером: одно объяснение в день бесплатно.",
      "refunded": "Часть разбора не прошла проверку, поэтому вместо неё показано базовое пояснение — кредит возвращён.",
      "charged": "Списан {{count}} кредит. Повторный разбор этой партии (за другую сторону или на другом языке) бесплатен.",
      "free": "Уже разобрано — кредит не списан.",
      "usedFree": "Использовано бесплатное объяснение на сегодня — кредит не списан. Повторный разбор этой партии (за другую сторону или на другом языке) бесплатен.",
      "refundedFree": "Часть разбора не прошла проверку, поэтому вместо неё показано базовое пояснение — бесплатное объяснение возвращено.",
      "afterFree": "До тех пор каждая новая партия стоит {{count}} кредит (баланс: {{credits}}).",
      "nextFree": "Следующее бесплатное объяснение: {{time}}.",
      "disclaimer": "Написано ИИ на основе данных движка. Ошибки всё же возможны; ориентируйтесь на варианты движка на доске.",
      "basis": "Основа движка (Stockfish, глубина {{depth}}): лучшим был {{best}} · шансы на победу {{before}}% → {{after}}%",
      "uncertain": "Причина, которую видит движок, лежит дальше показанных ходов, поэтому «почему» — это его оценка, а не доказанный вариант. Проиграйте вариант на доске, чтобы проверить.",
      "addToPgn": "Добавить в PGN как комментарии",
      "addedToPgn": "Добавлено в PGN",
      "report": "Сообщить об ошибке",
      "reported": "Спасибо, сообщение отправлено",
      "showLine": "Показать этот ход на доске",
      "field": {
        "what": "Что произошло",
        "why": "Почему это плохо",
        "instead": "Лучше было"
      },
      "sideWhite": "Тренер объясняет ходы белых.",
      "sideBlack": "Тренер объясняет ходы чёрных.",
      "sideGuessed": "(Определено по результату.)",
      "changeSide": "Сменить сторону"
    },
    "engineOn": "Движок включён",
    "checkingMarks": "Перепроверяем отмеченные ходы: {{done}} из {{total}}…",
    "repertoire": {
      "leftPlayer": "Вы вышли из репертуара «{{name}}» на {{move}}-м ходу: {{played}} вместо {{expected}}.",
      "leftOpponent": "Соперник вышел из вашего репертуара «{{name}}» на {{move}}-м ходу, сыграв {{played}}; вы готовили {{expected}}.",
      "lineEnded": "Вы прошли репертуар «{{name}}» до конца ({{move}}-й ход).",
      "gameEnded": "Вся партия осталась в рамках репертуара «{{name}}».",
      "verdict": "Движок: {{kind}}",
      "show": "Показать {{move}}-й ход",
      "manage": "Репертуары"
    },
    "kindCount": {
      "inaccuracy_one": "Неточность",
      "inaccuracy_few": "Неточности",
      "inaccuracy_many": "Неточностей",
      "inaccuracy_other": "Неточности",
      "mistake_one": "Ошибка",
      "mistake_few": "Ошибки",
      "mistake_many": "Ошибок",
      "mistake_other": "Ошибки",
      "blunder_one": "Грубая ошибка",
      "blunder_few": "Грубые ошибки",
      "blunder_many": "Грубых ошибок",
      "blunder_other": "Грубые ошибки"
    }
  },
  "home": {
    "badge": "Распознавание бланков с ИИ",
    "hero": {
      "titlePre": "Превратите рукописные бланки в",
      "titleMid": "",
      "titleEm": "аккуратный PGN",
      "lead": "Сфотографируйте свой шахматный бланк. ScanChess расшифрует каждый ход, проверит его по правилам, отметит то, в чём не уверен, и выдаст редактируемый PGN, который работает с Lichess, Chess.com или вашей программой анализа.",
      "ctaPrimary": "Отсканировать бланк",
      "ctaSecondary": "Посмотреть, как это работает",
      "trust": "10 бесплатных кредитов новым аккаунтам — без карты.",
      "demoOriginal": "От руки · оригинал",
      "demoArrow": "ИИ читает и проверяет",
      "reviewBadge": "Проверено · редактируется"
    },
    "exportsLabel": "Работает с",
    "steps": {
      "kicker": "Как это работает",
      "title": "От бумаги до PGN за три шага",
      "subtitle": "Без набора вручную, без переписывания, без обучения.",
      "s1title": "Сфотографируйте бланк",
      "s1desc": "Достаточно чёткого снимка ровно лежащего бланка при хорошем свете — телефон или сканер, ничего устанавливать не нужно.",
      "s2title": "ИИ читает каждый ход",
      "s2desc": "ScanChess расшифровывает нотацию и по ходу дела проверяет каждый ход на доске.",
      "s3title": "Проверьте и экспортируйте",
      "s3desc": "Исправьте помеченные ходы в редакторе, затем скачайте партию или просмотрите её ход за ходом."
    },
    "features": {
      "kicker": "Почему ScanChess",
      "title": "Всё, что нужно, чтобы оцифровать свои партии",
      "f1title": "Читает ваш почерк",
      "f1desc": "Распознавание с ИИ превращает фотографию рукописного бланка в алгебраическую нотацию — даже при неаккуратном почерке, а всё сомнительное помечается для проверки.",
      "f2title": "Находит ошибки",
      "f2desc": "Каждый ход проверяется по правилам и остаётся редактируемым: недопустимые или сомнительные записи помечаются, чтобы вы подтвердили их перед экспортом.",
      "f3title": "Экспортирует стандартный PGN",
      "f3desc": "Скачайте стандартный файл .pgn, который открывается в Lichess, Chess.com, ChessBase или SCID.",
      "f4title": "Быстрее, чем набирать",
      "f4desc": "Целая партия обычно возвращается меньше чем за минуту. Проверить несколько помеченных ходов гораздо быстрее, чем набрать партию вручную."
    },
    "blog": {
      "kicker": "Из блокнота",
      "title": "Руководства по нотации и PGN",
      "all": "Все статьи",
      "minRead": "мин"
    },
    "cta": {
      "title": "Готовы оцифровать свои бланки?",
      "desc": "Загрузите первую партию и за секунды получите проверенный редактируемый PGN.",
      "button": "Отсканировать бланк"
    }
  },
  "blog": {
    "pageTitle": "Блог ScanChess",
    "pageSubtitle": "Руководства по шахматной нотации, бланкам, PGN и оцифровке ваших партий.",
    "solutions": "Решения",
    "allArticles": "Все статьи",
    "searchLabel": "Поиск по статьям",
    "searchPlaceholder": "Поиск по статьям",
    "clearSearch": "Очистить поиск",
    "resultCount_one": "{{count}} статья",
    "resultCount_few": "{{count}} статьи",
    "resultCount_many": "{{count}} статей",
    "resultCount_other": "{{count}} статьи",
    "noResults": "Ни одна статья не подходит. Попробуйте другое слово или снимите фильтры.",
    "minRead": "мин чтения",
    "keepReading": "Читать дальше",
    "relatedTools": "Бесплатные инструменты по теме",
    "diagramAlt": "Схема процесса для «{{title}}»",
    "sources": "Источники и заметки о проверке",
    "reviewed": "Источники проверены {{date}}",
    "ctaTitle": "Превратите бланк в PGN за считаные секунды",
    "ctaDesc": "Загрузите фотографию и позвольте ScanChess сделать расшифровку.",
    "ctaButton": "Сканировать бланк партии",
    "categories": {
      "Improvement": "Улучшение игры",
      "Guides": "Руководства",
      "Notation": "Нотация",
      "Comparison": "Сравнение",
      "Rules": "Правила",
      "Tools": "Инструменты",
      "Billing": "Оплата",
      "Statistics": "Статистика"
    },
    "helpTitle": "Помощь",
    "helpLead": "Кредиты, тарифы, отмена подписки и возвраты.",
    "helpFaq": "Больше ответов в разделе вопросов"
  },
  "blogTools": {
    "pgnTitle": "Попробуйте PGN на доске",
    "pgnLead": "Пример уже загружен. Листайте ходы, выберите ход или скопируйте FEN любой позиции.",
    "fenTitle": "Разберите FEN по полям",
    "fenLead": "Вставьте полный FEN из шести полей. Доска и объяснение обновятся локально.",
    "invalidFen": "Введите полный корректный FEN из шести полей.",
    "placement": "Расстановка фигур",
    "placementHint": "Горизонтали от 8 до 1; буквы обозначают фигуры, цифры считают пустые клетки подряд.",
    "sideToMove": "Очередь хода",
    "sideToMoveHint": "w означает ход белых, b означает ход чёрных.",
    "castling": "Права на рокировку",
    "castlingHint": "K/Q обозначают права белых, k/q права чёрных; тире означает отсутствие прав.",
    "enPassant": "Поле взятия на проходе",
    "enPassantHint": "Поле, которое пешка перескочила при ходе на две клетки, а не её текущее поле.",
    "halfmove": "Счётчик полуходов",
    "halfmoveHint": "Полуходы после последнего хода пешкой или взятия для правила пятидесяти ходов.",
    "fullmove": "Номер хода",
    "fullmoveHint": "Начинается с 1 и увеличивается после каждого хода чёрных.",
    "white": "Белые",
    "black": "Чёрные",
    "none": "Нет",
    "white-kingside": "Белые, короткая рокировка",
    "white-queenside": "Белые, длинная рокировка",
    "black-kingside": "Чёрные, короткая рокировка",
    "black-queenside": "Чёрные, длинная рокировка",
    "openEditor": "Открыть этот FEN в редакторе",
    "sanTitle": "Читайте SAN на доске",
    "sanLead": "Выбирайте ходы SAN и смотрите, как краткая запись меняет позицию.",
    "start": "Начало"
  },
  "solution": {
    "faqTitle": "Частые вопросы",
    "alsoTitle": "Как ещё используют ScanChess",
    "freeCredits": "10 бесплатных кредитов при регистрации. Цены при объёме:",
    "hubKicker": "Выберите свой сценарий",
    "hubTitle": "Решения для шахматных бланков и PGN",
    "hubIntro": "Начните с того, кто вы: игрок, который сканирует свои партии, тренер или клуб с партиями группы, или родитель, который хранит партии ребёнка.",
    "explore": "Посмотреть решение",
    "diagramAlt": "Процесс ScanChess для «{{title}}»",
    "clusters": {
      "players": {
        "title": "Игрокам",
        "description": "Сканируйте свои бланки и позиции, затем анализируйте и храните их. Начните с распознавания бланков."
      },
      "coaches": {
        "title": "Тренерам и клубам",
        "description": "Оцифровать партии группы, обработать тур турнира и вести архив."
      },
      "parents": {
        "title": "Родителям",
        "description": "Сохранить турнирные партии ребёнка и разбирать их вместе."
      }
    },
    "startHere": "Начните здесь:",
    "startHereHint": "обзор того, как рукописный бланк превращается в PGN, сколько это стоит и какое руководство читать дальше.",
    "guidesTitle": "Руководства по каждому шагу",
    "spokes": {
      "convert-chess-scoresheet-to-pgn": "По шагам: от фото к PGN",
      "photo-to-pgn": "Как правильно сфотографировать",
      "scan-chess-notation": "Какие варианты записи распознаются",
      "chess-game-scanner": "Снимок настоящей доски для FEN"
    }
  },
  "howToUse": {
    "metaTitle": "Как работает ScanChess - руководство по сканированию шахматных бланков",
    "pageTitle": "Как работает ScanChess",
    "pageSubtitle": "Оцифруйте бланк за 5 простых шагов",
    "demoAlt": "Пример рукописного бланка",
    "demoCaption": "Обычный рукописный турнирный бланк — как раз такие читает ScanChess",
    "shotAlts": [
      "Рукописный турнирный бланк, сфотографированный ровно",
      "Область загрузки на странице сканирования с добавленным изображением бланка и строкой ограничений",
      "Список ходов после сканирования: два жёлтых сомнительных хода, один красный недопустимый ход и карандаш рядом с каждым ходом",
      "Правка 4-го хода прямо в списке, с двумя допустимыми вариантами от распознавания",
      "Кнопки «Сохранить партию», «Экспорт PGN» и «Скопировать PGN» над карточкой доступа"
    ],
    "shotCaptions": [
      "С чего вы начинаете",
      "Шаг 2 в приложении",
      "Шаги 3 и 4 в приложении",
      "Правка помеченного хода",
      "Шаг 5 в приложении"
    ],
    "ctaTitle": "Готовы начать?",
    "ctaSubtitle": "Загрузите свой первый бланк прямо сейчас",
    "ctaStart": "Начать сканирование",
    "ctaFaq": "Посмотреть вопросы и ответы",
    "schemaName": "Как сканировать шахматные бланки в ScanChess",
    "schemaDesc": "Преобразование рукописных шахматных бланков в PGN с помощью ИИ",
    "steps": [
      {
        "title": "1. Сделайте снимок",
        "description": "Сфотографируйте рукописный бланк телефоном или камерой. Позаботьтесь о хорошем свете и о том, чтобы ходы были хорошо видны.",
        "tips": [
          "Держите снимок ровно, без наклона",
          "Убедитесь, что все ходы попали в кадр",
          "Многостраничные бланки можно снимать по отдельности"
        ]
      },
      {
        "title": "2. Загрузите изображения",
        "description": "Добавьте фотографии с телефона или компьютера — нажмите на область загрузки, чтобы выбрать их, или перетащите файлы на компьютере. JPG, PNG и WebP, до 10 изображений за одно сканирование. HEIC (формат iPhone по умолчанию) пока не поддерживается, преобразуйте его заранее.",
        "tips": [
          "До 15 МБ на изображение",
          "Страницы читаются в показанном порядке; переставьте их стрелками перед сканированием",
          "На телефоне сделайте снимок и сразу загрузите его"
        ]
      },
      {
        "title": "3. Распознавание с ИИ",
        "description": "Нажмите кнопку «Сканировать» (на ней указана стоимость, 2 кредита). Модель читает каждую ячейку и по ходу дела воспроизводит ходы на доске. Целая партия обычно возвращается меньше чем за минуту.",
        "tips": [
          "Система проверяет допустимость каждого хода",
          "Сомнительные ходы помечаются для проверки",
          "Одно сканирование стоит 2 кредита, сколько бы страниц вы ни загрузили"
        ]
      },
      {
        "title": "4. Проверьте и отредактируйте",
        "description": "Просмотрите ходы на доске и правьте любой из них карандашом рядом. Сокращения вроде «dc» сами превращаются в «dxc5».",
        "tips": [
          "Красные пометки указывают на недопустимые ходы",
          "Жёлтые пометки указывают на сомнительные ходы — сверьте их с бланком",
          "Нажмите на ход, чтобы перейти к нему; на компьютере по партии ведут стрелки"
        ]
      },
      {
        "title": "5. Экспортируйте и сохраните",
        "description": "Когда всё устраивает, экспортируйте файл PGN или скопируйте его в буфер обмена. Он импортируется прямо в Chess.com, Lichess и другие сервисы.",
        "tips": [
          "Каждое удачное сканирование автоматически попадает в историю",
          "PGN содержит все данные партии",
          "После сохранения партией можно поделиться по ссылке"
        ]
      }
    ]
  },
  "seo": {
    "homeTitle": "ScanChess · Шахматные изображения в FEN, бланки в PGN",
    "homeDesc": "Шахматный OCR для фото доски и рукописных бланков: превратите снимок в позицию для анализа или в партию для просмотра, проверьте результат и играйте дальше.",
    "scanTitle": "ScanChess · Сканировать",
    "scanDesc": "Изображение доски — в редактируемую позицию, рукописный бланк — в PGN. Готовые примеры без входа, без распознавания и без расхода кредитов.",
    "aboutTitle": "О ScanChess | Сканер шахматных бланков с ИИ",
    "aboutDesc": "Узнайте, как ScanChess помогает шахматистам, судьям и клубам переводить рукописные бланки в PGN.",
    "faqTitle": "ScanChess: вопросы о распознавании бланков и переводе в PGN",
    "faqDesc": "Ответы о ScanChess: сканирование бланков и изображений доски, анализ Stockfish и ИИ-тренер, ежедневная тренировка, кредиты, тарифы и ваши данные.",
    "blogTitle": "Руководства по бланкам и шахматной нотации | Блог ScanChess",
    "blogDesc": "Руководства по чтению шахматных бланков, алгебраической нотации (SAN), формату PGN, правилам ФИДЕ и оцифровке партий в ScanChess.",
    "privacyTitle": "Политика конфиденциальности | ScanChess",
    "privacyDesc": "Как ScanChess собирает, использует, хранит и удаляет ваши данные, включая почту аккаунта, загруженные изображения бланков и кредиты.",
    "termsTitle": "Условия обслуживания | ScanChess",
    "termsDesc": "Условия использования ScanChess: аккаунты, кредиты и покупки, допустимое использование и удаление аккаунта.",
    "pricingTitle": "Цены ScanChess – бесплатные кредиты, Pro и Pro+",
    "pricingDesc": "10 бесплатных кредитов для начала. Pro: 100 кредитов каждые 30 дней за $4,99/мес. или $29,99/год; Pro+: 500 за $19,99/мес. или $119,99/год.",
    "refundsTitle": "Политика возвратов | ScanChess",
    "refundsDesc": "ScanChess не делает возвратов: все платежи окончательны. Исключения, что такое кредиты и как вместо этого отменить подписку.",
    "contactTitle": "Связаться с поддержкой ScanChess",
    "contactDesc": "Пишите на support@scanchess.com по вопросам оплаты, возврата, удаления аккаунта или неудачного сканирования.",
    "settingsTitle": "Настройки аккаунта | ScanChess",
    "settingsDesc": "Кредиты, подписка, код приглашения, язык, согласие на аналитику, экспорт и удаление ваших данных.",
    "statusTitle": "Состояние сервиса ScanChess – сайт и API сканирования",
    "statusDesc": "Проверка сайта ScanChess и API сканирования в реальном времени прямо из вашего браузера при открытии страницы: настоящее время ответа, а не вписанная цифра.",
    "securityTitle": "Безопасность и сообщения об уязвимостях | ScanChess",
    "securityDesc": "Как ScanChess защищает ваши данные — везде HTTPS, пароли хешируются bcrypt, сессии HttpOnly, данные карт не хранятся — и как сообщить об уязвимости.",
    "changelogTitle": "Изменения ScanChess – новые функции, исправления, обновления",
    "changelogDesc": "Что изменилось в ScanChess и когда: новые функции сканирования, бесплатные шахматные инструменты, оплата, исправления распознавания и новые языки.",
    "historyTitle": "Сохранённые партии | ScanChess",
    "historyDesc": "Ваши сохранённые партии с синхронизацией между устройствами — загрузите любую обратно на доску или выгрузите в PGN.",
    "howToUseTitle": "Как работает ScanChess: фото доски в FEN, бланк в PGN",
    "howToUseDesc": "Пошагово: загрузите изображение доски, чтобы получить редактируемый FEN, или страницы бланка для PGN, затем проверьте отмеченные ходы и экспортируйте.",
    "toolsTitle": "Бесплатные шахматные инструменты – лучший ход и анализ",
    "toolsDesc": "Бесплатные шахматные инструменты в браузере: лучший ход по FEN или скриншоту, доска для анализа со Stockfish, разбор партий, Chess Wrapped и другое.",
    "solutionsTitle": "Решения для шахматных бланков и PGN | ScanChess",
    "solutionsDesc": "Выберите сценарий: снять нотацию с бумаги, перевести её в стандартный PGN, заархивировать клубную коллекцию или подготовить партии ученика.",
    "deleteAccountTitle": "Удаление аккаунта | ScanChess",
    "deleteAccountDesc": "Как навсегда удалить аккаунт ScanChess, сохранённые партии и все загруженные изображения бланков.",
    "authTitle": "Вход | ScanChess",
    "authDesc": "Войдите в ScanChess, чтобы сохранять отсканированные партии и управлять кредитами на сканирование.",
    "resetTitle": "Сброс пароля | ScanChess",
    "resetDesc": "Задайте новый пароль для аккаунта ScanChess.",
    "verifyEmailTitle": "Подтверждение почты | ScanChess",
    "verifyEmailDesc": "Подтвердите адрес электронной почты вашего аккаунта ScanChess.",
    "batchDesc": "Отсканируйте целый тур сразу: загрузите все бланки, сгруппируйте страницы, и каждая партия отдельно попадёт в вашу библиотеку.",
    "extensionTitle": "ScanChess для Chrome и Edge: доска с веб-страницы в FEN",
    "extensionDesc": "Захватывайте доски с веб-страниц, проверяйте позиции и копируйте FEN. Бесплатная установка в Chrome и Edge. Нужен аккаунт ScanChess, 1 кредит за доску.",
    "howItWorksTitle": "Как работает ScanChess: сканирование, анализ и тренировка",
    "howItWorksDesc": "Отсканируйте бланк или изображение доски и проверьте ходы, затем проанализируйте партию со Stockfish и ИИ-тренером и потренируйте упущенную тактику."
  },
  "deleteAccount": {
    "title": "Удаление аккаунта",
    "intro": "Это удалит ваш аккаунт ScanChess и всё, что в нём хранится. Если вы хотите просто выйти, воспользуйтесь меню.",
    "warningTitle": "Это необратимо",
    "warningGames": "Каждая сохранённая партия и каждый PGN в вашей библиотеке будут удалены.",
    "warningImages": "Каждое загруженное вами изображение бланка будет удалено.",
    "warningCredits": "Оставшиеся кредиты сгорают и не возвращаются.",
    "warningSubscription": "Веб-продление отменяется до удаления. Активную подписку App Store нужно сначала отменить у Apple, иначе удаление будет заблокировано.",
    "manageSubscription": "Управление подпиской",
    "warningIrreversible": "Удаление происходит сразу и навсегда — восстановить аккаунт потом мы не сможем.",
    "confirmPrompt": "Для подтверждения введите адрес своей почты:",
    "passwordPrompt": "Введите текущий пароль",
    "providerPrompt": "Или подтвердите себя заново у своего сервиса входа",
    "providerVerified": "Личность подтверждена для удаления аккаунта",
    "button": "Удалить мой аккаунт навсегда",
    "signInFirst": "Войдите в аккаунт, который хотите удалить, и вернитесь на эту страницу.",
    "noAccessNote": "Нет доступа к аккаунту? Напишите нам, и мы всё сделаем сами:",
    "doneTitle": "Аккаунт удалён",
    "doneDesc": "Ваш аккаунт и все связанные данные удалены.",
    "failedTitle": "Не удалось удалить аккаунт",
    "failedDesc": "Что-то пошло не так. Попробуйте снова или напишите на support@scanchess.com.",
    "proofRequired": "Чтобы удалить аккаунт, нам нужно подтверждение, что он ваш: текущий пароль или свежий вход через Google.",
    "appleTitle": "Входили через Apple?",
    "appleDesc": "Эта страница не может проверить аккаунт, который использует только вход через Apple. Напишите нам с адреса аккаунта, и мы удалим его за вас.",
    "requestByEmail": "Запросить удаление по почте",
    "emailSubject": "Запрос на удаление аккаунта ({{email}})",
    "emailBody": "Пожалуйста, удалите мой аккаунт ScanChess {{email}} и все хранящиеся с ним данные. Я понимаю, что это необратимо."
  },
  "cookies": {
    "title": "Выбор по cookie",
    "body": "Мы используем Google Analytics и Microsoft Clarity, чтобы видеть, как используется сайт. Clarity записывает, как вы перемещаетесь по странице.",
    "accept": "Принять",
    "decline": "Отклонить",
    "learnMore": "Как мы используем ваши данные",
    "currentlyOn": "Аналитика сейчас включена.",
    "currentlyOff": "Аналитика сейчас выключена."
  },
  "pricing": {
    "title": "Простые цены",
    "subtitle": "Кредиты оплачивают сканирование. Тарифы добавляют инструменты для анализа, тренировки и подготовки.",
    "perMonth": "/месяц",
    "yearlyNote": "{{price}} раз в год · экономия 50%",
    "bestValue": "Выгоднее всего",
    "billing": {
      "monthly": "Помесячно",
      "yearly": "Ежегодно",
      "yearlySave": "−50 %"
    },
    "tiers": {
      "pro": "Pro",
      "proplus": "Pro+"
    },
    "tierCredits": {
      "pro": "100 кредитов каждые 30 дней — примерно 50 бланков",
      "proplus": "500 кредитов каждые 30 дней — примерно 250 бланков"
    },
    "subscribe": "Оформить подписку",
    "signInToSubscribe": "Войдите, чтобы оформить подписку",
    "smallPrint": "Оплата в долларах США, продление автоматическое по той же цене — месячные планы каждый месяц, годовые каждый год — пока вы не отмените. Отменить можно в любой момент на этой странице: Pro действует до конца оплаченного периода, и повторного списания не будет. Все платежи окончательны и не возвращаются, кроме случаев, предусмотренных законом, — см. нашу Политику возвратов. Налог рассчитывает при оплате Waffo, наш зарегистрированный продавец, который выступает продавцом при покупках через сайт.",
    "manage": {
      "title": "Ваша подписка",
      "activeUntil": "Pro действует до {{date}}. Продлевается автоматически, если не отменить.",
      "cancel": "Отменить подписку",
      "cancelNote": "Отмена останавливает следующее списание. Pro — и кредиты, которые уже на балансе, — остаются до конца оплаченного периода.",
      "canceledTitle": "Подписка отменена",
      "canceledDesc": "Повторных списаний не будет. Pro действует до конца оплаченного периода.",
      "cancelFailedTitle": "Не удалось отменить",
      "cancelFailedDesc": "Попробуйте снова или напишите на support@scanchess.com, и мы отменим её за вас.",
      "titleWithPlan": "У вас {{plan}}",
      "appStoreNote": "Эта подписка куплена в приложении для iOS. Управляйте ею или отмените в настройках подписок Apple ID.",
      "passTitle": "У вас {{plan}}",
      "passActiveUntil": "Pro действует до {{date}}. По окончании ничего не продлевается и не списывается.",
      "passNote": "Чтобы продлить, купите ещё один абонемент ниже — оставшиеся дни прибавятся."
    },
    "plans": {
      "pro_monthly": "Pro на месяц",
      "pro_yearly": "Pro на год",
      "proplus_monthly": "Pro+ на месяц",
      "proplus_yearly": "Pro+ на год",
      "pro_pass_365": "Годовой абонемент Pro"
    },
    "free": {
      "name": "Бесплатно",
      "price": "$0",
      "period": "для начала",
      "note": "10 кредитов при регистрации — без карты",
      "cta": "Отсканировать бланк",
      "signUpCta": "Начать бесплатно — зарегистрироваться",
      "includedNote": "С чего начинается любой аккаунт, ещё до Pro.",
      "priceCn": "¥0"
    },
    "credits": {
      "title": "Как работают кредиты",
      "intro": "Кредиты — единственное, что вы тратите в ScanChess. Каждый новый аккаунт начинается с 10 бесплатных кредитов, и кредиты не сгорают.",
      "colAction": "Что вы делаете",
      "colCost": "Стоимость",
      "rows": {
        "scoresheet": "Фото бланка → PGN",
        "scoresheetCost": "2 кредита",
        "board": "Фото доски → FEN",
        "boardCost": "1 кредит",
        "coach": "Объяснения ИИ: разбор партии ИИ-тренером, позиция, итоги отчёта о турнире",
        "coachCost": "1 бесплатно в день, затем 1 кредит за каждое",
        "other": "Правка, просмотр, экспорт PGN, история партий",
        "otherCost": "Бесплатно",
        "bestMove": "Поиск лучшего хода: распознавание фото реальной доски (до {{n}} за 24 часа)",
        "bestMoveCost": "Бесплатно для бесплатного аккаунта с подтверждённой почтой"
      },
      "topUp": "Pro добавляет 100 кредитов каждые 30 дней — примерно 50 бланков, — а Pro+ добавляет 500. Начисление приходит, когда вы входите после этих 30 дней, а неизрасходованные кредиты остаются на балансе.",
      "perScanMonthly": "На месячных планах это примерно $0,05 за кредит на Pro и $0,04 на Pro+ — около $0,10 за бланк на Pro и $0,08 на Pro+.",
      "perScanYearly": "На годовых планах это примерно $0,025 за кредит на Pro и $0,02 на Pro+ — около $0,05 за бланк на Pro и $0,04 на Pro+, вдвое дешевле месячного тарифа.",
      "perScanPass": "Годовой абонемент Pro выходит примерно в ¥0,08 за кредит — около ¥0,17 за бланк.",
      "bestMoveNote": "Скриншоты распознаются в вашем браузере — бесплатно и без аккаунта. Скан доски в рабочем пространстве стоит 1 кредит, потому что он сохраняет в вашем аккаунте позицию, которую можно редактировать; поиск лучшего хода лишь читает картинку, чтобы показать ответ движка."
    },
    "support": {
      "title": "Вопросы по оплате?",
      "body": "Если есть вопросы по списанию, возврату или балансу кредитов — напишите нам на"
    },
    "help": {
      "credits": "Как работают кредиты",
      "cancel": "Как отменить",
      "compare": "Бесплатно и Pro",
      "refunds": "Политика возвратов (возвратов нет)"
    },
    "currentPlan": "Ваш план",
    "currentPlanButton": "Текущий план",
    "switchPlan": "Перейти на этот план",
    "switchNote": "Переход открывает оплату нового плана; пока вы её не завершите, ничего не меняется. После этого мы по вашей просьбе остановим продление прежнего плана, а переход на более крупный сразу открывает больший запас кредитов.",
    "appStoreSwitchDesc": "Эта подписка куплена в приложении для iOS, поэтому менять её должна Apple. Откройте настройки подписок Apple ID, чтобы сменить план.",
    "overlapTitle": "У вас уже есть действующий доступ Pro",
    "overlapDesc": "Отмените текущую подписку и дождитесь конца оплаченного периода, прежде чем покупать другой план. Так не будет двойных списаний.",
    "subscriptionUnknownTitle": "Не удалось проверить вашу подписку",
    "subscriptionUnknownDesc": "Мы не смогли загрузить данные подписки. Попробуйте снова, прежде чем менять план.",
    "retry": "Повторить",
    "switchDoneDesc": "Новый план активен. Прежний план ({{previous}}) всё ещё настроен на продление — ниже написано, как его остановить.",
    "switchDoneNote": "Прежний план ({{previous}}) всё ещё настроен на продление. Мы остановим его сами — отправьте запрос ниже, и всё будет сделано в тот же день, до любого следующего списания.",
    "switchStopPrevious": "Попросить нас остановить прежний план",
    "switchEmailSubject": "Остановить продление моего прежнего плана ({{previous}})",
    "switchEmailBody": "Я перешёл с {{previous}} на {{current}} в ScanChess ({{email}}). Пожалуйста, остановите продление прежнего плана.",
    "switchPreviousCanceledDesc": "Новый план активен. Прежний план ({{previous}}) остановлен и продлеваться не будет.",
    "switchPreviousNoneDesc": "Новый план активен. Прежний план ({{previous}}) уже был остановлен — за него больше ничего не спишется.",
    "switchPreviousCancelFailedTitle": "Новый план активен, но прежний ещё продлевается",
    "switchPreviousCancelFailedDesc": "Нам не удалось остановить {{previous}} автоматически. Воспользуйтесь запросом ниже, и мы остановим его до любого следующего списания.",
    "market": {
      "label": "Магазин",
      "global": "Международный",
      "globalDetail": "USD · карта / Apple Pay / Google Pay",
      "cn": "Материковый Китай",
      "cnDetail": "юани · WeChat Pay",
      "showingGlobal": "Цены в долларах США, оплата картой, Apple Pay или Google Pay.",
      "switchToCn": "Вы в материковом Китае? Показать цены в юанях с WeChat Pay.",
      "showingCn": "Цены для материкового Китая в юанях, разовая оплата через WeChat Pay.",
      "switchToGlobal": "Вы не в материковом Китае? Показать международные цены."
    },
    "pass": {
      "period": "/год, разовая оплата",
      "noRenew": "Не продлевается",
      "buy": "Оплатить через WeChat",
      "extend": "Добавить ещё год",
      "signInToBuy": "Войдите, чтобы купить",
      "note": "Абонемент оплачивается один раз и действует 365 дней; по окончании ничего не списывается. Чтобы продлить, купите ещё один — оставшиеся дни прибавятся.",
      "holderSwitchDesc": "Ваш абонемент ещё действует. Оформляйте подписку после его окончания, чтобы не платить дважды за одни и те же дни.",
      "listPrice": "Цена по прейскуранту {{price}}",
      "proplusNote": "Pro+ для клубов и тренеров пока не продаётся в магазине для материкового Китая. Если он вам нужен, напишите на {{email}}."
    },
    "smallPrintCn": "Магазин для материкового Китая работает в юанях с разовой оплатой через WeChat Pay. Вы покупаете абонемент Pro на 365 дней: он не продлевается и отменять нечего; купите ещё один, чтобы продлить, оставшиеся дни прибавятся. Все платежи окончательны и не возвращаются, кроме случаев, предусмотренных применимым правом, — см. Политику возвратов. Налог рассчитывает при оплате наш реселлер Waffo, зарегистрированный продавец при покупках через сайт.",
    "tierTagline": {
      "free": "Сканируйте, анализируйте и тренируйтесь",
      "pro": "Для своих партий и подготовки",
      "proplus": "Для клубов и тренеров"
    },
    "cards": {
      "freeBasics": "Сканирование, правка, просмотр, экспорт PGN и библиотека партий",
      "freeAnalysis": "Анализ Stockfish, одно бесплатное объяснение ИИ в день и ежедневная тренировка",
      "proFeatures": "Полный игровой профиль, дебютные репертуары, подготовка к сопернику и отчёты о турнирах",
      "proPractice": "Ежедневная тренировка без ограничений",
      "proplusEverything": "Всё, что есть в Pro, с более высокими лимитами на отчёты и репертуары",
      "proplusClub": "Список игроков клуба, страницы учеников и публичные ссылки на отчёты"
    },
    "compare": {
      "title": "Сравнение тарифов",
      "feature": "Возможность",
      "yes": "Входит",
      "no": "Не входит",
      "groups": {
        "credits": "Кредиты",
        "analysis": "Анализ и объяснения ИИ",
        "practice": "Тренировка",
        "insights": "Игровой профиль",
        "preparation": "Подготовка",
        "events": "Турниры и отчёты",
        "clubs": "Клубы"
      },
      "rows": {
        "credits": "Кредиты",
        "basics": "Сканирование, правка, просмотр, экспорт PGN, библиотека партий",
        "engine": "Анализ каждой партии движком Stockfish",
        "explain": "Объяснения ИИ: разбор партии ИИ-тренером, позиция, итоги отчёта о турнире",
        "practice": "Ежедневная тренировка на ваших собственных ошибках",
        "insightsBasic": "Сводка профиля, онлайн и за доской",
        "insightsDeep": "Полный профиль: точность во времени, стадии партии, типы ошибок, дебюты, фильтры",
        "repertoire": "Дебютные репертуары с оповещением об отклонениях",
        "scouting": "Отчёты для подготовки к сопернику",
        "eventReport": "Отчёты о турнирах",
        "reportShare": "Публичные ссылки на отчёты",
        "clubPlayers": "Список игроков, страницы учеников, привязка партий отсканированного тура к игрокам"
      },
      "cells": {
        "signup": "10 при регистрации",
        "every30": "{{n}} каждые 30 дней",
        "perDay": "{{n}} в день",
        "perMonth": "{{n}} в месяц",
        "upTo": "До {{n}}",
        "unlimited": "Без ограничений",
        "preview": "Предпросмотр",
        "explain_one": "{{free}} бесплатно в день, затем {{count}} кредит за каждое",
        "explain_few": "{{free}} бесплатно в день, затем {{count}} кредита за каждое",
        "explain_many": "{{free}} бесплатно в день, затем {{count}} кредитов за каждое",
        "explain_other": "{{free}} бесплатно в день, затем {{count}} кредита за каждое"
      },
      "clubNote": "Клубные возможности работают в рабочем пространстве клуба с тарифом Pro+. Кредиты не сгорают, а неизрасходованные остаются на балансе."
    }
  },
  "checkout": {
    "opening": "Открываем защищённую оплату…",
    "failed": "Страница оплаты не открылась. {{reason}} Деньги не списаны. Если это повторяется, напишите на",
    "trust": {
      "secure": "Защищённая оплата через Waffo",
      "methodsCard": "Карта, Apple Pay или Google Pay",
      "methodsWechat": "WeChat Pay",
      "cancelAnyTime": "Отмена в любой момент",
      "oneTime": "Разовый платёж",
      "chargeMonthly": "{{price}} сегодня, затем {{price}} каждый месяц, пока вы не отмените. Налог, если он есть, рассчитывается при оплате.",
      "chargeYearly": "{{price}} сегодня, затем {{price}} каждый год, пока вы не отмените. Налог, если он есть, рассчитывается при оплате.",
      "chargePass": "{{price}} один раз за 365 дней Pro. Не продлевается. Налог, если он есть, рассчитывается при оплате.",
      "final": "Все платежи окончательны — см. Политику возвратов",
      "returnHere": "После оплаты вы вернётесь на эту страницу."
    },
    "confirm": {
      "processingTitle": "Подтверждаем ваш платёж…",
      "processingDesc": "Waffo сообщает нам о вашем платеже. Обычно это занимает меньше минуты; не закрывайте страницу.",
      "processingDescStay": "Обычно это занимает меньше минуты. Всё на этой странице останется как есть.",
      "pendingTitle": "Платёж получен — ещё обрабатывается",
      "pendingDesc": "Подтверждение к нам ещё не пришло. План включится сам, как только оно дойдёт, — платить повторно не нужно. Если через несколько минут ничего не изменилось, напишите на {{email}}, и мы разберёмся.",
      "refresh": "Проверить снова",
      "emailSupport": "Написать в поддержку",
      "confirmedTitle": "Платёж подтверждён",
      "confirmedPlan": "Платёж подтверждён — у вас {{plan}}",
      "confirmedClubPlan": "Платёж подтверждён — {{plan}} действует для клуба",
      "creditsAdded_one": "На ваш баланс зачислен {{count}} кредит.",
      "creditsAdded_few": "На ваш баланс зачислено {{count}} кредита.",
      "creditsAdded_many": "На ваш баланс зачислено {{count}} кредитов.",
      "creditsAdded_other": "На ваш баланс зачислено {{count}} кредита.",
      "creditsAddedClub_one": "На баланс клуба зачислен {{count}} кредит.",
      "creditsAddedClub_few": "На баланс клуба зачислено {{count}} кредита.",
      "creditsAddedClub_many": "На баланс клуба зачислено {{count}} кредитов.",
      "creditsAddedClub_other": "На баланс клуба зачислено {{count}} кредита.",
      "startScan": "Сканировать бланк",
      "openWorkspace": "Открыть рабочее пространство",
      "resume": "Всё, над чем вы работали, всё ещё здесь."
    }
  },
  "settings": {
    "title": "Настройки",
    "subtitle": "Ваш аккаунт, ваш план и что происходит с вашими данными.",
    "account": "Аккаунт",
    "memberSince": "С нами с",
    "password": "Пароль",
    "sendReset": "Прислать ссылку для смены пароля",
    "resetSent": "Ссылка отправлена",
    "resetSentDesc": "Проверьте входящие и перейдите по ссылке, чтобы задать новый пароль.",
    "resetFailed": "Не удалось отправить письмо для смены пароля",
    "plan": "План и кредиты",
    "currentPlan": "Текущий план",
    "upgrade": "Посмотреть планы",
    "refresh": "Обновить",
    "referral": "Пригласить друзей",
    "preferences": "Предпочтения",
    "analytics": "Аналитические cookie",
    "analyticsAccepted": "Приняты",
    "analyticsDeclined": "Отклонены",
    "analyticsUnset": "Выбор ещё не сделан",
    "analyticsOn": "Аналитика включена",
    "analyticsOff": "Аналитика выключена",
    "analyticsNote": "Google Analytics и Microsoft Clarity работают, только пока это включено. Там, где требуется предварительное согласие — ЕЭЗ, Великобритания, Швейцария, — они остаются выключенными, пока вы не согласитесь. Подробности в",
    "yourData": "Ваши данные",
    "yourDataDesc": "Заберите свои партии с собой или запросите всё, что мы храним.",
    "exportGames": "Скачать все партии ({{count}})",
    "exportEmpty": "Сохранённых партий для выгрузки пока нет",
    "exportDone": "Выгружено партий: {{count}}",
    "exportFailed": "Не удалось выгрузить ваши партии. Попробуйте снова.",
    "dangerZone": "Действия с аккаунтом",
    "displayName": "Отображаемое имя",
    "displayNamePlaceholder": "Ваше имя",
    "nameSaved": "Имя обновлено",
    "nameFailed": "Не удалось сохранить имя",
    "passwordDesc": "Для смены нужен текущий пароль. Входили через Apple или Google? Воспользуйтесь ссылкой для смены пароля.",
    "currentPassword": "Текущий пароль",
    "newPassword": "Новый пароль",
    "changePassword": "Сменить пароль",
    "passwordChanged": "Пароль изменён",
    "passwordChangedDesc": "Вы вышли на всех устройствах. Войдите снова с новым паролем.",
    "passwordFailed": "Не удалось сменить пароль",
    "passwordMismatch": "Новые пароли не совпадают",
    "passwordTooShort": "Новый пароль должен содержать не менее 6 символов",
    "billingHistory": "История платежей",
    "billingHistoryDesc": "Что мы записали по вашему аккаунту. Чеки присылает Waffo по почте.",
    "payment": {
      "paid": "Оплачено",
      "canceled": "Отменено",
      "refunded": "Возвращено"
    },
    "receiptNote": "Нужен чек или счёт? Ответьте на письмо Waffo или напишите в поддержку, указав номер заказа.",
    "analyticsDefaultOn": "В вашем регионе включена по умолчанию",
    "analyticsDefaultOff": "Выключена, пока вы не согласитесь",
    "passwordSignsOutNote": "Смена пароля выводит вас из аккаунта на всех устройствах, включая это.",
    "passwordConfirmTitle": "Сменить пароль и выйти везде?",
    "passwordConfirmDesc": "Все устройства, где выполнен вход в этот аккаунт, включая это, будут отключены. Мы отправим вас на страницу входа, чтобы продолжить с новым паролем.",
    "exportGamesAll": "Скачать все партии",
    "requestData": "Запросить копию моих данных",
    "dataRights": "По любым другим вопросам прав на данные пишите на "
  },
  "status": {
    "title": "Состояние сервиса",
    "subtitle": "Проверяется прямо из вашего браузера при открытии этой страницы — это не число, которое мы вписали.",
    "checking": "Проверяем",
    "up": "Отвечает",
    "down": "Не отвечает",
    "recheck": "Проверить снова",
    "checkedAt": "Последняя проверка {{time}}",
    "downTitle": "API отсюда не отвечает",
    "downBody": "Сканирование и вход не будут работать, пока он не вернётся. Если это длится дольше нескольких минут, сообщите нам на",
    "honestTitle": "Что это за страница, если честно",
    "honestBody": "Мы не публикуем процент доступности, потому что не измеряем его. Эта страница задаёт API тот же вопрос, что и ваш браузер при сканировании, и показывает ответ. Сбой здесь может быть связан и с вашей сетью или заблокированным запросом.",
    "website": "Веб-сайт",
    "api": "API сканирования и аккаунта",
    "footnote": "Показатель сайта — время ответа HTML этой страницы; показатель API — живой запрос к /api/health.",
    "failingHint": "Не удается выполнить сканирование? См. "
  },
  "changelog": {
    "title": "Изменения",
    "subtitle": "Что изменилось и когда.",
    "feedback": "Хотите, чтобы что-то изменилось?"
  },
  "savedGame": {
    "title": "Сохранённая партия",
    "body": "Вы смотрите партию из своей библиотеки. Правка и экспорт бесплатны — повторное сканирование только потратит кредиты на партию, которая у вас уже есть.",
    "newScan": "Отсканировать новый бланк",
    "backToLibrary": "Вернуться к моим партиям"
  },
  "tools": {
    "common": {
      "home": "ScanChess",
      "load": "Загрузить",
      "clear": "Очистить",
      "copy": "Скопировать",
      "copied": "Скопировано в буфер обмена",
      "copyFailed": "Не удалось скопировать — выделите и скопируйте вручную",
      "download": "Скачать",
      "share": "Поделиться ссылкой",
      "shareCopied": "Ссылка скопирована",
      "embed": "Встроить",
      "embedCopied": "Код для вставки скопирован",
      "openInEditor": "Открыть в редакторе доски",
      "openInViewer": "Открыть в просмотре PGN",
      "analyzeLichess": "Разобрать на Lichess",
      "flipBoard": "Развернуть доску",
      "chooseFile": "Выбрать файл",
      "dropHint": "или перетащите файл сюда",
      "pasteHint": "или вставьте ходы выше",
      "loadSample": "Загрузить пример",
      "navStart": "Первая позиция",
      "navPrev": "Предыдущий ход",
      "navNext": "Следующий ход",
      "navEnd": "Последняя позиция",
      "featuresTitle": "Что делает этот инструмент",
      "faqTitle": "Частые вопросы",
      "relatedTools": "Другие бесплатные инструменты",
      "relatedGuides": "Статьи об этом инструменте",
      "allTools": "Все инструменты",
      "fen": "FEN",
      "privacyNote": "Работает в вашем браузере. Ничего не загружается на сервер.",
      "openTool": "Открыть инструмент",
      "white": "Белые",
      "black": "Черные",
      "scanStripBoard": "Есть скриншот или фото этой позиции? Отсканируйте — доска расставится сама.",
      "scanStripScoresheet": "Партия записана на бланке? Отсканируйте её в PGN вместо ручного ввода.",
      "scanStripAction": "Сканировать изображение",
      "scanStripSample": "Открыть бесплатный пример",
      "pasteFirst": "Сначала вставьте PGN выше, выберите файл или загрузите пример.",
      "scanStripPrintable": "После партии отсканируйте заполненный бланк и получите ходы в PGN — без ручного ввода.",
      "pgnInputLabel": "PGN или список ходов",
      "exampleGame": "Пример партии",
      "pasteYourGame": "Вставить свою партию",
      "changeGame": "Другая партия",
      "cancel": "Отмена"
    },
    "viewer": {
      "placeholder": "Вставьте сюда PGN — например:\n\n[Event \"Товарищеская партия\"]\n[White \"Anderssen\"]\n[Black \"Kieseritzky\"]\n\n1. e4 e5 2. f4 exf4 3. Сc4 Фh4+ ...",
      "gameSelect": "Партия",
      "gameCount": "Партий в файле: {{count}}",
      "movesTitle": "Ходы",
      "headersTitle": "Данные партии",
      "noMoves": "Ходы ещё не загружены. Вставьте PGN выше и нажмите «Загрузить».",
      "parseFailed": "Из этого текста не удалось прочитать ни одного хода.",
      "stoppedAt": "Остановились на {{label}} {{token}} — этот ход здесь недопустим. Откройте проверку, чтобы увидеть подробности.",
      "downloadPgn": "Скачать PGN",
      "currentFen": "Текущая позиция",
      "result": "Результат",
      "openValidator": "Проверить в валидаторе",
      "startPosition": "Начальная позиция"
    },
    "editor": {
      "startPosition": "Начальная позиция",
      "emptyBoard": "Пустая доска",
      "fenInput": "Вставьте FEN, чтобы загрузить его",
      "fenLoad": "Загрузить FEN",
      "turn": "Ход",
      "white": "Белые",
      "black": "Чёрные",
      "castling": "Право на рокировку",
      "epSquare": "Поле взятия на проходе",
      "epNone": "Нет",
      "downloadPng": "Скачать PNG",
      "swapColours": "Поменять цвета",
      "tray": "Фигуры",
      "trayHint": "Перетащите фигуру на доску или выберите её и нажимайте на поля. Чтобы убрать фигуру, перетащите её за пределы доски.",
      "eraser": "Ластик",
      "playable": "Позиция допустима и играбельна",
      "notPlayable": "Позиция неиграбельна",
      "status": {
        "checkmate": "Мат: {{side}} получили мат.",
        "stalemate": "Пат: {{side}} не имеют ни одного допустимого хода.",
        "check": "Ход: {{side}}, под шахом.",
        "normal": "Ход: {{side}}."
      },
      "problems": {
        "pawn-back-rank": "Пешки не могут стоять на первой и восьмой горизонталях.",
        "white-king-count": "У белых должен быть ровно один король.",
        "black-king-count": "У чёрных должен быть ровно один король.",
        "opponent-in-check": "Сторона, которая не ходит, находится под шахом.",
        "unplayable": "Шахматный движок не может загрузить эту позицию."
      },
      "selectedPiece": "Ставим: {{piece}}",
      "pieceNames": {
        "wK": "белый король",
        "wQ": "белый ферзь",
        "wR": "белая ладья",
        "wB": "белый слон",
        "wN": "белый конь",
        "wP": "белая пешка",
        "bK": "чёрный король",
        "bQ": "чёрный ферзь",
        "bR": "чёрная ладья",
        "bB": "чёрный слон",
        "bN": "чёрный конь",
        "bP": "чёрная пешка"
      },
      "pngFailed": "Не удалось построить изображение в этом браузере."
    },
    "validator": {
      "placeholder": "Вставьте PGN или простой список ходов, например:\n\n1. e4 e5 2. Кf3 Кc6 3. Сb5 a6 4. Сa4 Кf6 5. 0-0 Сe7 ...",
      "validate": "Проверить",
      "okTitle": "Все ходы допустимы: {{count}}",
      "okBody": "Партия разыгрывается без сбоев от начальной позиции. Результат: {{result}}.",
      "errorTitle": "Недопустимый ход на {{label}} {{token}}",
      "errorBody_one": "До него допустимых ходов было {{count}}. Ходы, возможные в этой позиции, перечислены ниже.",
      "errorBody_few": "До него допустимых ходов было {{count}}. Ходы, возможные в этой позиции, перечислены ниже.",
      "errorBody_many": "До него допустимых ходов было {{count}}. Ходы, возможные в этой позиции, перечислены ниже.",
      "errorBody_other": "До него допустимых ходов было {{count}}. Ходы, возможные в этой позиции, перечислены ниже.",
      "warningsTitle": "Нотация исправлена автоматически",
      "warningsBody": "Записей переписано в стандартный SAN: {{count}}.",
      "legalMoves": "Допустимые ходы здесь",
      "rewritten": "{{token}} → {{replacement}}",
      "trailing": "Ходов после ошибки не проверено: {{count}}.",
      "unknownToken": "Нераспознанная запись «{{token}}» пропущена.",
      "cleanedTitle": "Очищенный PGN",
      "partialTitle": "Ходы до ошибки",
      "partialNote": "Всё начиная с недопустимого хода отброшено, а результат заменён на «*». Исправьте этот ход, чтобы сохранить партию целиком.",
      "downloadPgn": "Скачать PGN",
      "empty": "Сначала вставьте несколько ходов.",
      "openViewer": "Просмотреть в плеере",
      "boardAtError": "Позиция на месте остановки",
      "movesPlayed": "Сыграно ходов",
      "tokens": "Прочитано записей",
      "notPgn": "Это не похоже ни на PGN, ни на список ходов. Вставьте ходы вроде 1. e4 e5 2. Кf3 или PGN с тегами [Event \"…\"].",
      "didYouMean": "Возможно, имелся в виду ход <move>{{san}}</move>?",
      "replaceWith": "Заменить {{token}} на {{san}}",
      "pickToReplace": "Выберите ход, чтобы заменить им {{token}} и проверить заново.",
      "foreignLetters": "Похоже, ходы записаны буквами фигур другого языка: {{language}} ({{letters}}). Переведите их в английскую SAN и проверьте здесь ещё раз.",
      "foreignLettersAction": "Перевести в английскую SAN"
    },
    "analysis": {
      "summaryTitle": "Итоги разбора",
      "white": "Белые",
      "black": "Чёрные",
      "accuracy": "Точность",
      "jumpToFirst": "Перейти к первому",
      "save": {
        "button": "Сохранить в мои партии",
        "lead": "Сохраните партию вместе с анализом и тренируйтесь на своих ошибках.",
        "saved": "Сохранено в ваших партиях.",
        "savedWithAnalysis": "Сохранено в ваших партиях вместе с анализом.",
        "open": "Открыть партию",
        "signup": "Зарегистрируйтесь бесплатно, чтобы сохранить партию и тренироваться на своих ошибках"
      }
    },
    "rating": {
      "currentRating": "Ваш текущий рейтинг",
      "kFactor": "Коэффициент развития",
      "kReasons": {
        "new-player": "первые 30 партий",
        "junior": "юниор ниже 2300",
        "reached-2400": "достигал 2400",
        "standard": "обычный",
        "manual": "задан вручную"
      },
      "newPlayer": "Я ещё доигрываю свои первые 30 рейтинговых партий",
      "junior": "Юниор (до конца года, в котором мне исполняется 18)",
      "reached2400": "Мой рейтинг достигал 2400",
      "budgetNote": "K снижен с {{base}} до {{k}}, потому что K, умноженный на число партий, не может превышать 700.",
      "minimumNote": "ФИДЕ публикует рейтинги от {{minimum}} и выше; ниже игрок показывается без рейтинга.",
      "opponents": "Партии",
      "addGame": "Добавить партию",
      "round": "№",
      "opponentRating": "Соперник",
      "opponentRatingFor": "Рейтинг соперника в туре {{round}}",
      "result": "Результат",
      "expected": "Ожидаемый (D)",
      "removeGame": "Убрать тур {{round}}",
      "results": {
        "win": "1",
        "draw": "½",
        "loss": "0"
      },
      "noGames": "Добавьте партию, чтобы увидеть изменение рейтинга.",
      "newRating": "Новый рейтинг",
      "scored": "Набрано",
      "expectedTotal": "Ожидаемая сумма",
      "deltaSum": "Сумма результата за вычетом ожидания",
      "rawChange": "До округления",
      "performance": "Перформанс",
      "howTitle": "Как это считается",
      "howBody": "Ожидаемый результат каждой партии берётся из таблицы 8.1.2 ФИДЕ, а не из логистической кривой, поэтому цифры совпадают с опубликованным рейтинг-листом. Разницы складываются и умножаются на K, затем округляются до целого, причём половина округляется от нуля.",
      "capNote": "Разница в рейтинге больше 400 пунктов считается как 400 для игроков ниже {{threshold}}. От {{threshold}} и выше берётся настоящая разница — это изменение вступило в силу 1 октября 2025 года.",
      "list": "Рейтинг-лист",
      "lists": {
        "standard": "Стандарт",
        "rapid": "Рапид",
        "blitz": "Блиц"
      },
      "enterRating": "Введите свой опубликованный рейтинг, чтобы увидеть изменение.",
      "ratingClamped": "{{typed}} — вне диапазона рейтингов ФИДЕ, поэтому в расчёте используется {{used}}. Проверьте число.",
      "rowEmpty": "Введите рейтинг соперника",
      "rowUnrated": "Ниже {{minimum}} — без рейтинга: не учитывается",
      "rowGap600": "Разница 600+ и игрок выше 2600: не обсчитывается",
      "rowClamped": "Учтено как {{used}}",
      "noRatedGames": "Ни одна из этих партий не идёт в рейтинг — проверьте рейтинги соперников.",
      "capNoteRapidBlitz": "В списках рапида и блица разница больше 400 пунктов всегда считается как 400; исключение для 2650 есть только в стандартном списке. С 1 декабря 2024 года партия вовсе не обсчитывается, если разница 600 пунктов или больше и у одного из игроков рейтинг выше 2600."
    },
    "diagram": {
      "previewAlt": "Позиция в виде диаграммы",
      "startPosition": "Начальная позиция",
      "sizeLabel": "Размер изображения",
      "themeLabel": "Цвета доски",
      "themes": {
        "classic": "Классический коричневый",
        "green": "Турнирный зелёный",
        "blue": "Синий",
        "walnut": "Орех",
        "slate": "Сланец"
      },
      "coordinates": "Показывать координаты",
      "downloadPng": "Скачать PNG",
      "downloadSvg": "Скачать SVG",
      "copySvg": "Скопировать разметку SVG",
      "exportNote": "Диаграмма рисуется в вашем браузере из векторных фигур. Без водяных знаков, ссылка на источник не требуется."
    },
    "gif": {
      "previewAlt": "Партия в виде анимированной доски",
      "firstFrameAlt": "Первый кадр GIF",
      "rendering": "Рисуем кадр {{done}} из {{total}}",
      "fileSize": "{{px}} × {{px}} пикс. · {{size}} КБ",
      "fromMove": "Начать с",
      "toMove": "Закончить на",
      "startPosition": "Начальная позиция",
      "frameLimit": "Обрезано до {{max}} кадров; сузьте диапазон, чтобы анимировать другой отрезок.",
      "sizeLabel": "Размер кадра",
      "speedLabel": "Скорость",
      "speeds": {
        "slow": "Медленно",
        "normal": "Обычно",
        "fast": "Быстро"
      },
      "highlight": "Подсвечивать поля каждого хода",
      "download": "Скачать GIF",
      "privacyNote": "Кадры рисуются, а GIF кодируется на вашем устройстве. Ничего не загружается на сервер.",
      "failed": "Не удалось создать GIF. Попробуйте меньший размер или более короткий диапазон.",
      "downloadFailed": "Не удалось сохранить GIF. Нажмите «Скачать» ещё раз или сохраните изображение из предпросмотра напрямую.",
      "rangeReversed": "«Начать с» стоит позже, чем «Закончить на». Поменяйте их местами, чтобы создать GIF.",
      "play": "Воспроизвести",
      "pause": "Пауза",
      "scrub": "Позиция в анимации",
      "scanPrompt": "Партия записана на бланке? Отсканируйте её в PGN"
    },
    "print": {
      "columnsLabel": "Колонки",
      "columns": "{{count}} колонки",
      "diagramsLabel": "Диаграммы",
      "diagramModes": {
        "none": "Без диаграмм",
        "final": "Только финальная позиция",
        "every10": "Каждые 10 ходов",
        "every20": "Каждые 20 ходов"
      },
      "paperLabel": "Бумага",
      "letter": "US Letter",
      "showTags": "Печатать теги PGN",
      "printButton": "Печать / Сохранить в PDF",
      "saveHint": "В окне печати выберите «Сохранить как PDF» в качестве назначения.",
      "afterMove": "После {{move}} {{san}}"
    },
    "hub": {
      "title": "Бесплатные шахматные инструменты",
      "trustNoAccount": "Без регистрации",
      "faq": {
        "q1": "Эти шахматные инструменты действительно бесплатны и работают без регистрации?",
        "a1": "Да, бесплатно и без ограничений на использование. Все инструменты работают без аккаунта. Бесплатный аккаунт нужен только для дополнительных возможностей: распознавания фото реальной доски в поиске лучшего хода (скриншоты распознаются в вашем браузере и аккаунта не требуют), ИИ-объяснения позиции (одно в день бесплатно, затем 1 кредит), сохранения позиции в аккаунте и кнопки «Сохранить в мои партии» в анализе партии, которая сохраняет партию вместе с анализом в вашем аккаунте.",
        "q2": "Загружает ли ScanChess мои PGN-файлы или позиции на сервер?",
        "a2": "Нет. Разбор PGN, проверка ходов, анализ движком и отрисовка диаграмм происходят в вашем браузере. Что-либо отправляется, только когда вы сами об этом просите: фото, которое поиск лучшего хода не может распознать на вашем устройстве, позиция и варианты движка для ИИ-объяснения, позиция, которую вы сохраняете в аккаунте, партия с анализом, которую вы сохраняете в свои партии, и имя пользователя Chess.com или Lichess, которое Chess Wrapped запрашивает на этих сайтах.",
        "q3": "Как превратить рукописный бланк записи партии в PGN?",
        "a3": "Сфотографируйте бланк и загрузите его в сканер ScanChess. Он распознаёт почерк, проигрывает каждый ход по правилам, отмечает то, в чём не уверен, чтобы вы проверили, и выдаёт PGN для экспорта. Сканирование бланка стоит 2 кредита; новые аккаунты получают 10 бесплатно.",
        "q4": "Можно ли пользоваться инструментами на телефоне или планшете?",
        "a4": "Да. Все инструменты работают в браузере телефона и планшета так же, как на компьютере."
      },
      "lead": "Найдите лучший ход, проанализируйте партию, конвертируйте PGN и FEN и распечатайте бланки — всё в браузере."
    },
    "printable": {
      "selectLayout": "1. Выберите макет бланка",
      "selectLayoutDesc": "Макеты сверстаны под бумагу A4 и US Letter: бланк можно напечатать или сохранить через «Сохранить как PDF».",
      "printButton": "Печать бланка (или сохранение в PDF)",
      "signInToPrint": "Войти для печати бланка",
      "clearAll": "Очистить все поля",
      "signInRequiredTitle": "Требуется вход",
      "signInRequiredDesc": "Войдите, чтобы напечатать или экспортировать бланки.",
      "layouts": {
        "standard60Badge": "Стандарт ФИДЕ",
        "standard60Title": "Стандарт, 60 ходов",
        "standard60Desc": "2 колонки, турнирный формат",
        "classical80Badge": "Классика",
        "classical80Title": "Классика, 80 ходов",
        "classical80Desc": "Для длинных партий",
        "junior40Badge": "Дети и начинающие",
        "junior40Title": "Детский, 40 ходов",
        "junior40Desc": "Крупные строки, в них удобно писать",
        "rapid2in1Badge": "Рапид 2 в 1",
        "rapid2in1Title": "Два бланка по 30 ходов",
        "rapid2in1Desc": "2 партии на 1 странице с линией отреза"
      },
      "prefillTitle": "2. Необязательно: заполните данные турнира (они печатаются на бланке)",
      "prefillHint": "Оставьте пустым, чтобы игроки вписали от руки",
      "club": "Клуб или организатор (необязательно)",
      "clubPlaceholder": "Печатается под заголовком, например: шахматный клуб «Ладья»",
      "paper": "Бумага",
      "event": "Название турнира (необязательно)",
      "eventPlaceholder": "например: открытый турнир клуба",
      "date": "Дата (необязательно)",
      "datePlaceholder": "например: 2026-09-08",
      "round": "Тур (необязательно)",
      "table": "Стол (необязательно)",
      "whitePlayer": "Игрок белыми (необязательно)",
      "blackPlayer": "Игрок чёрными (необязательно)",
      "fieldOptional": "Необязательно",
      "printTip": "Совет: в диалоге печати браузера выберите в качестве назначения «Сохранить как PDF», чтобы получить PDF-файл. Оставьте включённым параметр «Фоновая графика».",
      "digitizeCta": "Есть заполненный бланк? Оцифровать →",
      "sheet": {
        "title": "Шахматный бланк",
        "subtitle": "ScanChess.com · Стандартный бланк записи ФИДЕ",
        "badgeStandard": "60 ходов · Турнирная",
        "badgeClassical": "80 ходов · Классика",
        "badgeJunior": "40 ходов · Крупная сетка",
        "eventLabel": "Турнир:",
        "roundLabel": "Тур:",
        "tableLabel": "Стол:",
        "dateLabel": "Дата:",
        "whiteLabel": "Белые:",
        "blackLabel": "Чёрные:",
        "ratingLabel": "Рейтинг:",
        "resultLabel": "Результат:",
        "whiteSignLabel": "Подпись белых:",
        "blackSignLabel": "Подпись чёрных:",
        "signLabel": "Подпись:",
        "signLine": "Белые ________ Чёрные ________",
        "white": "Белые",
        "black": "Чёрные",
        "game1": "Партия 1 · 30 ходов",
        "game2": "Партия 2 · 30 ходов",
        "cutHere": "✂ Отрезать здесь",
        "digitize": "⚡ Оцифруйте этот бланк после партии:",
        "digitizeBody": "Сфотографируйте лист камерой телефона. ScanChess превращает рукописную запись в цифровые PGN и FEN для Lichess и Chess.com.",
        "footerNote": "Бесплатный шаблон бланка",
        "signInToPrint": "Войдите на scanchess.com, чтобы напечатать или сохранить официальные бланки",
        "qrLabel": "QR-код: открывает сканер бланков ScanChess"
      },
      "previewCaption": "Предпросмотр печати. Ходы записываются от руки на распечатанном бланке; необязательные поля выше печатаются на нём."
    },
    "board": {
      "promoteTo": "Превратить в",
      "undo": "Взять последний ход назад",
      "reset": "Вернуться к начальной позиции",
      "whiteToMove": "Ход белых",
      "blackToMove": "Ход чёрных",
      "inputLabel": "Начать с FEN или PGN",
      "inputPlaceholder": "Вставьте FEN или PGN",
      "inputEmpty": "Сначала вставьте FEN или PGN.",
      "inputInvalid": "Это не FEN и не PGN с допустимым первым ходом.",
      "copyFen": "Копировать FEN",
      "copyPgn": "Копировать PGN",
      "engineHint": "Движок включится после вашего первого хода.",
      "movesTitle": "Ходы",
      "noMoves": "Сделайте ход фигурой, чтобы начать. Ходы появятся здесь.",
      "findBestMove": "Найти лучший ход",
      "navGroup": "Ходы вперёд и назад",
      "editGroup": "Изменить доску",
      "linkFenError": "FEN из этой ссылки не удалось расставить: {{reason}} Вместо него доска показывает начальную позицию.",
      "linkPgnError": "Партию из этой ссылки не удалось прочитать: {{reason}} Вместо неё доска показывает начальную позицию.",
      "fenInvalid": "Этот FEN не удалось расставить: {{reason}}",
      "fenError": {
        "fields": "в FEN нужны расстановка фигур (восемь горизонталей через /) и очередь хода, w или b.",
        "ranks": "в расстановке {{ranks}} горизонталей, а нужно 8, через /.",
        "character": "«{{detail}}» — не буква фигуры (KQRBNP, kqrbnp) и не цифра от 1 до 8.",
        "rankLength": "горизонталь «{{detail}}» не складывается в 8 полей.",
        "side": "очередь хода должна быть w или b, а не «{{detail}}».",
        "kings": "у каждой стороны должен быть ровно один король.",
        "pawnBackRank": "пешка не может стоять на первой или восьмой горизонтали.",
        "opponentInCheck": "сторона, которая только что ходила, стоит под шахом — в партии так не бывает.",
        "other": "это не легальная позиция."
      },
      "moveInputLabel": "Введите ход",
      "moveInputHint": "Алгебраическая нотация с английскими буквами фигур (K, Q, R, B, N), например Nf3, exd5 или O-O; затем Enter.",
      "moveInputPlaceholder": "Nf3",
      "playMove": "Сделать ход",
      "moveInputEmpty": "Сначала введите ход, например Nf3.",
      "moveInputIllegal": "Ход {{move}} в этой позиции невозможен.",
      "boardLabel": "Шахматная доска. {{turn}}. {{pieces}}",
      "pieceOn": "{{piece}} на {{square}}",
      "lastMove": "Последний ход: {{move}}",
      "startPosition": "Начальная позиция",
      "evaluation": "Оценка: {{score}}"
    },
    "bestMove": {
      "answerTitle": "Лучший ход",
      "sideToMove": "Чей ход",
      "whiteToMove": "Ход белых",
      "blackToMove": "Ход чёрных",
      "find": "Найти лучший ход",
      "engineNote": "Stockfish 18 работает в вашем браузере. При первом поиске загружается движок — около семи мегабайт.",
      "playIt": "Сыграть на доске",
      "inputTitle": "Позиция",
      "uploadTitle": "Загрузите скриншот или фото",
      "uploadHint": "Перетащите, вставьте или выберите изображение позиции. Скриншоты распознаются прямо в вашем браузере — бесплатно и без аккаунта.",
      "reading": "Распознаём позицию…",
      "readDone": "Позиция распознана. Проверьте доску и чей ход.",
      "signInToRead": "Фото настоящих досок и изображения, которые браузер не может уверенно распознать, отправляются на наш серверный распознаватель. Войдите, чтобы пользоваться им: это бесплатно и не тратит кредиты.",
      "verifyToRead": "Фото настоящих досок и изображения, которые браузер не может уверенно распознать, отправляются на наш серверный распознаватель. Подтвердите адрес электронной почты, чтобы пользоваться им бесплатно.",
      "signIn": "Войти бесплатно",
      "readFailedTitle": "Не удалось распознать позицию",
      "readFailed": "При распознавании изображения что-то пошло не так. Попробуйте ещё раз или вставьте FEN.",
      "readNoBoard": "На этом изображении не найдена шахматная доска. Попробуйте обрезать его плотнее.",
      "readLimit": "Достигнут лимит распознавания изображений за последние 24 часа. Попробуйте позже или вставьте FEN, чтобы продолжить анализ без ограничений.",
      "readVerify": "Сначала подтвердите адрес электронной почты, затем попробуйте снова.",
      "fenLabel": "Или вставьте FEN",
      "sideImpossible": "Здесь не может быть ход этой стороны: король соперника оказался бы под шахом.",
      "editPosition": "Изменить позицию",
      "openAnalysisBoard": "Доска для анализа",
      "uncertain": "Проверьте эти поля: {{squares}}",
      "readDoneLocal": "Распознано в вашем браузере, ничего не загружалось. Проверьте доску и чей ход.",
      "localFailedTitle": "Браузеру не удалось распознать это изображение",
      "rotate": "Перевернуть позицию",
      "rotateImpossible": "Перевёрнутая позиция была бы недопустимой.",
      "readDoneLocalTurn": "Распознано в вашем браузере, ничего не загружалось. Чей ход, определено по подсвеченному последнему ходу; проверьте доску.",
      "fenPlaceholder": "Вставьте FEN, например из Lichess или Chess.com",
      "scoreWhiteView": "+ в пользу белых",
      "checkmate": "Мат: {{side}} победили. Искать больше нечего.",
      "stalemate": "Пат: {{side}} не могут сделать ни одного допустимого хода, партия заканчивается вничью.",
      "mateIn_one": "{{side}} ставят мат в {{count}} ход",
      "mateIn_few": "{{side}} ставят мат в {{count}} хода",
      "mateIn_many": "{{side}} ставят мат в {{count}} ходов",
      "mateIn_other": "{{side}} ставят мат в {{count}} хода"
    },
    "wrapped": {
      "form": {
        "platform": "Платформа",
        "username": "Имя пользователя",
        "placeholder": "например, {{name}}",
        "year": "Год",
        "yearSoFar": "{{year}} (на сегодня)",
        "submit": "Собрать мой Wrapped",
        "privacy": "Работает с любым открытым аккаунтом Chess.com или Lichess. Без входа и без пароля.",
        "examples": "Например:",
        "exampleAria": "Собрать Wrapped для {{name}}"
      },
      "progress": {
        "profile": "Ищем {{name}} на {{site}}…",
        "archives": "Ищем ваши архивы партий на {{site}}…",
        "month": "Загружен {{month}} · месяцев: {{done}} из {{total}} · партий: {{games}}",
        "stream_one": "Загружаем партии с Lichess… пока {{games}} партия",
        "stream_few": "Загружаем партии с Lichess… пока {{games}} партии",
        "stream_many": "Загружаем партии с Lichess… пока {{games}} партий",
        "stream_other": "Загружаем партии с Lichess… пока {{games}} партии",
        "lichessHint": "Lichess отдаёт около 20 партий в секунду, поэтому год с тысячами партий загружается несколько минут.",
        "stopEarly": "Показать результаты сейчас",
        "streamOf_one": "Загружаем партии с Lichess… {{games}} из примерно {{expected}}",
        "streamOf_few": "Загружаем партии с Lichess… {{games}} из примерно {{expected}}",
        "streamOf_many": "Загружаем партии с Lichess… {{games}} из примерно {{expected}}",
        "streamOf_other": "Загружаем партии с Lichess… {{games}} из примерно {{expected}}",
        "lessThanMinute": "Осталось меньше минуты",
        "minutesLeft_one": "Осталась примерно {{count}} минута",
        "minutesLeft_few": "Осталось примерно {{count}} минуты",
        "minutesLeft_many": "Осталось примерно {{count}} минут",
        "minutesLeft_other": "Осталось примерно {{count}} минуты"
      },
      "errors": {
        "invalidUsername": "Это не похоже на имя пользователя. Используйте буквы, цифры, _ или -.",
        "emptyUsername": "Сначала введите имя пользователя Chess.com или Lichess.",
        "notFound": "Не удалось найти «{{name}}» на {{site}}. Проверьте написание или попробуйте другую платформу.",
        "rateLimited": "{{site}} просит нас притормозить. Попробуйте снова через минуту.",
        "network": "Не удалось связаться с {{site}}. Проверьте подключение и попробуйте снова.",
        "aborted": "Остановлено.",
        "tryOther": "Попробовать {{site}}",
        "refused": "{{site}} нашёл «{{name}}», но сейчас не отдал партии. Попробуйте снова через несколько минут."
      },
      "empty": {
        "title": "У {{name}} нет партий за {{year}} год",
        "body": "Аккаунт найден, но на {{site}} у него нет завершённых партий за этот год.",
        "tryYear": "Показать {{year}} год"
      },
      "small_one": "В {{year}} году пока только {{count}} партия — для полной истории этого мало. Сыграйте ещё несколько и возвращайтесь.",
      "small_few": "В {{year}} году пока только {{count}} партии — для полной истории этого мало. Сыграйте ещё несколько и возвращайтесь.",
      "small_many": "В {{year}} году пока только {{count}} партий — для полной истории этого мало. Сыграйте ещё несколько и возвращайтесь.",
      "small_other": "В {{year}} году пока только {{count}} партии — для полной истории этого мало. Сыграйте ещё несколько и возвращайтесь.",
      "partial_one": "Загрузка остановлена досрочно: здесь учтена {{games}} последняя партия года.",
      "partial_few": "Загрузка остановлена досрочно: здесь учтены {{games}} последние партии года.",
      "partial_many": "Загрузка остановлена досрочно: здесь учтены {{games}} последних партий года.",
      "partial_other": "Загрузка остановлена досрочно: здесь учтены {{games}} последние партии года.",
      "hero": {
        "eyebrow": "{{site}} · Wrapped {{year}}"
      },
      "ready": "Chess Wrapped {{year}} для {{name}} готов.",
      "archetype": {
        "label": "Ваш шахматный характер",
        "also": "А также: {{list}}",
        "speedDemon": {
          "name": "Демон скорости",
          "tagline": "Вы быстро думаете и ещё быстрее делаете предходы.",
          "why": "{{value}}% ваших партий — пуля."
        },
        "giantSlayer": {
          "name": "Гроза фаворитов",
          "tagline": "Соперники с рейтингом выше — просто мишени покрупнее.",
          "why": "Побед в рейтинговых партиях над соперниками на 200+ пунктов выше вас: {{value}}."
        },
        "wall": {
          "name": "Стена",
          "tagline": "Вас трудно обыграть и ещё труднее сломить.",
          "why": "{{value}}% ваших партий закончились вничью."
        },
        "loyalist": {
          "name": "Верный своему дебюту",
          "tagline": "Вы нашли свой дебют и не собираетесь его менять.",
          "why": "{{detail}} — в {{value}}% ваших партий этим цветом."
        },
        "deepThinker": {
          "name": "Мыслитель",
          "tagline": "Вы не торопитесь, и это заметно.",
          "why": "{{value}}% ваших партий — рапид, классика или игра по переписке."
        },
        "grinder": {
          "name": "Марафонец",
          "tagline": "Ещё одна партия. А потом ещё одна.",
          "why": "Партий за один год: {{value}}."
        },
        "allRounder": {
          "name": "Универсал",
          "tagline": "Ваши шахматы не сводятся к одной привычке.",
          "why_one": "Ровный год: {{value}} контроль времени без явного фаворита.",
          "why_few": "Ровный год: {{value}} контроля времени без явного фаворита.",
          "why_many": "Ровный год: {{value}} контролей времени без явного фаворита.",
          "why_other": "Ровный год: {{value}} контроля времени без явного фаворита."
        }
      },
      "stories": {
        "games": {
          "eyebrow": "Сыграно партий",
          "line_one": "Это {{days}} день за доской.",
          "line_few": "Это {{days}} дня за доской.",
          "line_many": "Это {{days}} дней за доской.",
          "line_other": "Это {{days}} дня за доской."
        },
        "winRate": {
          "eyebrow": "Процент побед",
          "line": "Победы: {{wins}} · ничьи: {{draws}} · поражения: {{losses}}"
        },
        "rating": {
          "eyebrow": "Рейтинг: {{timeClass}}",
          "line": "{{start}} → {{end}}, пик — {{peak}}."
        },
        "bestWin": {
          "eyebrow": "Лучшая победа",
          "eyebrowRating": "Лучшая победа · рейтинг соперника",
          "line": "Победа над {{name}} ({{timeClass}}), {{date}}.",
          "gap": "Рейтинг соперника был на {{gap}} выше вашего на тот момент.",
          "open": "Открыть партию"
        },
        "streak": {
          "eyebrow": "Самая длинная серия побед",
          "line": "Победы подряд: с {{from}} по {{to}}."
        },
        "opening": {
          "white": "Любимый дебют за белых",
          "black": "Любимый дебют за чёрных",
          "line_one": "{{games}} партия — {{share}} ваших партий этим цветом. Ваш результат: {{score}}.",
          "line_few": "{{games}} партии — {{share}} ваших партий этим цветом. Ваш результат: {{score}}.",
          "line_many": "{{games}} партий — {{share}} ваших партий этим цветом. Ваш результат: {{score}}.",
          "line_other": "{{games}} партии — {{share}} ваших партий этим цветом. Ваш результат: {{score}}.",
          "then": "Далее: {{list}}"
        },
        "firstMove": {
          "eyebrow": "Любимый первый ход",
          "line": "Ваш выбор в {{share}} партий белыми."
        },
        "month": {
          "eyebrow": "Самый активный месяц",
          "line_one": "{{games}} партия за этот месяц.",
          "line_few": "{{games}} партии за этот месяц.",
          "line_many": "{{games}} партий за этот месяц.",
          "line_other": "{{games}} партии за этот месяц."
        },
        "weekday": {
          "eyebrow": "Любимый день для игры",
          "line": "Чаще всего около {{hour}} по вашему времени.",
          "day_one": "Самый насыщенный день: {{date}}, {{games}} партия.",
          "day_few": "Самый насыщенный день: {{date}}, {{games}} партии.",
          "day_many": "Самый насыщенный день: {{date}}, {{games}} партий.",
          "day_other": "Самый насыщенный день: {{date}}, {{games}} партии."
        },
        "opponent": {
          "eyebrow": "Самый частый соперник",
          "line": "{{games}}: {{wins}}, {{draws}}, {{losses}}.",
          "unique_one": "Из {{opponents}} соперника за этот год.",
          "unique_few": "Из {{opponents}} разных соперников за этот год.",
          "unique_many": "Из {{opponents}} разных соперников за этот год.",
          "unique_other": "Из {{opponents}} разных соперников за этот год."
        },
        "time": {
          "eyebrow": "Время за доской",
          "value_one": "≈{{hours}} час",
          "value_few": "≈{{hours}} часа",
          "value_many": "≈{{hours}} часов",
          "value_other": "≈{{hours}} часа",
          "days": "Это примерно {{days}} полных суток живых шахмат.",
          "perDay": "В среднем {{minutes}} мин. в каждый игровой день."
        },
        "accuracy": {
          "eyebrow": "Средняя точность",
          "line_one": "По {{games}} партии, проанализированной сайтом.",
          "line_few": "По {{games}} партиям, проанализированным сайтом.",
          "line_many": "По {{games}} партиям, проанализированным сайтом.",
          "line_other": "По {{games}} партиям, проанализированным сайтом."
        }
      },
      "timeClass": {
        "bullet": "Пуля",
        "blitz": "Блиц",
        "rapid": "Рапид",
        "classical": "Классика",
        "daily": "По переписке"
      },
      "timeClasses": {
        "title": "По контролю времени",
        "timeClass": "Контроль времени",
        "games": "Партии",
        "record": "В / Н / П",
        "rating": "Рейтинг (начало → конец, пик)",
        "wdl": "{{wins}} / {{draws}} / {{losses}}",
        "ratingLine": "{{start}} → {{end}} ({{peak}})",
        "variants_one": "Включает {{games}} партию в нестандартные шахматы (Chess960 и т. п.). Она учитывается в общем счёте, но не в рейтингах и дебютах.",
        "variants_few": "Включает {{games}} партии в нестандартные шахматы (Chess960 и т. п.). Они учитываются в общем счёте, но не в рейтингах и дебютах.",
        "variants_many": "Включает {{games}} партий в нестандартные шахматы (Chess960 и т. п.). Они учитываются в общем счёте, но не в рейтингах и дебютах.",
        "variants_other": "Включает {{games}} партии в нестандартные шахматы (Chess960 и т. п.). Они учитываются в общем счёте, но не в рейтингах и дебютах."
      },
      "counts": {
        "games_one": "{{n}} партия",
        "games_few": "{{n}} партии",
        "games_many": "{{n}} партий",
        "games_other": "{{n}} партии",
        "wins_one": "побед — {{n}}",
        "wins_few": "побед — {{n}}",
        "wins_many": "побед — {{n}}",
        "wins_other": "побед — {{n}}",
        "draws_one": "ничьих — {{n}}",
        "draws_few": "ничьих — {{n}}",
        "draws_many": "ничьих — {{n}}",
        "draws_other": "ничьих — {{n}}",
        "losses_one": "поражений — {{n}}",
        "losses_few": "поражений — {{n}}",
        "losses_many": "поражений — {{n}}",
        "losses_other": "поражений — {{n}}"
      },
      "card": {
        "eyebrow": "Chess Wrapped",
        "eyebrowSoFar": "Chess Wrapped · пока что",
        "games": "Партии",
        "winRate": "Процент побед",
        "wdl": "{{wins}}В · {{draws}}Н · {{losses}}П",
        "bestWin": "Лучшая победа",
        "opponentRating": "Рейтинг {{name}}",
        "streak": "Серия побед",
        "peak": "Пиковый рейтинг",
        "openings": "Любимые дебюты",
        "asWhite": "Белыми: {{name}}",
        "asBlack": "Чёрными: {{name}}",
        "activeDays_one": "за {{days}} день",
        "activeDays_few": "за {{days}} дня",
        "activeDays_many": "за {{days}} дней",
        "activeDays_other": "за {{days}} дня",
        "streakSub": "побед подряд",
        "peakIn": "Пик · {{timeClass}}",
        "ratingRange": "{{start}} → {{end}} за год",
        "hours": "Часов за доской",
        "hoursSub": "в живых партиях",
        "months": "Партии по месяцам"
      },
      "share": {
        "heading": "Поделитесь своим годом",
        "body": "Скачайте картинку для Instagram, X или клубного чата или скопируйте ссылку, которая заново соберёт эту страницу для любого, кто её откроет.",
        "download": "Скачать PNG",
        "copyLink": "Копировать ссылку",
        "native": "Поделиться…",
        "failed": "Браузеру не удалось нарисовать картинку. Ссылка всё равно работает.",
        "title": "Мой Chess Wrapped",
        "text": "Мой {{year}} год в шахматах. Партий: {{games}}. {{archetype}}",
        "previewAlt": "Итоговая картинка Chess Wrapped {{year}} для {{name}}",
        "formatLabel": "Формат",
        "saveImage": "Сохранить картинку",
        "downloadShort": "Скачать",
        "preparing": "Готовим HD-картинку…",
        "saved": "Сохранено в загрузки",
        "shared": "Отправлено",
        "linkCopied": "Ссылка скопирована",
        "meta": "PNG · {{width}} × {{height}} px",
        "formats": {
          "story": {
            "name": "Сторис",
            "hint": "Instagram, TikTok"
          },
          "post": {
            "name": "Пост",
            "hint": "Лента Instagram"
          },
          "square": {
            "name": "Квадрат",
            "hint": "Telegram, WhatsApp"
          }
        },
        "tapAgain": "Готово — нажмите ещё раз"
      },
      "crossSell": {
        "text": "Играли в этом году турниры за доской? Отсканируйте бланки записи партий, чтобы добавить и эти партии.",
        "cta": "Отсканировать бланк"
      },
      "disclaimer": "Не связано с Chess.com или Lichess. Данные идут из их открытых API прямо в ваш браузер; на наших серверах ничего не хранится.",
      "partialMark_one": "Частично · {{games}} партия",
      "partialMark_few": "Частично · {{games}} партии",
      "partialMark_many": "Частично · {{games}} партий",
      "partialMark_other": "Частично · {{games}} партии",
      "partialNoArchetype_one": "Шахматный характер по части года не определяется: он считается по всем партиям, а здесь только {{games}} последняя.",
      "partialNoArchetype_few": "Шахматный характер по части года не определяется: он считается по всем партиям, а здесь только {{games}} последние.",
      "partialNoArchetype_many": "Шахматный характер по части года не определяется: он считается по всем партиям, а здесь только {{games}} последних.",
      "partialNoArchetype_other": "Шахматный характер по части года не определяется: он считается по всем партиям, а здесь только {{games}} последние."
    },
    "convert": {
      "linksLabel": "Связанные шахматные инструменты",
      "linkFenToPgn": "FEN в PGN",
      "linkPgnToFen": "PGN в FEN",
      "linkBoardImage": "Изображение доски в FEN",
      "linkViewer": "Просмотр PGN",
      "linkValidator": "Проверка PGN",
      "pgnPlaceholder": "Вставьте PGN или список ходов, например 1. e4 e5 2. Nf3",
      "fenPlaceholder": "Вставьте FEN, например rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1",
      "start": "Начало",
      "afterMove": "После {{move}}",
      "emptyPgn": "Вставьте PGN или список ходов.",
      "notPgn": "Это не похоже на PGN или список ходов.",
      "badFenHeader": "Заголовок FEN в этом PGN — нелегальная позиция: {{reason}}",
      "badFen": "Этот FEN нельзя использовать: {{reason}}",
      "emptyFen": "Вставьте FEN.",
      "fenReady": "Позиция принята. PGN ниже начинается отсюда. Ходите на доске, чтобы добавить ходы.",
      "placementOnly": "Указана только расстановка фигур, поэтому считается, что ход белых, а права на рокировку и взятие на проходе отсутствуют.",
      "stopped": "Остановка на {{label}} {{token}}. Каждый FEN до этого хода по-прежнему верен.",
      "copyFen": "Копировать FEN",
      "copyAll": "Копировать каждый FEN",
      "downloadAll": "Скачать список FEN",
      "downloadPgn": "Скачать PGN",
      "copyPgn": "Копировать PGN",
      "plyCount": "{{count}} позиций, включая начальную",
      "everyPly": "FEN после каждого полухода",
      "openFenToPgn": "Открыть в конвертере FEN → PGN",
      "openPgnToFen": "Открыть в конвертере PGN → FEN",
      "pgnOutput": "PGN",
      "addMoves": "Перетащите фигуру, чтобы добавить следующие ходы. Они запишутся в PGN.",
      "nameOptional": "Необязательно"
    },
    "links": {
      "boardEditor": "Редактор доски",
      "fenToImage": "FEN в изображение",
      "flipFen": "Перевернуть или отразить FEN",
      "fenValidator": "Проверка FEN",
      "whatIsFen": "Что такое FEN?",
      "scanNotation": "Распознать шахматную запись",
      "scoresheetScanner": "Сканер бланков",
      "notationExplained": "Шахматная нотация: объяснение",
      "howLong": "Сколько длится шахматная партия?",
      "printableScoresheets": "Бланки для печати",
      "ratingCalculator": "Калькулятор рейтинга ФИДЕ"
    },
    "fenValidator": {
      "validate": "Проверить FEN",
      "validTitle": "Этот FEN верный",
      "invalidTitle": "Этот FEN неверный. Найдено ошибок: {{n}}",
      "invalidBody": "Под каждой ошибкой написано, что нужно изменить.",
      "status": {
        "normal": "Ход: {{side}}.",
        "check": "Ход: {{side}}. Шах.",
        "checkmate": "Ход: {{side}}. Мат.",
        "stalemate": "Ход: {{side}}. Пат — партия заканчивается вничью."
      },
      "fixLabel": "Исправление:",
      "repairedTitle": "Исправленный FEN",
      "repairedBody": "Та же позиция с исправленными полями рокировки, взятия на проходе и счётчиков ходов. Убедитесь, что вы имели в виду именно её.",
      "useRepaired": "Проверить этот FEN",
      "fullFen": "Полный FEN",
      "openImage": "Сделать изображение",
      "openFlip": "Перевернуть или отразить",
      "issue": {
        "tooManyFields": "Полей, разделённых пробелами, в FEN: {{n}}; допустимо не больше 6.",
        "missingFields": "Не хватает последних полей FEN из шести: {{n}}.",
        "whiteKings": "Белых королей на доске: {{n}}. Должен быть ровно один.",
        "blackKings": "Черных королей на доске: {{n}}. Должен быть ровно один.",
        "whitePawns": "Белых пешек на доске: {{n}}. У одной стороны их не больше 8.",
        "blackPawns": "Черных пешек на доске: {{n}}. У одной стороны их не больше 8.",
        "whitePieces": "Белых фигур и пешек на доске: {{n}}. У одной стороны их не больше 16.",
        "blackPieces": "Черных фигур и пешек на доске: {{n}}. У одной стороны их не больше 16.",
        "whitePromotions": "У Белых больше ферзей, ладей, слонов или коней, чем могли дать превращения недостающих пешек.",
        "blackPromotions": "У Черных больше ферзей, ладей, слонов или коней, чем могли дать превращения недостающих пешек.",
        "castlingSyntax": "Поле рокировки «{{detail}}» неверно: это - или некоторые из букв K, Q, k и q, каждая не больше одного раза.",
        "castlingRight": "Право на рокировку {{detail}} не соответствует доске: король и ладья не стоят оба на исходных полях.",
        "enPassantSyntax": "Поле взятия на проходе «{{detail}}» — это не - и не поле на третьей или шестой горизонтали.",
        "enPassantRank": "Поле взятия на проходе {{detail}} находится не на той горизонтали для стороны, чей ход.",
        "enPassantPawn": "Поле взятия на проходе {{detail}} не следует из хода пешки на два поля: перед ним нет такой пешки или пройденные ею поля не пусты.",
        "halfmove": "Счётчик полуходов «{{detail}}» не является целым числом от 0 и больше.",
        "fullmove": "Номер хода «{{detail}}» не является целым числом от 1 и больше."
      },
      "fix": {
        "fields": "Запишите расстановку, пробел, затем w или b, например rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w.",
        "ranks": "Запишите ровно восемь горизонталей, с восьмой по первую, через /.",
        "character": "Используйте K Q R B N P для Белых, k q r b n p для Черных и цифры от 1 до 8 для пустых полей.",
        "rankLength": "Фигуры и цифры в каждой горизонтали должны давать в сумме 8. Пересчитайте пустые поля.",
        "side": "Напишите w, если ход Белых, и b, если ход Черных.",
        "tooManyFields": "Удалите лишний текст после номера хода.",
        "missingFields": "Исправлять ничего не нужно: считается, что рокировок нет, поля взятия на проходе нет и идёт ход 1. Добавьте поля, если они важны.",
        "whiteKings": "Оставьте на доске ровно одного белого короля (K).",
        "blackKings": "Оставьте на доске ровно одного черного короля (k).",
        "pawnBackRank": "Переставьте или уберите пешку с {{detail}}. Пешка, дошедшая до последней горизонтали, превращается в фигуру.",
        "whitePawns": "Уберите белые пешки, чтобы их осталось 8 или меньше.",
        "blackPawns": "Уберите черные пешки, чтобы их осталось 8 или меньше.",
        "whitePieces": "Уберите белые фигуры, чтобы их осталось 16 или меньше.",
        "blackPieces": "Уберите черные фигуры, чтобы их осталось 16 или меньше.",
        "whitePromotions": "Уберите лишние фигуры или часть белых пешек: каждой фигуре сверх начального комплекта нужна пешка, которая превратилась.",
        "blackPromotions": "Уберите лишние фигуры или часть черных пешек: каждой фигуре сверх начального комплекта нужна пешка, которая превратилась.",
        "castlingSyntax": "Напишите -, если рокировок нет, иначе только K, Q, k и q именно в этом порядке.",
        "castlingRight": "Удалите {{detail}} из поля рокировки.",
        "enPassantSyntax": "Напишите - или поле за пешкой, которая только что сходила на два поля, например e3 или d6.",
        "enPassantRank": "Если ход Белых, поле на шестой горизонтали, если ход Черных — на третьей. Иначе напишите -.",
        "enPassantPawn": "Напишите - в поле взятия на проходе.",
        "halfmove": "Напишите 0, если не знаете значение.",
        "fullmove": "Напишите 1, если не знаете номер хода.",
        "opponentInCheck": "Поменяйте очередь хода или переставьте фигуру, которая объявляет шах: сторона, чей ход не сейчас, не может находиться под шахом.",
        "other": "Расставьте позицию в редакторе доски и скопируйте FEN, который он создаст."
      }
    },
    "flipFen": {
      "inputLabel": "FEN для преобразования",
      "opsTitle": "Преобразование",
      "rotate": {
        "label": "Поворот на 180°",
        "hint": "Доска развёрнута, как будто смотришь со стороны Черных. Цвета сохраняются."
      },
      "mirror": {
        "label": "Отражение a↔h",
        "hint": "Вертикали a и h меняются местами. Цвета сохраняются."
      },
      "swapColors": {
        "label": "Поменять цвета",
        "hint": "Горизонтали отражены, каждая фигура сменила цвет. Ход переходит к другой стороне."
      },
      "reset": "Сбросить",
      "resultLabel": "Новый FEN",
      "droppedCastling": "Удалены права на рокировку: {{rights}}.",
      "droppedEnPassant": "Удалено поле взятия на проходе {{square}}.",
      "notLegal": "Другие программы могут не принять новую позицию. {{reason}}",
      "downloadPng": "Скачать PNG",
      "viewOnlyNote": "«Перевернуть доску» только разворачивает диаграмму. FEN при этом не меняется.",
      "openValidator": "Проверить в «Проверке FEN»"
    },
    "notation": {
      "directionLabel": "Направление",
      "toEnglish": "На английский",
      "fromEnglish": "С английского",
      "languageLabel": "Буквы, которыми записаны ходы",
      "auto": "Определить автоматически",
      "targetLabel": "Перевести на",
      "inputLabel": "Ходы для перевода",
      "inputEnglishLabel": "Ходы в английской SAN",
      "placeholder": "Вставьте ходы, например 1. e4 e5 2. Кf3 Кc6 3. Сb5",
      "placeholderEnglish": "Вставьте ходы, например 1. e4 e5 2. Nf3 Nc6 3. Bb5",
      "startFenLabel": "Начальная позиция (FEN, необязательно)",
      "startFenPlaceholder": "Обычная начальная позиция",
      "empty": "Вставьте ходы для перевода.",
      "noMoves": "В этом тексте не найдено ходов.",
      "detected": "Определено: {{language}} ({{letters}}).",
      "readAs": "Прочитано как: {{language}} ({{letters}}).",
      "movesRead": "Прочитано ходов: {{read}} из {{total}}.",
      "stopped": "Перевод остановлен на {{label}} {{token}}: в этой позиции такой ход недопустим.",
      "stoppedHint": "Сверьте ход с бланком или выберите язык вручную.",
      "stoppedHintEnglish": "Проверьте этот ход и переведите ещё раз.",
      "sanTitle": "Английская SAN",
      "copyMoves": "Скопировать ходы",
      "openValidator": "Проверить в «Проверке PGN»",
      "translatedTitle": "Ходы: {{language}}",
      "languages": {
        "en": "Английский",
        "de": "Немецкий",
        "es": "Испанский",
        "fr": "Французский",
        "it": "Итальянский",
        "pt": "Португальский",
        "nl": "Нидерландский",
        "ru": "Русский",
        "pl": "Польский",
        "cs": "Чешский"
      }
    },
    "timeControl": {
      "inputLabel": "Контроль времени",
      "placeholder": "Например, 90+30, 15|10 или 90/40+30+30",
      "movesLabel": "Ходов в партии",
      "presetsLabel": "Популярные контроли времени",
      "formatsHint": "Сначала минуты, затем секунды, добавляемые за ход: 15+10 и 15|10 — одно и то же. 90/40+30+30 — это 90 минут на 40 ходов, затем 30 минут, с добавлением 30 секунд за ход. Добавьте d5 для задержки в 5 секунд.",
      "readAs": "Прочитано как: {{text}}.",
      "period": {
        "first": "{{minutes}} мин на первые ходы (ходов: {{moves}})",
        "whole": "по {{minutes}} мин на всю партию",
        "next": "затем {{minutes}} мин на следующие ходы (ходов: {{moves}})",
        "rest": "затем {{minutes}} мин до конца партии",
        "increment": "+{{seconds}} с за каждый ход начиная с первого",
        "delay": "задержка {{seconds}} с на ход",
        "separator": ", "
      },
      "error": {
        "empty": "Введите контроль времени, например 90+30.",
        "invalid": "Не удаётся прочитать это как контроль времени. Попробуйте 90+30, 15|10 или 90/40+30+30.",
        "noFinalPeriod": "Добавьте время до конца партии после контроля на ходы, например 90/40+30.",
        "tooLong": "Столько не ставят ни на одних шахматных часах. Проверьте числа."
      },
      "waiting": "Результат появится здесь, как только контроль времени удастся прочитать.",
      "maxTitle": "Самая долгая партия, ходов: {{moves}}",
      "perPlayer": "До {{time}} на часах каждого игрока.",
      "typicalTitle": "Обычная партия",
      "about": "≈ {{time}}",
      "typicalBody": "Ходов в медианной очной партии: {{moves}}; она расходует около 85 % времени, которое дают эти ходы.",
      "fideTitle": "ФИДЕ",
      "fideBody": "{{minutes}} мин: основное время + 60 × добавление",
      "fide": {
        "blitz": "Блиц",
        "rapid": "Рапид (быстрые шахматы)",
        "standard": "Классика (стандарт)"
      },
      "lichess": {
        "ultraBullet": "Ультрапуля",
        "bullet": "Пуля",
        "blitz": "Блиц",
        "rapid": "Рапид",
        "classical": "Классика"
      },
      "chesscom": {
        "bullet": "Пуля",
        "blitz": "Блиц",
        "rapid": "Рапид"
      },
      "estimateBody": "Оценка: {{time}}",
      "duration": {
        "hm": "{{h}} ч {{m}} мин",
        "h": "{{h}} ч",
        "m": "{{m}} мин",
        "ms": "{{m}} мин {{s}} с",
        "s": "{{s}} с"
      },
      "onlineNote": "Lichess и Chess.com оценивают партию как основное время + 40 × добавление. Chess.com: пуля — меньше 3 мин, блиц — от 3 до 10 мин (не включая 10), рапид — от 10 мин (справочный центр Chess.com, «Why are there different ratings in live chess?»). Lichess: пуля — меньше 3 мин, блиц — меньше 8, рапид — меньше 25, классика — от 25.",
      "movesError": "Укажите число ходов от 1 до 300. Пока самая долгая партия считается для {{moves}} ходов.",
      "shareFallback": "Браузер заблокировал копирование. Ссылка ниже уже выделена — скопируйте её оттуда."
    },
    "splitter": {
      "modeLabel": "Что сделать",
      "mode": {
        "split": "Разделить один файл",
        "merge": "Объединить несколько файлов"
      },
      "sourceLabel": "PGN-файл с несколькими партиями",
      "placeholder": "Вставьте одну или несколько партий в PGN или выберите файл .pgn",
      "gameCount": "Найдено партий: {{count}}",
      "downloadAll": "Скачать каждую партию",
      "downloadZip": "Скачать .zip",
      "downloadAllHint": "Каждая партия сохраняется отдельным файлом .pgn. Браузер может один раз спросить, разрешить ли этой странице сохранить несколько файлов.",
      "empty": "Партий пока нет. Вставьте PGN, выберите файл или загрузите пример.",
      "event": "Турнир",
      "date": "Дата",
      "result": "Результат",
      "moves": "Ходы",
      "actions": "Действия",
      "listLimited": "Показаны первые {{shown}} из {{count}} партий. В .zip всё равно попадут все.",
      "mergeSources": "Файлы для объединения, по порядку",
      "addFiles": "Добавить файлы .pgn",
      "pasteLabel": "Или вставьте партии, чтобы добавить их",
      "addPasted": "Добавить вставленные партии",
      "pastedName": "Вставленный текст {{n}}",
      "remove": "Убрать",
      "dedupe": "Не добавлять партию, которая уже есть в файле",
      "mergedCount": "Партий в объединённом файле: {{count}}",
      "duplicatesRemoved": "Пропущено повторов: {{count}}",
      "mergedLabel": "Объединённый PGN",
      "mergeEmpty": "Добавьте два файла или больше либо вставьте партии — объединённый PGN появится здесь.",
      "notPgn": "Это не похоже ни на PGN, ни на список ходов. Вставьте ходы вроде 1. e4 e5 2. Кf3 или PGN с тегами [Event \"…\"].",
      "downloadAllLimit": "Это {{count}} партий. Браузеры блокируют длинную серию отдельных загрузок, поэтому они собраны в один файл .zip."
    },
    "opening": {
      "inputLabel": "PGN, список ходов или FEN",
      "placeholder": "Вставьте партию (1. e4 c5 2. Nf3 …) или FEN",
      "empty": "Вставьте партию, список ходов или FEN.",
      "notInput": "Это не похоже на PGN, список ходов или FEN.",
      "badFen": "Этот FEN — не допустимая позиция.",
      "stopped": "Проигрывание остановилось на {{label}} {{token}}: это незаконный ход. Ниже показан дебют, достигнутый до него.",
      "pathTitle": "Именованные позиции по пути",
      "resultKicker": "Дебют",
      "deepest": "Самая глубокая именованная позиция: после {{move}} (полуход {{ply}} из {{total}}).",
      "fenMatch": "Именно эта позиция — именованная дебютная позиция.",
      "copyName": "Копировать название и ECO",
      "openAnalysis": "Открыть на доске для анализа",
      "openGameAnalysis": "Разобрать партию",
      "noMatch": "Ни одной именованной дебютной позиции не достигнуто. Возможно, первый ход редкий или партия начинается с заданной позиции.",
      "noMatchFen": "Эта позиция не входит в число именованных дебютных позиций. Вставьте ходы, которые к ней привели, чтобы узнать, из какого дебюта вышла партия.",
      "waiting": "Здесь появятся название дебюта и код ECO."
    },
    "descriptive": {
      "inputLabel": "Ходы в описательной нотации",
      "placeholder": "1. P-K4 P-K4 2. N-KB3 N-QB3 3. B-N5 P-QR3",
      "unreadable": "{{label}} «{{token}}» не удалось прочитать как ход в описательной нотации. Проверьте написание, например N-KB3 или PxP.",
      "noMove": "{{label}} {{token}} — незаконный ход в этой позиции. Ходы до него преобразованы.",
      "ambiguous": "{{label}} {{token}} подходит больше чем к одному законному ходу: {{moves}}. Укажите фигуру или вертикаль, например KPxP или QR-Q1, и продолжите.",
      "assumedQueen": "Превращение без указанной фигуры прочитано как превращение в ферзя.",
      "syntaxHint": "Вертикали названы по фигурам, которые стоят на них в начале партии (QR, QN, QB, Q, K, KB, KN, KR), а горизонтали считаются со стороны того, кто ходит, поэтому P-K4 у чёрных — это e5. Взятие пишется через x (PxP, NxB), шах — ch или +, взятие на проходе — e.p., рокировка — O-O или O-O-O, превращение — P-K8=Q. Обозначение коня Kt тоже подходит.",
      "converted": "Преобразовано ходов: {{count}}",
      "sanLabel": "Алгебраическая нотация (SAN)",
      "descriptiveColumn": "Описательная",
      "algebraicColumn": "Алгебраическая",
      "finalPosition": "Позиция после последнего преобразованного хода",
      "linkBook": "Шахматная книга в PGN",
      "linkArticle": "Описательная и алгебраическая нотация"
    },
    "tiebreak": {
      "tableTitle": "Турнирная таблица",
      "number": "№",
      "name": "Участник",
      "round": "Т{{n}}",
      "cellLabel": "Тур {{n}}, участник {{player}}",
      "addPlayer": "Добавить участника",
      "addRound": "Добавить тур",
      "removeRound": "Убрать последний тур",
      "copyTable": "Копировать таблицу как текст",
      "cellHelp": "Одна клетка на тур: номер соперника, при желании цвет (w — белые, b — чёрные), затем результат. 12w1 — победа белыми над участником № 12, 7b½ — ничья чёрными, 3b0 — поражение. 9+ и 9- — победа или поражение по неявке в паре с участником № 9. Отдельно: + — свободный от игры тур по жеребьёвке или пропуск тура с зачётом очка, H — пропуск тура по заявке с зачётом пол-очка, - — пропуск тура без очка или неявка.",
      "invalidCells": "Клеток, которые нужно исправить, прежде чем можно рассчитать места: {{count}} (обведены красным).",
      "importTitle": "Вставить турнирную таблицу",
      "importHelp": "По одному участнику в строке: стартовый номер, имя, затем по клетке на каждый тур, через табуляцию, точку с запятой, запятую или пробел. Строка заголовков и столбцы в конце, например очки, пропускаются.",
      "importButton": "Использовать эту таблицу",
      "importErrors": "Не удалось прочитать строки: {{lines}}.",
      "optionsTitle": "Дополнительные показатели",
      "systemLabel": "Несыгранные партии",
      "systemFide": "ФИДЕ 2026 (фиктивный соперник)",
      "systemVirtual": "Виртуальный соперник (до 2023 года)",
      "systemFideHelp": "Положение ФИДЕ о дополнительных показателях, действующее с 1 марта 2026 года, статья 16: несыгранный тур считается партией против фиктивного соперника с тем же количеством очков, что и у самого участника.",
      "systemVirtualHelp": "Прежнее правило ФИДЕ: несыгранный тур считается партией против виртуального соперника, у которого столько же очков, сколько у участника перед этим туром, и который все оставшиеся партии сводит вничью; несыгранные партии соперников считаются ничьими.",
      "orderTitle": "Порядок после очков",
      "moveUp": "Выше",
      "moveDown": "Ниже",
      "keys": {
        "BH": "Коэффициент Бухгольца",
        "BH-C1": "Усечённый Бухгольц (−1)",
        "BH-M1": "Медианный Бухгольц",
        "SB": "Коэффициент Бергера (Зоннеборна — Бергера)",
        "DE": "Личная встреча",
        "WIN": "Количество побед"
      },
      "standingsTitle": "Итоговые места",
      "rank": "Место",
      "points": "Очки",
      "copyCsv": "Копировать CSV",
      "downloadCsv": "Скачать CSV",
      "deNote": "Личная встреча считается внутри каждой группы, которая всё ещё делит место, когда до неё доходит очередь; — означает, что она эту группу не разделила. Общее место отмечено знаком =.",
      "fixFirst": "Исправьте обведённые клетки, и здесь появятся итоговые места.",
      "warnMismatch": "Тур {{round}}: у участников {{player}} и {{opponent}} одна и та же партия записана по-разному.",
      "warnUnknown": "Тур {{round}}: соперника {{opponent}} участника {{player}} нет в таблице.",
      "warnSelf": "Тур {{round}}: участник {{player}} поставлен в пару сам с собой.",
      "warnRounds": "Туров у участника {{player}}: {{rounds}}, в таблице: {{expected}}. Недостающие туры считаются неявками.",
      "linkArchiving": "Архив турнирных бланков"
    }
  },
  "sharedGame": {
    "eyebrow": "Партия по ссылке",
    "scoresheet": "Бланк",
    "scoresheetPage": "Страница бланка {{page}}",
    "moveCount": "Ходы",
    "noMoves": "В этой партии нет воспроизводимых ходов.",
    "ctaTitle": "Отсканируйте свой бланк",
    "ctaBody": "ScanChess превращает фотографию рукописного бланка в партию для просмотра и файл PGN. Бесплатные кредиты при регистрации.",
    "ctaButton": "Попробовать бесплатно",
    "notFoundTitle": "Эта ссылка больше не работает",
    "notFoundBody": "Ссылку отозвали или партию удалили.",
    "replayStops": "Воспроизведение останавливается на ходе {{ply}}: {{san}} невозможно сделать из предыдущей позиции. Полный список ходов приведён ниже.",
    "playableCount": "Воспроизводимые",
    "unplayableMove": "{{san}} невозможно сделать",
    "pgnPartial": "В PGN вошли {{playable}} ходов, которые удалось разыграть, из {{total}} на бланке.",
    "claimButton": "Сохранить в мою библиотеку",
    "claimSaving": "Сохраняем…",
    "claimed": "Сохранено в вашей библиотеке",
    "claimedDesc": "Копия этой партии теперь в ваших партиях. Фотографии отправителя остаются у него.",
    "claimedOpen": "В ваших партиях · открыть",
    "claimAlready": "Эта партия уже есть в вашей библиотеке",
    "claimFailed": "Не удалось сохранить партию",
    "metaTitle": "{{white}} — {{black}} | ScanChess",
    "metaDesc": "Просмотрите эту партию ход за ходом: {{white}} — {{black}}, ходов: {{count}}, отсканировано с рукописного бланка в ScanChess."
  },
  "apiErrors": {
    "RATE_LIMITED": "Слишком много запросов. Подождите несколько минут и повторите.",
    "RATE_LIMITED_RETRY_one": "Слишком много запросов. Повторите через {{count}} минуту.",
    "RATE_LIMITED_RETRY_few": "Слишком много запросов. Повторите через {{count}} минуты.",
    "RATE_LIMITED_RETRY_many": "Слишком много запросов. Повторите через {{count}} минут.",
    "RATE_LIMITED_RETRY_other": "Слишком много запросов. Повторите через {{count}} минуты.",
    "NOT_FOUND": "Этой партии больше нет. Возможно, её удалили.",
    "INVALID_INPUT": "Запрос не принят. Проверьте данные и повторите.",
    "PERMISSION_DENIED": "У вас нет доступа к этой партии.",
    "EMAIL_NOT_VERIFIED": "Бесплатное сканирование до подтверждения почты уже использовано. Подтвердите почту, чтобы продолжить.",
    "INSUFFICIENT_CREDITS": "Не хватает кредитов на это сканирование.",
    "SCAN_IN_PROGRESS": "Это сканирование ещё обрабатывается. Подождите немного.",
    "UPLOAD_LIMIT_REACHED": "Место для изображений заполнено. Удалите часть сохранённых партий, чтобы освободить его.",
    "IMAGE_TOO_LARGE": "Одно из изображений слишком велико. Возьмите фотографию поменьше.",
    "PAYLOAD_TOO_LARGE": "Запрос слишком большой. Попробуйте меньше изображений или изображения поменьше.",
    "AI_GATEWAY_ERROR": "Сервис распознавания не смог обработать изображение. Кредиты возвращены.",
    "AI_INVALID_RESPONSE": "Сервис распознавания вернул неожиданный результат. Кредиты возвращены.",
    "NO_SCORESHEET_FOUND": "На фотографии не удалось прочитать ни одного хода. Убедитесь, что весь бланк в кадре, в фокусе и хорошо освещён. Кредиты возвращены.",
    "NO_BOARD_FOUND": "На фотографии не удалось прочитать шахматную доску. Убедитесь, что вся доска и все фигуры попали в кадр. Кредиты возвращены.",
    "server": "На сервере возникла проблема. Повторите чуть позже.",
    "network": "Не удалось связаться с сервером. Проверьте соединение и повторите.",
    "unknown": "Что-то пошло не так. Попробуйте снова."
  },
  "annotations": {
    "title": "Заметки и варианты",
    "needMoves": "Отсканируйте или загрузите партию, чтобы её комментировать.",
    "beforeGame": "перед партией",
    "afterMove": "после {{number}}{{ellipsis}} {{move}}",
    "commentOn": "Комментарий {{position}}",
    "commentPlaceholder": "Что стоит запомнить об этой позиции?",
    "commentHint": "Комментарий уйдёт вместе с этим ходом в выгруженный PGN. Перейдите по доске, чтобы прокомментировать другую позицию.",
    "variations": "Записанные варианты",
    "insteadOfFirst": "вместо первого хода",
    "variationFrom": "Добавить вариант {{position}}",
    "variationPlaceholder": "например, Кf3 d5 exd5",
    "addVariation": "Добавить",
    "variationHint": "Запишите вариант в нотации SAN через пробелы; он станет альтернативой позиции на доске.",
    "illegalLine": "{{move}} здесь недопустимый ход.",
    "variationRejected": "Этот вариант нельзя разыграть из этой позиции.",
    "previewVariation": "Показать этот вариант на доске",
    "deleteVariation": "Удалить этот вариант"
  },
  "batch": {
    "title": "Отсканировать целый тур сразу",
    "intro": "Для судей и организаторов клубов: загрузите все бланки тура, объедините двусторонние или многостраничные листы в одну партию каждый — и каждая партия будет отсканирована и отдельно помещена в вашу библиотеку.",
    "signInRequired": "Для скана тура нужен аккаунт — кредиты тратятся на каждую партию.",
    "fileRejectedCount": "{{name}}: этот пакет заполнен ({{max}} фотографий).",
    "groups": "Партии в этом пакете",
    "gameLabel": "Партия {{number}}",
    "pageAlt": "Фотография {{number}}",
    "joinPrevious": "Эта фотография продолжает предыдущую партию",
    "separateGame": "Начать новую партию с этой фотографии",
    "sharedMeta": "Общие данные",
    "sharedMetaHint": "Подставляются, когда на листе этого нет: название турнира, место и дата добавляются к каждой партии пакета.",
    "eventPlaceholder": "Весенний чемпионат клуба",
    "sitePlaceholder": "Помещение клуба, город",
    "balance": "баланс {{credits}}",
    "stop": "Остановиться после этой партии",
    "summary": "Сохранено: {{saved}}, не удалось: {{failed}}.",
    "state": {
      "pending": "Ожидает",
      "scanning": "Сканируем…",
      "saved": "Сохранено",
      "failed": "Не удалось",
      "blocked": "Не хватает кредитов"
    },
    "open": "Открыть",
    "retry": "Повторить",
    "moveCount": "{{count}} ходов",
    "signInCta": "Войти",
    "tournament": {
      "title": "Жеребьёвка",
      "hint": "Загрузите список пар тура — и каждая партия попадёт в архив с правильными игроками, рейтингами, туром и доской. Фотографии с именами вида R3B7.jpg группируются и расставляются сами.",
      "formats": "Выгрузки в CSV или с разделителями-табуляциями со строкой заголовка, список в PGN или файл жеребьёвки в JSON.",
      "placed": "Тур {{round}}, доска {{board}}",
      "parseFailed": "{{name}} не удалось прочитать как список пар.",
      "exportPgn": "PGN тура",
      "exportCsv": "CSV для сверки"
    }
  },
  "extensionImport": {
    "title": "Из расширения ScanChess",
    "loading": "Получение снимка…",
    "error": "Не удалось получить или импортировать содержимое. Повторите попытку здесь либо отбросьте и создайте новый снимок. Текущая работа сохранена.",
    "imageHint": "Проверьте изображение перед импортом. Распознавание ИИ начнётся только по вашему запросу и использует ваш аккаунт и кредиты сайта.",
    "textHint": "Импортируйте запись в этот инструмент для проверки и редактирования.",
    "replaceHint": "Импорт заменит текущую работу в этом представлении. Сначала сохраните всё, что хотите оставить.",
    "board": "Позиция на доске → FEN",
    "scoresheet": "Бланк партии → PGN",
    "imageAlt": "Изображение из расширения ScanChess",
    "accept": "Импортировать",
    "discard": "Отбросить",
    "retry": "Повторить",
    "cleanupPending": "Очистка временной передачи…",
    "cleanupError": "Не удалось подтвердить очистку. Повторная попытка очистит только передачу и не изменит партию.",
    "analysisHint": "Запустите бесплатный полный разбор этой партии: Stockfish работает в вашем браузере, без кредитов и без аккаунта.",
    "analyze": "Анализировать партию"
  },
  "policy": {
    "effectiveDate": "Дата вступления в силу",
    "updated": "Обновлено",
    "seeAlso": "См. также:"
  },
  "contactPage": {
    "title": "Связаться с нами",
    "subtitle": "Мы небольшая команда, и каждое письмо читает человек.",
    "emailHeading": "Электронная почта поддержки",
    "replyTime": "Отвечаем в течение 2 рабочих дней, а по вопросам оплаты обычно в тот же день.",
    "includeHeading": "Что приложить",
    "include": [
      "Адрес электронной почты вашего аккаунта.",
      "По оплате: номер заказа из чека, который прислал Waffo.",
      "По неудачному распознаванию: фотографию бланка и то, какой ход распознан неверно."
    ],
    "shortcutsHeading": "Возможно, мы вам не нужны",
    "shortcuts": {
      "pricing": "Цены, кредиты и отмена подписки",
      "refunds": "Политика возврата (возвратов нет)",
      "deleteAccount": "Удаление аккаунта и данных",
      "faq": "Частые вопросы"
    },
    "operatorHeading": "Кто занимается ScanChess",
    "operatorBody": "ScanChess принадлежит SudoAI. Веб-подписки продаёт Waffo как продавец-оператор, и именно это название вы увидите в выписке."
  },
  "securityPage": {
    "title": "Безопасность",
    "sections": [
      {
        "heading": "Как сообщить об уязвимости",
        "paragraphs": [
          "Напишите на {{email}}, указав «Security» в теме. Опишите, как воспроизвести проблему и что она позволяет сделать. Мы отвечаем в течение 3 рабочих дней и сообщаем результат после исправления.",
          "Мы не станем преследовать добросовестное исследование по закону — при условии, что вы не получаете доступ к чужим данным, не изменяете и не выгружаете их, не проводите тесты на отказ в обслуживании и рассылку спама и даёте нам возможность исправить проблему до публикации. Платной программы вознаграждений нет, но по вашему желанию мы укажем ваше имя."
        ]
      },
      {
        "heading": "Как защищены ваши данные",
        "bullets": [
          "Весь трафик идёт по HTTPS; сайт и API стоят за Cloudflare.",
          "Пароли хранятся как bcrypt-хеши с солью — ваш мы прочитать не можем.",
          "Веб-сессии используют подписанные JWT в cookie HttpOnly; смена пароля отзывает выданные ранее сессии и токены сброса пароля.",
          "Платёжные данные мы не видим никогда: веб-оплату проводит Waffo, наш продавец-оператор, а нам приходят только номер заказа и статус подписки.",
          "Удаление аккаунта действительно удаляет его — профиль, партии и загруженные изображения исчезают и восстановлению не подлежат."
        ]
      },
      {
        "heading": "Изображения, которые вы загружаете",
        "paragraphs": [
          "Фотографии бланков передаются стороннему поставщику ИИ-моделей, которого мы используем для распознавания; в Политике конфиденциальности точно указано, что именно передаётся. Изображения принадлежат вашему аккаунту: удалите отдельную партию в любой момент или удалите аккаунт, чтобы стереть их все."
        ]
      },
      {
        "heading": "Чего у нас нет",
        "paragraphs": [
          "Прямо: ни SOC 2, ни ISO 27001, ни внешнего аудита, ни платной программы вознаграждений. ScanChess делает небольшая команда. Если вашей школе, федерации или работодателю нужны документы о соответствии, напишите нам — мы честно скажем, что можем предоставить, а что нет."
        ]
      }
    ]
  },
  "refundsPage": {
    "title": "Политика возврата",
    "intro": "ScanChess не делает возвратов. Мы пишем это в самом верху и рядом с кнопкой покупки, потому что вы должны знать об этом до оплаты, а не узнавать после. Ниже: почему, какие есть исключения и что делать, если вы больше не хотите платить.",
    "stopCharges": "Хотите прекратить списания? Отмените подписку на <pricing>странице цен</pricing> или напишите на <mail>{{email}}</mail>.",
    "sections": [
      {
        "heading": "Все продажи окончательны",
        "paragraphs": [
          "Платежи по подписке не возвращаются. Это касается и неиспользованного остатка периода, и продления, которое вы забыли отменить, и купленных, но не потраченных кредитов.",
          "Именно это позволяет нам держать такие цены, а взамен каждый новый аккаунт начинается с 10 бесплатных кредитов — это пять бланков — без карты. Потратьте их, чтобы убедиться, что распознавание справляется с вашим почерком, прежде чем оформлять подписку."
        ]
      },
      {
        "heading": "Исключения",
        "paragraphs": [
          "Сказанное выше не относится к:"
        ],
        "bullets": [
          "Всему, что применимое право обязывает нас вернуть. Эта политика не уменьшает прав, которые даёт вам императивное потребительское законодательство страны проживания; покупатели из ЕС и Великобритании сохраняют законное право на отказ, когда его условия выполнены.",
          "Покупкам через сторонний магазин приложений. Их возвращает сам магазин по своим правилам — обращайтесь туда. Мы не можем ни одобрить их, ни запретить.",
          "Техническим сбоям на нашей стороне или у платёжного провайдера — двойному списанию или неверной сумме. Это не возврат, а исправление: напишите нам, и мы всё поправим."
        ]
      },
      {
        "heading": "Что сделать вместо этого",
        "paragraphs": [
          "Отмените подписку, а не ждите списания, чтобы потом просить деньги обратно. Отмена самостоятельная: войдите, откройте страницу цен, нажмите «Отменить подписку». Два клика, писать никому не нужно.",
          "Отмена прекращает все будущие списания. Pro остаётся у вас до конца уже оплаченного периода, а кредиты на балансе остаются вашими — они не сгорают. Пошагово: «Как отменить подписку ScanChess».",
          "Отменяйте до даты продления. Для годового плана самая надёжная привычка — заняться этим сразу, как придёт напоминание о продлении."
        ]
      },
      {
        "heading": "Что такое кредиты",
        "bullets": [
          "Кредиты — внутренняя единица использования Сервиса. Это не хранимая стоимость, и денежной ценности у них нет.",
          "Их нельзя вернуть, обналичить или передать на другой аккаунт.",
          "То же самое относится к кредитам, выданным бесплатно при регистрации или за приглашения.",
          "Отмена подписки не стирает кредиты, уже лежащие на балансе."
        ]
      },
      {
        "heading": "Всё равно напишите нам",
        "paragraphs": [
          "Если распознавание вернулось непригодным, если с аккаунта списали сумму, которая выглядит ошибочной, или если вы считаете, что ваш случай не должен решаться правилом выше, напишите на {{email}}, указав адрес аккаунта и номер заказа из чека Waffo. Мы отвечаем в течение 2 рабочих дней и смотрим на каждый случай по существу: политика — это политика, а человек — это человек."
        ]
      },
      {
        "heading": "У кого вы покупаете",
        "paragraphs": [
          "Waffo — продавец-оператор веб-подписок, и именно это название видно в выписке. Любой возврат, к которому нас обязывает закон, инициируем мы, а проводит Waffo.",
          "Годовой пропуск на 365 дней, который продаётся в магазине для материкового Китая и оплачивается через WeChat Pay, тоже принимает Waffo, и он подпадает под эту политику: оплачен один раз, возврату не подлежит. Пропуск никогда не продлевается, поэтому и забытого продления, которое можно оспорить, не бывает."
        ]
      }
    ]
  },
  "faqPage": {
    "title": "Частые вопросы",
    "subtitle": "Сканирование, анализ, ежедневная тренировка, тарифы и аккаунт: все ответы в одном месте.",
    "ctaTitle": "Остались вопросы?",
    "ctaBody": "Попробуйте ScanChess и посмотрите, как ИИ распознаёт бланки",
    "ctaButton": "Начать распознавание",
    "items": [
      {
        "question": "Что такое ScanChess?",
        "answer": "ScanChess превращает фото рукописного шахматного бланка в файл PGN, а изображение доски — фото, скриншот или диаграмму — в позицию FEN. Каждый распознанный ход проигрывается на доске, а невозможные или сомнительные ходы помечаются, чтобы вы их проверили. Затем он помогает учиться на партии: анализ Stockfish, ИИ-тренер, который объясняет переломные моменты, и ежедневная тренировка на ваших собственных ошибках. ScanChess работает на сайте, а расширение для Chrome и Edge распознаёт доски на веб-страницах. Скан бланка стоит 2 кредита, изображение доски — 1; новые аккаунты получают 10 бесплатных кредитов. Разработчик — SudoAI."
      },
      {
        "question": "Какие форматы записи поддерживаются?",
        "answer": "Мы поддерживаем стандартную алгебраическую нотацию (SAN) в разных почерках. Сокращения вроде «dc» (взятие пешкой) автоматически переводятся в стандартную форму «dxc5»."
      },
      {
        "question": "Это бесплатно?",
        "answer": "Каждый новый аккаунт получает 10 бесплатных кредитов, карта не нужна. Скан бланка стоит 2 кредита, фото доски — 1. Правка, просмотр, экспорт PGN, анализ Stockfish и библиотека партий ничего не стоят, одно объяснение ИИ в день бесплатно, а бесплатным аккаунтам доступна и ежедневная тренировка. Кредиты можно заработать и приглашая друзей."
      },
      {
        "question": "Сколько стоит Pro и что в него входит?",
        "answer": "Pro стоит {{proMonthly}} в месяц или {{proYearly}} в год. Он добавляет 100 кредитов каждые 30 дней (около 50 бланков) и открывает полный игровой профиль, ежедневную тренировку без ограничений, дебютные репертуары, подготовку к сопернику и отчёты о турнирах. Pro+ ({{proPlusMonthly}} в месяц или {{proPlusYearly}} в год) — тариф для клубов и тренеров: 500 кредитов каждые 30 дней, более высокие лимиты на отчёты и репертуары, список игроков клуба со страницами учеников и публичные ссылки на отчёты. Сканирование, правка, просмотр, экспорт PGN, анализ движком и библиотека партий доступны на любом аккаунте, а неизрасходованные кредиты остаются на балансе. Полное сравнение — на странице цен по адресу /pricing."
      },
      {
        "question": "Как оплатить и что будет в выписке?",
        "answer": "Войдите, откройте страницу цен и нажмите «Оформить подписку» — откроется оплата на стороне Waffo. Waffo — продавец-оператор веб-подписок: он принимает платёж, считает налог и появляется в выписке вместо ScanChess. Данные вашей карты мы никогда не видим и не храним. В материковом Китае страница цен показывает магазин для материкового Китая, где Pro — это абонемент на 365 дней в юанях, который оплачивается один раз через WeChat Pay и никогда не продлевается. Pro+ там пока не продаётся; если он вам нужен, напишите на support@scanchess.com."
      },
      {
        "question": "Как отменить подписку?",
        "answer": "Войдите и откройте /pricing — сверху появится блок «Ваша подписка» с кнопкой «Отменить подписку». Писать никому не нужно. Отмена останавливает следующее списание; Pro и кредиты, уже лежащие на балансе, сохраняются до конца оплаченного периода."
      },
      {
        "question": "Можно ли вернуть деньги?",
        "answer": "Нет. Все платежи окончательны и возврату не подлежат, включая неиспользованный остаток периода и непотраченные кредиты, кроме случаев, когда иное требует применимое право. Именно поэтому каждый аккаунт начинается с 10 бесплатных кредитов и без карты: потратьте их, чтобы убедиться, что распознавание вам подходит, прежде чем оформлять подписку. Если не хотите платить дальше — отмените подписку: это делается самостоятельно, в два клика. Полные условия на /refunds."
      },
      {
        "question": "Насколько точно распознавание?",
        "answer": "Качество зависит от почерка, освещения, угла съёмки и стиля записи, поэтому фиксированную точность мы не обещаем. Проверка по правилам шахмат помечает сомнительные и невозможные ходы, чтобы вы их просмотрели."
      },
      {
        "question": "Можно распознать несколько страниц сразу?",
        "answer": "Да. За одно распознавание можно загрузить до 10 изображений (JPG, PNG или WebP; HEIC пока не поддерживается). Страницы читаются в показанном порядке, поэтому двусторонний или многостраничный бланк становится одной партией — и по-прежнему стоит одно распознавание."
      },
      {
        "question": "Как выгрузить партию?",
        "answer": "После распознавания нажмите «Экспорт PGN», чтобы скачать стандартный файл PGN. Можно также скопировать PGN в буфер обмена и вставить прямо в Chess.com или Lichess."
      },
      {
        "question": "Что делать, если распознавание ошиблось?",
        "answer": "Нажмите кнопку с карандашом рядом с ходом и исправьте его. Система проверяет ходы на лету. Можно вводить сокращённо (например, «dc») — запись сама превратится в полную нотацию."
      },
      {
        "question": "Мои партии сохраняются?",
        "answer": "Удачное распознавание бланка автоматически сохраняется в библиотеку партий (раздел «Партии» в рабочем пространстве). Если потом изменить ходы или данные партии, «Сохранить партию» обновит ту же запись, а не создаст копию. Для распознавания нужен аккаунт."
      },
      {
        "question": "Сколько вы храните мои фотографии и партии и как их удалить?",
        "answer": "Фотографии бланков хранятся вместе с распознанной партией в вашем аккаунте, пока вы их не удалите. Удаление партии из библиотеки партий удаляет и её фотографии; удаление аккаунта стирает все партии, фотографии и историю кредитов. В рабочей базе удаление действует сразу, а обычные резервные копии истекают в течение 90 дней."
      }
    ]
  },
  "privacyPage": {
    "title": "Политика конфиденциальности",
    "intro": "ScanChess (\"мы\") уважает и защищает вашу конфиденциальность. Эта политика объясняет, как мы собираем, используем, храним и передаём ваши данные при использовании сайта и расширения для браузера ScanChess (\"Сервис\").",
    "sections": [
      {
        "heading": "Какие данные мы собираем",
        "paragraphs": [
          "Чтобы оказывать услугу распознавания шахматных записей, мы собираем следующие данные:"
        ],
        "bullets": [
          "Данные аккаунта: когда вы создаёте аккаунт с адресом электронной почты и паролем или входите через Google (или через Apple — для аккаунтов, которые им пользуются), мы получаем ваш адрес электронной почты и базовый идентификатор аккаунта, чтобы создать его и управлять им.",
          "Загружаемое вами содержимое: фотографии бланков, шахматных досок и связанные изображения, которые вы снимаете или загружаете. Изображения бланков передаются поставщику ИИ-моделей для распознавания в PGN. Изображения досок сначала передаются сервису распознавания Chessvision.ai; если он недоступен или не может прочитать доску, их обрабатывает наш собственный распознаватель, а затем поставщик ИИ-моделей. Результат — стандартная шахматная нотация (PGN или FEN).",
          "Партии и анализ: партии, которые вы сохраняете или импортируете, сохранённый вместе с ними анализ движком, тренировочные позиции, составленные из ваших ошибок, дебютные репертуары, сохранённые вами позиции и созданные вами отчёты.",
          "Объяснения ИИ: когда вы просите объяснить партию, позицию или отчёт о турнире, ходы, позиции и варианты движка, на которых оно основано, передаются поставщику ИИ-моделей, чтобы написать объяснение, а сам текст хранится вместе с вашей партией, позицией или отчётом.",
          "Привязанные онлайн-аккаунты и подготовка к сопернику: если вы привязываете имя пользователя Lichess или Chess.com, мы читаем публичные партии этого аккаунта через публичные API этих сайтов и храним сводку статистики в вашем аккаунте; удаление привязки удаляет и её. Отчёт для подготовки к сопернику так же читает публичные партии соперника и хранится в вашем аккаунте.",
          "Рабочие пространства клубов: тренеры и клубы могут вести список своих учеников — имя, варианты имени, под которыми игрок записан в бланках, FIDE ID, рейтинг и отметку о том, юный ли это игрок, — вместе с привязанными к ним партиями и отчётами.",
          "Ссылки для отправки: публичную ссылку на партию или отчёт создаёте вы сами; она показывает только то, что показывает эта страница, и её можно отозвать в любой момент. Ссылки на отчёты, кроме того, истекают в выбранную вами дату.",
          "Кредиты и операции: баланс кредитов, записи о покупках и история расходования, используемые для расчётов и предотвращения злоупотреблений.",
          "Данные об использовании и устройстве: ради безопасности и улучшения продукта мы можем записывать базовые сведения — тип устройства, версию браузера или расширения и отчёты об ошибках.",
          "Аналитика сайта: Google Analytics 4 и Microsoft Clarity могут собирать сведения о посещениях, источниках переходов, примерном местоположении на уровне города и действиях на странице согласно описанным ниже правилам и настройкам cookie."
        ]
      },
      {
        "id": "browser-extension",
        "heading": "Вход и сканирование в расширении браузера",
        "paragraphs": [
          "Для расширения нужен зарегистрированный аккаунт ScanChess. В версиях с подключением через сайт вы входите на сайте и связываете расширение с этим сеансом. Данные подключения и основные сведения об аккаунте сохраняются в защищённом хранилище расширения. В более ранних версиях может быть вход в окне расширения: пароль передаётся только API аутентификации ScanChess и не сохраняется.",
          "Захват начинается только после выбора действия для распознавания доски. Выделение и обрезка выполняются на вашем устройстве. Выбранное изображение отправляется на api.scanchess.com и поставщикам распознавания досок, указанным в этой политике (Chessvision.ai, наш собственный распознаватель, поставщик ИИ-моделей), для распознавания позиции.",
          "Текущий ход распознавания и результаты хранятся на время сеанса браузера и удаляются при его завершении или отключении аккаунта. Позиции, сохранённые в аккаунте, можно просматривать на сайте. Расширение не собирает историю посещений и не содержит скриптов аналитики.",
          "Открытие результата на сайте необязательно и требует отдельного действия. Временная передача привязана к странице назначения и соответствующей вкладке и истекает через 30 минут. Данные аккаунта, изображения и нотация используются для описанных функций подключения, захвата, распознавания, проверки и сохранения."
        ]
      },
      {
        "heading": "Как мы используем данные",
        "bullets": [
          "Для основной функции: распознавания загруженных изображений, анализа ваших партий и написания объяснений и отчётов, которые вы запрашиваете.",
          "Для управления вашим аккаунтом, балансом кредитов и операциями.",
          "Для безопасности Сервиса и предотвращения мошенничества и злоупотреблений.",
          "Для ответов на ваши обращения в поддержку и улучшения продукта.",
          "Для построения вашего игрового профиля и тренировочных позиций на основе партий в вашем аккаунте."
        ]
      },
      {
        "heading": "Сторонние сервисы",
        "paragraphs": [
          "Мы передаём минимально необходимые данные следующим третьим лицам, чтобы Сервис работал:"
        ],
        "bullets": [
          "Поставщики ИИ-моделей (сейчас это Google, Anthropic и OpenAI): им для обработки передаются изображения, которые вы загружаете для распознавания, а также ходы, позиции и варианты движка, лежащие в основе запрошенного вами объяснения ИИ.",
          "Chessvision.ai: загруженные вами изображения досок передаются сервису распознавания Chessvision.ai для получения FEN. Если он недоступен или не может прочитать доску, её вместо него распознаёт наш собственный распознаватель (работающий у нас) или поставщик ИИ-моделей.",
          "Lichess и Chess.com: когда вы привязываете имя пользователя, запрашиваете отчёт для подготовки к сопернику или пользуетесь Chess Wrapped, публичные партии этого аккаунта запрашиваются через публичные API этих сайтов.",
          "Вход через Google (и вход через Apple — для аккаунтов, которые им пользуются): используется для аутентификации.",
          "Waffo (Waffo Pancake): продавец-оператор веб-подписок. Ваши платёжные данные собирает и обрабатывает Waffo — мы никогда не видим и не храним данные карты. Нам приходят только номер заказа, платёжный адрес электронной почты и статус подписки, по которым мы включаем Pro.",
          "Google Analytics 4 и Microsoft Clarity: аналитика сайта в соответствии с описанными ниже правилами и настройками cookie.",
          "Cloudflare: хостинг, CDN и маршрутизация почты для сайта и API; при этом обрабатываются необходимые журналы соединений.",
          "Мы не продаём ваши персональные данные и не используем их для рекламы, не связанной с Сервисом."
        ]
      },
      {
        "heading": "Cookie и аналитика",
        "paragraphs": [
          "Веб-сессия входа хранится в защищённом cookie, доступном только серверу. Хранилище браузера содержит настройки интерфейса, а после подтверждения импорта может сохранять партии и изображения для восстановления работы. Сначала используется хранилище сеанса, а при его недоступности — локальное хранилище. Необходимый cookie сеанса нельзя отключить, иначе вход на сайте не сохранится.",
          "Кроме этого мы используем два аналитических сервиса, и оба ставят cookie. Там, где закон требует предварительного согласия — ЕЭП, Великобритания и Швейцария, — ни один не загружается, пока вы не нажмёте «Принять» в уведомлении. В остальных странах они включены по умолчанию, и вы можете отключить их в любой момент (см. ниже):"
        ],
        "bullets": [
          "Google Analytics 4: число визитов, источники переходов и скорость страниц. Обрабатывается Google и может передаваться за пределы вашей страны, в том числе в США.",
          "Microsoft Clarity: записывает клики, прокрутку и движения мыши внутри страницы (повтор сессии), а также тепловые карты, чтобы мы находили проблемы интерфейса. Для установления вашей личности мы его не используем."
        ],
        "paragraphsAfter": [
          "Передумать можно в любой момент — через «Настройки cookie» в нижней части каждой страницы или в настройках аккаунта. При выключенной аналитике ни один из этих скриптов не загружается вовсе. Отключение не останавливает скрипт, уже работающий в открытой вкладке: перезагрузите страницу, и он не вернётся."
        ]
      },
      {
        "heading": "Сроки хранения",
        "paragraphs": [
          "Мы храним данные аккаунта, историю партий и изображения только столько, сколько необходимо для работы Сервиса. Когда данные больше не нужны или вы просите их удалить, мы их удаляем."
        ]
      },
      {
        "heading": "Удаление данных и аккаунта",
        "paragraphs": [
          "Аккаунт можно удалить в любой момент на сайте по адресу https://scanchess.com/delete-account. При этом удаляются данные аккаунта вместе с загруженными изображениями, партиями и данными распознавания, связанными с вашим аккаунтом. После удаления восстановить их невозможно.",
          "Если нужна помощь с удалением данных, напишите нам на {{email}}."
        ]
      },
      {
        "heading": "Безопасность данных",
        "paragraphs": [
          "Мы применяем разумные технические и организационные меры для защиты ваших данных при передаче и хранении. Однако ни один способ передачи через интернет и ни одно электронное хранилище не являются полностью безопасными."
        ]
      },
      {
        "heading": "Ваши права",
        "paragraphs": [
          "Где бы вы ни жили, вы можете воспользоваться следующими правами в отношении хранимых нами персональных данных. По любому из них напишите на {{email}}, и мы ответим в течение 30 дней."
        ],
        "bullets": [
          "Доступ: узнать, какие данные о вас у нас есть, и получить копию.",
          "Исправление: попросить нас исправить неточные данные.",
          "Удаление: удалить аккаунт самостоятельно в любой момент или попросить об этом нас.",
          "Ограничение и возражение: возразить против обработки, которую мы основываем на законных интересах, например аналитики.",
          "Переносимость: получить данные ваших партий в распространённом формате — PGN вы в любой момент можете выгрузить и сами.",
          "Отзыв согласия: отключить аналитические cookie в любой момент; на обработку, выполненную до отзыва, это не влияет."
        ],
        "paragraphsAfter": [
          "Посетителям из ЕС и Великобритании: мы обрабатываем данные для исполнения договора с вами (аккаунт, распознавание, оплата), в наших законных интересах (безопасность и предотвращение злоупотреблений) и на основании вашего согласия (аналитические cookie). Вы вправе подать жалобу в надзорный орган по защите данных вашей страны.",
          "Жителям Калифорнии: мы не «продаём» и не «передаём» персональные данные в значении CCPA/CPRA и не станем относиться к вам иначе из-за того, что вы воспользовались своими правами.",
          "Международная передача: наши поставщики (поставщики ИИ-моделей, Chessvision.ai, Cloudflare, Google, Microsoft и Waffo) могут обрабатывать данные за пределами вашей страны, в том числе в США и ЕС."
        ]
      },
      {
        "heading": "Конфиденциальность детей",
        "paragraphs": [
          "Сервис не предназначен для детей младше 13 лет. Мы сознательно не собираем персональные данные детей. Если вы считаете, что ребёнок передал нам персональные данные, напишите на {{email}}, и мы их удалим.",
          "Тренеры и клубы могут добавлять своих учеников, в том числе юных игроков, в рабочее пространство клуба и отвечают за то, что имеют на это право. Игрок считается юным, если клуб не указал иное: в отчёте о юном игроке, открытом по ссылке, никогда не показывается его полное имя, а сама ссылка действует не дольше 30 дней. Родитель или опекун может попросить нас удалить записи о юном игроке, написав на {{email}}."
        ]
      },
      {
        "heading": "Изменения этой политики",
        "paragraphs": [
          "Мы можем время от времени обновлять эту Политику конфиденциальности. Существенные изменения будут опубликованы на этой странице с обновлённой датой вступления в силу в начале."
        ]
      },
      {
        "heading": "Связаться с нами",
        "paragraphs": [
          "Если у вас есть вопросы по этой Политике конфиденциальности, напишите нам на {{email}}."
        ]
      }
    ]
  },
  "termsPage": {
    "title": "Условия использования",
    "intro": "Добро пожаловать в ScanChess. Эти условия («Условия») регулируют ваш доступ к сайту и расширению для браузера ScanChess («Сервис») и их использование. Пользуясь Сервисом, вы принимаете эти Условия.",
    "sections": [
      {
        "heading": "Описание Сервиса",
        "paragraphs": [
          "ScanChess — это инструмент на базе ИИ, который распознаёт фотографии рукописных бланков и шахматных досок и переводит их в стандартную шахматную нотацию (PGN и FEN), а также помогает изучать партии: анализ движком, объяснения, написанные ИИ, тренировка и отчёты. Результаты распознавания и объяснения ИИ могут содержать ошибки, поэтому проверяйте их, прежде чем на них полагаться."
        ]
      },
      {
        "heading": "Аккаунты и возраст",
        "paragraphs": [
          "Для некоторых функций нужен аккаунт — с адресом электронной почты и паролем или со входом через Google. Вы отвечаете за сохранность своего аккаунта и за все действия, совершённые в нём.",
          "Сервис не предназначен для детей младше 13 лет. Если вам меньше 18 (или меньше возраста совершеннолетия в вашей стране), пользоваться Сервисом можно только с согласия родителя или опекуна, а любую покупку должен совершать дееспособный взрослый — либо она совершается с его явного согласия.",
          "Тренеры и клубы могут добавлять своих учеников, в том числе юных игроков, в рабочее пространство клуба. Тот, кто добавляет игрока, отвечает за то, что имеет на это право, например согласие самого игрока или его родителя либо опекуна."
        ]
      },
      {
        "heading": "Подписки, кредиты и покупки",
        "bullets": [
          "Сервис использует кредиты: скан бланка стоит 2 кредита, фотография доски — 1 кредит, одно объяснение ИИ в день бесплатно, а каждое следующее стоит 1 кредит, и каждый новый аккаунт начинает с 10 бесплатных кредитов. Действующие цены, правила по кредитам и состав каждого тарифа указаны на странице цен по адресу scanchess.com/pricing.",
          "Pro и Pro+ — это подписки. Они автоматически продлеваются по той же цене на выбранный период — месяц или год — пока вы их не отмените.",
          "В магазине для материкового Китая Pro продаётся как пропуск на 365 дней в юанях с однократной оплатой через WeChat Pay. Пропуск не продлевается, и по его окончании ничего не списывается; покупка следующего продлевает срок, а оставшиеся дни сохраняются.",
          "Отменить подписку можно самостоятельно в любой момент на scanchess.com/pricing. Отмена прекращает будущие списания; Pro остаётся активным до конца уже оплаченного периода.",
          "Waffo — продавец-оператор веб-подписок: это продавец, он отображается в вашей выписке и рассчитывает налог при оплате.",
          "Все платежи окончательны и возврату не подлежат — включая неиспользованный остаток периода и непотраченные кредиты — кроме случаев, когда иное требует применимое право. Потратьте бесплатные кредиты, которые идут вместе с аккаунтом, чтобы убедиться, что Сервис вам подходит, прежде чем оформлять подписку. Полные условия — в нашей Политике возврата по адресу scanchess.com/refunds.",
          "Покупки через сторонний магазин приложений дополнительно подчиняются условиям этого магазина, и возврат по ним нужно запрашивать у магазина."
        ]
      },
      {
        "heading": "Допустимое использование",
        "paragraphs": [
          "Пользуясь Сервисом, вы обязуетесь не:"
        ],
        "bullets": [
          "Загружать содержимое, которое незаконно, нарушает чужие права или которое вы не вправе передавать в обработку.",
          "Пытаться нарушить работу Сервиса или лежащих в его основе систем, изучать их обратной разработкой или злоупотреблять ими.",
          "Слать чрезмерное количество автоматических запросов и обходить механизмы кредитов и оплаты."
        ]
      },
      {
        "heading": "Срок действия и прекращение",
        "paragraphs": [
          "Эти Условия действуют с момента, когда вы начинаете пользоваться Сервисом, и до тех пор, пока вы или мы их не прекратим. При нарушении правил допустимого использования мы можем принять одну или несколько из следующих мер — в зависимости от тяжести нарушения и того, повторяется ли оно:"
        ],
        "bullets": [
          "Вынести предупреждение либо удалить спорное содержимое или ограничить доступ к нему.",
          "Приостановить аккаунт или ограничить отдельные функции, например распознавание.",
          "Закрыть аккаунт немедленно и без предварительного уведомления при серьёзных нарушениях — например при незаконном содержимом, атаках на Сервис или обходе механизмов кредитов и оплаты.",
          "Если аккаунт закрыт за нарушение этих Условий, неиспользованные кредиты сгорают без возврата, а действующая подписка перестаёт продлеваться — кроме случаев, когда возврат требуется по применимому праву или по правилам соответствующего магазина приложений."
        ],
        "paragraphsAfter": [
          "Мы уведомим вас на адрес электронной почты аккаунта, когда приостановим или закроем его, если это не запрещено законом. Если вы считаете, что мы ошиблись, вы можете обжаловать решение, написав на {{email}} в течение 30 дней с момента уведомления, и мы его пересмотрим.",
          "Вы также можете в любой момент перестать пользоваться Сервисом и удалить аккаунт и его данные функцией «Удалить аккаунт». Разделы, которые по своей природе должны действовать и после прекращения — «Отказ от гарантий», «Ограничение ответственности» и «Применимое право» — остаются в силе."
        ]
      },
      {
        "heading": "Ваше содержимое",
        "paragraphs": [
          "Загруженные вами изображения и партии остаются вашими. Чтобы предоставлять Сервис, вы даёте нам ограниченную лицензию, необходимую для их обработки, включая передачу изображений сторонним поставщикам распознавания, которыми мы пользуемся, и отправку ходов, позиций и вариантов движка из партии или позиции поставщику ИИ-моделей, когда вы просите объяснение. Если вы создаёте публичную ссылку на отчёт, его может прочитать любой, у кого есть ссылка, пока срок её действия не истечёт или вы её не отзовёте. Подробности — в нашей Политике конфиденциальности."
        ]
      },
      {
        "heading": "Удаление аккаунта",
        "paragraphs": [
          "Вы можете удалить аккаунт и связанные с ним данные в любой момент на странице «Удалить аккаунт» по адресу scanchess.com/delete-account. После удаления восстановить эти данные невозможно."
        ]
      },
      {
        "heading": "Отказ от гарантий",
        "paragraphs": [
          "Сервис предоставляется «как есть» и «как доступен», без каких-либо гарантий, явных или подразумеваемых. Мы не гарантируем ни полной точности результатов распознавания, ни бесперебойной и безошибочной работы Сервиса."
        ]
      },
      {
        "heading": "Ограничение ответственности",
        "paragraphs": [
          "В максимально допустимой применимым правом степени ScanChess не несёт ответственности за косвенные, побочные или последующие убытки, возникшие из-за использования Сервиса или невозможности им воспользоваться."
        ]
      },
      {
        "heading": "Интеллектуальная собственность и жалобы",
        "paragraphs": [
          "Программное обеспечение, интерфейс и документация ScanChess принадлежат нам. Загруженные вами изображения и полученная из них нотация принадлежат вам; мы обрабатываем их только для предоставления Сервиса.",
          "Если вы считаете, что что-то в Сервисе нарушает ваши авторские или иные права, напишите на {{email}} и укажите: как с вами связаться, о каком материале идёт речь и где он размещён, заявление о ваших правах на произведение и заявление о том, что вы добросовестно считаете использование несанкционированным. Мы оперативно разбираемся, удаляем материал, когда это обосновано, и можем закрывать аккаунты, нарушающие права неоднократно."
        ]
      },
      {
        "heading": "Изменения Сервиса",
        "paragraphs": [
          "Мы можем улучшать, изменять или прекращать отдельные части Сервиса. Если изменение существенно ухудшает ваше положение — повышение цены, сокращение того, что входит в Pro, или закрытие Сервиса — мы предупредим не менее чем за 30 дней письмом на адрес, указанный в аккаунте, или уведомлением в приложении, чтобы подписчики могли отменить подписку до вступления изменения в силу, а не продлеваться на новых условиях.",
          "Работа Сервиса может ненадолго прерываться для обслуживания, исправлений или из-за инцидента безопасности. Мы стараемся делать такие перерывы как можно короче."
        ]
      },
      {
        "heading": "Изменения этих Условий",
        "paragraphs": [
          "Мы можем время от времени обновлять эти Условия. Существенные изменения публикуются на этой странице с обновлённой датой вступления в силу в начале, а подписчиков мы уведомляем письмом или сообщением в приложении до того, как изменения вступят в силу. Продолжение использования Сервиса означает согласие с обновлёнными Условиями."
        ]
      },
      {
        "heading": "Споры и применимое право",
        "paragraphs": [
          "Если что-то пошло не так, сначала напишите на {{email}} — почти всё решается так в течение 30 дней.",
          "Эти Условия регулируются правом Сингапура, и споры по ним рассматриваются судами Сингапура.",
          "Если вы потребитель, к этим Условиям применяется императивное потребительское законодательство страны вашего обычного проживания, и вы вправе обратиться в местный суд. Ничто здесь не лишает вас этих прав.",
          "Если какая-либо часть этих Условий будет признана недействительной или неисполнимой, она корректируется или исключается лишь в необходимой мере, а остальное продолжает действовать."
        ]
      },
      {
        "heading": "Связаться с нами",
        "paragraphs": [
          "Если у вас есть вопросы по этим Условиям, напишите нам на {{email}}."
        ]
      }
    ]
  },
  "changelogEntries": {
    "2026-10-12": {
      "title": "От скана к изучению: библиотека партий, игровой профиль, подготовка и инструменты для клубов",
      "items": [
        "Библиотека партий показывает каждую партию с источником, контролем времени, вашим цветом и дебютом. «Проанализировать все» ставит в очередь Stockfish для ещё не проанализированных партий, а анализ сохраняется вместе с каждой партией.",
        "Игровой профиль строится по вашим проанализированным партиям, а привязав имя пользователя Lichess или Chess.com, можно сравнить свою игру онлайн и за доской. Полный профиль — точность во времени, стадии партии, типы ошибок, дебюты и фильтры — входит в Pro.",
        "Дебютные репертуары (Pro): храните свои варианты и смотрите, где партия от них отклонилась.",
        "Подготовка к сопернику (Pro): введите имя пользователя соперника на Lichess или Chess.com, чтобы увидеть, что он играет, какой у него с этим результат и куда целиться.",
        "Объяснение позиции: на доске для анализа, в поиске лучшего хода и в любой партии ИИ-тренер объясняет, что происходит. Действует общее бесплатное объяснение в день; сохранённые позиции попадают в ваш блокнот.",
        "К отчётам о турнирах можно добавить итоги, написанные ИИ, а на Pro+ отчётом можно поделиться по публичной ссылке, которую можно отозвать в любой момент.",
        "Клубы на Pro+ получают список игроков и страницу для каждого ученика, а партии отсканированного тура можно привязать к игрокам за один шаг.",
        "Когда улучшается оценка ходов, ваши сохранённые анализы обновляются за ночь вместе с построенными на них тренировочными позициями."
      ]
    },
    "2026-10-11": {
      "title": "Ежедневная тренировка, бесплатное объяснение ИИ в день и отчёты о турнирах",
      "items": [
        "Одно объяснение ИИ-тренера в день теперь бесплатно для аккаунтов с подтверждённым e-mail; дальше — 1 кредит за партию.",
        "Скан сразу открывается в полном разборе партии, а анализ сохраняется вместе с партией, так что при повторном открытии движок не запускается заново.",
        "Ежедневная тренировка превращает позиции, где вы ошиблись, в короткие упражнения. Бесплатным аккаунтам доступно 15 в день, в Pro ограничений нет.",
        "Отчёты о турнирах (Pro) подводят итоги турнира одного игрока: точность и самая крупная ошибка в каждом туре, дебюты, повторяющиеся ошибки и что тренировать дальше. Их можно распечатать."
      ]
    },
    "2026-10-08": {
      "title": "Скриншоты распознаются в вашем браузере",
      "items": [
        "Поиск лучшего хода теперь распознаёт скриншоты и цифровые диаграммы прямо в вашем браузере: бесплатно, без аккаунта, ничего не загружается. Фотографии реальных досок по-прежнему отправляются на наш распознаватель — бесплатно для аккаунтов с подтверждённой почтой.",
        "Бланк, загруженный как изображение доски, или доска, загруженная как бланк, теперь распознаются до и после сканирования, так что кредиты не тратятся на распознавание не того типа."
      ]
    },
    "2026-10-05": {
      "title": "ИИ-тренер для ваших партий",
      "items": [
        "Разбор партии показывает, где наступил перелом, а ИИ-тренер простыми словами объясняет эти моменты: что произошло, что было лучше и почему — с опорой на варианты движка."
      ]
    },
    "2026-10-01": {
      "title": "Поиск лучшего хода, доска для анализа и Chess Wrapped",
      "items": [
        "Новый бесплатный инструмент: поиск лучшего хода. Вставьте FEN или войдите и загрузите скриншот или фото — Stockfish 18 назовёт лучший ход и три лучших варианта. Распознавание позиции по картинке бесплатно для вошедших пользователей и не списывает кредиты.",
        "Новый бесплатный инструмент: доска для анализа. Делайте ходы из любой позиции, а Stockfish оценивает каждую прямо в браузере; в конце скопируйте FEN или PGN.",
        "Новый бесплатный инструмент: Chess Wrapped. Введите имя пользователя Chess.com или Lichess и получите итоги года с карточкой, которую можно скачать или отправить."
      ]
    },
    "2026-09-15": {
      "title": "Тактики из партий, которые вы действительно играли",
      "items": [
        "После обзора Stockfish ScanChess вытаскивает форсированные удары, которые вы упустили — взятия, шахи и маты, которые были и не были сыграны — и даёт решить их на доске. Сохраните набор, чтобы вернуться позже. Позиции берутся из ваших партий, в том числе со сканированных бланков, а не из общей базы задач."
      ]
    },
    "2026-09-10": {
      "title": "Сайт на восьми языках, более зоркий взгляд на сомнительные ходы и жеребьёвка целого тура",
      "items": [
        "ScanChess теперь читается на испанском, немецком, французском, португальском, итальянском и русском — помимо английского и китайского. Выберите свой язык через глобус в шапке или в разделе «Язык» в настройках.",
        "Неверно прочитанный ход обычно всё равно остаётся возможным по правилам, поэтому одна лишь проверка правил его не ловила. Теперь распознавание дополнительно проверяет, не ведут ли фигуры себя так, как в настоящей партии не бывает — фигура стоит под боем даром, и никто её не берёт, — и соответствующие полуходы помечаются на проверку с указанием причины. Ничего не переписывается.",
        "Запись, которую люди действительно пишут, теперь понимается, а не отвергается: пешка с приставкой P, длинная алгебраическая вроде e2-e4, взятие с указанием взятой фигуры (СxК) и вертикаль берёт вертикаль (cxd).",
        "Если ход сомнителен, на этапе проверки предлагаются возможные по правилам ходы, ближе всего похожие на написанное, вместо открытого вопроса; ответ, из-за которого партию нельзя будет воспроизвести, отбрасывается, а не сохраняется.",
        "Пакетное распознавание освоило рабочий процесс судьи. Фотографии с именами вроде R3B7p2.jpg или разложенные по папкам «Тур 3 / Доска 7» группируются и расставляются сами, а список жеребьёвки — CSV, ростер в PGN или JSON, из любой программы — раскладывает каждую партию по нужным игрокам, рейтингам, туру и доске. Скачайте тур одним файлом PGN плюс CSV с тем, что ещё требует человеческого взгляда."
      ]
    },
    "2026-09-07": {
      "title": "Варианты на доске, заметки к партии и пакетный режим для целых туров",
      "items": [
        "Нажмите на вариант движка — и он разыграется на доске: проходите его ход за ходом, а при включённом движке доска показывает лучший ход стрелкой для той позиции, которую вы смотрите.",
        "Комментируйте партию: напишите заметку к любой позиции и сохраняйте побочные варианты — набранные вручную или взятые прямо из предпросмотра движка. Комментарии и варианты сохраняются вместе с партией, передаются по ссылкам и выгружаются внутри PGN.",
        "Распознаёте целый тур? Новая пакетная страница принимает стопку бланков разом, объединяет многостраничные листы в отдельные партии и раскладывает каждую партию в вашу библиотеку по отдельности."
      ]
    },
    "2026-09-06": {
      "title": "Анализ движком, названия дебютов и партии, принадлежащие обоим игрокам",
      "items": [
        "Stockfish работает в вашем браузере. Включите его под доской, чтобы видеть оценку и лучшие варианты, или разберите всю партию — каждая неточность, ошибка и грубая ошибка будут помечены, с показателем точности по каждой стороне. Ничего никуда не загружается.",
        "Каждая партия теперь называет свой дебют (код ECO и название по Lichess) в мастерской, на странице по ссылке, в библиотеке и в заголовке PGN.",
        "Бланки, записанные немецкими, испанскими, французскими, португальскими, нидерландскими, польскими, чешскими, венгерскими, русскими или китайскими буквами фигур, а также фигурная нотация, читаются как есть и переводятся в стандартный SAN.",
        "Один клик отправляет партию в Lichess и открывает её там. На странице по ссылке «Сохранить в мою библиотеку» кладёт копию в ваш собственный аккаунт.",
        "Библиотека сортируется по времени сохранения, дате партии или имени игрока и фильтруется по результату."
      ]
    },
    "2026-09-04": {
      "title": "Исправления по итогам сентябрьского разбора",
      "items": [
        "Загрузить бланк и сделать первое распознавание можно до подтверждения почты; подтверждение спрашивают со второго распознавания.",
        "Партия, которую вы ещё правите, переживает перезагрузку страницы: ходы и изображения возвращаются туда, где вы остановились.",
        "Ходы с низкой уверенностью снова помечаются, каждый с вариантами, которые допускают правила, и ход можно вставить или удалить, а не только перепечатать. Партию можно сохранить, пока правки ещё не закончены.",
        "Данные партии (игроки, турнир, дата, результат) редактируются после распознавания, а сохранённую партию можно выгрузить в PGN прямо из истории.",
        "Ссылки для обмена снова можно отключать, и отозванная ссылка перестаёт работать сразу.",
        "Исправлено: не открывалось меню на телефоне; сессии истекали посреди визита вместо тихого обновления; страница цен неверно описывала тарифы.",
        "Честные тексты: главная больше не намекает на безошибочный результат, страница «О нас» говорит, кто делает ScanChess и чего он не умеет, страницы инструментов загружаются быстрее и никогда не показывают пустую доску, а китайские статьи указывают настоящее время чтения."
      ]
    },
    "2026-08-23": {
      "title": "Ссылка, которую откроет ваш соперник",
      "items": [
        "У любой сохранённой партии может быть публичная ссылка. Кто её откроет, увидит доску, ходы и PGN без аккаунта.",
        "Распознавания, отклонённые из-за того, откуда пришёл запрос к ИИ, автоматически повторяются через маршрут в США, вместо того чтобы завершиться неудачей с возвратом кредитов."
      ]
    },
    "2026-08-19": {
      "title": "Больше никаких уверенных догадок",
      "items": [
        "Когда распознанная партия перестаёт складываться, ход, который её ломает, помечается, а остальное остаётся так, как написано. Автоматическое исправление отключено; правки делаете вы.",
        "Фотографии доски читаются дважды и сверяются, прежде чем позиция будет объявлена, а нечитаемое изображение теперь так и объявляется нечитаемым, а не превращается в правдоподобную позицию.",
        "Режим доски показывает настоящую демонстрацию «фото → позиция», а бесплатные инструменты помещаются в видимой части своих страниц."
      ]
    },
    "2026-08-17": {
      "title": "Бесплатные инструменты и Pro+",
      "items": [
        "Три инструмента без аккаунта: просмотрщик PGN, редактор доски, выдающий FEN, и проверщик PGN, находящий ход, который ломает партию.",
        "Pro+ ($19.99 в месяц или $119.99 в год) добавляет 500 кредитов каждые 30 дней для клубов и тренеров, которые распознают много. Веб-подписчики могут переходить между Pro и Pro+.",
        "Повторное распознавание той же фотографии больше не списывается дважды: прежний результат возвращается бесплатно.",
        "Письмо о завершении распознавания вернулось, а API теперь работает на Cloudflare, ближе к вам."
      ]
    },
    "2026-08-12": {
      "title": "Аккаунты, оплата и согласие",
      "items": [
        "Страница настроек: тариф и кредиты, отображаемое имя, пароль, реферальный код, язык, история платежей и одна кнопка, которая скачивает все сохранённые партии.",
        "Подписку можно отменить на странице цен в два клика. Отмена останавливает следующее списание; Pro и ваши кредиты действуют до конца оплаченного периода.",
        "Аналитика теперь спрашивает заранее. Google Analytics и Microsoft Clarity не загружаются, пока вы не согласитесь, и выбор в любой момент меняется в настройках.",
        "Страница цен, которая показывает, во что реально обходится распознавание, политика возврата, страница контактов и страница о безопасности.",
        "Первые переводы руководств на китайский и ссылка на язык в каждой статье, у которой он есть."
      ]
    },
    "2026-08-11": {
      "title": "Оплата в вебе",
      "items": [
        "Pro теперь можно купить на сайте. Оплату проводит Waffo, наш продавец-оператор.",
        "Бланки, где номер приписан к ходу — «1.d4» слитно, — больше не ломают остаток распознавания."
      ]
    },
    "2026-08-10": {
      "title": "Удалите аккаунт сами",
      "items": [
        "Удаление аккаунта переехало из писем на страницу: /delete-account навсегда удаляет ваш профиль, партии и загруженные изображения.",
        "Почта от ScanChess теперь идёт через Cloudflare, и это починило письма с подтверждением, попадавшие в спам."
      ]
    }
  },
  "toolCopy": {
    "pgn-viewer": {
      "name": "Просмотрщик PGN",
      "seoTitle": "Просмотр PGN онлайн – открыть и проиграть PGN-файл бесплатно",
      "seoDescription": "Вставьте или загрузите файл PGN и проиграйте партию ход за ходом. Бесплатный просмотрщик с управлением с клавиатуры, экспортом FEN и ссылками для обмена.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Просмотрщик PGN онлайн",
      "tagline": "Вставьте PGN, проиграйте партию ход за ходом, скопируйте любую позицию как FEN.",
      "intro": "Вставьте PGN или откройте файл .pgn, чтобы пройти партию на интерактивной доске. Любую позицию можно скопировать как FEN, открыть в редакторе доски или передать ссылкой. Всё работает в вашем браузере — ничего не загружается на сервер.",
      "features": [
        {
          "title": "Файлы с несколькими партиями",
          "body": "Загрузите турнирный файл с десятками партий и переключайтесь между ними по списку."
        },
        {
          "title": "Касание или клавиатура",
          "body": "Коснитесь любого хода, чтобы перейти к нему. На компьютере ← → проходят партию, а Home/End переносят к началу или к финальной позиции."
        },
        {
          "title": "Инструменты позиции",
          "body": "Скопируйте FEN любой позиции, откройте её в редакторе доски или разберите на Lichess одним щелчком."
        },
        {
          "title": "Снисходительный разбор",
          "body": "Комментарии, варианты, NAG и даже сокращения с бланка вроде 0-0 или dc понимаются. Невозможные ходы помечаются, а не отбрасываются молча."
        }
      ],
      "howToTitle": "Как пользоваться просмотрщиком PGN",
      "howTo": [
        "Вставьте текст PGN в поле или выберите файл .pgn кнопкой «Выбрать файл» — на компьютере его можно ещё и перетащить на поле.",
        "Нажмите «Загрузить». На доске появится начальная позиция; список ходов на широком экране будет рядом, а на телефоне — снизу.",
        "Коснитесь любого хода, чтобы перейти к этой позиции; на компьютере работают и стрелки.",
        "Кнопки «Копировать FEN», «Открыть в редакторе» и «Поделиться» помогут унести позицию в другое место."
      ],
      "faq": [
        {
          "question": "Что такое файл PGN?",
          "answer": "PGN (Portable Game Notation) — стандартный текстовый формат записи шахматных партий. В нём есть заголовок с полями вроде Event, White, Black и Result, а следом идут ходы в алгебраической нотации. Chess.com, Lichess и любая шахматная база умеют импортировать и экспортировать PGN."
        },
        {
          "question": "Мой PGN отправляется на сервер?",
          "answer": "Нет. Просмотрщик разбирает и проигрывает партию целиком в вашем браузере. Ничего из того, что вы сюда вставляете или открываете, не покидает устройство."
        },
        {
          "question": "Можно посмотреть PGN с несколькими партиями?",
          "answer": "Да. Если в файле больше одной партии, над доской появится переключатель."
        },
        {
          "question": "А если в PGN есть невозможный ход?",
          "answer": "Просмотрщик проигрывает все допустимые ходы до проблемы и подсвечивает тот, который выполнить не смог. Проверщик PGN покажет допустимые варианты и выдаст очищенный файл."
        },
        {
          "question": "Как получить PGN с бумажного бланка?",
          "answer": "Сфотографируйте бланк и пропустите через ScanChess. ИИ прочитает почерк, проверит ходы и выдаст PGN, который можно скачать и открыть здесь."
        },
        {
          "question": "Чем это отличается от просмотра PGN на Lichess или Chess.com?",
          "answer": "Оба сайта показывают партию, только когда она импортирована в аккаунт или в студию. Этому просмотрщику не нужен ни аккаунт, ни импорт, партия остаётся на вашем устройстве, а код для вставки позволяет показать партию на вашем собственном сайте."
        }
      ],
      "cta": {
        "title": "У вас вместо этого рукописный бланк?",
        "body": "ScanChess за секунды превращает фотографию бланка в проверенный PGN. Новые аккаунты получают бесплатные кредиты — карта не нужна.",
        "button": "Распознать бланк"
      }
    },
    "board-editor": {
      "name": "Редактор доски и генератор FEN",
      "seoTitle": "Редактор шахматной доски и генератор FEN – бесплатно онлайн",
      "seoDescription": "Бесплатный редактор шахматной доски: расставьте фигуры касанием или перетаскиванием, сразу получите FEN, скачайте PNG или откройте анализ.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Редактор доски и генератор FEN",
      "tagline": "Ставьте фигуры на доску — FEN обновляется на ходу.",
      "intro": "Составьте любую позицию, коснувшись фигуры и затем поля, или перетаскивая фигуры на доску. FEN обновляется на ходу, его можно скопировать, передать ссылкой, сохранить как изображение или разобрать на Lichess. Вставьте готовый FEN, чтобы его отредактировать.",
      "features": [
        {
          "title": "FEN в реальном времени",
          "body": "Строка FEN меняется при каждом изменении, а поле вставки позволяет загрузить готовую для начала работы."
        },
        {
          "title": "Проверка позиции",
          "body": "Права на рокировку, очередь хода и взятие на проходе задаются на панели; инструмент предупреждает, если позиция неигровая."
        },
        {
          "title": "Доска в картинку",
          "body": "Скачайте диаграмму чётким PNG для блога, раздаточного листа или поста."
        },
        {
          "title": "Удобно на сенсоре",
          "body": "Коснитесь фигуры в лотке, затем коснитесь полей, чтобы её поставить. Ластик очищает поля."
        }
      ],
      "howToTitle": "Как пользоваться редактором доски",
      "howTo": [
        "Начните с начальной позиции, с пустой доски или вставьте FEN.",
        "Коснитесь фигуры в лотке, затем поля, чтобы её поставить, — на компьютере её можно перетащить. Чтобы убрать, коснитесь ластика или стяните фигуру с доски.",
        "Выберите на панели очередь хода и права на рокировку.",
        "Скопируйте FEN, скачайте PNG, поделитесь ссылкой или откройте позицию для анализа."
      ],
      "faq": [
        {
          "question": "Что такое FEN?",
          "answer": "FEN (нотация Форсайта-Эдвардса) описывает шахматную позицию одной строкой: расстановка по горизонталям, очередь хода, права на рокировку, поле взятия на проходе, счётчик полуходов и номер хода. Движки, базы и сайты обмениваются позициями именно так."
        },
        {
          "question": "Почему инструмент говорит, что моя позиция неигровая?",
          "answer": "В допустимой позиции у каждой стороны ровно один король, на первой и восьмой горизонтали нет пешек, а сторона, которая не ходит, не должна стоять под шахом. FEN всё равно можно скопировать, но движки и доски анализа могут его не принять."
        },
        {
          "question": "Можно получить FEN с фотографии настоящей доски?",
          "answer": "Да — в ScanChess есть распознавание фотографий доски: снимок физической доски или экрана превращается в FEN, который затем можно доработать здесь."
        },
        {
          "question": "Как определить по FEN, есть ли мат?",
          "answer": "Вставьте FEN в этот редактор доски. Если позиция корректна, в строке состояния под доской отобразится шах, мат или пат для стороны, чей ход. В самом FEN нет отдельного поля «мат» — статус определяется положением фигур и очередью хода."
        },
        {
          "question": "Как превратить FEN в изображение?",
          "answer": "Вставьте FEN в редактор и нажмите «Скачать PNG». Изображение рисуется локально в высоком разрешении, с координатами. Для дополнительных настроек экспорта откройте тот же FEN в инструменте «FEN в картинку»."
        },
        {
          "question": "Чем это отличается от редактора доски на Lichess?",
          "answer": "Редактор Lichess бесплатный и хороший. Этот к тому же объясняет, почему позицию нельзя сыграть — например, пешка на крайней горизонтали или оба короля под шахом, — экспортирует доску как диаграмму PNG и может начать со скриншота, а не с пустой доски."
        }
      ],
      "cta": {
        "title": "Сфотографируйте настоящую доску",
        "body": "ScanChess читает фотографию физической доски и выдаёт FEN, готовый к правке здесь или к анализу. Бесплатные кредиты при регистрации.",
        "button": "Распознать фото доски"
      }
    },
    "pgn-validator": {
      "name": "Проверщик и чистильщик PGN",
      "seoTitle": "Валидатор PGN – проверить и исправить шахматный PGN онлайн",
      "seoDescription": "Вставьте шахматную запись, чтобы проверить допустимость каждого хода, найти точную ошибку и скачать чистый PGN по стандарту. Бесплатно, сразу, без входа.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Проверщик и чистильщик PGN",
      "tagline": "Найдите первый ход, который не проходит, и получите обратно чистый PGN с семью полями.",
      "intro": "Вставьте PGN или просто список ходов. Проверщик разыгрывает их на настоящей доске, указывает на первый ход, который не проходит, перечисляет допустимые варианты и затем переписывает партию как чистый PGN с семью полями. Сокращения вроде 0-0, dc или e8Ф приводятся к стандарту автоматически.",
      "features": [
        {
          "title": "Точное место ошибки",
          "body": "Видны номер хода, не прошедший фрагмент записи и все допустимые ходы в этой позиции."
        },
        {
          "title": "Чистка записи",
          "body": "Рокировка нулями, пропущенные знаки шаха, фигуры строчными буквами и сокращения превращения приводятся к стандартной SAN."
        },
        {
          "title": "Стандартный вывод",
          "body": "На выходе — PGN с семью обязательными полями, с переносом на 80 символов, который принимают Chess.com, Lichess и ChessBase."
        },
        {
          "title": "Ничего не покидает браузер",
          "body": "Проверка идёт локально с помощью chess.js. Вставляйте турнирные партии, не беспокоясь о приватности."
        }
      ],
      "howToTitle": "Как проверить PGN",
      "howTo": [
        "Вставьте PGN или только ходы в поле.",
        "Нажмите «Проверить». Зелёный означает, что все ходы допустимы; красный указывает на первую проблему.",
        "Исправьте ход в источнике (или в просмотрщике PGN) и проверьте ещё раз.",
        "Скопируйте или скачайте очищенный PGN."
      ],
      "faq": [
        {
          "question": "Что именно проверяется?",
          "answer": "Разбираются поля заголовка, убираются комментарии и варианты, а затем каждый ход разыгрывается на доске, которая применяет правила шахмат. Любой невозможный, двусмысленный или неверно записанный ход сообщается вместе с номером и списком допустимых ходов в этой позиции."
        },
        {
          "question": "Исправляет ли он ошибки сам?",
          "answer": "Ошибки записи — да: 0-0 вместо O-O, dc вместо dxc5, e8Ф вместо e8=Ф, пропущенные + и #. Что имелось в виду под по-настоящему невозможным ходом, угадать нельзя; поэтому показываются допустимые варианты, а выбор за вами."
        },
        {
          "question": "Можно вставить ходы без заголовка?",
          "answer": "Да. Достаточно простого списка вроде «1. e4 e5 2. Kf3 Kc6». В очищенном выводе добавятся пустые заголовки, которые вы заполните."
        },
        {
          "question": "Почему рукописные бланки дают недопустимый PGN?",
          "answer": "Игроки пропускают ход, пишут не ту вертикаль или забывают отметить взятие. Если вы перепечатываете бланк, ScanChess может прочитать фотографию, применить ту же проверку и дать вам исправить ходы на доске."
        }
      ],
      "cta": {
        "title": "Перепечатываете бланки вручную?",
        "body": "Не печатайте. ScanChess читает рукописные бланки, проверяет каждый ход так же и позволяет исправить ошибки на доске. Бесплатные кредиты при регистрации.",
        "button": "Распознать бланк"
      }
    },
    "printable-scoresheets": {
      "name": "Генератор бланков для печати",
      "seoTitle": "Шахматный бланк для печати в PDF – бесплатные бланки записи",
      "seoDescription": "Печатайте бесплатные шахматные бланки для записи партий в PDF: турнирный на 60 ходов, классический на 80 ходов и детский с крупной сеткой.",
      "kicker": "Бесплатный PDF · A4 и US Letter",
      "h1": "Шахматные бланки для печати",
      "tagline": "Выберите макет, впишите данные турнира и напечатайте или сохраните PDF.",
      "intro": "Шахматный бланк (его еще называют бланком записи партии или бланком нотации, а сшитые бланки — тетрадью для записи партий) — это лист, на котором оба игрока записывают каждый ход турнирной партии. Выберите один из четырех макетов: бланк на 60 ходов в двухколоночном турнирном формате, бланк на 80 ходов для длинных классических партий, бланк на 40 ходов с крупными строками для детей и начинающих и лист для рапида, на котором помещаются две партии по 30 ходов. Впишите турнир, тур и клуб, проверьте предпросмотр и напечатайте бланк или сохраните его в PDF. Когда партия закончится, ScanChess достаточно фотографии заполненного бланка, чтобы превратить его в PGN.",
      "features": [
        {
          "title": "Четыре макета",
          "body": "60 ходов для клубных и турнирных партий, 80 ходов для классического контроля, 40 крупных строк для детей и две партии по 30 ходов на одном листе для турниров по рапиду."
        },
        {
          "title": "Данные турнира прямо на бланке",
          "body": "Впишите турнир, дату, тур, доску, игроков и клуб до печати или оставьте любое поле пустым, чтобы игроки заполнили его от руки."
        },
        {
          "title": "Четкая печать на A4 и US Letter",
          "body": "Бланки отрисованы в векторе в черно-белом цвете, поэтому линии и номера ходов остаются четкими на любом офисном принтере, а тонер расходуется экономно."
        },
        {
          "title": "Удобно распознавать после партии",
          "body": "Ходы белых и черных записываются в отдельные пронумерованные колонки — именно такой макет сканер бланков читает надежнее всего."
        }
      ],
      "howToTitle": "Как напечатать шахматный бланк",
      "howTo": [
        "Выберите макет: 60 ходов, 80 ходов, 40 ходов для детей или две партии рапида на одном листе.",
        "При желании впишите турнир, тур, клуб или фамилии игроков, чтобы они напечатались на каждом бланке.",
        "Нажмите «Печать бланка» и напечатайте его или выберите «Сохранить как PDF» в диалоге печати, чтобы сохранить файл.",
        "После партии сфотографируйте заполненный бланк, и ScanChess превратит рукописную запись в PGN."
      ],
      "faq": [
        {
          "question": "Что такое бланк нотации в шахматах?",
          "answer": "Это то же самое, что шахматный бланк: лист с пронумерованными строками, где оба игрока записывают каждый ход алгебраической нотацией, плюс графы для турнира, тура, игроков и результата. Тетрадь для записи партий — это просто много таких бланков, сшитых вместе."
        },
        {
          "question": "Соответствуют ли бланки правилам ФИДЕ?",
          "answer": "Бланки на 60 и 80 ходов сделаны по привычному турнирному образцу: шапка с графами для белых, черных, турнира, даты, тура, доски и результата, пронумерованные строки ходов с колонками белых и черных и строки для подписей обоих игроков. Судья конкретного турнира все равно может потребовать его официальный бланк."
        },
        {
          "question": "Как заполнять шахматный бланк?",
          "answer": "Номер хода пишется один раз в строке, ход белых — в левой колонке, ход черных — в правой, алгебраической нотацией, например Nf3 или exd5. По правилам ФИДЕ сначала делается ход на доске, а затем он записывается. В нашем руководстве по заполнению бланка разобран полный пример."
        },
        {
          "question": "Как сохранить бланк в PDF?",
          "answer": "Нажмите «Печать бланка» (или Ctrl+P / Cmd+P) и выберите в качестве назначения «Сохранить как PDF» вместо принтера."
        },
        {
          "question": "Какой формат бумаги выбрать?",
          "answer": "Выберите в настройке бумаги A4 (210 × 297 мм) или US Letter (8,5 × 11 дюймов). Оба формата печатаются со стандартными полями."
        },
        {
          "question": "Как превратить заполненный бланк в PGN?",
          "answer": "Сделайте четкую ровную фотографию бланка и загрузите ее в ScanChess. Сервис прочитает почерк, проиграет каждый ход на доске, чтобы проверить его легальность, и позволит все исправить, прежде чем вы скачаете PGN."
        }
      ],
      "cta": {
        "title": "Бланк уже заполнен?",
        "body": "Не набирайте ходы вручную. ScanChess читает рукописные ходы, сверяет каждый с правилами и выдает PGN, который можно проиграть или импортировать в Lichess.",
        "button": "Распознать бланк"
      }
    },
    "game-analysis": {
      "name": "Разбор партии",
      "seoTitle": "Бесплатный анализ шахматной партии – Stockfish в браузере",
      "seoDescription": "Вставьте PGN — Stockfish разберёт партию: точность обеих сторон, неточности, ошибки и зевки, и лучший ход в каждой позиции. Бесплатно, без регистрации.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Бесплатный разбор шахматной партии",
      "tagline": "Вставьте партию и получите разбор каждого хода от Stockfish без входа в аккаунт.",
      "intro": "Загрузите PGN — Stockfish работает в этой вкладке, а не на сервере. Включите движок, разберите всю партию, и список ходов заполнится приговором по каждому: показатель точности для каждой стороны и отметка на каждой неточности, ошибке и грубой ошибке. Пройдите любую позицию, чтобы увидеть варианты движка и ход, который он предпочитал.",
      "features": [
        {
          "title": "Движок работает на вашем устройстве",
          "body": "Stockfish 18 скачивается один раз и считает в вашем браузере. Ваши партии никуда не уходят, очереди нет, дневного лимита тоже."
        },
        {
          "title": "Приговор каждому ходу",
          "body": "Полный разбор проходит каждую позицию и сравнивает сыгранный ход с тем, который хотел движок, — в шансах на победу, а не в сырых сантипешках."
        },
        {
          "title": "Точность обеих сторон",
          "body": "Каждая сторона получает один показатель точности и счёт неточностей, ошибок и грубых ошибок, чтобы разбору было с чего начать."
        },
        {
          "title": "Варианты, в которые можно войти",
          "body": "Любой предложенный движком вариант можно разыграть на доске и пройти ход за ходом, а затем сбросить и вернуться к партии."
        }
      ],
      "howToTitle": "Как разобрать партию",
      "howTo": [
        "Вставьте PGN в поле или откройте файл .pgn. Пример партии загружается одним касанием, если хочется просто посмотреть, как это работает.",
        "Переведите переключатель «Включить движок». Движок весит около семи мегабайт и скачивается один раз, поэтому первый запуск занимает время.",
        "Нажмите «Разобрать всю партию». Прогресс идёт по списку ходов по мере расчёта каждой позиции.",
        "Коснитесь любого хода, чтобы увидеть приговор, предпочтительный ход движка и варианты из этой позиции."
      ],
      "faq": [
        {
          "question": "Разбор правда бесплатный и без аккаунта?",
          "answer": "Да. Движок работает в вашем браузере, поэтому считать нечего. Ни регистрации, ни кредитов, ни дневного предела на число разобранных партий."
        },
        {
          "question": "Какой это движок и насколько силён разбор?",
          "answer": "Stockfish 18, облегчённая однопоточная сборка на WebAssembly. Полный разбор даёт каждой позиции одинаковый фиксированный объём расчёта с чистого листа, поэтому одна и та же партия всегда получает одни и те же оценки, а каждый ход, который вот-вот будет отмечен как ошибка или грубая ошибка, перед показом пересчитывается глубже. На отдельной позиции расчёт идёт ещё глубже. Для серьёзной дебютной подготовки настольный движок с минутами на ход всегда увидит дальше."
        },
        {
          "question": "Моя партия загружается куда-то?",
          "answer": "Нет. PGN разбирается на странице, а движок считает на вашем процессоре. Ничего из партии не покидает устройство."
        },
        {
          "question": "Что означают показатели точности?",
          "answer": "Каждый ход оценивается по тому, сколько шансов на победу он отдал по сравнению с выбором движка, а показатель точности — среднее по ходам стороны. Это сводка, а не рейтинг: спокойная партия с малым числом решений наберёт больше, чем острая, сыгранная не хуже."
        },
        {
          "question": "Почему первый разбор медленный?",
          "answer": "Движок на WebAssembly нужно сначала скачать. Дальше он лежит в кэше, и следующие визиты начинаются сразу."
        },
        {
          "question": "Чем это отличается от «Обзора партии» на Chess.com или анализа на Lichess?",
          "answer": "Chess.com ограничивает число полных обзоров партий для бесплатного аккаунта, а Lichess анализирует партию только после того, как она импортирована на сайт. Этому инструменту не нужен ни аккаунт, ни импорт: вставьте любой PGN, в том числе отсканированный с бумажного бланка, и Stockfish разберёт партию в вашем браузере без дневного лимита."
        },
        {
          "question": "Как разобрать партию, сыгранную на бумаге?",
          "answer": "Сфотографируйте бланк и пропустите его сперва через распознавание ScanChess. Оно прочитает почерк, сверит каждый ход с правилами и выдаст PGN, который можно вставить прямо сюда."
        }
      ],
      "cta": {
        "title": "Партия, которую вы хотите разобрать, — на бумаге",
        "body": "ScanChess превращает сфотографированный бланк в проверенный PGN, готовый к разбору. Новые аккаунты начинают с бесплатных кредитов.",
        "button": "Распознать бланк"
      }
    },
    "missed-tactics": {
      "name": "Упущенные тактики",
      "seoTitle": "Упущенные тактики из ваших шахматных партий",
      "seoDescription": "Проанализируйте PGN и потренируйте взятия, шахи и маты, которые вы упустили в своих отсканированных партиях, а не в общей базе задач. Бесплатно.",
      "kicker": "Бесплатный инструмент · Без аккаунта",
      "h1": "Упущенные тактики из ваших партий",
      "tagline": "Превратите удары, которые ускользнули за доской, в задачи на завтра.",
      "intro": "Общий тактический тренажёр работает чужие комбинации. Этот — ваши. Загрузите PGN — вставьте или сначала отсканируйте бланк —, запустите тот же обзор Stockfish, что и в анализе, и ScanChess оставит только промахи, которые были тактикой: взятие, шах, мат или превращение, которое движок хотел, а вы не сыграли. Тихие позиционные ошибки остаются снаружи. Сохраните набор в этом браузере, чтобы вернуться завтра.",
      "features": [
        {
          "title": "С вашего бланка, не из базы",
          "body": "Позиции — те, что вы играли. Отсканируйте бумагу, разберите партию, и упущенные форсированные удары станут набором. Lichess этого не умеет: он никогда не видел лист."
        },
        {
          "title": "Только форсированные ходы",
          "body": "Потеря 20 пунктов, где лучше было тихо отойти королём, — не задача. Фильтр оставляет взятия, шахи, маты и превращения и отбрасывает почти дублирующиеся обвалы, чтобы проигранная партия не вывалила одну и ту же кучу дважды."
        },
        {
          "title": "Решайте на доске",
          "body": "Сыграйте первый ход решения; ответ соперника из линии движка появится сам. Две ошибки открывают ответ, а ход из партии показывается только после."
        },
        {
          "title": "Сохранено на этом устройстве",
          "body": "Оставьте набор на потом. Ничего не загружается; список живёт в этом браузере, пока вы его не очистите."
        }
      ],
      "howToTitle": "Как тренировать упущенные тактики",
      "howTo": [
        "Вставьте PGN или сначала отсканируйте бланк и экспортируйте партию сюда.",
        "Нажмите «Найти мои упущенные тактики». Движок включится сам, и Stockfish разберёт каждую позицию в этой вкладке; в первый раз скачивается около семи мегабайт.",
        "Результат появится прямо под кнопкой: решайте форсированные удары на доске или сохраните их и вернитесь завтра.",
        "На каждой позиции найдите упущенный ход. Линия идёт, пока удар не завершён."
      ],
      "faq": [
        {
          "question": "Это тактический тренажёр как на Lichess?",
          "answer": "Нет. Общей базы задач нет. Каждая позиция из партии, которую вы загружаете — обычно сыгранной за доской и отсканированной с бланка."
        },
        {
          "question": "Какие ошибки становятся задачами?",
          "answer": "Ошибки и зевки, чей ход движка — взятие, шах, мат или превращение. Тихие неточности и книжные ходы не берутся, а из двух ударов через один-два полухода у одной стороны остаётся больший."
        },
        {
          "question": "Нужен аккаунт?",
          "answer": "Нет. Движок работает в браузере, сохранённые тактики остаются в этом браузере. Войдите, только если хотите отсканированные партии в библиотеку."
        },
        {
          "question": "Как получить PGN с бумажного бланка?",
          "answer": "Сфотографируйте бланк и прогоните через ScanChess. Когда ходы проверены, разберите партию здесь, и упущенные удары станут набором."
        },
        {
          "question": "Почему зевок, который я помню, не стал задачей?",
          "answer": "Если лучший ход был тихим улучшением — отходом, профилактическим ходом короля — это не тактика. Обзор всё равно пометит его в списке; этот тренажёр только для ударов."
        }
      ],
      "cta": {
        "title": "Упущенные удары всё ещё на бумаге",
        "body": "Отсканируйте бланк, разберите партию и потренируйте тактики, которые реально стоили очка. Новые аккаунты начинают с бесплатных кредитов.",
        "button": "Сканировать бланк"
      }
    },
    "rating-calculator": {
      "name": "Калькулятор рейтинга ФИДЕ",
      "seoTitle": "Калькулятор рейтинга ФИДЕ – изменение Эло и перформанс",
      "seoDescription": "Введите свой рейтинг и рейтинги соперников и узнайте изменение по правилам ФИДЕ: таблица 8.1.2, коэффициент K и поправка 2025 года выше 2650.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Калькулятор рейтинга ФИДЕ",
      "tagline": "Ваш рейтинг, ваши соперники и изменение, которое действительно показал бы список.",
      "intro": "Введите опубликованный рейтинг, добавьте по строке на партию с рейтингом соперника и результатом, и калькулятор пройдёт по Положению о рейтингах ФИДЕ так, как оно написано: ожидаемый результат каждой партии берётся из таблицы 8.1.2, коэффициент развития следует правилам статьи 8.3.3, а итог округляется по статье 8.3.4. Он также даёт перформанс турнира.",
      "features": [
        {
          "title": "Официальная таблица, а не формула",
          "body": "ФИДЕ переводит разницу рейтингов в ожидаемый результат по таблице, ступени которой округлены до двух знаков. Калькуляторы на логистической кривой расходятся с ней на пункт и больше за длинный турнир."
        },
        {
          "title": "Правило 2650",
          "body": "В стандартном списке с 1 октября 2025 года предел в 400 пунктов на разницу рейтингов действует только ниже 2650. Выше берётся настоящий разрыв, и это меняет цену ничьей с куда более слабым соперником. В рапиде и блице предел сохраняется для всех."
        },
        {
          "title": "Все случаи коэффициента K",
          "body": "Сорок, пока вы играете первые тридцать партий, сорок для юниоров ниже 2300, десять после достижения 2400, двадцать в остальных случаях — и потолок, удерживающий K, умноженный на число партий, в пределах 700."
        },
        {
          "title": "И перформанс тоже",
          "body": "Средний рейтинг соперников плюс разница рейтингов для вашей доли очков по таблице 8.1.1 — то число, которое печатают турнирные отчёты."
        }
      ],
      "howToTitle": "Как рассчитать изменение рейтинга",
      "howTo": [
        "Введите рейтинг, с которым вы опубликованы. Если вы ещё играете первые тридцать рейтинговых партий или вы юниор, поставьте соответствующую отметку.",
        "Добавьте по строке на партию: рейтинг соперника и результат — победа, ничья или поражение.",
        "Смотрите ожидаемый результат рядом с каждой строкой; число в скобках — разница рейтингов, реально применённая после ограничения.",
        "На панели видны новый рейтинг, изменение и перформанс турнира."
      ],
      "faq": [
        {
          "question": "Как ФИДЕ считает изменение рейтинга?",
          "answer": "Для каждой партии берётся разница рейтингов, из таблицы 8.1.2 читается ожидаемый результат и вычитается из фактически набранного. Эти разности складываются по всему турниру и умножаются на ваш коэффициент развития K. Итог округляется до целого, причём половина округляется от нуля."
        },
        {
          "question": "Какой коэффициент K применяется ко мне?",
          "answer": "K равен 40, пока вы играете турниры, в сумме составляющие первые 30 рейтинговых партий, и 40 для игрока до конца года его 18-летия, пока рейтинг ниже 2300. Он равен 10, как только опубликованный рейтинг достиг 2400, и остаётся таким, даже если рейтинг потом упадёт. В остальных случаях — 20."
        },
        {
          "question": "Почему разница ограничена 400 пунктами?",
          "answer": "Чтобы один результат против намного более слабого или намного более сильного соперника не сдвигал рейтинг слишком далеко. С 1 октября 2025 года ограничение действует только для игроков ниже 2650; начиная с 2650 всегда берётся настоящая разница."
        },
        {
          "question": "Работает ли это для рейтингов рапида и блица?",
          "answer": "Да, если выбрать список рапида или блица. В положении ФИДЕ о рейтинге рапида и блица та же таблица вероятностей и те же правила K, что и в стандартном списке (K = 40, 20 или 10 при тех же условиях). Отличий два: предел в 400 пунктов действует для всех игроков, без исключения для 2650, и с 1 декабря 2024 года партия не обсчитывается, если разница 600 пунктов или больше и у одного из игроков рейтинг выше 2600. Переключатель учитывает оба."
        },
        {
          "question": "Это официальный инструмент ФИДЕ?",
          "answer": "Нет. Он реализует опубликованное Положение о рейтингах ФИДЕ, но истина — сам рейтинг-лист. Ваша федерация может дополнительно обсчитывать тот же турнир в национальном списке по другим правилам."
        },
        {
          "question": "Где взять рейтинги соперников?",
          "answer": "В листе жеребьёвки или в опубликованном стартовом списке турнира — именно эти рейтинги идут в расчёт, а не те, что будут у соперника к моменту публикации списка."
        },
        {
          "question": "Можно ли использовать его для рейтинга Chess.com или Lichess?",
          "answer": "Только как грубый ориентир. Chess.com использует систему Glicko, а Lichess — Glicko-2, где изменение зависит ещё и от того, насколько устоялся рейтинг каждого игрока, поэтому один и тот же результат меняет онлайн-рейтинг на другую величину. Этот калькулятор следует правилам Elo ФИДЕ для рейтинга партий за доской."
        }
      ],
      "cta": {
        "title": "Бланки того турнира всё ещё лежат в сумке",
        "body": "ScanChess превращает сфотографированный бланк в проверенный PGN, чтобы партии за этим изменением рейтинга можно было искать, а не хранить стопкой в ящике.",
        "button": "Распознать бланк"
      }
    },
    "fen-to-image": {
      "name": "FEN в изображение",
      "seoTitle": "FEN в изображение – бесплатный генератор диаграмм (PNG, SVG)",
      "seoDescription": "Превратите FEN в изображение доски: размер, цвет полей и разворот, затем PNG или векторный SVG. Бесплатно, без регистрации, без загрузки.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "FEN в изображение",
      "tagline": "Вставьте FEN и получите диаграмму доски для скачивания в PNG или SVG.",
      "intro": "Вставьте FEN, и позиция будет нарисована доской, которую можно скачать. Выберите размер до 1600 пикселей, цвет полей, разверните доску или уберите координаты, а затем возьмите PNG для поста или SVG, который остаётся чётким при любом размере. Доска рисуется векторными фигурами прямо на странице, поэтому в файле нет внешних изображений и для его создания ничего не загружается.",
      "features": [
        {
          "title": "PNG или векторный SVG",
          "body": "PNG туда, где нужна картинка; SVG для печати, слайдов и всего, что потом будут масштабировать."
        },
        {
          "title": "Размеры до 1600 пикселей",
          "body": "Достаточно мало для сообщения на форуме и достаточно велико для печатной страницы или раздаточного листа."
        },
        {
          "title": "Пять цветов доски",
          "body": "Классический коричневый, турнирный зелёный, синий, орех и сланец, с координатами, которые можно выключить."
        },
        {
          "title": "Любая позиция, не только допустимая",
          "body": "Фрагмент этюда без королей или задача с фигурами на половине доски рисуются точно так же. Нужно только поле расстановки."
        }
      ],
      "howToTitle": "Как превратить FEN в изображение",
      "howTo": [
        "Вставьте FEN в поле. Для картинки используется только первое поле — расстановка фигур.",
        "Выберите размер, цвет доски и то, чья сторона внизу.",
        "Скачайте PNG или возьмите SVG, если диаграмму будут печатать или масштабировать.",
        "Нужно сначала изменить позицию? Откройте её в редакторе доски, передвиньте фигуры и вернитесь."
      ],
      "faq": [
        {
          "question": "Что такое FEN?",
          "answer": "FEN (нотация Форсайта-Эдвардса) — одна строка текста, описывающая шахматную позицию: где стоят фигуры, чей ход, права на рокировку, поле взятия на проходе и два счётчика ходов. Так отдельная позиция путешествует между программами, как PGN несёт целую партию."
        },
        {
          "question": "Что скачивать — PNG или SVG?",
          "answer": "PNG, если это идёт в пост, в переписку или в документ, которому нужна картинка. SVG, если это будут печатать, проецировать или увеличивать, потому что вектор остаётся чётким при любом размере."
        },
        {
          "question": "Загружается ли изображение и есть ли водяной знак?",
          "answer": "Ни того, ни другого. Доска рисуется в вашем браузере, файл пишется на вашем устройстве. Водяного знака нет, требования об указании авторства тоже."
        },
        {
          "question": "Можно использовать эти диаграммы в книге или курсе?",
          "answer": "Да. Фигуры взяты из нашего собственного векторного набора, на изображениях нет ограничений, так что они годятся для занятий, статей и печатных материалов."
        },
        {
          "question": "Как получить FEN с фотографии доски?",
          "answer": "Сфотографируйте позицию и дайте распознавателю досок ScanChess её разобрать. Он вернёт FEN, который можно вставить сюда и получить аккуратную диаграмму."
        }
      ],
      "cta": {
        "title": "Позиция стоит на настоящей доске перед вами",
        "body": "Сфотографируйте её, и ScanChess прочитает позицию в FEN. Распознавание одной доски стоит один кредит.",
        "button": "Распознать доску"
      }
    },
    "pgn-to-gif": {
      "name": "PGN в GIF",
      "seoTitle": "PGN в GIF – бесплатная анимация шахматной партии онлайн",
      "seoDescription": "Вставьте PGN и скачайте партию анимированным GIF: размер, скорость, цвета доски и диапазон ходов. Бесплатно, без регистрации, прямо в браузере.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Создание шахматных GIF",
      "tagline": "Превратите PGN в анимированный GIF, который можно выложить где угодно.",
      "intro": "Загрузите партию — инструмент нарисует каждую позицию, соберёт их в анимированный GIF и отдаст вам файл. Выберите размер и скорость, цвета доски, подсветите поля, которых касался каждый ход, и обрежьте анимацию до той части партии, которую стоит показать. Кадры рисуются, а GIF кодируется прямо на этой странице, поэтому партия никогда не покидает устройство, чтобы стать картинкой.",
      "features": [
        {
          "title": "Кодируется в вашем браузере",
          "body": "Без загрузки, без очереди и без водяного знака. GIF пишется на вашем устройстве от первого кадра до последнего."
        },
        {
          "title": "Только те ходы, что важны",
          "body": "Задайте первый и последний ход, чтобы анимировать одну комбинацию, а не восемьдесят полуходов маневрирования, которые никто не досмотрит."
        },
        {
          "title": "Три размера и три скорости",
          "body": "480, 640 или 800 пикселей по стороне — достаточно чётко для телефона и окна чата, примерно от полсекунды до полутора секунд на ход, с более долгой задержкой на первом и последнем кадре, чтобы цикл читался."
        },
        {
          "title": "За ходом легко следить",
          "body": "Поля, откуда фигура ушла и куда пришла, подкрашиваются — глаз находит каждый ход, а не ищет, что изменилось."
        }
      ],
      "howToTitle": "Как сделать шахматный GIF",
      "howTo": [
        "Вставьте PGN или откройте файл .pgn. Пример партии загружается одним касанием.",
        "Обрежьте диапазон, если нужна лишь часть партии, затем выберите размер, скорость и цвета доски.",
        "GIF собирается сам, как только вы меняете настройки; полоса прогресса считает кадры по мере их отрисовки.",
        "Проверьте предпросмотр и нажмите «Скачать», чтобы сохранить GIF."
      ],
      "faq": [
        {
          "question": "Какого размера будет файл?",
          "answer": "Каждый кадр хранит только изменившиеся поля, поэтому целая партия в сорок ходов при 640 пикселях обычно весит несколько сотен килобайт — намного меньше лимитов мессенджеров и соцсетей. Если сайт всё равно её не принимает, обрежьте диапазон или уменьшите размер до 480 пикселей."
        },
        {
          "question": "Почему есть ограничение на число ходов?",
          "answer": "После пары сотен кадров GIF перестаёт быть пригодным для обмена: он превышает то, что принимает большинство сайтов, и никто не досматривает его до конца. Диапазон ограничивается, а не партия отклоняется."
        },
        {
          "question": "Загружается ли моя партия, чтобы сделать GIF?",
          "answer": "Нет. Доска рисуется и GIF кодируется в вашем браузере — поэтому работа и идёт на вашем устройстве, а не мгновенно."
        },
        {
          "question": "Можно ли использовать GIF в коммерческих целях?",
          "answer": "Да. Фигуры — наш собственный векторный набор, водяного знака нет, и ничто в результате не ограничено."
        },
        {
          "question": "Можно сделать GIF из партии, сыгранной за доской?",
          "answer": "Сначала распознайте бланк в ScanChess. Когда партия станет PGN, вставьте её сюда и анимируйте ту часть, которую хотите показать."
        }
      ],
      "cta": {
        "title": "Партия, которую стоит анимировать, записана на бланке",
        "body": "ScanChess за секунды превращает сфотографированный бланк в PGN, а PGN — это всё, что нужно этому инструменту.",
        "button": "Распознать бланк"
      }
    },
    "pgn-to-pdf": {
      "name": "PGN в PDF",
      "seoTitle": "PGN в PDF – распечатать шахматную партию с диаграммами",
      "seoDescription": "Вставьте PGN и сверстайте партию для печати: две или три колонки ходов, диаграммы, формат A4 или Letter. Сохранение в PDF из диалога печати.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "PGN в PDF",
      "tagline": "Сверстайте партию для бумаги, с диаграммами, и сохраните её в PDF.",
      "intro": "Вставьте PGN, и партия будет свёрстана как печатная запись: игроки и турнир сверху, ходы в колонках, диаграммы доски в выбранных вами местах. Напечатайте её или выберите «Сохранить как PDF» в диалоге печати, чтобы оставить файл. Поскольку всё идёт через собственную печать браузера, ходы остаются выделяемым текстом, а диаграммы — векторами, так что PDF чёткий при любом увеличении и достаточно лёгкий для письма.",
      "features": [
        {
          "title": "Запись партии, а не скриншот",
          "body": "Ходы — это текст, а диаграммы — векторные рисунки, поэтому файл печатается чисто, в нём можно искать и из него можно копировать."
        },
        {
          "title": "Диаграммы там, где нужно",
          "body": "Только финальная позиция, каждые десять ходов, каждые двадцать или вовсе без них. Каждая диаграмма подкрашивает поля, которых коснулся ход."
        },
        {
          "title": "A4 или Letter",
          "body": "Страница свёрстана под оба формата, с полями, которые держат колонки подальше от края на домашнем принтере."
        },
        {
          "title": "Две или три колонки",
          "body": "Две колонки для партии, к которой добавят заметки от руки, три — чтобы длинная партия уместилась на одном листе."
        }
      ],
      "howToTitle": "Как сохранить партию в PDF",
      "howTo": [
        "Вставьте PGN или откройте файл .pgn.",
        "Выберите две или три колонки, места для диаграмм и формат бумаги.",
        "Нажмите «Печать». В открывшемся диалоге укажите назначением «Сохранить как PDF».",
        "Всё, кроме самой страницы, из печати исключается, поэтому файл начинается с записи партии."
      ],
      "faq": [
        {
          "question": "Где кнопка скачивания?",
          "answer": "Отдельного скачивания нет: диалог печати и есть скачивание. Выберите «Сохранить как PDF» назначением и укажите, куда положить файл. Так получается меньший и более чёткий файл, чем если бы PDF собирался на странице."
        },
        {
          "question": "Будут ли ходы выделяться в PDF?",
          "answer": "Да. Запись партии — настоящий текст, поэтому в ней можно искать, её можно копировать и читать программой чтения с экрана. PDF из скриншота ничего этого не умеет."
        },
        {
          "question": "Можно напечатать несколько партий сразу?",
          "answer": "Одна партия на лист, а PGN с несколькими партиями показывает переключатель над полем. Печатайте их по очереди."
        },
        {
          "question": "Печатает ли он комментарии и варианты из моего PGN?",
          "answer": "Нет. Вёрстка — это запись партии: сыгранные ходы, поля заголовка и результат. Комментарии, варианты и знаки оценки опускаются, чтобы лист оставался читаемым на бумаге."
        },
        {
          "question": "Можно вместо этого напечатать пустой бланк?",
          "answer": "Да, в инструменте бланков для печати есть макеты под разный контроль времени, с местом для турнира, тура и имён игроков."
        }
      ],
      "cta": {
        "title": "В обратную сторону, с бумаги в PGN",
        "body": "ScanChess превращает сфотографированный бланк в проверенный PGN. Новые аккаунты получают бесплатные кредиты, карта не нужна.",
        "button": "Распознать бланк"
      }
    },
    "best-move": {
      "name": "Поиск лучшего хода",
      "seoTitle": "Лучший ход в шахматах онлайн – бесплатный поиск хода",
      "seoDescription": "Найдите лучший ход в любой шахматной позиции. Вставьте FEN или загрузите скриншот или фото — Stockfish 18 покажет три лучших варианта. Бесплатно.",
      "kicker": "Бесплатный инструмент · Stockfish 18",
      "h1": "Найдите лучший ход в шахматах",
      "tagline": "Вставьте FEN или загрузите скриншот — Stockfish назовёт лучший ход.",
      "privacyNote": "Движок и распознавание скриншотов работают в вашем браузере. Для фото реальных досок, объяснений ИИ и сохранения нужен бесплатный аккаунт; при этом картинка или позиция отправляется на наш сервер.",
      "intro": "Дайте инструменту позицию, и Stockfish 18 проанализирует её прямо в этой вкладке, а затем назовёт лучший ход, его оценку и двух следующих кандидатов. Позицию можно взять из FEN, из редактора доски или с картинки: перетащите скриншот, и позиция будет распознана в вашем браузере — без аккаунта и без загрузки куда-либо. Фото настоящих досок распознаёт наш серверный распознаватель, бесплатно после входа. Чей ход, вы выбираете прямо рядом с ответом; если на картинке виден последний ход, очередь хода выставляется автоматически.",
      "features": [
        {
          "title": "Со скриншота или фото",
          "body": "Перетащите скриншот онлайн-партии или цифровую диаграмму, и браузер переведёт её в FEN, обведя сомнительные поля. Фото настоящих досок отправляются на наш серверный распознаватель — бесплатно для бесплатного аккаунта с подтверждённой почтой."
        },
        {
          "title": "Stockfish 18 на вашем устройстве",
          "body": "Движок загружается один раз и считает в вашем браузере. Позиции, которые вы вводите, остаются на вашем устройстве, если вы не попросите объяснение ИИ и не сохраните их, а дневного лимита нет."
        },
        {
          "title": "Три варианта, а не один",
          "body": "Лучший ход показан с оценкой и двумя следующими кандидатами, и у каждого есть вариант, которого ожидает движок, — так видно, насколько близки альтернативы."
        },
        {
          "title": "Сыграйте ход и продолжайте",
          "body": "Сыграйте лучший ход на доске, и движок оценит новую позицию, или откройте позицию на доске для анализа, чтобы проверить свои идеи."
        }
      ],
      "howToTitle": "Как найти лучший ход",
      "howTo": [
        "Вставьте FEN в поле или перетащите скриншот позиции. Войдя в аккаунт, можно также загрузить фото настоящей доски.",
        "Проверьте доску. Если поле обведено, распознаватель в нём не уверен; при необходимости исправьте его в редакторе доски.",
        "Выберите, чей ход: белых или чёрных.",
        "Нажмите «Найти лучший ход». Движок весит около семи мегабайт и загружается один раз; ответ и три лучших варианта появляются по ходу анализа."
      ],
      "faq": [
        {
          "question": "Поиск лучшего хода бесплатный?",
          "answer": "Да. Вставить FEN или распознать скриншот можно бесплатно, без аккаунта и без дневного лимита. Фото настоящих досок и изображения, которые браузер не может распознать, обрабатывает наш серверный распознаватель: бесплатно и без кредитов, но нужен аккаунт с подтверждённой почтой, а лимит считается по попыткам за последние 24 часа, включая неудачные."
        },
        {
          "question": "Как он распознаёт позицию со скриншота?",
          "answer": "Небольшая модель, работающая в вашем браузере, находит доску, проверяет каждое из 64 полей и собирает FEN; изображение не покидает ваше устройство. Если последний ход подсвечен, она также определяет, чей ход. Поля, в которых она не уверена, обводятся на доске. Если она не может уверенно распознать картинку — например, фото настоящей доски, — изображение можно отправить в тот же распознаватель, что и в сканере ScanChess. Для этого нужен бесплатный аккаунт; настоящую доску фотографируйте сверху, чтобы в кадр попали все 64 поля."
        },
        {
          "question": "Почему нужно выбирать, чей ход?",
          "answer": "На картинке видно, где стоят фигуры, но не всегда — чей ход. Если на скриншоте подсвечен последний ход, распознаватель определяет очередь хода по нему; иначе считает, что ходит сторона внизу картинки. В любом случае выбор находится рядом с ответом: лучший ход не за ту сторону — это уверенный неверный ответ."
        },
        {
          "question": "Что это за движок и насколько он силён?",
          "answer": "Stockfish 18, однопоточная сборка на WebAssembly; он считает каждую позицию до глубины 18 или четыре секунды. Это намного сильнее любого человека, хотя настольный движок, у которого есть несколько минут, в острых позициях увидит дальше."
        },
        {
          "question": "Чем это отличается от доски для анализа на Lichess?",
          "answer": "Доска для анализа на Lichess бесплатная и отличная, но позицию там нужно расставить вручную или вставить FEN. Здесь этот шаг делает скриншот или фото, а ответ показан как один понятный лучший ход с альтернативами."
        },
        {
          "question": "Можно ли пользоваться им во время партии?",
          "answer": "Нет. Подсказки движка в партии, которую вы играете, — это нечестная игра по правилам Chess.com, Lichess и ФИДЕ, и за это закрывают аккаунты. Пользуйтесь им после партии, чтобы понять, что вы упустили."
        }
      ],
      "cta": {
        "title": "Сохраняйте найденные позиции",
        "body": "В рабочем пространстве ScanChess фото доски превращается в сохранённую позицию, которую можно редактировать, отправлять другим и открывать позже.",
        "button": "Открыть сканер доски"
      }
    },
    "analysis-board": {
      "name": "Доска для анализа",
      "seoTitle": "Доска для анализа шахмат онлайн – бесплатно, Stockfish 18",
      "seoDescription": "Бесплатная доска для анализа онлайн: играйте ходы или вставьте FEN или PGN, и Stockfish 18 оценит каждую позицию прямо в браузере. Без регистрации.",
      "kicker": "Бесплатный инструмент · Без аккаунта",
      "h1": "Шахматная доска для анализа",
      "tagline": "Двигайте фигуры, и Stockfish 18 оценит каждую позицию в вашем браузере.",
      "intro": "Играйте ходы за обе стороны с начальной позиции или вставьте FEN или PGN, чтобы начать с другого места. После вашего первого хода в этой вкладке включается Stockfish 18 и оценивает каждую позицию, к которой вы приходите, показывая три лучших варианта. Вернитесь назад по ходам, попробуйте другой ход — и остаток варианта заменится. Закончив, скопируйте FEN или PGN или проверьте весь вариант на ошибки.",
      "features": [
        {
          "title": "Играйте любой вариант",
          "body": "Перетаскивайте фигуры или нажимайте на них за любую сторону. Вернитесь к любому ходу и сыграйте иначе: новый ход заменит всё, что было после, как на настоящей доске."
        },
        {
          "title": "Оценка каждой позиции",
          "body": "Stockfish 18 работает в вашем браузере и следит за доской: шкала оценки, лучший ход стрелкой и три варианта, по которым можно пройтись."
        },
        {
          "title": "Старт с любого FEN или PGN",
          "body": "Вставьте позицию или целую партию. PGN проигрывается до последнего допустимого хода, так что одна опечатка не губит всю партию."
        },
        {
          "title": "Скопируйте обратно",
          "body": "Скопируйте текущий FEN или вариант в виде PGN, откройте позицию в редакторе доски или отправьте её в поиск лучшего хода."
        }
      ],
      "howToTitle": "Как пользоваться доской для анализа",
      "howTo": [
        "Сделайте ход. Движок загружается при первом ходе — около семи мегабайт, один раз.",
        "Смотрите оценку и три варианта. Нажмите на вариант, чтобы разыграть его на доске.",
        "Стрелками или через список ходов вернитесь назад и попробуйте другой ход.",
        "Вставьте FEN или PGN, чтобы начать с другой позиции, а в конце скопируйте FEN или PGN."
      ],
      "faq": [
        {
          "question": "Доска для анализа бесплатная?",
          "answer": "Да, без аккаунта и без дневного лимита. Движок работает на вашем собственном устройстве, так что считать нечего. Для необязательного объяснения позиции от ИИ нужен бесплатный аккаунт с подтверждённым e-mail: одно в день бесплатно, затем 1 кредит."
        },
        {
          "question": "Чем это отличается от доски для анализа на Lichess?",
          "answer": "Доска Lichess тоже бесплатная и лучше подходит для изучения дебютов благодаря справочнику дебютов и облачным оценкам. Эта доска легче: движок работает на вашем устройстве, так что сыгранные ходы остаются в браузере, если вы не попросите объяснение и не сохраните позицию; она напрямую связана с поиском лучшего хода и сканером, а PGN с опечаткой всё равно загружается до ошибки."
        },
        {
          "question": "Сохраняет ли она варианты?",
          "answer": "Нет, она хранит один вариант. Если сыграть другой ход из более ранней позиции, ходы после него заменятся. Чтобы сохранить варианты в партии, используйте Просмотрщик PGN — он их читает и записывает."
        },
        {
          "question": "Насколько силён движок?",
          "answer": "Stockfish 18, однопоточная сборка на WebAssembly; он считает каждую позицию до глубины 18 или четыре секунды. Настольный движок с несколькими минутами на ход в острых позициях увидит дальше."
        },
        {
          "question": "Сохраняется ли мой анализ?",
          "answer": "Только если вы сами этого захотите. Когда вы вошли в аккаунт, «Сохранить в мои позиции» сохраняет позицию в аккаунте; иначе скопируйте FEN или PGN или поделитесь ссылкой: /tools/analysis-board?fen= с позицией в конце открывает её сразу."
        }
      ],
      "cta": {
        "title": "Или начните с фото",
        "body": "Сфотографируйте доску или сделайте скриншот диаграммы, и ScanChess расставит позицию за вас — сразу для анализа.",
        "button": "Отсканировать изображение доски"
      },
      "privacyNote": "Движок работает в вашем браузере. Для необязательных объяснений ИИ и сохранения нужен бесплатный аккаунт; при этом позиция отправляется на наш сервер."
    },
    "chess-wrapped": {
      "name": "Chess Wrapped",
      "seoTitle": "Chess Wrapped {{year}} – итоги года на Chess.com и Lichess",
      "seoDescription": "Ваш шахматный год на Chess.com или Lichess: число партий, процент побед, пик рейтинга, любимые дебюты, лучшая победа и карточка. Бесплатно, без входа.",
      "kicker": "Бесплатный инструмент · Без аккаунта",
      "h1": "Chess Wrapped: ваш шахматный год",
      "tagline": "Введите имя пользователя Chess.com или Lichess и получите свой год в цифрах.",
      "privacyNote": "Работает в вашем браузере. Партии загружаются напрямую с Chess.com или Lichess.",
      "intro": "Chess Wrapped берёт партии игрока за год из открытого архива Chess.com или Lichess и превращает их в итоги года: сколько сыграно партий, процент побед, как менялся рейтинг в каждом контроле времени, самые частые дебюты, лучшая победа, самая длинная серия побед и самый активный месяц. Работает с любым открытым аккаунтом — вашим или друга — и в конце даёт карточку, которую можно скачать или отправить.",
      "features": [
        {
          "title": "Chess.com и Lichess",
          "body": "Оба сайта публикуют архивы партий для каждого открытого аккаунта. Выберите сайт, введите имя пользователя и выберите год."
        },
        {
          "title": "Рейтинг по контролям времени",
          "body": "С чего начался рейтинг, где был пик и чем закончился — отдельно для пули, блица, рапида, а также игры по переписке или классики."
        },
        {
          "title": "Дебюты, лучшая победа и серии",
          "body": "Самые частые дебюты за белых и за чёрных, самый сильный по рейтингу побеждённый соперник, самая длинная серия побед и самый частый соперник."
        },
        {
          "title": "Карточка, чтобы поделиться",
          "body": "Скачайте итоги картинкой, скопируйте ссылку, которая соберёт их заново, или отправьте прямо с телефона."
        }
      ],
      "howToTitle": "Как сделать свой Chess Wrapped",
      "howTo": [
        "Выберите Chess.com или Lichess.",
        "Введите имя пользователя и выберите год.",
        "Нажмите «Собрать мой Wrapped». Для больших аккаунтов это займёт чуть дольше, пока загружается каждый месяц.",
        "Пролистайте карточки, затем скачайте итоги или поделитесь ими."
      ],
      "faq": [
        {
          "question": "Chess Wrapped бесплатный? Нужен ли аккаунт?",
          "answer": "Он бесплатный и не требует аккаунта — ни здесь, ни на шахматном сайте. Он читает открытый архив партий, поэтому работает с любым открытым именем пользователя."
        },
        {
          "question": "Это сделано Chess.com или Lichess?",
          "answer": "Нет. Это независимый инструмент, который использует открытые API обоих сайтов и ни с одним из них не связан."
        },
        {
          "question": "Хранятся ли где-то мои данные?",
          "answer": "Нет. Ваш браузер сам загружает партии с Chess.com или Lichess и сам считает цифры. ScanChess никогда не получает ни партии, ни имя пользователя."
        },
        {
          "question": "Почему некоторых партий нет?",
          "answer": "В архивы попадают только завершённые партии; прерванные не включаются. Lichess отдаёт около 20 партий в секунду, поэтому аккаунт с тысячами партий за год загружается несколько минут. Полоса прогресса показывает, сколько примерно партий ожидается и сколько осталось ждать, а результаты на текущий момент можно открыть в любой момент — они будут отмечены как частичные."
        },
        {
          "question": "Можно посмотреть прошлый год?",
          "answer": "Да. Выберите год перед сборкой. Текущий год охватывает партии, сыгранные на сегодняшний день."
        },
        {
          "question": "А как же мои партии за доской?",
          "answer": "Турнирных партий, записанных на бумаге, нет ни в одном онлайн-архиве. Отсканируйте бланки записи партий в ScanChess, и они превратятся в PGN-файлы, которые можно анализировать и хранить."
        }
      ],
      "cta": {
        "title": "Ваши партии за доской тоже считаются",
        "body": "Турнирных партий на бумаге нет ни в одном онлайн-архиве. Отсканируйте бланки, и они станут PGN, который можно анализировать и хранить.",
        "button": "Отсканировать бланк"
      }
    },
    "pgn-to-fen": {
      "name": "PGN в FEN",
      "seoTitle": "Конвертер PGN в FEN — бесплатно, каждый полуход, в браузере",
      "seoDescription": "Вставьте PGN и получите FEN после любого хода, а также FEN для каждого полухода. Бесплатно, без регистрации, преобразование в браузере. Ничего не отправляется.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Конвертер PGN в FEN",
      "tagline": "Вставьте PGN, выберите ход, скопируйте FEN.",
      "intro": "Вставьте партию, и эта страница проиграет её в браузере, полуход за полуходом. Выберите любой ход и скопируйте FEN позиции после него или скопируйте FEN каждого полухода одним списком. Это нужно, чтобы проверить партию, которую вы набрали из своей книги, взять позицию перед комбинацией или отдать инструменту диаграмм тот FEN, которого он ждёт. Страница только проигрывает ходы, которые у вас уже есть. Она не подсказывает ход в партии, которую вы сейчас играете.",
      "features": [
        {
          "title": "FEN для каждого полухода",
          "body": "Список идёт от позиции до первого хода до позиции после последнего законного. Выберите строку или скопируйте весь список."
        },
        {
          "title": "Остановка на первом незаконном ходе",
          "body": "Опечатка обрывает проигрывание и называет ход. Каждый FEN до него остаётся верным, а проверка PGN перечисляет законные ходы в этом месте."
        },
        {
          "title": "Несколько партий в одном файле",
          "body": "Вставьте файл с партиями и выберите, какую преобразовать. PGN с заголовком FEN начинается с этой позиции, а не с начальной."
        },
        {
          "title": "Преобразование на вашем устройстве",
          "body": "Проигрывание идёт на странице. PGN не отправляется, аккаунт не нужен."
        }
      ],
      "howToTitle": "Как превратить PGN в FEN",
      "howTo": [
        "Вставьте PGN или список ходов, перетащите файл .pgn или загрузите пример.",
        "Выберите ход в списке. Доска показывает позицию после этого хода, FEN — под доской.",
        "Скопируйте этот FEN или скопируйте и скачайте FEN каждого полухода.",
        "Есть диаграмма, а не партия? Распознайте изображение доски в FEN, затем откройте FEN в PGN, если нужен файл, который начинается оттуда."
      ],
      "faq": [
        {
          "question": "Чем PGN отличается от FEN?",
          "answer": "PGN — это вся партия: игроки, ходы и результат. FEN — одна позиция: где стоят фигуры, чей ход, рокировки, поле взятия на проходе и два счётчика ходов. Эта страница проходит PGN и записывает FEN после каждого полухода."
        },
        {
          "question": "Какую позицию описывает FEN?",
          "answer": "FEN — это позиция после выбранного хода. Первая строка, до любого хода, — начальная позиция или позиция из заголовка FEN, если он есть в PGN."
        },
        {
          "question": "Что будет, если ход незаконен?",
          "answer": "Проигрывание останавливается на этом ходе. Предыдущие FEN сохраняются. Откройте ту же партию в проверке PGN, чтобы увидеть ходы, которые там были законны."
        },
        {
          "question": "Можно ли преобразовать партию из шахматной книги?",
          "answer": "Да, партию, которую вы набираете из своей книги, для собственной учёбы. Эта страница не хранит текст книг и не скачивает книги."
        },
        {
          "question": "Работает ли это на телефоне?",
          "answer": "Да. Поле PGN, доска и список ходов стоят друг под другом на узком экране, и каждая строка нажимается."
        }
      ],
      "cta": {
        "title": "Позиция — диаграмма в книге, которая вам принадлежит",
        "body": "Сфотографируйте диаграмму, и ScanChess прочитает её в FEN, который можно поправить. Одно изображение доски стоит один кредит.",
        "button": "Распознать изображение доски"
      }
    },
    "fen-to-pgn": {
      "name": "FEN в PGN",
      "seoTitle": "Конвертер FEN в PGN — бесплатный заголовок SetUp, в браузере",
      "seoDescription": "Вставьте FEN и получите PGN с заголовками SetUp и FEN. Добавьте ходы на доске; ошибки в FEN объясняются. Бесплатно, без регистрации, без загрузки.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Конвертер FEN в PGN",
      "tagline": "Вставьте FEN и получите PGN, который начинается с этой позиции.",
      "intro": "Вставьте позицию, и эта страница запишет PGN с [SetUp \"1\"] и меткой [FEN] — так хранят партию, которая не начинается с начальной расстановки. Сделайте дальнейшие ходы на доске, и они добавятся в тот же PGN, с нумерацией от номера хода позиции, в том числе когда ход чёрных. FEN без горизонтали, без очереди хода или с королём под шахом отклоняется с указанием причины. Используйте это для диаграммы, которую вы отсканировали из своей книги, или для позиции, которую вы расставили сами. Страница не подсказывает ход в партии, которую вы сейчас играете.",
      "features": [
        {
          "title": "SetUp и FEN в каждом файле",
          "body": "Заголовок пишется даже для начальной позиции, чтобы файл сам указывал, откуда он начинается, а не оставлял это на догадку читателя."
        },
        {
          "title": "Добавьте следующие ходы",
          "body": "Перетаскивайте фигуры на доске. Текст ходов дописывается в тот же PGN. Отмена убирает последний ход."
        },
        {
          "title": "Причина для неверного FEN",
          "body": "Восемь горизонталей, очередь хода w или b, по одному королю, ни одной пешки на первой или восьмой горизонтали, и сторона, которая только что ходила, не должна оставаться под шахом."
        },
        {
          "title": "Ничего не отправляется",
          "body": "Проверка и PGN создаются в браузере. Аккаунт не нужен."
        }
      ],
      "howToTitle": "Как превратить FEN в PGN",
      "howTo": [
        "Вставьте FEN. Если позиция законна, доска её покажет.",
        "Скопируйте PGN. Сначала семь обычных меток, затем SetUp и FEN.",
        "По желанию: сделайте следующие ходы на доске. Позиция с ходом чёрных нумеруется как ход чёрных.",
        "Просмотрите файл в просмотре PGN или проверьте ход, который не проходит, в проверке PGN."
      ],
      "faq": [
        {
          "question": "Зачем в PGN нужны SetUp и FEN?",
          "answer": "PGN без них считается начатым с начальной позиции. SetUp \"1\" плюс метка FEN говорят базе, Lichess, ChessBase или просмотру PGN, что партия начинается с вашей позиции."
        },
        {
          "question": "Какой FEN считается неверным?",
          "answer": "Расстановка должна иметь восемь горизонталей по восемь клеток, очередь хода — w или b, у каждой стороны один король, пешка не может стоять на первой или восьмой горизонтали, и сторона, которая только что ходила, не может быть под шахом. Сообщение называет, какое из этих правил нарушено."
        },
        {
          "question": "Можно ли добавить ходы с этой позиции?",
          "answer": "Да. Перетащите фигуру или нажмите фигуру, а затем клетку назначения. При превращении спросят фигуру. Ходы записываются в тот же PGN. Это фиксирует линию, которую вы вводите. Ход за вас не ищется."
        },
        {
          "question": "Откуда взять FEN с картинки?",
          "answer": "Из сканера изображения доски, в том числе с диаграммы в шахматной книге, которая вам принадлежит. Одно изображение доски стоит один кредит. Поправьте позицию, укажите, чей ход, и вставьте FEN сюда."
        },
        {
          "question": "Начальная позиция подходит?",
          "answer": "Да. SetUp и FEN всё равно будут записаны, чтобы файл явно указал начальную позицию. Незаконное поле взятия на проходе убирается при нормализации FEN."
        }
      ],
      "cta": {
        "title": "Этот FEN — диаграмма в книге, которая вам принадлежит",
        "body": "Сфотографируйте диаграмму, и ScanChess прочитает позицию в FEN. Одно изображение доски стоит один кредит. Затем вернитесь сюда и сделайте PGN.",
        "button": "Распознать изображение доски"
      }
    },
    "fen-validator": {
      "name": "Проверка FEN",
      "seoTitle": "Проверка FEN – проверить шахматную позицию онлайн",
      "seoDescription": "Вставьте FEN и проверьте, допустима ли позиция: короли, число фигур, рокировка, взятие на проходе и очередь хода. Для каждой ошибки — как её исправить.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Проверка FEN",
      "tagline": "Вставьте FEN и узнайте, допустима ли позиция, а если нет — что в ней исправить.",
      "intro": "FEN записывает одну шахматную позицию в одну строку: где стоят фигуры, чей ход, права на рокировку, поле взятия на проходе и два счётчика ходов. Достаточно одного неверного символа, чтобы шахматная программа отказалась открыть позицию — обычно с сообщением «invalid FEN» и без объяснений. Здесь проверяется каждая часть строки, а каждая ошибка описана простыми словами вместе с тем, что нужно поменять. Если FEN верный, вы увидите доску, очередь хода и есть ли у этой стороны шах, мат или пат.",
      "features": [
        {
          "title": "Все ошибки сразу, а не только первая",
          "body": "Горизонталь, в которой не набирается восемь полей, лишние символы, отсутствующий король, девять пешек, рокировка, которую не допускает расстановка, неверное поле взятия на проходе, ошибочные счётчики ходов — всё перечислено сразу, и к каждой ошибке своё исправление."
        },
        {
          "title": "Проверяются правила, а не только синтаксис",
          "body": "FEN может быть записан правильно и всё равно описывать невозможную позицию: сторона, которая только что сходила, осталась под шахом, пешка стоит на крайней горизонтали, ферзей больше, чем можно получить превращением. Такое тоже находится."
        },
        {
          "title": "Исправленный FEN, когда исправление однозначно",
          "body": "Если ошибки только в полях рокировки, взятия на проходе или счётчиков, вы получите FEN с исправленными полями. Неверное число королей или расстановку фигур решать вам."
        },
        {
          "title": "Проверка на вашем устройстве",
          "body": "FEN проверяется прямо на странице. Ничего не загружается на сервер, аккаунт не нужен."
        }
      ],
      "howToTitle": "Как проверить FEN",
      "howTo": [
        "Вставьте FEN в поле или откройте страницу по ссылке, которая заканчивается на ?fen= и самой строкой FEN.",
        "Нажмите «Проверить FEN». Зелёный результат означает, что позиция допустима; красный перечисляет все ошибки.",
        "Исправьте строку так, как указано под каждой ошибкой, или возьмите исправленный FEN, если он предложен.",
        "Когда FEN верный, скопируйте полную строку или откройте её в редакторе доски, в «FEN в изображение» или в «FEN в PGN»."
      ],
      "faq": [
        {
          "question": "Каким должен быть правильный FEN?",
          "answer": "Шесть полей через пробел: расстановка фигур (восемь горизонталей с восьмой по первую, разделённых косой чертой), очередь хода (w или b), права на рокировку (например, KQkq или -), поле взятия на проходе (например, e3 или -), счётчик полуходов и номер хода. Кроме того, позиция должна быть возможной: по одному королю у каждой стороны, ни одной пешки на первой или восьмой горизонтали, и сторона, которая только что сходила, не под шахом."
        },
        {
          "question": "Почему права на рокировку отмечены как ошибка?",
          "answer": "Буква рокировки допустима, только пока король и ладья стоят на исходных полях: для K нужен белый король на e1 и ладья на h1, для Q — e1 и a1, для k — чёрный король на e8 и ладья на h8, для q — e8 и a8. Уберите букву для каждой пары, которая уже сдвинулась."
        },
        {
          "question": "Какое поле взятия на проходе указывать в FEN?",
          "answer": "Поле, через которое перескочила пешка последним ходом, и только сразу после хода пешки на два поля: на шестой горизонтали, если ход Белых, на третьей, если ход Черных. Иначе пишется -. Некоторые программы указывают поле только тогда, когда взятие на проходе действительно возможно; оба варианта допустимы."
        },
        {
          "question": "Подходит ли FEN только с расстановкой и очередью хода?",
          "answer": "Многие программы его принимают и считают, что рокировок нет, поля взятия на проходе нет и идёт первый ход. Проверка тоже принимает такую строку, но с предупреждением, и показывает полный FEN из шести полей."
        },
        {
          "question": "Может ли верный FEN описывать позицию, которая не встречается в партии?",
          "answer": "Да. Проверяются правила, которым обязана подчиняться любая позиция, но не то, могла ли к ней привести настоящая партия. Отдельные позиции проходят все проверки и всё же недостижимы из начальной расстановки."
        }
      ],
      "cta": {
        "title": "Позиция на скриншоте или на диаграмме из книги?",
        "body": "Отсканируйте изображение — ScanChess расставит фигуры на доске и запишет FEN, который можно сразу проверить. Бесплатные кредиты при регистрации.",
        "button": "Распознать изображение доски"
      }
    },
    "flip-fen": {
      "name": "Перевернуть FEN",
      "seoTitle": "Перевернуть или отразить шахматную позицию (FEN)",
      "seoDescription": "Переверните FEN, чтобы смотреть со стороны Черных, отразите доску по горизонтали или поменяйте цвета, затем скопируйте новый FEN или скачайте картинку.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Перевернуть или отразить шахматную позицию",
      "tagline": "Поверните доску, отразите её или поменяйте цвета — и скопируйте новый FEN.",
      "intro": "Развернуть позицию приходится чаще, чем кажется. Диаграмму, напечатанную со стороны Черных, набирают вверх ногами; этюд проще сравнивать, поменяв цвета; для проверки движка нужна та же позиция в зеркальном отражении, чтобы убедиться, что оценка симметрична. Здесь к любому FEN можно применить три преобразования, и всё, что от них зависит, будет переписано: расстановка фигур, очередь хода, права на рокировку и поле взятия на проходе. Права, которые после преобразования становятся невозможными, удаляются, и об этом сообщается, — так новый FEN примут и другие программы.",
      "features": [
        {
          "title": "Поворот на 180 градусов",
          "body": "Доска разворачивается, цвета остаются прежними — как будто смотришь со стороны Черных. Пригодится, если диаграмму с Черными внизу набрали так, будто внизу Белые."
        },
        {
          "title": "Отражение вертикалей",
          "body": "Вертикаль a меняется местами с вертикалью h, цвета остаются прежними. Права на рокировку теряются, потому что короли уходят с исходных полей."
        },
        {
          "title": "Смена цветов",
          "body": "Горизонтали отражаются, и каждая фигура меняет цвет; очередь хода, рокировка и поле взятия на проходе меняются вместе с ними. Получается та же позиция для другого игрока."
        },
        {
          "title": "Скопировать, скачать или открыть",
          "body": "Скопируйте новый FEN, сохраните доску как PNG или откройте её в «FEN в изображение», в редакторе доски или в проверке FEN."
        }
      ],
      "howToTitle": "Как перевернуть FEN",
      "howTo": [
        "Вставьте FEN или загрузите пример.",
        "Включите поворот, отражение или смену цветов. Их можно сочетать, а выключение отменяет преобразование.",
        "Посмотрите на новую доску и прочтите пояснение, если какая-то рокировка или поле взятия на проходе были удалены.",
        "Скопируйте новый FEN или скачайте изображение."
      ],
      "faq": [
        {
          "question": "Как посмотреть на FEN со стороны Черных?",
          "answer": "Если нужно просто взглянуть на позицию со стороны Черных, нажмите «Перевернуть доску» под диаграммой. FEN при этом не меняется: в нём не хранится, какой стороной повёрнута доска. Поворот FEN переставляет сами фигуры, а это нужно, только если позицию набрали вверх ногами."
        },
        {
          "question": "Чем поворот отличается от смены цветов?",
          "answer": "При повороте доска разворачивается на 180 градусов, а цвет фигур сохраняется, поэтому белые пешки начинают ходить не в ту сторону. При смене цветов отражаются горизонтали и меняются цвета, так что фигуры ходят как положено, а очередь хода переходит к другой стороне: та же позиция глазами соперника."
        },
        {
          "question": "Почему удалены права на рокировку?",
          "answer": "Для рокировки король и ладья должны стоять на исходных полях. После поворота или отражения это уже не так, и право сохранить нельзя. При смене цветов права остаются, только права Белых и Черных меняются местами."
        },
        {
          "question": "Меняется ли номер хода?",
          "answer": "Нет. Счётчик полуходов и номер хода остаются прежними. Меняется только очередь хода, и только при смене цветов."
        }
      ],
      "cta": {
        "title": "Позиция на скриншоте или в книге?",
        "body": "Отсканируйте скриншот, диаграмму или фото доски, и ScanChess запишет FEN за вас — сразу правильной стороной. Бесплатные кредиты при регистрации.",
        "button": "Распознать изображение доски"
      }
    },
    "chess-notation-translator": {
      "name": "Перевод шахматной нотации",
      "seoTitle": "Перевод шахматной нотации: русские буквы → английская SAN",
      "seoDescription": "Вставьте ходы с русскими, немецкими, испанскими или другими буквами фигур (Кf3, Крe2) и получите английскую SAN и PGN (Nf3, Ke2). Бесплатно.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Перевод шахматной нотации",
      "tagline": "Ходы, записанные буквами фигур любого языка, превращаются в английскую SAN и PGN.",
      "intro": "Алгебраическая нотация везде одинакова, кроме букв фигур. В русском бланке ход конём пишут Кf3, в немецком — Sf3, в испанском или французском — Cf3, а большинство шахматных программ понимает только Nf3. Простая замена буквы на букву даёт ошибки: R — король в испанской, итальянской, французской и португальской записи, но ладья в английской, а К по-русски — конь, тогда как король — Кр. Поэтому здесь каждый ход читается буквами одного языка и разыгрывается на доске, то есть проверяется в той позиции, где он был сделан. На выходе — стандартная английская SAN (Кf3 → Nf3, Крe2 → Ke2) и PGN, который откроет любая шахматная программа.",
      "features": [
        {
          "title": "Десять наборов букв, язык определяется сам",
          "body": "Английский, немецкий, испанский, французский, итальянский, португальский, нидерландский, русский, польский и чешский, а также фигурки вроде ♘f3. Выбирается набор, с которым удаётся разыграть больше всего ходов, — или укажите его сами."
        },
        {
          "title": "Проверяется каждый ход",
          "body": "Партия разыгрывается с начальной позиции или с заданного FEN. Первый недопустимый ход называется, так что неверно прочитанную букву или описку в бланке легко найти."
        },
        {
          "title": "Краткая и полная нотация",
          "body": "Понимает Sf3, Sg1-f3 и g1-f3, взятия через x или двоеточие, превращения вроде e8D или e8=Ф и рокировку, записанную нулями или буквой O."
        },
        {
          "title": "В обе стороны",
          "body": "Переведите английскую SAN в русскую, немецкую, испанскую или любую другую запись — для клубного бюллетеня или бланка на своём языке."
        }
      ],
      "howToTitle": "Как перевести шахматную нотацию",
      "howTo": [
        "Вставьте ходы — с номерами или без. Комментарии и варианты пропускаются.",
        "Оставьте автоматическое определение языка или выберите буквы, которыми записаны ходы.",
        "Если партия начиналась не с обычной позиции, вставьте её FEN в поле начальной позиции.",
        "Скопируйте английские ходы или PGN, скачайте PGN или откройте его в просмотрщике PGN."
      ],
      "faq": [
        {
          "question": "Как обозначаются шахматные фигуры в разных языках?",
          "answer": "В порядке король, ферзь, ладья, слон, конь, пешка: английский K Q R B N P; немецкий K D T L S B; испанский и итальянский R D T A C P; французский R D T F C P; португальский R D T B C P; нидерландский K D T L P, без буквы для пешки; русский Кр Ф Л С К п; польский K H W G S P; чешский K D V S J P. Ходы пешкой обычно пишутся без буквы."
        },
        {
          "question": "Как определяется язык записи?",
          "answer": "Ходы разыгрываются с каждым набором букв, и выбирается тот, с которым удаётся продвинуться дальше всего без недопустимого хода. Если подходят несколько наборов одинаково — например, в партии были только ходы пешками, — предпочтение получает набор, чьи буквы встречаются в тексте. У испанской и итальянской записи одни и те же буквы, поэтому английские ходы в обоих случаях получатся одинаковые."
        },
        {
          "question": "Почему перевод останавливается на каком-то ходе?",
          "answer": "Потому что этот ход, прочитанный выбранными буквами, недопустим в получившейся позиции. Чаще всего букву прочитали неверно или ход записали с ошибкой. Сверьте его с бланком или выберите язык вручную."
        },
        {
          "question": "Можно ли перевести рукописный бланк?",
          "answer": "Здесь переводятся набранные ходы. Сканер бланков ScanChess распознаёт рукописные бланки, записанные английскими буквами фигур (K, Q, R, B, N), и проверяет каждый ход; бланк с другими буквами можно набрать и перевести здесь."
        },
        {
          "question": "Поддерживается ли описательная нотация вроде P-K4?",
          "answer": "Нет. В описательной нотации поля называются со стороны каждого игрока. Английскую описательную (P-K4) переводит инструмент «Описательная в алгебраическую». Этот инструмент читает алгебраическую нотацию с буквами фигур на любом языке."
        }
      ],
      "cta": {
        "title": "Перепечатываете бланк вручную?",
        "body": "Если он записан английскими буквами фигур, ScanChess распознает почерк, превратит запись в PGN и проверит каждый ход. Бесплатные кредиты при регистрации.",
        "button": "Распознать бланк"
      }
    },
    "time-control-calculator": {
      "name": "Калькулятор контроля времени",
      "seoTitle": "Калькулятор контроля времени: сколько длится партия",
      "seoDescription": "Введите контроль времени, например 90+30 или 15+10, и узнайте максимальную и обычную длительность шахматной партии и её категорию ФИДЕ: блиц, рапид, классика.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Калькулятор контроля времени в шахматах",
      "tagline": "Сколько может длиться партия с контролем 90+30, 15+10 или 3+2 и к какой категории она относится.",
      "intro": "Контроль времени 90+30 даёт каждому игроку 90 минут на партию плюс 30 секунд после каждого хода. Сколько продлится партия, зависит от числа сделанных ходов и от того, сколько времени игроки расходуют. Калькулятор считает максимальную длительность партии для заданного числа ходов, обычную длительность по данным 347 741 очной партии, которые мы измерили, и категорию контроля: блиц, рапид (быстрые шахматы) или классика (стандарт) по Правилам игры ФИДЕ, а также категорию на Lichess и Chess.com.",
      "features": [
        {
          "title": "Любая привычная запись",
          "body": "90+30, 15|10, 3+2, 90/40+30+30 — контроль на число ходов со вторым периодом, или G/90;d5 с задержкой."
        },
        {
          "title": "Максимальная и обычная длительность",
          "body": "Максимум — это когда оба флажка падают ровно к выбранному числу ходов. Обычная длительность — сколько идёт партия медианной длины в 41 ход: около 85 % времени, которое дают эти ходы."
        },
        {
          "title": "Категория ФИДЕ",
          "body": "Блиц — 10 минут или меньше на игрока, рапид — больше 10 и меньше 60, классика — 60 и больше; считается основное время плюс 60 × добавление."
        },
        {
          "title": "Категории онлайн",
          "body": "Lichess и Chess.com оценивают длительность как основное время плюс 40 × добавление. На Chess.com, по данным справочного центра, меньше 3 минут — пуля, от 3 до 10 минут (не включая 10) — блиц, от 10 минут — рапид."
        }
      ],
      "howToTitle": "Как рассчитать, сколько длится шахматная партия",
      "howTo": [
        "Введите контроль времени или выберите один из популярных.",
        "Проверьте строку под полем: в ней написано, как прочитан контроль.",
        "Задайте число ходов для максимальной длительности. 60 ходов охватывают около 85 % классических партий.",
        "Посмотрите максимальную и обычную длительность, время каждого игрока и категории."
      ],
      "faq": [
        {
          "question": "Сколько длится шахматная партия с контролем 90+30?",
          "answer": "У каждого игрока 90 минут плюс 30 секунд за ход, поэтому партия в 60 ходов может продлиться до 4 часов на двух часах вместе, а партия в 41 ход — примерно до 3 ч 41 мин. В измеренных нами очных партиях с контролем 90+30 медианная партия длилась 3 ч 3 мин."
        },
        {
          "question": "15+10 — это рапид или блиц?",
          "answer": "Рапид. ФИДЕ считает основное время плюс 60 × добавление: 15 минут плюс 60 × 10 секунд — это 25 минут, больше 10 и меньше 60. Блиц — 10 минут или меньше, поэтому 3+2 (5 минут) и 5+3 (8 минут) — блиц."
        },
        {
          "question": "Что значит 90/40+30+30?",
          "answer": "90 минут на первые 40 ходов, затем ещё 30 минут до конца партии, и 30 секунд добавляются за каждый ход начиная с первого. Это классический контроль многих турниров с обсчётом рейтинга ФИДЕ. Иногда пишут 40/90 вместо 90/40; калькулятор считает минутами большее число."
        },
        {
          "question": "Почему ФИДЕ и Lichess относят один и тот же контроль к разным категориям?",
          "answer": "Они по-разному учитывают добавление. ФИДЕ прибавляет к основному времени 60 добавлений, Lichess и Chess.com — 40. Поэтому 10+0 для ФИДЕ — блиц (10 минут или меньше), а на Lichess и Chess.com — рапид."
        },
        {
          "question": "2|1 на Chess.com — это пуля или блиц?",
          "answer": "Пуля. Chess.com оценивает время каждого игрока как основные минуты плюс 40 × добавление в секундах, поэтому у 2|1 получается 2 мин 40 с — меньше 3 минут, с которых начинается блиц. По данным справочного центра, пуля — меньше 3 минут, блиц — от 3 до 10 минут (не включая 10), рапид — от 10 минут: 1|0 — пуля; 3|0, 5|0 и 4|4 — блиц; 10|0, 2|12 и 15|10 — рапид. Заочные партии (Daily) с несколькими днями на ход — отдельная категория."
        },
        {
          "question": "Как учитывается задержка?",
          "answer": "Задержка, как в G/90;d5, даёт несколько секунд на каждый ход, прежде чем часы начнут отсчёт. Неиспользованная задержка не прибавляется к остатку времени, поэтому максимальная длительность партии такая же, как при равном добавлении, и для категорий калькулятор считает её как добавление."
        }
      ],
      "cta": {
        "title": "Играете длинную партию в выходные?",
        "body": "Распечатайте бланк на тур, а после партии отсканируйте его: ScanChess превратит рукописную запись в PGN, который можно проиграть и проанализировать.",
        "button": "Распознать бланк"
      }
    },
    "pgn-splitter": {
      "name": "Разделение PGN",
      "seoTitle": "Разделить PGN-файл на партии или объединить PGN-файлы",
      "seoDescription": "Разделите PGN с несколькими партиями на отдельные файлы или объедините несколько PGN-файлов в один. Белые, чёрные, турнир и дата. Бесплатно, в браузере.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Разделение и объединение PGN-файлов",
      "tagline": "По файлу на партию — или один файл из многих.",
      "intro": "Партии турнира, клубная база или неделя онлайн-игры обычно приходят одним PGN-файлом, где собраны все партии. Эта страница разрезает такой файл на отдельные PGN по одной партии, называет их по фамилиям игроков и дате и показывает для каждой партии белых, чёрных, турнир, дату и результат, чтобы нужную было легко найти. Работает и в обратную сторону: добавьте несколько PGN-файлов и получите один файл со всеми партиями, при желании без повторов. Комментарии, варианты, переводы строк Windows и метка порядка байтов в начале файла обрабатываются как надо, а из браузера ничего не уходит.",
      "features": [
        {
          "title": "Разрез только между партиями",
          "body": "Многострочный комментарий или вариант в скобках никогда не разрежут партию надвое. Партии, выгруженные без тегов, разделяются по результату."
        },
        {
          "title": "Теги каждой партии сразу видны",
          "body": "В списке — белые, чёрные, турнир, дата, результат и число ходов, так что партию можно найти ещё до сохранения."
        },
        {
          "title": "Скопировать, скачать или открыть",
          "body": "Скопируйте одну партию, сохраните её отдельным файлом .pgn, откройте в просмотре PGN или сохраните все партии отдельными файлами за один раз."
        },
        {
          "title": "Объединение без повторов",
          "body": "Добавляйте файлы .pgn или вставленные партии в нужном порядке. Партию, которая уже есть в объединённом файле, можно пропустить."
        }
      ],
      "howToTitle": "Как разделить или объединить PGN-файлы",
      "howTo": [
        "Чтобы разделить файл, вставьте PGN с несколькими партиями или выберите файл .pgn. Партии появятся в списке сразу после чтения.",
        "Скопируйте партию, скачайте её, откройте в просмотре PGN или скачайте каждую партию отдельным файлом.",
        "Чтобы объединить файлы, переключитесь на «Объединить несколько файлов» и добавьте файлы .pgn или вставленные партии в нужном порядке.",
        "Скопируйте объединённый PGN или скачайте его как merged.pgn."
      ],
      "faq": [
        {
          "question": "Как разделить PGN-файл с множеством партий?",
          "answer": "Вставьте PGN или выберите файл .pgn. Каждая партия появится в списке с игроками, турниром и датой, а кнопка «Скачать каждую партию» сохранит все партии отдельными файлами .pgn с номером, фамилиями игроков и датой в названии."
        },
        {
          "question": "Как объединить несколько PGN-файлов в один?",
          "answer": "Выберите «Объединить несколько файлов», добавьте файлы (или вставьте партии) и скопируйте или скачайте результат. Партии сохраняют свои теги и ходы, разделяются пустой строкой и идут в том порядке, в каком добавлены файлы."
        },
        {
          "question": "Сохраняются ли комментарии и варианты?",
          "answer": "Да. Каждая партия сохраняется в точности как записана, с комментариями, вариантами и знаками оценки. Программа лишь определяет, где кончается одна партия и начинается следующая."
        },
        {
          "question": "Что, если у партии нет тегов?",
          "answer": "Партии без тегов разделяются по результату (1-0, 0-1, 1/2-1/2 или *). Когда такая партия сохраняется или попадает в объединённый файл, к ней добавляются семь обязательных тегов со знаками вопроса, чтобы её могли прочитать другие программы."
        },
        {
          "question": "Есть ли ограничение на размер файла?",
          "answer": "Файл никуда не загружается, поэтому предел — память вашего устройства. Файлы с тысячами партий делятся без проблем; в списке показаны первые 200, но скачать можно каждую партию."
        }
      ],
      "cta": {
        "title": "Ваши партии записаны на бумажных бланках",
        "body": "Сфотографируйте бланк, и ScanChess прочитает ходы в PGN, который можно проверить и добавить в свой файл. Распознавание бланка стоит 2 кредита; новые аккаунты получают 10 бесплатно.",
        "button": "Распознать бланк"
      }
    },
    "opening-identifier": {
      "name": "Определение дебюта",
      "seoTitle": "Определить дебют по PGN или FEN: название и код ECO",
      "seoDescription": "Вставьте PGN, ходы или FEN и узнайте название шахматного дебюта и код ECO по самой глубокой именованной позиции. Учитывает переходы. Бесплатно.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Определение шахматного дебюта",
      "tagline": "Вставьте партию или FEN — получите дебют и его код ECO.",
      "intro": "Вставьте партию, простой список ходов или FEN, и эта страница назовёт дебют: его код ECO (B90, C65…) и полное название вплоть до варианта. Она проигрывает партию и ищет каждую позицию, а не порядок ходов, поэтому партия, пришедшая к отказанному ферзевому гамбиту через 1. Nf3 и 2. c4, всё равно будет названа отказанным ферзевым гамбитом. Ответ — самая глубокая именованная позиция, которой достигла партия, вместе с ходом, который к ней привёл, и всеми именованными позициями до неё. Названия и коды взяты из набора данных Lichess chess-openings, перешедшего в общественное достояние, и показываются на английском языке, как в нём.",
      "features": [
        {
          "title": "Поиск по позиции",
          "body": "Каждая позиция партии ищется отдельно, поэтому переходы распознаются, а название соответствует самой позиции, каким бы ни был порядок ходов."
        },
        {
          "title": "Самый глубокий именованный вариант",
          "body": "Результат — последняя именованная позиция, через которую прошла партия, с ходом, который к ней привёл, и доской в этот момент."
        },
        {
          "title": "PGN, список ходов или FEN",
          "body": "Вставьте полный PGN с тегами и комментариями, простой список ходов или один FEN. Если в файле несколько партий, можно выбрать нужную."
        },
        {
          "title": "Тысячи именованных вариантов",
          "body": "Коды ECO от A00 до E99 и названия Lichess для каждого варианта, сопоставление прямо в браузере. Ничего не отправляется."
        }
      ],
      "howToTitle": "Как определить шахматный дебют",
      "howTo": [
        "Вставьте PGN, список ходов вроде 1. e4 c5 2. Nf3 или FEN. Можно также выбрать файл .pgn.",
        "Посмотрите код ECO и название самой глубокой именованной позиции, а также ход, который к ней привёл.",
        "Проверьте список именованных позиций, чтобы увидеть, через что прошла партия.",
        "Откройте позицию на доске для анализа или разберите всю партию."
      ],
      "faq": [
        {
          "question": "Что такое код ECO?",
          "answer": "«Энциклопедия шахматных дебютов» (ECO) делит дебюты на пять томов, от A до E, с кодами от A00 до E99. Например, B90 — сицилианская защита, вариант Найдорфа. Один код могут делить несколько именованных вариантов."
        },
        {
          "question": "Почему название меняется, когда я добавляю ходы?",
          "answer": "Каждый именованный вариант — это позиция. Партия сначала приходит к дебюту королевской пешки, затем к сицилианской защите, затем к одному из её вариантов. Страница показывает самую глубокую позицию и перечисляет предыдущие."
        },
        {
          "question": "Распознаются ли переходы из одного дебюта в другой?",
          "answer": "Да. Сравниваются позиции, а не порядок ходов, поэтому одна и та же позиция, полученная другим порядком ходов, получает то же название."
        },
        {
          "question": "Можно ли вставить FEN вместо ходов?",
          "answer": "Да. FEN, который сам является именованной позицией, получит её название. У позиции из миттельшпиля собственного дебютного названия нет; вставьте ходы, которые к ней привели, чтобы узнать, из какого дебюта вышла партия."
        },
        {
          "question": "Откуда берутся названия дебютов?",
          "answer": "Из набора данных Lichess chess-openings, который авторы передали в общественное достояние (CC0). Названия даны на английском языке, как в этом наборе."
        }
      ],
      "cta": {
        "title": "Партия записана на бумажном бланке",
        "body": "Сфотографируйте бланк, и ScanChess прочитает ходы в PGN — вместе с названием дебюта. Распознавание бланка стоит 2 кредита; новые аккаунты получают 10 бесплатно.",
        "button": "Распознать бланк"
      }
    },
    "descriptive-to-algebraic": {
      "name": "Описательная в алгебраическую",
      "seoTitle": "Описательная нотация в алгебраическую: конвертер P-K4",
      "seoDescription": "Переведите старую английскую описательную нотацию (P-K4, N-KB3, PxP, O-O) в алгебраическую SAN и PGN. Каждый ход проверяется на доске. Бесплатно.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Конвертер описательной нотации в алгебраическую",
      "tagline": "Введите P-K4 N-KB3 — получите e4 Nf3 и PGN.",
      "intro": "Английские и американские шахматные книги печатали партии в описательной нотации вплоть до 1970–1980-х годов: P-K4, N-KB3, PxP, QxN ch. Каждое поле называется со стороны того, кто ходит, поэтому K4 у белых — это e4, а K4 у чёрных — e5, и книга опускает всё, что очевидно из позиции. Этот конвертер проигрывает каждый ход на доске по мере чтения, определяет, какая фигура пошла и куда, и записывает алгебраическую нотацию (SAN) и PGN, который откроется где угодно. Если ход можно понять двояко, например PxP, когда взять могут две пешки, он сообщает об этом и называет оба хода, а не угадывает. Читается только английская описательная нотация.",
      "features": [
        {
          "title": "Со стороны того, кто ходит",
          "body": "Горизонтали считаются со стороны каждого игрока, а вертикали называются от QR до KR, поэтому P-K4 — это e4 у белых и e5 у чёрных."
        },
        {
          "title": "Сокращения разбираются на доске",
          "body": "В N-B3, B-N5 и PxP пропущена вертикаль или фигура. Какой ход имеется в виду, решают законные ходы в позиции, а знак шаха помогает при равенстве."
        },
        {
          "title": "Неоднозначность — не догадка",
          "body": "Если подходит больше одного законного хода, преобразование останавливается на нём и перечисляет варианты, чтобы ошибочная догадка не испортила остаток партии."
        },
        {
          "title": "Рокировка, взятие на проходе, превращение",
          "body": "Читаются O-O и O-O-O, PxP e.p., P-K8=Q или P-K8(Q), а также старое Kt для коня. Результат — PGN для любой программы просмотра."
        }
      ],
      "howToTitle": "Как перевести описательную нотацию в алгебраическую",
      "howTo": [
        "Введите или вставьте ходы так, как они напечатаны в книге, например 1. P-K4 P-K4 2. N-KB3 N-QB3.",
        "Рядом с каждым ходом в описательной нотации появится алгебраический. Доска показывает позицию после последнего хода.",
        "Если на каком-то ходе преобразование остановилось, добавьте недостающую вертикаль или фигуру (KPxP, QR-Q1) или исправьте опечатку — и оно продолжится.",
        "Скопируйте PGN, скачайте его или откройте в просмотре PGN, чтобы проиграть партию."
      ],
      "faq": [
        {
          "question": "Почему P-K4 у чёрных — это e5?",
          "answer": "В описательной нотации горизонтали считаются со стороны того, кто ходит. Четвёртая горизонталь чёрных — это пятая горизонталь белых, поэтому P-K4 у чёрных — это e5. Вертикали у обеих сторон одни и те же: королевская вертикаль — это вертикаль e."
        },
        {
          "question": "Что означают QB, KN и другие названия вертикалей?",
          "answer": "Каждая вертикаль названа по фигуре, которая стоит на ней в начале партии: QR — это a, QN — b, QB — c, Q — d, K — e, KB — f, KN — g, KR — h. В книгах часто пишут только B, N или R, а какой фланг имеется в виду, решает позиция."
        },
        {
          "question": "Что происходит с PxP, если взять могут две пешки?",
          "answer": "Конвертер останавливается и перечисляет оба хода. Книга того времени написала бы KPxP или BPxP либо положилась бы на читателя; добавьте вертикаль, и преобразование продолжится."
        },
        {
          "question": "Читает ли он превращение и взятие на проходе?",
          "answer": "Да. P-K8=Q, P-K8(Q) и P-K8/Q читаются как превращение; превращение без указанной фигуры считается превращением в ферзя, и страница об этом сообщает. Взятие на проходе пишите как PxP e.p."
        },
        {
          "question": "Подходит ли он для испанской, немецкой или французской описательной нотации?",
          "answer": "Нет. Он читает только английскую описательную нотацию с английскими буквами фигур K, Q, R, B, N (или Kt) и P. Алгебраические ходы, в которых меняются только буквы фигур (немецкое Sf3, испанское Cf3), переводит «Перевод шахматной нотации»."
        }
      ],
      "cta": {
        "title": "Партия — в шахматной книге, которая вам принадлежит",
        "body": "Сфотографируйте диаграмму, и ScanChess прочитает её в FEN, который можно поправить. Одно изображение доски стоит один кредит.",
        "button": "Распознать изображение доски"
      }
    },
    "tiebreak-calculator": {
      "name": "Калькулятор тай-брейков",
      "seoTitle": "Калькулятор тай-брейков: Бухгольц и коэффициент Бергера",
      "seoDescription": "Рассчитайте Бухгольц, усечённый и медианный Бухгольц, коэффициент Бергера, личную встречу и число побед по таблице швейцарки по правилам ФИДЕ. CSV.",
      "kicker": "Бесплатный инструмент · Аккаунт не нужен",
      "h1": "Калькулятор дополнительных показателей (тай-брейков)",
      "tagline": "Введите турнирную таблицу — получите все дополнительные показатели и итоговые места.",
      "intro": "Когда участники набирают одинаковое количество очков, места в турнире по швейцарской системе распределяются по дополнительным показателям. Введите результаты каждого участника по турам или вставьте турнирную таблицу, и эта страница рассчитает очки, коэффициент Бухгольца, усечённый Бухгольц (Cut-1), медианный Бухгольц, коэффициент Бергера (Зоннеборна — Бергера), личную встречу и количество побед, а затем расставит участников в выбранном вами порядке показателей. Пропуски туров и неявки учитываются по статье 16 Положения ФИДЕ о дополнительных показателях, действующего с 1 марта 2026 года: собственный несыгранный тур участника считается партией против фиктивного соперника с тем же количеством очков, что и у самого участника, а пропуск тура по заявке в конце турнира для Бухгольца соперников считается ничьей. Для турниров, проводимых по прежним правилам, доступен вариант с виртуальным соперником.",
      "features": [
        {
          "title": "Привычные показатели швейцарки",
          "body": "Коэффициент Бухгольца, усечённый и медианный Бухгольц, коэффициент Бергера, личная встреча и количество побед — рядом для каждого участника."
        },
        {
          "title": "Пропуски и неявки по правилам",
          "body": "Свободные от игры туры по жеребьёвке и пропуски по заявке, победы и поражения по неявке и отсутствие оцениваются по статье 16 ФИДЕ, а усечённый Бухгольц первым отбрасывает добровольно пропущенный тур."
        },
        {
          "title": "Ваш порядок показателей",
          "body": "Включайте и выключайте показатели и двигайте их вверх и вниз, как в положении о турнире. Если равенство остаётся после всех, участники делят место."
        },
        {
          "title": "Проверка турнирной таблицы",
          "body": "Партия, записанная у двух участников по-разному, или соперник, которого нет в таблице, будут отмечены. Итоговые места можно скопировать в CSV для таблицы."
        }
      ],
      "howToTitle": "Как рассчитать дополнительные показатели в шахматах",
      "howTo": [
        "Введите имя каждого участника и по клетке на тур, например 12w1 — победа белыми над участником № 12, или вставьте турнирную таблицу.",
        "Отметьте пропуски туров и неявки: + — свободный тур по жеребьёвке, H — пропуск с зачётом пол-очка, - — отсутствие, 9+ или 9- — неявка.",
        "Выберите дополнительные показатели и их порядок так, как они перечислены в положении о турнире.",
        "Посмотрите итоговые места и скопируйте или скачайте их в CSV."
      ],
      "faq": [
        {
          "question": "Что такое коэффициент Бухгольца в шахматах?",
          "answer": "Сумма итоговых очков всех соперников участника. Усечённый Бухгольц (Cut-1) отбрасывает наименьший из этих результатов, медианный — наименьший и наибольший. Чем выше Бухгольц, тем сильнее были соперники."
        },
        {
          "question": "Что такое коэффициент Бергера (Зоннеборна — Бергера)?",
          "answer": "Для каждой партии итоговые очки соперника умножаются на очки, набранные против него, и всё складывается: победа даёт полный результат соперника, ничья — половину, поражение — ничего. Он поощряет результаты против тех, кто занял высокие места."
        },
        {
          "question": "Как учитываются пропуски туров и неявки?",
          "answer": "По правилам ФИДЕ, действующим с 1 марта 2026 года (статья 16), собственный несыгранный тур участника оценивается как партия против фиктивного соперника с тем же количеством очков, что и у самого участника, а при неявке — не выше очков назначенного соперника. Для показателей соперников несыгранные туры идут с начисленными очками, кроме пропуска по заявке в последнем туре или такого, после которого были только неявки: он считается ничьей."
        },
        {
          "question": "Как работает личная встреча?",
          "answer": "Среди участников, которые всё ещё делят место, решают очки, набранные в партиях друг с другом, если все они сыграли между собой. Если встречались не все, участник выделяется, только когда он был бы впереди при любом исходе несыгранных партий. Неявки не учитываются."
        },
        {
          "question": "Подходит ли калькулятор для круговых турниров?",
          "answer": "Положение ФИДЕ запрещает применять показатели типа Бухгольца в круговых турнирах. Там используйте личную встречу, коэффициент Бергера и количество побед — эта страница считает и их."
        }
      ],
      "cta": {
        "title": "Партии тура записаны на бумаге",
        "body": "Сфотографируйте бланки тура, и ScanChess прочитает каждую партию в PGN для турнирного архива. Распознавание бланка стоит 2 кредита; новые аккаунты получают 10 бесплатно.",
        "button": "Распознать бланк"
      }
    }
  },
  "experience": {
    "startWithImage": "Начните со своего изображения",
    "heroTitle": "Шахматные изображения — в FEN, бланки — в PGN.",
    "heroLead": "Загрузите изображение доски или рукописный бланк. Проверьте результат, затем проанализируйте партию со Stockfish и ИИ-тренером, просмотрите её или экспортируйте.",
    "boardTitle": "Изображение доски в редактируемую позицию",
    "boardLead": "Загрузите чёткое изображение для получения FEN. Проверьте фигуры и очередь хода. Скриншоты и диаграммы читаются лучше; наклонные фото могут потребовать правок.",
    "sheetTitle": "Рукописный бланк партии в PGN",
    "sheetLead": "Загрузите по порядку страницы одной партии. Сверьте ходы с оригиналом и экспортируйте PGN. Для нескольких партий используйте скан тура.",
    "samples": "Нет изображения? Попробуйте пример.",
    "sampleHint": "Готовые примеры без входа, запроса OCR и расхода кредитов. Изучайте и редактируйте результат.",
    "sample_board": "Фото доски → редактируемая позиция",
    "sample_scoresheet": "Бланк → первые 8 полных ходов",
    "sample_review": "Потренируйтесь проверять отмеченный ход",
    "sampleNotice": "Готовый пример или упражнение, без распознавания в реальном времени. Показаны только первые 8 полных ходов. Отметка в упражнении учебная, а не результат измерения OCR.",
    "importNotice": "Нотация импортирована напрямую, без распознавания изображения. Проверьте содержимое перед использованием.",
    "checkPosition": "Проверка правил не доказывает совпадение с оригиналом. Сравните результат с изображением и исправьте различия.",
    "newTask": "Новое сканирование",
    "continueTask": "Продолжить задачу",
    "replaceTitle": "Сохранить текущую работу?",
    "replaceHint": "Ваши изображения или результат ещё здесь. Продолжите работу или замените их для новой задачи. Сначала экспортируйте нужный результат.",
    "replace": "Заменить и начать",
    "keep": "Продолжить текущую задачу",
    "reviewTitle": "Проверьте свою партию",
    "reviewNext": "Проверить следующий ход",
    "reviewRemaining_one": "Ходов для проверки: {{count}}",
    "reviewRemaining_few": "Ходов для проверки: {{count}}",
    "reviewRemaining_many": "Ходов для проверки: {{count}}",
    "reviewRemaining_other": "Ходов для проверки: {{count}}",
    "sourceImage": "Исходное изображение",
    "zoom": "Масштаб",
    "extras": "Данные партии, заметки и публикация",
    "editPosition": "Исправить фигуры и позицию",
    "applyPosition": "Использовать эту позицию",
    "turnHint": "Чей ход? Ориентация доски этого не определяет. Рокировка и другие исторические данные также могут требовать правок в редакторе.",
    "confirmPosition": "Я проверил позицию",
    "reviewed": "Проверено вами",
    "unreviewed": "Вы ещё не проверили позицию. FEN можно скопировать.",
    "outputTitle": "Одна позиция. Или целая партия.",
    "boardCost": "Для распознавания нужен вход: 1 кредит за доску. Новым аккаунтам выдаётся 10 бесплатных кредитов.",
    "sheetCost": "Для распознавания нужен вход: 2 кредита за сканирование, включая страницы одной партии.",
    "lowBalance": "Осталось {{balance}} кредитов, достаточно для {{count}} сканирований в этом режиме.",
    "boardWaiting": "Читаем фигуры и ориентацию доски. После получения результата можно проверить и исправить позицию.",
    "freeAllowance": "10 кредитов при регистрации: до 10 досок или 5 сканирований бланков. Карта не нужна.",
    "pricingUsage": "Кредиты можно сочетать: 100 хватит на 100 досок или 50 сканирований бланков. Редактирование, просмотр, PGN и история партий остаются бесплатными.",
    "selectedPlan": "Выбранный тариф: {{plan}}. Проверьте цену ниже, чтобы продолжить.",
    "toolsTitle": "Уже есть PGN или FEN?",
    "toolsLead": "Просматривайте, проверяйте, анализируйте и готовьте шахматные материалы для обмена. Эти инструменты работают в браузере без аккаунта.",
    "tournamentTitle": "Бланки целого тура?",
    "tournamentLead": "Сгруппируйте страницы по партиям, добавьте жеребьёвку и подготовьте тур к проверке и экспорту PGN. Для каждой задачи есть отдельный процесс.",
    "faqBoard": "Какие изображения доски подходят?",
    "faqBoardComparison": "Чем это отличается от FENShot или Chessify?",
    "boardComparison": "Все эти инструменты преобразуют изображение в FEN, но делают разные акценты. FENShot ориентирован на бесплатное локальное распознавание снимков, Chessify включает сканирование доски в свой сервис. ScanChess принимает снимки, диаграммы и чёткие фото и предлагает исправление рядом с результатом; для распознавания нужны вход и 1 кредит. Всегда проверяйте результат.",
    "faqSheet": "Можно загрузить несколько страниц одной партии?",
    "faqCorrection": "Можно исправить результат?",
    "faqExample": "Расходуют ли примеры кредиты?",
    "correctionHelp": "Откройте отмеченный ход или редактор позиции для исправления результата. Редактирование не расходует кредиты.",
    "analysisHint": "Пробуйте легальные ходы перетаскиванием или нажмите на фигуру и целевое поле. Исходная позиция не меняется.",
    "resetAnalysis": "Вернуться к исходной позиции",
    "partialTitle": "Некоторые ходы нужно исправить",
    "partialHint": "Всю партию пока нельзя воспроизвести. Можно экспортировать только корректное начало с незавершённым результатом. Исходные ходы сохранятся.",
    "partialConfirm": "Экспортировать корректное начало",
    "sheetCostSignedIn": "2 кредита за скан бланка, включая все страницы одной партии.",
    "boardCostSignedIn": "1 кредит за изображение доски.",
    "homeFaqTitle": "Вопросы о ScanChess",
    "homeFaq": [
      {
        "q": "ScanChess бесплатный?",
        "a": "При регистрации вы получаете 10 бесплатных кредитов — этого хватит на 10 изображений доски или 5 сканов бланков, карта не нужна. Доска стоит 1 кредит, скан бланка — 2, сколько бы страниц ни было в партии. Бесплатным инструментам аккаунт не нужен; для распознавания фото реальной доски в поиске лучшего хода и для объяснения ИИ нужен бесплатный аккаунт."
      },
      {
        "q": "Может ли он прочитать рукописный бланк?",
        "a": "Да. Загрузите страницы одной партии по порядку: ходы будут распознаны, проверены по правилам и показаны рядом с оригиналом, так что сомнительный ход можно исправить до экспорта PGN. Поддерживается алгебраическая нотация; описательная нотация вроде P-K4 не конвертируется."
      },
      {
        "q": "Какие изображения доски подходят?",
        "a": "Скриншот онлайн-партии, диаграмма из книги или чёткое фото настоящей доски сверху. Вы получаете редактируемый FEN и сами выбираете, чей ход; на фото под углом и с резными объёмными фигурами может понадобиться поправить одно-два поля."
      },
      {
        "q": "Почему бы просто не ввести партию в Lichess или Chess.com?",
        "a": "Оба сайта импортируют PGN, но сначала кто-то должен его набрать, а одна опечатка останавливает импорт. ScanChess превращает фото в этот PGN, проверяет, что каждый ход допустим, и результат импортируется в Lichess, Chess.com или ChessBase."
      },
      {
        "q": "Что я получу после сканирования?",
        "a": "Партия сохраняется вместе с фото в вашей библиотеке партий. Анализ Stockfish бесплатный: он показывает точность каждой стороны и переломные моменты, а ИИ-тренер их объясняет — одна партия в день бесплатно, дальше 1 кредит. Упущенная тактика становится ежедневной тренировкой (15 упражнений в день бесплатно), а проанализированные партии складываются в ваш игровой профиль. Pro добавляет дебютные репертуары, подготовку к сопернику и отчёты о турнирах; Pro+ — инструменты для клубов."
      }
    ],
    "exampleBoardCaption": "Заранее подготовленный пример позиции. При открытии распознавание не запускается и кредиты не расходуются.",
    "exampleScoresheetCaption": "Заранее подготовленная иллюстрация первых 8 ходов. При открытии распознавание не запускается и кредиты не расходуются.",
    "group_analyze": "Анализ и тренировка",
    "group_convert": "Конвертация и экспорт",
    "group_tournament": "Турниры и бланки",
    "group_fun": "Для души",
    "afterScan": {
      "title": "После сканирования",
      "lead": "Сканирование — только начало работы с партией. Вот что происходит дальше.",
      "steps": {
        "save": {
          "title": "Сохраняется в ваших партиях",
          "text": "Отсканированная партия попадает в библиотеку партий вместе с исходным фото и доступна на всех устройствах, где вы вошли. PGN можно экспортировать в любой момент.",
          "link": "Оцифруйте свои партии"
        },
        "analyze": {
          "title": "Анализ бесплатно",
          "text": "Stockfish считает точность каждой стороны и находит моменты, где партия переломилась. ИИ-тренер объясняет их простыми словами: одна партия в день бесплатно, дальше 1 кредит.",
          "link": "Проанализировать партию"
        },
        "practice": {
          "title": "Упущенная тактика становится тренировкой",
          "text": "Удары, которые вы пропустили, превращаются в короткие упражнения ежедневной тренировки из ваших собственных партий: 15 в день бесплатно, без ограничений в Pro.",
          "link": "Тренировать упущенную тактику"
        },
        "insights": {
          "title": "Ваш игровой профиль",
          "text": "Проанализированные партии складываются в профиль вашей игры, который можно сравнить с вашими партиями на Lichess или Chess.com. Полный профиль — точность во времени, стадии партии и типы ошибок — входит в Pro.",
          "link": "Открыть профиль"
        },
        "prepare": {
          "title": "Подготовка к следующему сопернику",
          "text": "Храните дебютные репертуары и смотрите, где партия от них отклонилась, а перед игрой изучайте онлайн-партии соперника. Pro: 5 репертуаров и 30 отчётов в месяц; Pro+: 20 и 100.",
          "link": "Сравнить тарифы"
        },
        "clubs": {
          "title": "Клубы и тренеры",
          "text": "Список игроков со страницей для каждого ученика, партии отсканированного тура привязываются к игрокам за один шаг, а отчётами о турнирах можно делиться по публичной ссылке и отозвать её.",
          "link": "Тренерам и клубам"
        }
      }
    }
  },
  "refinement": {
    "preparing": "Подготовка изображений…",
    "boardInputHint": "Скриншоты, диаграммы, фото",
    "sheetInputHint": "Одна партия, одна или несколько страниц",
    "fileGuide": "JPG, PNG, WebP · до 15 МБ на изображение",
    "playablePosition": "Редактируемая позиция",
    "tryResult": "Попробовать эту позицию",
    "sampleHint": "Бесплатные примеры без аккаунта и кредитов.",
    "useOwnImage": "Использовать своё изображение",
    "portable": "Экспортируйте результат в привычные шахматные инструменты.",
    "position": "Позиция",
    "correct": "Исправить",
    "needTurn": "Перед анализом выберите очередь хода. Сейчас FEN указывает: {{side}}.",
    "reviewHint": "Проверьте фигуры или отмеченные ходы. Исправления бесплатны.",
    "analyse": "Анализ позиции",
    "notChecked": "Ещё не проверено вами",
    "moreOptions": "Другие действия",
    "stepImage": "Изображение",
    "stepReview": "Проверка",
    "stepUse": "Использование",
    "boardReview": "Проверьте позицию",
    "sample": "Пример",
    "imported": "Импортировано",
    "unsaved": "Есть несохранённые изменения",
    "saved": "Сохранено",
    "reviewPending": "Нужно проверить",
    "boardSampleHint": "Попробуйте редактирование и анализ.",
    "sheetSampleHint": "Первые 8 полных ходов; отметка относится к упражнению.",
    "next": "Далее",
    "save": "Сохранить",
    "export": "Экспорт",
    "guideLead": "Выберите материал и пройдите шаги от загрузки до проверки и экспорта.",
    "exportHint": "После проверки скачайте или скопируйте PGN. Если ход некорректен, можно экспортировать только воспроизводимое начало."
  },
  "scanFlow": {
    "signInToScan_one": "Войти и сканировать · {{cost}} кредит",
    "pagesReady_one": "Готова {{count}} страница. Добавьте другие страницы этой партии или начните сканирование.",
    "replaceImage": "Заменить изображение",
    "addPages": "Добавить страницы",
    "boardReady": "Изображение готово. Проверьте его и запустите распознавание ниже.",
    "pagesReady": "Готово страниц: {{count}}. Расположите их по порядку перед сканированием.",
    "signInToScan": "Войти и сканировать · {{cost}} кредитов",
    "readyLead": "Проверьте изображения и запустите распознавание. Тип можно изменить без повторной загрузки.",
    "signInToScan_few": "Войти и сканировать · {{cost}} кредита",
    "signInToScan_many": "Войти и сканировать · {{cost}} кредитов"
  },
  "dashboard": {
    "seo": {
      "overviewTitle": "Обзор · Рабочее пространство ScanChess",
      "gamesTitle": "Партии · Рабочее пространство ScanChess",
      "reviewTitle": "К проверке · Рабочее пространство ScanChess",
      "eventsTitle": "Турниры · Рабочее пространство ScanChess",
      "positionsTitle": "Позиции · Рабочее пространство ScanChess",
      "clubTitle": "Участники клуба · Рабочее пространство ScanChess",
      "billingTitle": "Кредиты и план · Рабочее пространство ScanChess",
      "joinTitle": "Вступить в клуб · ScanChess",
      "description": "Ваше рабочее пространство ScanChess: сканирование, партии, турниры и кредиты.",
      "playersTitle": "Игроки клуба · Рабочее пространство ScanChess",
      "trainingTitle": "Ежедневная тренировка · Рабочее пространство ScanChess",
      "insightsTitle": "Мой игровой профиль · Рабочее пространство ScanChess",
      "repertoireTitle": "Дебютный репертуар · Рабочее пространство ScanChess",
      "scoutingTitle": "Подготовка к сопернику · Рабочее пространство ScanChess",
      "gameTitle": "{{game}} · Рабочее пространство ScanChess",
      "settingsTitle": "Настройки · Рабочее пространство ScanChess",
      "batchTitle": "Скан тура · Рабочее пространство ScanChess",
      "notFoundTitle": "Страница не найдена · Рабочее пространство ScanChess",
      "eventTitle": "{{name}} · Турниры · Рабочее пространство ScanChess",
      "scoutingReportTitle": "{{name}} · Подготовка к сопернику · Рабочее пространство ScanChess",
      "playerTitle": "{{name}} · Игроки клуба · Рабочее пространство ScanChess",
      "scanTitle": "Новое сканирование · Рабочее пространство ScanChess",
      "scanBoardTitle": "Изображение доски · Рабочее пространство ScanChess",
      "scanSheetTitle": "Бланк · Рабочее пространство ScanChess",
      "tournamentsTitle": "Мои турниры · Рабочее пространство ScanChess",
      "tournamentTitle": "{{name}} · Мои турниры · Рабочее пространство ScanChess",
      "inviteTitle": "Пригласить друзей · Рабочее пространство ScanChess"
    },
    "nav": {
      "label": "Рабочее пространство",
      "scan": "Новое сканирование",
      "overview": "Обзор",
      "review": "К проверке",
      "games": "Партии",
      "events": "Турниры",
      "positions": "Позиции",
      "members": "Участники",
      "clubBilling": "Кредиты и оплата",
      "clubHeading": "Клуб",
      "billing": "Кредиты и план",
      "settings": "Настройки",
      "tools": "Бесплатные инструменты",
      "more": "Ещё",
      "players": "Игроки",
      "training": "Ежедневная тренировка",
      "insights": "Мой игровой профиль",
      "repertoire": "Репертуар",
      "scouting": "Соперники",
      "new": "Создать",
      "groupGames": "Мои партии",
      "groupImprove": "Развитие",
      "groupPrepare": "Подготовка",
      "myTournaments": "Мои турниры",
      "practiceShort": "Практика",
      "invite": "Пригласить друзей"
    },
    "userMenu": {
      "workspace": "Рабочее пространство"
    },
    "workbench": {
      "board": "Доска",
      "addBoard": "Добавить доску",
      "whiteElo": "Рейтинг белых",
      "addWhiteElo": "Добавить рейтинг белых",
      "blackElo": "Рейтинг чёрных",
      "addBlackElo": "Добавить рейтинг чёрных",
      "section": "Группа",
      "addSection": "Добавить группу",
      "tab": {
        "board": "Доска",
        "details": "Детали",
        "notes": "Заметки",
        "share": "Поделиться"
      }
    },
    "guest": {
      "title": "Вы не вошли",
      "body": "Примеры бесплатны. Войдите, чтобы сканировать свои изображения и сохранять партии. Новые аккаунты получают 10 бесплатных кредитов."
    },
    "workspace": {
      "switch": "Сменить рабочее пространство",
      "heading": "Рабочие пространства",
      "personal": "Личное",
      "pro": "Pro",
      "free": "Бесплатное",
      "clubMembers_one": "Клуб · {{count}} участник",
      "clubMembers_few": "Клуб · {{count}} участника",
      "clubMembers_many": "Клуб · {{count}} участников",
      "clubMembers_other": "Клуб · {{count}} участника",
      "clubDetail_one": "{{role}} · {{count}} кредит",
      "clubDetail_few": "{{role}} · {{count}} кредита",
      "clubDetail_many": "{{role}} · {{count}} кредитов",
      "clubDetail_other": "{{role}} · {{count}} кредита",
      "personalPro_one": "Pro · {{count}} кредит",
      "personalPro_few": "Pro · {{count}} кредита",
      "personalPro_many": "Pro · {{count}} кредитов",
      "personalPro_other": "Pro · {{count}} кредита",
      "personalFree_one": "Бесплатно · {{count}} кредит",
      "personalFree_few": "Бесплатно · {{count}} кредита",
      "personalFree_many": "Бесплатно · {{count}} кредитов",
      "personalFree_other": "Бесплатно · {{count}} кредита",
      "create": "Создать клуб",
      "join": "Вступить по ссылке-приглашению",
      "hint": "Новые сканирования, партии и кредиты относятся к выбранному здесь рабочему пространству."
    },
    "roles": {
      "owner": "Владелец",
      "admin": "Администратор",
      "member": "Участник"
    },
    "credits": {
      "count_one": "{{count}} кредит",
      "count_few": "{{count}} кредита",
      "count_many": "{{count}} кредитов",
      "count_other": "{{count}} кредита",
      "enoughScoresheets_one": "Хватит на {{count}} бланк",
      "enoughScoresheets_few": "Хватит на {{count}} бланка",
      "enoughScoresheets_many": "Хватит на {{count}} бланков",
      "enoughScoresheets_other": "Хватит на {{count}} бланка",
      "enoughBoards_one": "Хватит на {{count}} снимок доски",
      "enoughBoards_few": "Хватит на {{count}} снимка доски",
      "enoughBoards_many": "Хватит на {{count}} снимков доски",
      "enoughBoards_other": "Хватит на {{count}} снимка доски",
      "nextGrant": "Pro · следующие кредиты {{date}}",
      "free": "Бесплатный план",
      "clubBalance": "Общий баланс клуба",
      "pro": "Тариф Pro"
    },
    "creditHistory": {
      "activity": {
        "scoresheet": "Сканирование бланка",
        "board": "Распознавание доски",
        "coachExplanation": "Объяснение ИИ-тренера",
        "reportSummary": "Итоги отчёта",
        "positionExplanation": "Объяснение позиции"
      },
      "refund": "Возврат: {{what}}",
      "free": "{{what}} (бесплатно за день)",
      "freeReturned": "{{what}} (бесплатно за день, возвращено)"
    },
    "status": {
      "toCheck_one": "{{count}} к проверке",
      "toCheck_few": "{{count}} к проверке",
      "toCheck_many": "{{count}} к проверке",
      "toCheck_other": "{{count}} к проверке",
      "illegalFrom": "Недопустимый ход начиная с {{move}}",
      "noFlags": "Нет пометок",
      "ruleChecked": "Каждый ход разыгран по правилам; но пока никто это не подтвердил",
      "checked": "Проверено",
      "filterFlagged": "К проверке"
    },
    "progress": {
      "checked": "{{count}} проверено",
      "noFlags": "{{count}} без пометок",
      "toCheck": "{{count}} к проверке",
      "notScanned": "{{count}} не отсканировано"
    },
    "game": {
      "round": "Тур {{round}}",
      "board": "Доска {{board}}",
      "missingTitle": "Этой партии нет в этом рабочем пространстве",
      "missingBody": "Возможно, она удалена или принадлежит другому рабочему пространству. Смените пространство или откройте список партий.",
      "breadcrumb": "Навигационная цепочка",
      "startChecking": "Проверить ходы"
    },
    "overview": {
      "personalDescription": "Личное рабочее пространство",
      "continue": "Продолжить",
      "savedToday": "Сохранено сегодня",
      "savedOn": "Сохранено {{date}}",
      "today": "Сегодня",
      "dropTitle": "Перетащите, вставьте или выберите изображение",
      "dropCosts": "Фото доски — 1 кредит · бланк — 2 кредита",
      "scoresheet": "Бланк",
      "recentGames": "Недавние партии",
      "allGames": "Все партии",
      "allPositions": "Все позиции",
      "noGamesTitle": "Партий пока нет",
      "noGamesBody": "Отсканируйте бланк — и партия сохранится здесь, готовая к проверке, просмотру и экспорту.",
      "scanFirst": "Отсканировать бланк",
      "credits": "Кредиты",
      "inviteLine": "Пригласите друга: вы оба получите по 5 кредитов",
      "copyLink": "Скопировать ссылку",
      "extensionHint": "Здесь появляются доски, сохранённые на сайте или через расширение",
      "continueChecking": "Продолжить проверку",
      "openAnalysis": "Открыть анализ",
      "toCheckTitle_one": "{{count}} партия к проверке",
      "toCheckTitle_other": "{{count}} партии к проверке",
      "toCheckBody": "Некоторые ходы при сканировании прочитались неуверенно. Сверьте их с бланком, прежде чем разбирать партию или делиться ею.",
      "toCheckAction": "Начать проверку",
      "toCheckTitle_few": "{{count}} партии к проверке",
      "toCheckTitle_many": "{{count}} партий к проверке",
      "nextStep": "Следующий шаг",
      "practiceTitle_one": "Сегодня {{count}} карточка к решению",
      "practiceTitle_few": "Сегодня {{count}} карточки к решению",
      "practiceTitle_many": "Сегодня {{count}} карточек к решению",
      "practiceTitle_other": "Сегодня {{count}} карточки к решению",
      "insightsTitle": "Посмотрите, что ваши партии говорят о вашей игре",
      "latestAnalyzed": "Ваша последняя партия, {{game}}, проанализирована.",
      "openInsights": "Открыть мой профиль"
    },
    "lowBalance": {
      "body": "Pro добавляет 100 кредитов каждые 30 дней — примерно 50 бланков — за $2,50 в месяц при оплате $29,99 за год.",
      "seePro": "Подробнее о Pro",
      "invite": "Пригласить друга · +5 каждому",
      "notNow": "Не сейчас"
    },
    "upgrade": {
      "cta": "Перейти на Pro",
      "title": "Продолжайте сканировать с Pro",
      "titlePass": "Продолжайте сканировать с годовым абонементом Pro",
      "subtitle": "Кредиты появятся на балансе сразу после подтверждения платежа.",
      "usage": "За последние 30 дней вы использовали {{credits}} кредитов: {{scoresheets}} бланков и {{boards}} фото досок.",
      "billing": "Оплата",
      "planLabel": "План",
      "fits": "Подходит вашему темпу сканирования",
      "tierDetail": {
        "pro": "100 кредитов каждые 30 дней · примерно 50 бланков",
        "proplus": "500 кредитов каждые 30 дней · примерно 250 бланков · для клубов и тренеров с большим объёмом сканирования"
      },
      "monthlyEquivalent": "{{monthly}} в месяц при оплате {{yearly}} за год",
      "perYear": "/ год",
      "perMonth": "/ месяц",
      "totalBeforeTax": "Итого без налога",
      "continue": "Перейти к оплате",
      "smallPrint": "Продлевается автоматически по той же цене, пока вы не отмените. Все платежи окончательны и не возвращаются, кроме случаев, предусмотренных законом. Кредиты не сгорают. Налог рассчитывает при оплате наш реселлер Waffo.",
      "refundPolicy": "Политика возвратов",
      "clubPlan": "Pro+ — тариф для клубов и тренеров: всё из Pro, больше кредитов и функции, которыми вы делитесь с другими.",
      "cnNoProPlus": "Pro+ пока нельзя купить в магазине в юанях. Напишите в поддержку — мы поможем его подключить.",
      "contactSupport": "Написать в поддержку",
      "quota": {
        "notIncluded": "Не входит"
      },
      "topics": {
        "insights": {
          "title": "Полный профиль с Pro",
          "subtitle": "Где вы выигрываете и проигрываете партии — по всем проанализированным партиям.",
          "points": {
            "0": "Точность во времени, по стадиям партии и по типам ошибок",
            "1": "Ваши дебюты за каждый цвет, реализация выигранных позиций и что тренировать дальше",
            "2": "Фильтры по периоду, источнику и контролю времени и подробное сравнение онлайн и за доской"
          },
          "included": "Полный профиль и фильтры"
        },
        "repertoire": {
          "title": "Дебютные репертуары с Pro",
          "subtitle": "Храните подготовленные варианты и смотрите, где каждая партия из них вышла.",
          "points": {
            "0": "Импортируйте репертуар из PGN или соберите его по своим партиям",
            "1": "Смотрите ход, на котором каждая партия вышла из подготовки"
          },
          "quota_one": "{{count}} репертуар",
          "quota_other": "{{count}} репертуара",
          "quota_few": "{{count}} репертуара",
          "quota_many": "{{count}} репертуаров"
        },
        "scouting": {
          "title": "Подготовка к соперникам с Pro",
          "subtitle": "Перед партией: что соперник играет онлайн, как набирает очки и куда бить.",
          "points": {
            "0": "Читает его последние открытые партии на Lichess или Chess.com",
            "1": "Его дебюты за каждый цвет и результаты в них"
          },
          "quota_one": "{{count}} отчёт о сопернике в месяц",
          "quota_other": "{{count}} отчёта о соперниках в месяц",
          "quota_few": "{{count}} отчёта о соперниках в месяц",
          "quota_many": "{{count}} отчётов о соперниках в месяц"
        },
        "eventReport": {
          "title": "Полный отчёт о турнире с Pro",
          "subtitle": "Отчёт для печати о турнире одного игрока, построенный по сохранённому анализу движка для каждой партии.",
          "points": {
            "0": "Самая крупная ошибка каждого тура, дебюты и повторяющиеся ошибки",
            "1": "Нереализованные выигранные позиции и что тренировать дальше"
          },
          "quota_one": "{{count}} отчёт о турнире в месяц",
          "quota_other": "{{count}} отчёта о турнирах в месяц",
          "quota_few": "{{count}} отчёта о турнирах в месяц",
          "quota_many": "{{count}} отчётов о турнирах в месяц"
        },
        "reportShare": {
          "title": "Отправка отчётов с Pro+",
          "subtitle": "Отправьте родителям или другому тренеру закрытую ссылку на отчёт со сроком действия на ваш выбор.",
          "points": {
            "0": "Любой, у кого есть ссылка, прочитает отчёт без аккаунта",
            "1": "Имена игроков скрыты, если вы не решите их показать"
          },
          "included": "Ссылки на отчёты"
        },
        "clubPlayers": {
          "title": "Список игроков с Pro+",
          "subtitle": "Клуб на Pro+ ведёт список учеников и привязывает каждую отсканированную партию к игравшим её игрокам.",
          "points": {
            "0": "Профиль, партии и отчёты каждого ученика в одном месте",
            "1": "Бланки тура привязываются к нужным игрокам"
          },
          "included": "Список игроков клуба"
        },
        "training": {
          "title": "Тренировки без дневного лимита",
          "subtitle_one": "В бесплатном аккаунте {{count}} карточка в день; в Pro и Pro+ дневного лимита нет.",
          "subtitle_other": "В бесплатном аккаунте {{count}} карточки в день; в Pro и Pro+ дневного лимита нет.",
          "subtitle_few": "В бесплатном аккаунте {{count}} карточки в день; в Pro и Pro+ дневного лимита нет.",
          "subtitle_many": "В бесплатном аккаунте {{count}} карточек в день; в Pro и Pro+ дневного лимита нет.",
          "points": {
            "0": "Позиции из ваших собственных партий, где был упущен выигрывающий ход",
            "1": "Каждая карточка возвращается незадолго до того, как вы бы её забыли"
          },
          "included": "Тренировки без лимита"
        },
        "coach": {
          "title": "Больше объяснений от тренера",
          "subtitle_one": "{{count}} объяснение в день бесплатно.",
          "subtitle_other": "{{count}} объяснения в день бесплатно.",
          "subtitle_few": "{{count}} объяснения в день бесплатно.",
          "subtitle_many": "{{count}} объяснений в день бесплатно.",
          "points": {
            "1": "Pro и Pro+ начисляют кредиты каждые 30 дней, и кредиты не сгорают",
            "0_one": "Дальше каждое объяснение стоит {{count}} кредит",
            "0_other": "Дальше каждое объяснение стоит {{count}} кредита",
            "0_few": "Дальше каждое объяснение стоит {{count}} кредита",
            "0_many": "Дальше каждое объяснение стоит {{count}} кредитов"
          }
        }
      }
    },
    "needCredits": {
      "title_one": "Для этого скана нужно {{cost}} кредитов. У вас есть {{count}}.",
      "title_few": "Для этого скана нужно {{cost}} кредитов. У вас есть {{count}}.",
      "title_many": "Для этого скана нужно {{cost}} кредитов. У вас есть {{count}}.",
      "title_other": "Для этого скана нужно {{cost}} кредитов. У вас есть {{count}}.",
      "keep": "Ваши фото останутся здесь, а после оплаты вы сразу вернётесь к этому сканированию.",
      "proTitle": "Pro · годовая подписка",
      "proBody": "100 кредитов каждые 30 дней · примерно 50 бланков · или {{monthly}} в месяц",
      "inviteTitle": "Пригласить друга",
      "inviteBody": "Когда новый друг зарегистрируется по вашей ссылке и подтвердит почту, вы оба получите по 5 кредитов.",
      "freeStays": "Редактирование, просмотр, экспорт PGN и примеры всегда бесплатны.",
      "proNext": "Следующие кредиты ({{credits}}) поступят {{date}}.",
      "proPlus": "Pro+ добавляет 500 кредитов каждые 30 дней — примерно 250 бланков.",
      "seeProPlus": "Подробнее о Pro+",
      "clubTitle": "У {{name}} закончились кредиты",
      "clubBody": "Для этого скана нужно {{cost}} кредитов; у клуба есть {{balance}}.",
      "buyForClub": "Купить кредиты для клуба",
      "usePersonal": "Сканировать в личном рабочем пространстве · {{count}} кредитов",
      "personalNote": "Сканирование в личном рабочем пространстве сохраняется в вашей собственной библиотеке, а не в библиотеке клуба."
    },
    "games": {
      "count_one": "{{count}} партия",
      "count_few": "{{count}} партии",
      "count_many": "{{count}} партий",
      "count_other": "{{count}} партии",
      "exportAll": "Экспортировать всё",
      "exportFiltered": "Экспортировать эти",
      "exported_one": "Экспортирована {{count}} партия",
      "exported_few": "Экспортировано {{count}} партии",
      "exported_many": "Экспортировано {{count}} партий",
      "exported_other": "Экспортировано {{count}} партии",
      "exportTruncated": "В один файл помещается только первая 1000 партий. Сузьте фильтры, чтобы экспортировать остальные.",
      "searchLabel": "Поиск партий",
      "searchPlaceholder": "Поиск по игрокам или турниру",
      "event": "Турнир",
      "round": "Тур",
      "status": "Статус",
      "result": "Результат",
      "sort": "Сортировка",
      "any": "Любой",
      "sortSaved": "Недавно сохранённые",
      "sortDate": "Дата партии",
      "sortBoard": "Доска",
      "sortFlagged": "Больше всего пометок",
      "selected_one": "Выбрано: {{count}}",
      "selected_few": "Выбрано: {{count}}",
      "selected_many": "Выбрано: {{count}}",
      "selected_other": "Выбрано: {{count}}",
      "markChecked": "Отметить проверенными",
      "markedChecked_one": "Отмечено как проверенные: {{count}} партия",
      "markedChecked_few": "Отмечено как проверенные: {{count}} партии",
      "markedChecked_many": "Отмечено как проверенные: {{count}} партий",
      "markedChecked_other": "Отмечено как проверенные: {{count}} партии",
      "illegalNotChecked_one": "В {{count}} партии есть недопустимый ход — оставлена для проверки.",
      "illegalNotChecked_few": "В {{count}} партиях есть недопустимые ходы — оставлены для проверки.",
      "illegalNotChecked_many": "В {{count}} партиях есть недопустимые ходы — оставлены для проверки.",
      "illegalNotChecked_other": "В {{count}} партиях есть недопустимые ходы — оставлены для проверки.",
      "moveToEvent": "Перенести в турнир",
      "delete": "Удалить",
      "deleted_one": "Удалена {{count}} партия",
      "deleted_few": "Удалено {{count}} партии",
      "deleted_many": "Удалено {{count}} партий",
      "deleted_other": "Удалено {{count}} партии",
      "deleteTitle_one": "Удалить {{count}} партию?",
      "deleteTitle_few": "Удалить {{count}} партии?",
      "deleteTitle_many": "Удалить {{count}} партий?",
      "deleteTitle_other": "Удалить {{count}} партии?",
      "deleteBody": "Партии и фото их бланков будут удалены безвозвратно. Экспортированные файлы PGN это не затронет.",
      "clear": "Очистить",
      "clearFilters": "Сбросить фильтры",
      "noMatchTitle": "Нет партий, подходящих под фильтры",
      "emptyTitle": "Партий пока нет",
      "emptyBody": "Каждый отсканированный бланк сохраняется здесь. Сканируйте по одной партии или сразу целый тур.",
      "selectAll": "Выбрать все партии на этой странице",
      "select": "Выбрать {{game}}",
      "boardShort": "Доска",
      "opening": "Дебют",
      "saved": "Сохранена",
      "showing": "Показано {{from}}–{{to}}",
      "previous": "Предыдущая страница",
      "next": "Следующая страница",
      "moveTitle_one": "Перенести {{count}} партию в турнир",
      "moveTitle_few": "Перенести {{count}} партии в турнир",
      "moveTitle_many": "Перенести {{count}} партий в турнир",
      "moveTitle_other": "Перенести {{count}} партии в турнир",
      "moveBody": "Партии получат название турнира и, если вы его укажете, тур.",
      "noEvents": "В этом рабочем пространстве ещё нет турниров. Создайте его в разделе «Турниры».",
      "roundOptional": "Тур (необязательно)",
      "moveConfirm": "Перенести",
      "moved_one": "{{count}} партия перенесена в {{event}}",
      "moved_few": "{{count}} партии перенесено в {{event}}",
      "moved_many": "{{count}} партий перенесено в {{event}}",
      "moved_other": "{{count}} партии перенесено в {{event}}",
      "scannedBy": "Кто сканировал",
      "deleteOwnOnly": "Как участник вы можете удалять только партии, которые сканировали сами.",
      "viewLabel": "Показать",
      "checkOneByOne": "Проверить по очереди",
      "analysis": {
        "column": "Анализ",
        "analyzed": "Проанализирована",
        "none": "Не проанализирована",
        "outdated": "Устарел",
        "outdatedHint": "Сохранённый анализ сделан для других ходов или старой версией анализа. Проанализируйте партию заново, чтобы обновить его."
      }
    },
    "review": {
      "gamesCount_one": "{{count}} партия",
      "gamesCount_few": "{{count}} партии",
      "gamesCount_many": "{{count}} партий",
      "gamesCount_other": "{{count}} партии",
      "filterLabel": "Фильтр по турниру",
      "allEvents": "Все турниры",
      "noEvent": "Без турнира",
      "sortedBy": "Сначала партии с наибольшим числом пометок",
      "queueLabel": "Партии на проверку",
      "paneLabel": "Вид",
      "pane": {
        "moves": "Ходы",
        "image": "Изображение",
        "board": "Доска"
      },
      "noImage": "Эта партия сохранена без фото.",
      "pickGame": "Выберите партию для проверки",
      "keyNext": "следующий помеченный ход",
      "keyChecked": "отметить проверенным",
      "fixIllegal": "Сначала исправьте недопустимый ход",
      "remaining_one": "{{count}} ход к проверке",
      "remaining_few": "{{count}} хода к проверке",
      "remaining_many": "{{count}} ходов к проверке",
      "remaining_other": "{{count}} хода к проверке",
      "nothingLeft": "Нечего проверять",
      "position": "партия {{index}} из {{total}}",
      "unsaved": "есть несохранённые правки",
      "skip": "Пропустить",
      "nextIssue": "Следующий помеченный ход",
      "markChecked": "Отметить проверенным и далее",
      "checkedToast": "{{game}} проверена",
      "emptyTitle": "Нечего проверять",
      "emptyBody": "Все партии в этом рабочем пространстве либо проверены, либо без единой пометки."
    },
    "positions": {
      "description": "Позиции из книг, видео, сканов и партий — получайте объяснения и добавляйте их в тренировку.",
      "scanBoard": "Отсканировать доску",
      "filterLabel": "Фильтр по источнику",
      "filter": {
        "all": "Все"
      },
      "source": {
        "extension": "Расширение",
        "board_scan": "Загрузка",
        "editor": "Редактор доски",
        "game": "Из партии",
        "book": "Книга",
        "video": "Видео"
      },
      "whiteToMove": "Ход белых",
      "blackToMove": "Ход чёрных",
      "fromHost": "С {{host}}",
      "analyse": "Анализировать на Lichess",
      "openGame": "Открыть партию",
      "delete": "Удалить позицию",
      "loadMore": "Показать ещё",
      "save": "Сохранить в позиции",
      "saved": "Сохранено в позициях",
      "savedToast": "Позиция сохранена. Найдите её в разделе «Позиции».",
      "emptyTitle": "Сохранённых позиций пока нет",
      "emptyBody": "Сохраните позицию из скана, инструмента «Лучший ход» или доски анализа — со страницей книги или моментом видео — и изучайте её здесь.",
      "untitled": "Позиция без названия",
      "close": "Закрыть",
      "study": "Изучить",
      "openBoard": "Открыть на доске анализа",
      "engineLines": "Варианты движка",
      "startEngine": "Запустить движок",
      "details": "Данные блокнота",
      "edit": "Изменить",
      "saveDetails": "Сохранить данные",
      "updated": "Сохранено",
      "openSource": "Открыть источник",
      "page": "с. {{page}}",
      "at": "на {{time}}",
      "watchAt": "Смотреть с {{time}}",
      "fromTools": "Найти лучший ход"
    },
    "billing": {
      "freeDescription": "Вы на бесплатном плане. Кредиты — единственное, что вы тратите в ScanChess.",
      "proDescription": "Ваш план, баланс и то, что вы недавно сканировали.",
      "balance": "Баланс",
      "balanceWorth": "Примерно {{scoresheets}} бланков или {{boards}} фото досок",
      "last30": "Последние 30 дней",
      "scoresheets": "Бланки",
      "boards": "Фото досок",
      "scans_one": "{{count}} сканирование",
      "scans_few": "{{count}} сканирования",
      "scans_many": "{{count}} сканирований",
      "scans_other": "{{count}} сканирования",
      "noUsage": "За последние 30 дней сканирований не было.",
      "coachUsage": "ИИ-тренер: бесплатных объяснений — {{free}}, платных — {{paid}}",
      "inviteTitle": "Пригласить друзей",
      "inviteBody": "Когда новый друг зарегистрируется по вашей ссылке и подтвердит почту, вы оба получите по 5 кредитов.",
      "copyInvite": "Скопировать вашу ссылку-приглашение",
      "coach": "Объяснения ИИ",
      "explanations_one": "{{count}} платное объяснение",
      "explanations_few": "{{count}} платных объяснения",
      "explanations_many": "{{count}} платных объяснений",
      "explanations_other": "{{count}} платного объяснения",
      "myPlan": "Мой план",
      "activeUntil": "Действует до {{date}}",
      "nextCredits": "следующие кредиты {{date}}",
      "freePlanLine": "Pro добавляет {{count}} кредитов каждые 30 дней и все функции анализа.",
      "seePlans": "Посмотреть тарифы",
      "managePlan": "Изменить или отменить",
      "changePlan": "Сменить план",
      "upgrade": "Улучшить план",
      "seeInvites": "Кто уже присоединился"
    },
    "club": {
      "overviewDescription_one": "Здесь партии и кредиты делит {{count}} участник",
      "overviewDescription_few": "Здесь партии и кредиты делят {{count}} участника",
      "overviewDescription_many": "Здесь партии и кредиты делят {{count}} участников",
      "overviewDescription_other": "Здесь партии и кредиты делят {{count}} участника",
      "openEvent": "Открыть турнир",
      "reviewGames_one": "Проверить {{count}} партию",
      "reviewGames_few": "Проверить {{count}} партии",
      "reviewGames_many": "Проверить {{count}} партий",
      "reviewGames_other": "Проверить {{count}} партии",
      "needsCheck": "К проверке",
      "openQueue": "Проверить по очереди",
      "newEvent": "Новый турнир",
      "noEvents": "Турниров пока нет",
      "billingDescription": "Кредиты принадлежат клубу. Сканирование любого участника в этом рабочем пространстве списывается с этого баланса.",
      "plan": "План",
      "planActive": "Активен",
      "noPlan": "Нет плана",
      "planUntil": "Оплачено до {{date}}",
      "planHint": "Купите план для клуба ниже",
      "nextGrant": "Следующее начисление",
      "neverExpire": "Кредиты не сгорают",
      "usageByEvent": "Расход за последние 30 дней по турнирам",
      "coachUsage": "ИИ-тренер",
      "coachPaidUses": "Платных использований: {{uses}}",
      "buyTitle": "Купить кредиты для клуба",
      "buyBody": "Купите план для клуба: его кредиты пополнят баланс клуба, и никто лично не получит Pro.",
      "planCredits": "{{count}} кредитов каждые 30 дней",
      "receipts": "Чеки присылает по почте наш реселлер Waffo.",
      "askTitle": "Нужно больше кредитов?",
      "askBody": "Покупать кредиты для клуба могут только владельцы и администраторы. Мы можем сообщить им прямо сейчас.",
      "askAdmins": "Попросить администраторов пополнить баланс",
      "askedAdmins_one": "Мы сообщили {{count}} владельцу или администратору",
      "askedAdmins_few": "Мы сообщили {{count}} владельцам и администраторам",
      "askedAdmins_many": "Мы сообщили {{count}} владельцам и администраторам",
      "askedAdmins_other": "Мы сообщили {{count}} владельцам и администраторам",
      "transactions": "Транзакции",
      "when": "Когда",
      "what": "Что",
      "member": "Участник",
      "creditsColumn": "Кредиты",
      "noTransactions": "Транзакций пока нет.",
      "createTitle": "Создать клуб",
      "createBody": "Клуб — это общее рабочее пространство: участники входят под своими аккаунтами, сканируют за счёт кредитов клуба и хранят партии клуба в одной библиотеке.",
      "nameLabel": "Название клуба",
      "createCta": "Создать клуб",
      "created": "{{name}} готов. Теперь пригласите участников.",
      "membersDescription": "Каждый входит под своим аккаунтом. Пароль никто не делит.",
      "inviteTitle": "Ссылка-приглашение",
      "inviteBody": "Тот, кто её откроет, вступит с выбранной вами ролью. Ссылка действует 7 дней.",
      "joinsAs": "Роль при вступлении",
      "createInvite": "Создать ссылку-приглашение",
      "copy": "Скопировать",
      "inviteOnce": "Скопируйте сейчас: в целях безопасности ссылка показывается только один раз и истекает {{date}}.",
      "inviteRow_one": "Ссылка «{{role}}» · создана {{created}} · истекает {{expires}} · использована {{count}} раз",
      "inviteRow_few": "Ссылка «{{role}}» · создана {{created}} · истекает {{expires}} · использована {{count}} раза",
      "inviteRow_many": "Ссылка «{{role}}» · создана {{created}} · истекает {{expires}} · использована {{count}} раз",
      "inviteRow_other": "Ссылка «{{role}}» · создана {{created}} · истекает {{expires}} · использована {{count}} раза",
      "revoke": "Отозвать",
      "revoked": "Ссылка-приглашение отозвана",
      "memberCount_one": "{{count}} участник",
      "memberCount_few": "{{count}} участника",
      "memberCount_many": "{{count}} участников",
      "memberCount_other": "{{count}} участника",
      "noMembers": "Участников пока нет",
      "role": "Роль",
      "gamesThisPeriod": "Партии · 30 дней",
      "creditsThisPeriod": "Кредиты · 30 дней",
      "lastActive": "Последняя активность",
      "you": "вы",
      "roleFor": "Роль для {{name}}",
      "roleChanged": "Роль изменена",
      "memberActions": "Действия для {{name}}",
      "leave": "Покинуть клуб",
      "makeOwner": "Сделать владельцем",
      "transferred": "Право владения передано",
      "remove": "Удалить из клуба",
      "removed": "Участник удалён",
      "removeTitle": "Удалить {{name}}?",
      "removeBody": "Он потеряет доступ к партиям и кредитам клуба. Отсканированные им партии останутся в клубе.",
      "leaveTitle": "Покинуть {{name}}?",
      "leaveBody": "Вы потеряете доступ к партиям и кредитам клуба. Отсканированные вами партии останутся в клубе.",
      "roleHelp": {
        "owner": "Всё, что доступно администратору, плюс передача владения и удаление клуба.",
        "admin": "Приглашает и удаляет участников, покупает кредиты, управляет турнирами и жеребьёвкой, удаляет любую партию.",
        "member": "Сканирует за счёт кредитов клуба, проверяет и редактирует любую партию клуба, экспортирует PGN. Удаляет только те партии, которые отсканировал сам."
      },
      "deleteTitle": "Удалить клуб",
      "deleteBody": "Удаляет клуб, его партии, турниры и оставшиеся кредиты — для всех участников.",
      "deleteCta": "Удалить клуб",
      "deleteConfirmTitle": "Удалить {{name}}?",
      "deleteConfirmBody": "Каждая партия, турнир и кредит, принадлежащие клубу, будут удалены для всех участников. Это необратимо.",
      "transferTitle": "Сделать {{name}} владельцем?",
      "transferBody": "{{name}} сможет менять любые роли и удалить клуб. Вы станете администратором, и вернуть вам права владельца сможет только новый владелец."
    },
    "join": {
      "pasteTitle": "Вступить в клуб",
      "pasteBody": "Вставьте ссылку-приглашение, которую прислал вам владелец или администратор клуба.",
      "linkLabel": "Ссылка-приглашение",
      "continue": "Продолжить",
      "badLink": "Это не похоже на ссылку-приглашение ScanChess.",
      "invalidTitle": "Это приглашение больше не действует",
      "invalidBody": "Возможно, оно истекло или было отозвано. Попросите у клуба новую ссылку.",
      "tryAnother": "Использовать другую ссылку",
      "title": "Вступить в {{name}}",
      "role": "Вы вступите с ролью {{role}}. Приглашение истекает {{date}}.",
      "accept": "Вступить в клуб",
      "alreadyMember": "Вы уже участник — открыть рабочее пространство",
      "joined": "Добро пожаловать в {{name}}"
    },
    "events": {
      "description": "Турниры и клубные вечера, тур за туром.",
      "count_one": "{{count}} турнир",
      "count_few": "{{count}} турнира",
      "count_many": "{{count}} турниров",
      "count_other": "{{count}} турнира",
      "new": "Новый турнир",
      "newTitle": "Новый турнир",
      "newBody": "Для начала назовите турнир. Жеребьёвка не обязательна: с ней каждая отсканированная партия попадёт к нужным игрокам, рейтингам, туру и доске.",
      "create": "Создать турнир",
      "created": "{{name}} создан",
      "emptyTitle": "Турниров пока нет",
      "emptyBody": "Создайте турнир, чтобы сверять сканирование каждого тура с жеребьёвкой, видеть, каких досок ещё не хватает, и делиться партиями с игроками.",
      "form": {
        "name": "Название турнира",
        "site": "Место",
        "startDate": "Начало",
        "endDate": "Окончание",
        "endBeforeStart": "Дата окончания раньше даты начала."
      },
      "list": {
        "event": "Турнир",
        "rounds": "Туры",
        "games": "Партии",
        "progress": "Прогресс",
        "eventPage": "Страница турнира",
        "public": "Публичная",
        "private": "Приватная",
        "noGames": "Ещё ни одна партия не отсканирована"
      },
      "pairings": {
        "title": "Жеребьёвка",
        "choose": "Импортировать жеребьёвку (CSV, TSV, PGN или JSON)",
        "remove": "Убрать",
        "readAs": "Мы прочитали ваш файл как {{format}}.",
        "format": {
          "csv": "таблицу (CSV или TSV)",
          "pgn": "список в PGN",
          "json": "файл жеребьёвки в JSON"
        },
        "found_one": "Найдена {{count}} пара, {{rounds}}.",
        "found_few": "Найдено {{count}} пары, {{rounds}}.",
        "found_many": "Найдено {{count}} пар, {{rounds}}.",
        "found_other": "Найдено {{count}} пары, {{rounds}}.",
        "rounds_one": "тур {{list}}",
        "rounds_few": "туры {{list}}",
        "rounds_many": "туры {{list}}",
        "rounds_other": "туры {{list}}",
        "none": "В нём не нашлось пар.",
        "moreWarnings_one": "ещё {{count}} предупреждение",
        "moreWarnings_few": "ещё {{count}} предупреждения",
        "moreWarnings_many": "ещё {{count}} предупреждений",
        "moreWarnings_other": "ещё {{count}} предупреждения"
      },
      "personal": {
        "new": "Добавить турнир",
        "description": "Турниры, в которых вы играли, и отчёт по каждому.",
        "emptyTitle": "Турниров пока нет",
        "emptyBody": "Добавьте турнир, в котором вы играли, и соберите в нём его партии. Отчёт по турниру подведёт итог: очки и точность по турам, дебюты, повторяющиеся ошибки и что тренировать дальше.",
        "organizerHint": "Проводите турнир? Отсканируйте бланки целого тура по жеребьёвке.",
        "newBody": "Назовите турнир, в котором вы играли. Затем импортируйте его партии или отнесите к нему сохранённые — отчёт по турниру подведёт итоги.",
        "create": "Добавить турнир",
        "created": "Турнир «{{name}}» добавлен",
        "nameLabel": "Название турнира",
        "namePlaceholder": "Открытый турнир города",
        "organizerPairings": "Проводите этот турнир? Импортируйте жеребьёвку"
      }
    },
    "event": {
      "gameCount_one": "{{count}} партия",
      "gameCount_few": "{{count}} партии",
      "gameCount_many": "{{count}} партий",
      "gameCount_other": "{{count}} партии",
      "roundCount_one": "{{count}} тур",
      "roundCount_few": "{{count}} тура",
      "roundCount_many": "{{count}} туров",
      "roundCount_other": "{{count}} тура",
      "roundsLabel": "Туры",
      "tabGames_one": "{{count}} партия",
      "tabGames_few": "{{count}} партии",
      "tabGames_many": "{{count}} партий",
      "tabGames_other": "{{count}} партии",
      "uploadRound": "Загрузить фото {{round}}-го тура",
      "uploadPhotos": "Загрузить фото",
      "uploadHint": "Файлы с именами вроде R3B5.jpg сразу попадают на нужную доску.",
      "stillMissing": "Ещё не хватает:",
      "boardList_one": "доска {{boards}}",
      "boardList_few": "доски {{boards}}",
      "boardList_many": "доски {{boards}}",
      "boardList_other": "доски {{boards}}",
      "allScanned": "Все доски из жеребьёвки отсканированы.",
      "notScanned": "Не отсканировано",
      "resultConflict": "по жеребьёвке: {{result}}",
      "resultConflictHint": "В файле жеребьёвки указан другой результат. Используется результат с бланка.",
      "open": "Открыть",
      "review": "Проверить",
      "upload": "Загрузить",
      "actions": "Действия",
      "sideLabel": "Инструменты турнира",
      "emptyTitle": "В этом туре пока ничего нет",
      "emptyBody": "Импортируйте жеребьёвку, чтобы увидеть все доски, или загрузите фото бланков этого тура.",
      "missingTitle": "Этот турнир недоступен",
      "missingBody": "Он был удалён или принадлежит другому рабочему пространству.",
      "backToEvents": "К списку турниров",
      "share": {
        "title": "Страница турнира",
        "body": "Любой, у кого есть ссылка, увидит партии без открытых пометок — тур за туром. Партии с пометками остаются скрытыми до проверки.",
        "on": "Страница турнира теперь публичная",
        "off": "Страница турнира снова приватная",
        "copy": "Скопировать ссылку на страницу турнира",
        "open": "Открыть страницу турнира в новой вкладке"
      },
      "export": {
        "title": "Экспорт",
        "roundPgn": "PGN {{round}}-го тура",
        "eventPgn": "PGN всего турнира",
        "auditCsv": "CSV для сверки",
        "auditCsvDetail": "{{round}}-й тур: каждая доска и её статус",
        "nothing": "Пока нечего экспортировать"
      },
      "edit": {
        "button": "Изменить турнир",
        "title": "Изменить турнир",
        "body": "Новое название будет применено ко всем партиям турнира.",
        "saved": "Турнир обновлён"
      },
      "pairings": {
        "import": "Импортировать",
        "replace": "Заменить",
        "importTitle": "Импорт жеребьёвки",
        "replaceTitle": "Замена жеребьёвки",
        "body": "Файл заменит жеребьёвку, сохранённую для этого турнира. Сохранённые партии сохранят свои имена и результаты.",
        "importConfirm": "Импортировать жеребьёвку",
        "replaceConfirm": "Заменить жеребьёвку",
        "none": "Жеребьёвки пока нет. Без неё доски берутся из имён файлов, а имена — с бланков.",
        "saved_one": "Сохранена {{count}} пара",
        "saved_few": "Сохранено {{count}} пары",
        "saved_many": "Сохранено {{count}} пар",
        "saved_other": "Сохранено {{count}} пары"
      },
      "delete": {
        "button": "Удалить турнир",
        "title": "Удалить {{name}}?",
        "body": "Турнир, его жеребьёвка и публичная страница будут удалены. Партии останутся в вашей библиотеке со своими именами, турами и досками.",
        "confirm": "Удалить турнир",
        "done": "{{name}} удалён"
      },
      "gamesTab": "Партии",
      "uploadAbove": "Нажмите «{{action}}» вверху страницы",
      "personal": {
        "missingTitle": "Этот турнир недоступен",
        "back": "К моим турнирам",
        "importGames": "Импортировать партии турнира",
        "emptyTitle": "В этом турнире пока нет партий",
        "emptyBody": "Импортируйте его партии в PGN, отсканируйте свои бланки или перенесите сюда уже сохранённые партии из раздела «Партии».",
        "edit": "Изменить турнир",
        "editBody": "Новое название будет применено ко всем партиям турнира.",
        "delete": "Удалить турнир",
        "deleteBody": "Турнир и его публичная страница будут удалены. Партии останутся в ваших партиях со своими именами и турами."
      }
    },
    "report": {
      "tab": "Отчёт",
      "title": "Отчёт о турнире",
      "intro": "Сводка турнира одного игрока для печати: точность и самая крупная ошибка в каждом туре, дебюты, повторяющиеся типы ошибок, нереализованные выигранные позиции и что тренировать дальше. Строится по анализу движка, сохранённому с каждой партией.",
      "generate": "Составить отчёт",
      "previewButton": "Открыть бесплатный предпросмотр",
      "existing": "С момента составления этого отчёта ничего не изменилось, поэтому он показан снова и ничего не списано.",
      "created": "Отчёт готов",
      "print": "Печать",
      "allowanceHint": "Повторное составление того же отчёта не списывается.",
      "forPlayer": "Для: {{name}}",
      "changePlayer": "Изменить",
      "emptyTitle": "В этом турнире пока нет партий",
      "emptyBody": "Сначала загрузите бланки турнира: отчёт составляется по его партиям.",
      "noneTitle": "Отчёта пока нет",
      "noneBody": "Составьте его, когда партии турнира будут загружены. Партии без сохранённого анализа показываются первыми.",
      "noneBodyFree": "Бесплатный предпросмотр показывает вашу точность в каждом туре. Pro добавляет полный отчёт.",
      "eyebrow": "Отчёт о турнире",
      "playerUnknown": "Игрок",
      "madeOn": "Составлен {{date}}",
      "roundN": "Тур {{round}}",
      "roundUnknown": "Без тура",
      "boardN": "доска {{board}}",
      "notAnalysed": "нет ходов для анализа",
      "noMistake": "Без ошибок",
      "evidence": "Примеры",
      "footnote": "Составлено в ScanChess (scanchess.com) по анализу Stockfish сохранённых партий. Типы ошибок определяются по фиксированным правилам на доске; ошибка без явной тактики за ней называется позиционной, а не получает имя, которого может не заслуживать.",
      "colour": {
        "white": "Белые",
        "black": "Чёрные"
      },
      "outcome": {
        "win": "Победа",
        "draw": "Ничья",
        "loss": "Поражение",
        "unknown": "Результат неизвестен"
      },
      "kind": {
        "mistake": "ошибка",
        "blunder": "грубая ошибка"
      },
      "stats": {
        "score": "Очки",
        "scoreValue": "{{score}} / {{games}}",
        "wdl": "побед: {{wins}} · ничьих: {{draws}} · поражений: {{losses}}",
        "accuracy": "Средняя точность",
        "analysed": "Проанализировано {{done}} из {{total}}",
        "opponents": "Средний рейтинг соперников",
        "errors": "Ошибки / грубые ошибки",
        "errorsHint_one": "и ещё {{count}} неточность",
        "errorsHint_few": "и ещё {{count}} неточности",
        "errorsHint_many": "и ещё {{count}} неточностей",
        "errorsHint_other": "и ещё {{count}} неточности",
        "games": "Партии"
      },
      "table": {
        "round": "Тур",
        "colour": "Цвет",
        "opponent": "Соперник",
        "result": "Результат",
        "accuracy": "Точность",
        "biggestMistake": "Самая крупная ошибка",
        "opening": "Дебют",
        "leftBook": "Выход из теории",
        "preparation": "Подготовка"
      },
      "rounds": {
        "title": "По турам",
        "hint": "Точность — оценка движка ваших ходов от 0 до 100. Самая крупная ошибка — ход, стоивший больше всего шансов на победу."
      },
      "openings": {
        "title": "Дебюты",
        "hint": "Где каждая партия вышла из известной дебютной теории и кто вышел первым.",
        "leftByYou": "Ход {{move}}, вы",
        "leftByOpponent": "Ход {{move}}, соперник",
        "stayedInBook": "Всё время по теории",
        "unknown": "Не распознан"
      },
      "recurring": {
        "title": "Повторяющиеся ошибки",
        "hint": "Типы ошибок, встретившиеся в двух партиях и более.",
        "none": "Ни один тип ошибок не встретился больше чем в одной партии.",
        "tooFew": "Нужно хотя бы две проанализированные партии.",
        "line_one": "{{count}} партия · ошибок и грубых ошибок: {{mistakes}} · потеряно {{loss}} п. шансов на победу",
        "line_few": "{{count}} партии · ошибок и грубых ошибок: {{mistakes}} · потеряно {{loss}} п. шансов на победу",
        "line_many": "{{count}} партий · ошибок и грубых ошибок: {{mistakes}} · потеряно {{loss}} п. шансов на победу",
        "line_other": "{{count}} партии · ошибок и грубых ошибок: {{mistakes}} · потеряно {{loss}} п. шансов на победу"
      },
      "conversion": {
        "title": "Нереализованные выигранные позиции",
        "hint": "Партии, где у вас была явно выигранная позиция (80% и выше не менее трёх ходов), но вы не выиграли.",
        "none": "Ни в одной партии у вас не было явно выигранной позиции.",
        "all_one": "Вы реализовали {{count}} выигранную позицию.",
        "all_few": "Вы реализовали все {{count}} выигранные позиции.",
        "all_many": "Вы реализовали все {{count}} выигранных позиций.",
        "all_other": "Вы реализовали все {{count}} выигранные позиции.",
        "some_one": "Выигранная позиция была в {{count}} партии, не выиграно: {{failures}}.",
        "some_few": "Выигранная позиция была в {{count}} партиях, не выиграно: {{failures}}.",
        "some_many": "Выигранная позиция была в {{count}} партиях, не выиграно: {{failures}}.",
        "some_other": "Выигранная позиция была в {{count}} партиях, не выиграно: {{failures}}.",
        "peak": "до {{win}}% на ходу {{move}}"
      },
      "practice": {
        "title": "Что тренировать дальше",
        "hint": "Выбрано по правилам: типы ошибок, которые обходятся вам дороже всего по сравнению с игроками схожей точности.",
        "small": "Для советов нужно не меньше {{min}} проанализированных партий; в этом отчёте их {{count}}.",
        "none": "Ни один тип ошибок не встречался достаточно часто, чтобы его советовать.",
        "stats_one": "{{count}} раз, в среднем потеряно {{loss}} п. шансов на победу.",
        "stats_few": "{{count}} раза, в среднем потеряно {{loss}} п. шансов на победу.",
        "stats_many": "{{count}} раз, в среднем потеряно {{loss}} п. шансов на победу.",
        "stats_other": "{{count}} раза, в среднем потеряно {{loss}} п. шансов на победу.",
        "above": "Вам это обходится дороже, чем большинству игроков вашей точности.",
        "notAbove": "Обычно для вашей точности, но всё же это ваш самый дорогой тип ошибок."
      },
      "preview": {
        "title": "Точность по турам",
        "hint": "Бесплатный предпросмотр. Полный отчёт добавляет разделы ниже."
      },
      "locked": {
        "ctaProPlus": "Узнать о Pro+",
        "rounds": "Самая крупная ошибка каждого тура",
        "openings": "Дебюты и выход из теории",
        "recurring": "Повторяющиеся ошибки",
        "conversion": "Нереализованные выигранные позиции",
        "practice": "Что тренировать дальше"
      },
      "pending": {
        "title_one": "У {{count}} партии ещё нет сохранённого анализа",
        "title_few": "У {{count}} партий ещё нет сохранённого анализа",
        "title_many": "У {{count}} партий ещё нет сохранённого анализа",
        "title_other": "У {{count}} партий ещё нет сохранённого анализа",
        "body": "Отчёт строится по анализу движка, сохранённому с каждой партией. Проанализируйте оставшиеся партии прямо здесь: движок работает в этом браузере, партия за партией, и сохраняет каждый анализ вместе с партией. Бесплатно.",
        "saving": "Тем временем можно продолжать работу; анализ ждёт, когда вы сами пользуетесь движком. Когда он закончится, отчёт появится здесь сам.",
        "open": "Открыть партию",
        "others_one": "Ещё {{count}} партия этого турнира",
        "others_few": "Ещё {{count}} партии этого турнира",
        "others_many": "Ещё {{count}} партий этого турнира",
        "others_other": "Ещё {{count}} партии этого турнира",
        "retry": "Проверить снова",
        "analyzeRemaining_one": "Проанализировать оставшуюся {{count}} партию",
        "analyzeRemaining_few": "Проанализировать оставшиеся {{count}} партии",
        "analyzeRemaining_many": "Проанализировать оставшиеся {{count}} партий",
        "analyzeRemaining_other": "Проанализировать оставшиеся {{count}} партии",
        "progress": "Проанализировано {{done}} из {{total}}",
        "done": "Все партии проанализированы и сохранены. Нажмите «Проверить снова», чтобы создать отчёт.",
        "state": {
          "analyzed": "Готово",
          "waiting": "В очереди",
          "analyzing": "Анализ…",
          "fixMoves": "Исправьте ходы",
          "notSaved": "Не сохранено"
        }
      },
      "side": {
        "title": "Каким цветом вы играли?",
        "titleClub": "Чей это отчёт?",
        "body_one": "В {{count}} партии не видно, кто из игроков вы. Выберите свой цвет.",
        "body_few": "В {{count}} партиях не видно, кто из игроков вы. Выберите свой цвет в каждой.",
        "body_many": "В {{count}} партиях не видно, кто из игроков вы. Выберите свой цвет в каждой.",
        "body_other": "В {{count}} партиях не видно, кто из игроков вы. Выберите свой цвет в каждой.",
        "bodyClub": "Выберите игрока из списка клуба или цвет в каждой партии. Пропущенные партии в отчёт не входят.",
        "rosterLabel": "Игрок клуба",
        "rosterNone": "Выберите игрока",
        "rosterSubmit": "Составить его отчёт",
        "rosterHint": "Используются партии, закреплённые за этим игроком.",
        "quick": "Быстрый выбор:",
        "iAm": "Я — {{name}}",
        "gameLabel": "Тур {{round}}: {{white}} – {{black}}",
        "skip": "Пропустить",
        "more_one": "Ещё {{count}} партии тоже нужен цвет; о ней спросим после этих.",
        "more_few": "Ещё {{count}} партиям тоже нужен цвет; о них спросим после этих.",
        "more_many": "Ещё {{count}} партиям тоже нужен цвет; о них спросим после этих.",
        "more_other": "Ещё {{count}} партиям тоже нужен цвет; о них спросим после этих.",
        "submit": "Составить отчёт",
        "remembered": "Ваш выбор запоминается в этом браузере.",
        "unassigned": "За игроком {{name}} пока не закреплена ни одна партия этого турнира. Выберите его цвет в сыгранных партиях."
      },
      "noGames": {
        "title": "Не о чем составлять отчёт",
        "body": "Ни одну партию этого турнира пока нельзя включить в отчёт."
      },
      "account": {
        "title": "Для отчётов нужен аккаунт ScanChess",
        "body": "Вы в пробной сессии. Создайте бесплатный аккаунт, чтобы сохранять партии и составлять отчёты.",
        "cta": "Создать бесплатный аккаунт"
      },
      "limit": {
        "title": "Отчёты на этот месяц закончились",
        "body_one": "Ваш тариф включает {{count}} отчёт о турнире в месяц. Уже составленные отчёты по-прежнему можно открыть и распечатать.",
        "body_few": "Ваш тариф включает {{count}} отчёта о турнирах в месяц. Уже составленные отчёты по-прежнему можно открыть и распечатать.",
        "body_many": "Ваш тариф включает {{count}} отчётов о турнирах в месяц. Уже составленные отчёты по-прежнему можно открыть и распечатать.",
        "body_other": "Ваш тариф включает {{count}} отчёта о турнирах в месяц. Уже составленные отчёты по-прежнему можно открыть и распечатать."
      },
      "list": {
        "title": "Прежние отчёты",
        "empty": "Здесь появятся отчёты по этому турниру.",
        "accuracy": "точность {{value}}",
        "delete": "Удалить отчёт",
        "deleteTitle": "Удалить этот отчёт?",
        "deleteBody": "Отчёт удаляется для всех в этом рабочем пространстве. Партии и их анализ остаются.",
        "deleteConfirm": "Удалить отчёт",
        "deleted": "Отчёт удалён",
        "emptyAfterPreview": "Сохранённых отчётов пока нет. Бесплатный предпросмотр не сохраняется; полные отчёты, которые вы создадите, хранятся здесь."
      },
      "category": {
        "hanging": {
          "name": "Незащищённые фигуры",
          "hint": "Фигура осталась там, где соперник мог её выиграть."
        },
        "allowed-tactic": {
          "name": "Допущенная тактика",
          "hint": "Сопернику позволен форсированный удар: вилка, связка, вскрытое нападение или мат."
        },
        "missed-tactic": {
          "name": "Упущенная тактика",
          "hint": "Был форсированный удар с выигрышем материала или матом, но сыгран другой ход."
        },
        "conversion": {
          "name": "Упущенная победа",
          "hint": "Явно выигранная позиция была отдана."
        },
        "endgame": {
          "name": "Ошибки в эндшпиле",
          "hint": "Ошибка в эндшпиле без тактики, которую можно назвать."
        },
        "opening": {
          "name": "Ранние ошибки после дебюта",
          "hint": "Ошибка в первые ходы после выхода из теории."
        },
        "quiet": {
          "name": "Позиционные ошибки",
          "hint": "За ней нет явной тактики: план, расстановка фигур или ход пешкой ухудшили позицию."
        }
      },
      "preparation": {
        "leftPlayer": "Вы отклонились на {{move}}-м ходу ({{played}})",
        "leftOpponent": "Соперник отклонился на {{move}}-м ходу ({{played}})",
        "lineEnded": "Пройдено до конца ({{move}}-й ход)",
        "hit": "Вся партия в рамках подготовки"
      },
      "narrative": {
        "title": "Итоги",
        "lead": "Несколько предложений о том, как прошёл турнир: ИИ-тренер пишет их по цифрам этого отчёта и сверяет с ними, прежде чем показать.",
        "writeFree": "Написать итоги · сегодня бесплатно (осталось {{count}})",
        "writeCredit": "Написать итоги · {{count}} кредит",
        "writeNoCharge": "Написать итоги на этом языке · бесплатно",
        "freeNote": "Используется бесплатное ежедневное объяснение ИИ-тренера (общее с разбором партий); дальше — {{count}} кредит.",
        "freeUsed": "Бесплатное объяснение на сегодня использовано; следующее бесплатно с {{time}}. До тех пор — {{count}} кредит.",
        "paidNote": "Итоги этого отчёта уже оплачены, поэтому другой язык ничего не стоит.",
        "writing": "Пишем итоги и сверяем каждое предложение с отчётом…",
        "disclaimer": "Написано ИИ-тренером по фактам этого отчёта и сверено с ними. Источник — таблицы ниже.",
        "outdated": "Написано предыдущей версией генератора итогов. Переписать можно бесплатно.",
        "rewrite": "Переписать",
        "usedFree": "Использовано бесплатное объяснение на сегодня — кредиты не списаны. При повторном открытии отчёта итоги показываются бесплатно.",
        "charged": "Списан {{count}} кредит. При повторном открытии отчёта итоги показываются бесплатно.",
        "noCharge": "Бесплатно.",
        "noCredits": "Недостаточно кредитов для итогов.",
        "getCredits": "Получить кредиты",
        "inProgress": "Итоги уже пишутся. Попробуйте через минуту.",
        "failed": "Итоги не прошли проверку фактов, поэтому не показаны. Ничего не списано — попробуйте ещё раз.",
        "verifyEmail": "Подтвердите email, чтобы получить итоги текстом — одно объяснение ИИ-тренера в день бесплатно.",
        "createAccount": "Создайте бесплатный аккаунт, чтобы получить итоги текстом."
      },
      "previewRefresh": "Обновить предпросмотр"
    },
    "batch": {
      "title": "Скан тура",
      "description": "Отсканируйте целый тур. Каждый бланк сопоставляется со своей парой и попадает в турнир.",
      "event": "Турнир",
      "noEvent": "Без турнира",
      "noEventHint": "Без турнира заполните данные ниже и, если есть, добавьте файл жеребьёвки.",
      "createEvent": "Сначала создайте турнир",
      "eventPairings_one": "Импортирована {{count}} пара",
      "eventPairings_few": "Импортировано {{count}} пары",
      "eventPairings_many": "Импортировано {{count}} пар",
      "eventPairings_other": "Импортировано {{count}} пары",
      "eventNoPairings": "Жеребьёвка не импортирована. Доски будут взяты из имён файлов.",
      "round": "Тур",
      "roundPlaceholder": "например, 3",
      "roundHint": "Используется для фото, в имени которых нет номера тура.",
      "roundScanned": "В этом туре отсканировано {{scanned}} из {{total}} досок",
      "roundGames_one": "В этом туре уже {{count}} партия",
      "roundGames_few": "В этом туре уже {{count}} партии",
      "roundGames_many": "В этом туре уже {{count}} партий",
      "roundGames_other": "В этом туре уже {{count}} партии",
      "dropTitle": "Перетащите фото или целую папку",
      "limits": "До {{max}} фото в пакете, по {{size}} МБ каждое · JPG, PNG или WebP (без HEIC) · обе стороны бланка — одна партия",
      "choosePhotos": "Выбрать фото",
      "chooseFolder": "Выбрать папку",
      "photoCount_one": "{{count}} фотография",
      "photoCount_few": "{{count}} фотографии",
      "photoCount_many": "{{count}} фотографий",
      "photoCount_other": "{{count}} фотографии",
      "gameCount_one": "{{count}} партия",
      "gameCount_few": "{{count}} партии",
      "gameCount_many": "{{count}} партий",
      "gameCount_other": "{{count}} партии",
      "fromPairings": "Имена, рейтинги и доска берутся из жеребьёвки",
      "matched": "Доска {{board}} · {{white}} – {{black}}",
      "matchedNoBoard": "{{white}} – {{black}}",
      "boardOnly": "Доска {{board}}",
      "noBoard": "В имени файла нет номера доски",
      "chooseBoard": "Выбрать доску",
      "chooseBoardFor": "Доска для партии {{number}}",
      "pages_one": "{{count}} страница",
      "pages_few": "{{count}} страницы",
      "pages_many": "{{count}} страниц",
      "pages_other": "{{count}} страницы",
      "removeGame": "Убрать партию {{number}}",
      "creditsReturned_one": "Возвращён {{count}} кредит",
      "creditsReturned_few": "Возвращено {{count}} кредита",
      "creditsReturned_many": "Возвращено {{count}} кредитов",
      "creditsReturned_other": "Возвращено {{count}} кредита",
      "failure": {
        "noScoresheet": "Бланк не найден",
        "looksLikeBoard": "На фото, похоже, доска, а не бланк партии. Скан тура читает только бланки; кредиты возвращены.",
        "recognition": "Не удалось прочитать этот бланк"
      },
      "footerHint": "Партии с помеченными ходами по мере готовности получают отметку «К проверке»",
      "cost_one": "{{count}} партия · кредитов: {{credits}}",
      "cost_few": "{{count}} партии · кредитов: {{credits}}",
      "cost_many": "{{count}} партий · кредитов: {{credits}}",
      "cost_other": "{{count}} партии · кредитов: {{credits}}",
      "scan_one": "Сканировать {{count}} партию",
      "scan_few": "Сканировать {{count}} партии",
      "scan_many": "Сканировать {{count}} партий",
      "scan_other": "Сканировать {{count}} партии",
      "clear": "Очистить пакет",
      "openEvent": "Открыть турнир",
      "blockedTitle": "Не хватает кредитов.",
      "blockedBody_one": "Ещё {{count}} партия остаётся в этом пакете. Запустите её, когда появятся кредиты.",
      "blockedBody_few": "Остальные {{count}} партии остаются в этом пакете. Запустите их, когда появятся кредиты.",
      "blockedBody_many": "Остальные {{count}} партий остаются в этом пакете. Запустите их, когда появятся кредиты.",
      "blockedBody_other": "Остальные {{count}} партии остаются в этом пакете. Запустите их, когда появятся кредиты.",
      "rewritten_one": "Обновлена {{count}} партия по данным жеребьёвки",
      "rewritten_few": "Обновлено {{count}} партии по данным жеребьёвки",
      "rewritten_many": "Обновлено {{count}} партий по данным жеребьёвки",
      "rewritten_other": "Обновлено {{count}} партии по данным жеребьёвки",
      "attachFailed_one": "{{count}} партию не удалось добавить в {{event}}. Добавьте её на странице «Партии».",
      "attachFailed_few": "{{count}} партии не удалось добавить в {{event}}. Добавьте их на странице «Партии».",
      "attachFailed_many": "{{count}} партий не удалось добавить в {{event}}. Добавьте их на странице «Партии».",
      "attachFailed_other": "{{count}} партии не удалось добавить в {{event}}. Добавьте их на странице «Партии».",
      "resume": {
        "title": "Продолжить прошлый незавершённый пакет?",
        "body_one": "Сохранено {{saved}} из {{count}} партии · последняя работа {{time}}",
        "body_few": "Сохранено {{saved}} из {{count}} партий · последняя работа {{time}}",
        "body_many": "Сохранено {{saved}} из {{count}} партий · последняя работа {{time}}",
        "body_other": "Сохранено {{saved}} из {{count}} партий · последняя работа {{time}}",
        "action": "Продолжить пакет",
        "discard": "Отменить",
        "missing_one": "{{count}} фотографию не удалось восстановить, она пропущена",
        "missing_few": "{{count}} фотографии не удалось восстановить, они пропущены",
        "missing_many": "{{count}} фотографий не удалось восстановить, они пропущены",
        "missing_other": "{{count}} фотографии не удалось восстановить, они пропущены"
      }
    },
    "publicEvent": {
      "published_one": "Пока опубликована {{count}} партия",
      "published_few": "Пока опубликовано {{count}} партии",
      "published_many": "Пока опубликовано {{count}} партий",
      "published_other": "Пока опубликовано {{count}} партии",
      "copyLink": "Скопировать ссылку",
      "downloadAll": "Скачать все партии (PGN)",
      "downloadPgn": "Скачать PGN",
      "inLibrary": "В вашей библиотеке",
      "roundNote_one": "{{count}} партия",
      "roundNote_few": "{{count}} партии",
      "roundNote_many": "{{count}} партий",
      "roundNote_other": "{{count}} партии",
      "stillToCheck_one": "Ещё {{count}} партия к проверке",
      "stillToCheck_few": "Ещё {{count}} партии к проверке",
      "stillToCheck_many": "Ещё {{count}} партий к проверке",
      "stillToCheck_other": "Ещё {{count}} партии к проверке",
      "otherGames": "Другие партии",
      "checked": "Проверено",
      "ruleChecked": "Проверено по правилам",
      "ruleCheckedHint": "Каждый ход допустим правилами, и ни один не помечен. Но пока никто не сверил партию с бланком.",
      "start": "Начать",
      "viewer": "Просмотр партии",
      "emptyTitle": "Пока ничего не опубликовано",
      "emptyBody": "Партии появляются здесь после сканирования, если на них нет открытых пометок.",
      "unavailableTitle": "Эта страница турнира недоступна",
      "unavailableBody": "Организатор отключил страницу, или турнир был удалён.",
      "metaTitle": "{{name}} | ScanChess",
      "metaDesc": "Просмотрите и скачайте партии {{name}}: {{count}} партий, тур за туром."
    },
    "players": {
      "description": "Ученики и участники, чьи партии сканирует клуб. По именам и вариантам написания бланки тура раскладываются по нужным игрокам.",
      "clubOnlyTitle": "Списки игроков есть только у клубов",
      "clubOnlyBody": "Перейдите в рабочее пространство клуба или создайте клуб, чтобы вести список его игроков.",
      "lockedBody": "С клубным Pro+ клуб ведёт список учеников и привязывает каждую отсканированную партию к игравшим её игрокам.",
      "showArchived": "Показать архивных",
      "addTitle": "Добавить игрока",
      "addCta": "Добавить игрока",
      "editTitle": "Изменить: {{name}}",
      "name": "Имя",
      "fideId": "FIDE ID",
      "rating": "Рейтинг",
      "aliases": "Другие написания",
      "aliasesPlaceholder": "А. Ковачевич, Ковачевич Ана",
      "aliasesHelp": "Как имя записано в бланках и жеребьёвке, через запятую.",
      "minorLabel": "Младше 18 лет",
      "privacyNote": "Нужно только имя. Игроки считаются несовершеннолетними, пока вы не снимете отметку; даты рождения и контакты родителей не хранятся.",
      "added": "Игрок добавлен",
      "saved": "Игрок сохранён",
      "count_one": "{{count}} игрок",
      "count_few": "{{count}} игрока",
      "count_many": "{{count}} игроков",
      "count_other": "{{count}} игрока",
      "emptyTitle": "Игроков пока нет",
      "emptyBody": "Добавьте учеников клуба, чтобы отсканированные партии сохранялись под их именами.",
      "emptyBodyMember": "Игроков клуба добавляет владелец или администратор.",
      "games": "Партии",
      "minorBadge": "До 18",
      "archivedBadge": "В архиве",
      "alsoWritten": "Также пишется: {{aliases}}",
      "actionsFor": "Действия: {{name}}",
      "edit": "Изменить",
      "archive": "В архив",
      "restore": "Восстановить",
      "archived": "Игрок перенесён в архив",
      "restored": "Игрок восстановлен",
      "remove": "Удалить",
      "removed": "Игрок удалён",
      "archivedInstead_one": "Перенесён в архив: {{count}} партия всё ещё ссылается на игрока",
      "archivedInstead_few": "Перенесён в архив: {{count}} партии всё ещё ссылаются на игрока",
      "archivedInstead_many": "Перенесён в архив: {{count}} партий всё ещё ссылаются на игрока",
      "archivedInstead_other": "Перенесён в архив: {{count}} партии всё ещё ссылаются на игрока",
      "removeTitle": "Удалить {{name}}?",
      "removeBody": "Игрок будет удалён из списка.",
      "removeBodyGames_one": "На этого игрока ссылается {{count}} партия, поэтому он будет перенесён в архив: партия сохранит игрока, а в списке он больше не появится.",
      "removeBodyGames_few": "На этого игрока ссылаются {{count}} партии, поэтому он будет перенесён в архив: партии сохранят игрока, а в списке он больше не появится.",
      "removeBodyGames_many": "На этого игрока ссылаются {{count}} партий, поэтому он будет перенесён в архив: партии сохранят игрока, а в списке он больше не появится.",
      "removeBodyGames_other": "На этого игрока ссылаются {{count}} партии, поэтому он будет перенесён в архив: партии сохранят игрока, а в списке он больше не появится.",
      "fideTaken": "У другого игрока этого клуба уже есть такой FIDE ID. Восстановите или измените того игрока.",
      "rosterFull": "В клубе достигнут предел числа игроков. Удалите тех, кто больше не нужен.",
      "accuracy": "Точность",
      "form": "Текущая форма",
      "lastGame": "Последняя партия",
      "form_up": "В последних {{games}} партиях на {{change}} пункта выше, чем раньше",
      "form_down": "В последних {{games}} партиях на {{change}} пункта ниже, чем раньше",
      "form_flat": "В последних {{games}} партиях примерно как раньше",
      "formNoPrevious_one": "Точность последней {{count}} проанализированной партии; сравнивать пока не с чем",
      "formNoPrevious_few": "Точность последних {{count}} проанализированных партий; сравнивать пока не с чем",
      "formNoPrevious_many": "Точность последних {{count}} проанализированных партий; сравнивать пока не с чем",
      "formNoPrevious_other": "Точность последних {{count}} проанализированных партий; сравнивать пока не с чем",
      "analysedOf": "Проанализировано {{analysed}} из {{count}}",
      "studentsTruncated": "Точность и форма взяты из {{count}} последних партий клуба с учениками."
    },
    "training": {
      "title": "Ежедневная тренировка",
      "description": "Позиции из ваших собственных партий, где был упущен выигрывающий ход. Найдите его; каждая карточка возвращается незадолго до того, как вы бы её забыли.",
      "statsLabel": "Ваша тренировка",
      "streak_one": "день подряд",
      "streak_few": "дня подряд",
      "streak_many": "дней подряд",
      "streak_other": "дня подряд",
      "dueToday": "на сегодня",
      "longest": "самая длинная серия",
      "motifFilter": "Мотив",
      "allMotifs": "Все мотивы",
      "progress": "Карточка {{current}} из {{total}}",
      "tally_one": "верно {{correct}} из {{count}}",
      "tally_few": "верно {{correct}} из {{count}}",
      "tally_many": "верно {{correct}} из {{count}}",
      "tally_other": "верно {{correct}} из {{count}}",
      "progressLabel": "Прогресс занятия",
      "findTheShot": "Найдите ход, который был упущен. На каждую карточку одна попытка.",
      "checking": "Проверяем ваш ход…",
      "right": "Верно, это тот самый ход.",
      "wrong": "В этот раз нет.",
      "wrongDetail": "Вы сыграли {{tried}}; нужно было {{answer}}.",
      "solution": "Вариант: {{line}}",
      "comesBack": "Эта карточка вернётся примерно через 10 минут.",
      "fromGame": "Из вашей партии",
      "yourGame": "ваша партия",
      "moveNumber": "ход {{number}}",
      "fromSaved": "Сохранено из партии",
      "fromSavedNoGame": "Сохранено в инструменте упущенной тактики",
      "youPlayed": "В партии вы сыграли {{san}}.",
      "next": "Следующая карточка",
      "finish": "Завершить",
      "suspend": "Больше не показывать",
      "suspended": "Карточка убрана из тренировки",
      "undo": "Отменить",
      "suspendFailed": "Не удалось убрать карточку",
      "answerFailed": "Не удалось проверить ваш ход",
      "loadFailed": "Не удалось загрузить тренировку.",
      "retry": "Повторить",
      "sessionDone_one": "Занятие окончено: верно {{correct}} из {{count}}",
      "sessionDone_few": "Занятие окончено: верно {{correct}} из {{count}}",
      "sessionDone_many": "Занятие окончено: верно {{correct}} из {{count}}",
      "sessionDone_other": "Занятие окончено: верно {{correct}} из {{count}}",
      "noneForMotif": "По этому мотиву ничего не запланировано.",
      "allDone": "Сейчас ничего не запланировано.",
      "moreDue_one": "Сегодня осталась ещё {{count}} карточка.",
      "moreDue_few": "Сегодня остались ещё {{count}} карточки.",
      "moreDue_many": "Сегодня осталось ещё {{count}} карточек.",
      "moreDue_other": "Сегодня осталось ещё {{count}} карточки.",
      "comeBack": "На сегодня всё. Возвращайтесь завтра, чтобы не прервать серию.",
      "continue": "Продолжить",
      "limit": {
        "title": "Бесплатные карточки на сегодня закончились ({{count}})",
        "body": "Завтра будут новые бесплатные карточки. С Pro тренировки без дневного лимита.",
        "bodyAt": "Новые бесплатные карточки с {{time}}. С Pro тренировки без дневного лимита.",
        "upgrade": "Подробнее о Pro"
      },
      "empty": {
        "title": "Карточек для тренировки пока нет",
        "body": "Карточки появляются из ваших проанализированных партий: каждый форсированный ход, упущенный вашей стороной, становится здесь позицией для решения. ScanChess нужно знать, какой стороной играли вы, поэтому укажите ниже имена, под которыми вы играете.",
        "games": "К моим партиям",
        "tool": "Найти упущенную тактику в партии"
      },
      "aliases": {
        "title": "Имена, под которыми я играю",
        "why": "В бланках и онлайн-партиях ваше имя пишут по-разному. Перечислите варианты здесь: партии без указанной стороны будут сопоставлены с вами, а упущенные ходы станут карточками для тренировки.",
        "short": "Партии без указанной стороны сопоставляются с вами по этим именам.",
        "none": "Имён пока нет.",
        "add": "Добавить имя",
        "placeholder": "например, Иванов И.",
        "hint": "До {{count}} имён. Порядок слов и диакритика не важны.",
        "remove": "Удалить {{name}}",
        "saved": "Имена сохранены",
        "failed": "Не удалось сохранить имена",
        "tooLong": "Имя может быть не длиннее {{count}} символов.",
        "tooMany": "Не больше {{count}} имён.",
        "editInSettings": "Изменить в настройках"
      },
      "accuracy": {
        "title": "Точность с первой попытки",
        "row": "{{percent}}% из {{count}}",
        "note": "Учитывается только первая попытка по каждой карточке за день."
      },
      "import": {
        "title": "Тактика, сохранённая в этом браузере",
        "body_one": "До входа вы сохранили здесь {{count}} упущенный удар. Добавьте его в карточки, чтобы он был привязан к вашему аккаунту.",
        "body_few": "До входа вы сохранили здесь {{count}} упущенных удара. Добавьте их в карточки, чтобы они были привязаны к вашему аккаунту.",
        "body_many": "До входа вы сохранили здесь {{count}} упущенных ударов. Добавьте их в карточки, чтобы они были привязаны к вашему аккаунту.",
        "body_other": "До входа вы сохранили здесь {{count}} упущенного удара. Добавьте их в карточки, чтобы они были привязаны к вашему аккаунту.",
        "action_one": "Добавить {{count}} в тренировку",
        "action_few": "Добавить {{count}} в тренировку",
        "action_many": "Добавить {{count}} в тренировку",
        "action_other": "Добавить {{count}} в тренировку",
        "notNow": "Не сейчас",
        "done_one": "В тренировку добавлена {{count}} карточка",
        "done_few": "В тренировку добавлены {{count}} карточки",
        "done_many": "В тренировку добавлено {{count}} карточек",
        "done_other": "В тренировку добавлено {{count}} карточки",
        "doneDetail": "Уже в тренировке: {{existing}}, не удалось прочитать: {{invalid}}.",
        "failed": "Не удалось добавить тактику. Она по-прежнему сохранена в этом браузере."
      },
      "overview": {
        "title": "Ежедневная тренировка",
        "empty": "Упущенные ходы из ваших проанализированных партий становятся здесь задачами, по короткой серии в день.",
        "start_one": "Решить {{count}} карточку",
        "start_few": "Решить {{count}} карточки",
        "start_many": "Решить {{count}} карточек",
        "start_other": "Решить {{count}} карточки",
        "done": "На сегодня готово",
        "open": "Открыть тренировку"
      },
      "motifs": {
        "allowed-back-rank": "Допущен мат по последней горизонтали",
        "allowed-mate": "Допущен мат",
        "missed-back-rank": "Упущен мат по последней горизонтали",
        "missed-mate": "Упущен мат",
        "hung-piece": "Зевок фигуры",
        "allowed-fork": "Допущена вилка",
        "allowed-discovered": "Допущено вскрытое нападение",
        "allowed-pin": "Допущена связка",
        "missed-fork": "Упущена вилка",
        "missed-skewer": "Упущен сквозной удар",
        "missed-discovered": "Упущено вскрытое нападение",
        "missed-pin": "Упущена связка",
        "missed-capture": "Упущено взятие",
        "missed-promotion": "Упущено превращение",
        "other": "Другая тактика"
      }
    },
    "insights": {
      "title": "Мой игровой профиль",
      "description": "Ваши сильные и слабые стороны по проанализированным партиям.",
      "loadFailed": "Не удалось загрузить профиль.",
      "aliasesWhy": "Партии, в которых не указан ваш цвет, сопоставляются по этим именам: как ваше имя записано на бланках и ваши ники в онлайне.",
      "chart": {
        "label": "Точность по партиям, от старых к новым",
        "point": "{{date}} · против {{opponent}} · точность {{accuracy}} · {{outcome}}"
      },
      "recent": {
        "label_one": "Последняя {{count}} партия",
        "label_few": "Последние {{count}} партии",
        "label_many": "Последние {{count}} партий",
        "label_other": "Последние {{count}} партии",
        "noPrevious": "Проанализируйте больше партий, чтобы сравнить с прежней формой.",
        "up": "На {{change}} п. выше, чем в 10 партиях до этого ({{previous}}).",
        "down": "На {{change}} п. ниже, чем в 10 партиях до этого ({{previous}}).",
        "flat": "Примерно как в 10 партиях до этого ({{previous}})."
      },
      "accuracy": {
        "label": "Средняя точность",
        "detail_one": "По {{count}} проанализированной партии",
        "detail_few": "По {{count}} проанализированным партиям",
        "detail_many": "По {{count}} проанализированным партиям",
        "detail_other": "По {{count}} проанализированной партии"
      },
      "top": {
        "label": "Самый частый тип ошибок",
        "none": "Ошибок не найдено",
        "stats_one": "{{count}} раз · {{share}} ваших ошибок",
        "stats_few": "{{count}} раза · {{share}} ваших ошибок",
        "stats_many": "{{count}} раз · {{share}} ваших ошибок",
        "stats_other": "{{count}} раза · {{share}} ваших ошибок"
      },
      "results": {
        "score": "Результат",
        "wdl": "+{{wins}} ={{draws}} −{{losses}}",
        "errors": "Ошибки / грубые ошибки за партию",
        "errorsHint": "И ещё {{inaccuracies}} неточностей за партию"
      },
      "colour": {
        "white": "Точность белыми",
        "black": "Точность чёрными",
        "games_one": "{{count}} партия",
        "games_few": "{{count}} партии",
        "games_many": "{{count}} партий",
        "games_other": "{{count}} партии"
      },
      "trend": {
        "title": "Точность во времени",
        "hint_one": "Ваша последняя {{count}} партия. Каждый столбец открывает свою партию.",
        "hint_few": "Ваши последние {{count}} партии, самая старая слева. Каждый столбец открывает свою партию.",
        "hint_many": "Ваши последние {{count}} партий, самая старая слева. Каждый столбец открывает свою партию.",
        "hint_other": "Ваши последние {{count}} партии, самая старая слева. Каждый столбец открывает свою партию.",
        "months": "Точность по месяцам",
        "month": "Месяц",
        "games": "Партии",
        "accuracy": "Точность"
      },
      "phases": {
        "title": "Где вы теряете шансы на победу",
        "hint": "Потерянные шансы на победу за партию в каждой стадии, в процентных пунктах.",
        "weakest": "Дороже всего",
        "loss": "{{loss}} за партию",
        "counts": "Ошибки: {{mistakes}} · грубые ошибки: {{blunders}}"
      },
      "phase": {
        "opening": "Дебют",
        "middlegame": "Миттельшпиль",
        "endgame": "Эндшпиль"
      },
      "categories": {
        "title": "Типы ошибок",
        "hint": "Все ваши ошибки и грубые ошибки по типам, самые дорогие первыми.",
        "none": "В проанализированных партиях нет ошибок и грубых ошибок.",
        "stats_one": "{{count}} раз · в среднем −{{loss}}",
        "stats_few": "{{count}} раза · в среднем −{{loss}}",
        "stats_many": "{{count}} раз · в среднем −{{loss}}",
        "stats_other": "{{count}} раза · в среднем −{{loss}}",
        "motif": "Чаще всего: {{motif}}"
      },
      "motifs": {
        "title": "Тактические мотивы за ними"
      },
      "openings": {
        "title": "Дебюты",
        "hint": "Ваш результат в каждом семействе дебютов (код ECO) белыми и чёрными.",
        "none": "Нет партий с известным дебютом.",
        "family": "Дебют",
        "games": "Партии",
        "wdl": "+ = −",
        "score": "Результат",
        "accuracy": "Точность",
        "asWhite": "Белыми",
        "asBlack": "Чёрными"
      },
      "conversion": {
        "title": "Реализация выигранных позиций",
        "hint": "Партии, в которых вы получали выигранную позицию (80% и выше не менее трёх ходов).",
        "none": "В проанализированных партиях пока нет выигранных позиций.",
        "rate_one": "реализовано {{converted}} из {{count}} выигранной позиции",
        "rate_few": "реализовано {{converted}} из {{count}} выигранных позиций",
        "rate_many": "реализовано {{converted}} из {{count}} выигранных позиций",
        "rate_other": "реализовано {{converted}} из {{count}} выигранных позиций",
        "game": "против {{opponent}}, {{date}}",
        "peak": "максимум {{peak}}%"
      },
      "practice": {
        "small": "Для советов нужно не меньше {{min}} проанализированных партий; у вас {{count}}.",
        "cta": "Тренировать это",
        "example": "Пример {{n}}"
      },
      "locked": {
        "trend": "Точность во времени и по цвету",
        "phases": "Где вы теряете шансы на победу",
        "categories": "Все типы ошибок и мотивы",
        "openings": "Дебюты по семействам ECO и цвету",
        "conversion": "Реализованные выигранные позиции",
        "practice": "Что тренировать дальше"
      },
      "empty": {
        "title": "Пока нет проанализированных партий",
        "body": "Профиль строится по анализу движка, сохранённому вместе с партиями. Откройте партию из библиотеки и нажмите «{{button}}»; анализ сохранится вместе с партией и появится здесь.",
        "games": "К моим партиям",
        "noGamesTitle": "Добавьте первую партию",
        "noGamesBody": "Отсканируйте бланк или импортируйте партию и проанализируйте её — так начнёт складываться профиль.",
        "scan": "Сканировать партию",
        "noSideTitle": "Каким цветом вы играли?",
        "noSideBody_one": "В {{count}} проанализированной партии не указано, каким цветом вы играли. Добавьте имена, под которыми играете, и проверьте снова.",
        "noSideBody_few": "В {{count}} проанализированных партиях не указано, каким цветом вы играли. Добавьте имена, под которыми играете, и проверьте снова.",
        "noSideBody_many": "В {{count}} проанализированных партиях не указано, каким цветом вы играли. Добавьте имена, под которыми играете, и проверьте снова.",
        "noSideBody_other": "В {{count}} проанализированных партиях не указано, каким цветом вы играли. Добавьте имена, под которыми играете, и проверьте снова.",
        "checkAgain": "Проверить снова"
      },
      "coverage": {
        "based_one": "По {{count}} проанализированной партии.",
        "based_few": "По {{count}} проанализированным партиям.",
        "based_many": "По {{count}} проанализированным партиям.",
        "based_other": "По {{count}} проанализированной партии.",
        "pending_one": "Ещё у {{count}} партии нет сохранённого анализа.",
        "pending_few": "Ещё у {{count}} партий нет сохранённого анализа.",
        "pending_many": "Ещё у {{count}} партий нет сохранённого анализа.",
        "pending_other": "Ещё у {{count}} партии нет сохранённого анализа.",
        "games": "Открыть мои партии",
        "sideUnknown_one": "{{count}} проанализированная партия не учтена: в ней не указан ваш цвет.",
        "sideUnknown_few": "{{count}} проанализированные партии не учтены: в них не указан ваш цвет.",
        "sideUnknown_many": "{{count}} проанализированных партий не учтено: в них не указан ваш цвет.",
        "sideUnknown_other": "{{count}} проанализированной партии не учтено: в них не указан ваш цвет.",
        "aliases": "Добавить имена, под которыми вы играете",
        "truncated": "Учтены только {{count}} самых новых проанализированных партий."
      },
      "overview": {
        "title": "Мой игровой профиль",
        "accuracy_one": "Точность по {{count}} партии",
        "accuracy_few": "Точность по {{count}} партиям",
        "accuracy_many": "Точность по {{count}} партиям",
        "accuracy_other": "Точность по {{count}} партии",
        "empty": "Проанализируйте сохранённые партии, чтобы увидеть точность, самые частые ошибки и динамику.",
        "open": "Открыть профиль"
      },
      "online": {
        "title": "Онлайн и за доской",
        "hint": "Привяжите аккаунт Lichess или Chess.com, чтобы сравнить недавние онлайн-партии с проанализированными партиями за доской. Читаются только публичные партии; пароль не нужен.",
        "accounts": "Привязанные аккаунты",
        "online": "Онлайн",
        "otb": "За доской",
        "otbShort": "Доска",
        "loadFailed": "Не удалось загрузить ваши онлайн-партии.",
        "waiting": "Ваши онлайн-партии ещё не прочитаны. Мы попробуем снова, когда вы в следующий раз откроете эту страницу.",
        "noOtb": "Проанализируйте несколько партий за доской, чтобы сравнить их с игрой онлайн. За доской учитываются партии, которые вы отсканировали, ввели вручную или забрали себе; импортированные партии PGN не учитываются: они могут быть сыграны онлайн или чужими.",
        "accuracyNote": "Точность онлайн берётся с самого сайта, если он её посчитал (у Chess.com своя формула); за доской её считает ScanChess. Число в скобках — сколько партий её имеют.",
        "unlink": "Отвязать аккаунт {{site}} {{name}}",
        "form": {
          "site": "Сайт",
          "username": "Имя пользователя",
          "placeholder": "Ваш ник или ссылка на профиль",
          "submit": "Привязать аккаунт",
          "linking": "Читаем партии…",
          "hint": "Мы читаем ваши последние 100 публичных партий и обновляем их не чаще раза в 6 часов."
        },
        "status": {
          "pending": "Ещё не прочитан",
          "ready_one": "{{count}} недавняя партия · обновлено {{date}}",
          "ready_few": "{{count}} недавние партии · обновлено {{date}}",
          "ready_many": "{{count}} недавних партий · обновлено {{date}}",
          "ready_other": "{{count}} недавней партии · обновлено {{date}}",
          "failed": "{{site}} недоступен; попробуем позже",
          "notFound": "{{site}} больше не находит этого игрока"
        },
        "errors": {
          "notFound": "На {{site}} нет игрока с таким именем.",
          "invalid": "Это не похоже на имя пользователя.",
          "account": "Создайте бесплатный аккаунт, чтобы привязать онлайн-партии.",
          "rateLimited": "Слишком много попыток. Подождите немного и попробуйте снова.",
          "generic": "Не удалось привязать аккаунт. Попробуйте ещё раз.",
          "unlink": "Не удалось отвязать аккаунт."
        },
        "sides": {
          "games": "Партии",
          "score": "Результат",
          "wdl": "В–Н–П",
          "accuracy": "Точность"
        },
        "summary": {
          "better": "Онлайн ваш результат на {{points}} п. п. выше, чем за доской.",
          "worse": "Онлайн ваш результат на {{points}} п. п. ниже, чем за доской.",
          "same": "Онлайн и за доской ваш результат примерно одинаковый.",
          "fewOtb": "Пока слишком мало партий за доской с результатом для сравнения ({{count}} из {{needed}} нужных)."
        },
        "deep": {
          "timeControls": "По контролю времени",
          "control": "Контроль",
          "phases": "Ошибки / грубые ошибки за партию по стадиям",
          "phasesHint": "Онлайн-партии с анализом сайта: {{online}} · проанализированные партии за доской: {{otb}}. В скобках — потерянный шанс на победу за партию.",
          "noEvals": "Ни у одной из ваших недавних онлайн-партий пока нет компьютерного анализа сайта. Запросите его на Lichess, чтобы сравнить ошибки.",
          "phase": "Стадия",
          "categories": "Типы ошибок (доля ваших ошибок)"
        },
        "locked": {
          "body": "Pro сравнивает ваши результаты по контролю времени, а также где и как вы ошибаетесь онлайн и за доской — по стадиям и по типам ошибок."
        },
        "unlinkTitle": "Отвязать аккаунт {{site}} {{name}}?",
        "unlinkBody": "Партии, прочитанные с {{site}}, будут удалены из вашего профиля. Позже аккаунт можно привязать снова — партии будут прочитаны заново.",
        "unlinkConfirm": "Отвязать"
      },
      "filters": {
        "label": "Отбор партий",
        "period": "Период",
        "periods": {
          "all": "За всё время",
          "30d": "Последние 30 дней",
          "3m": "Последние 3 месяца",
          "12m": "Последние 12 месяцев",
          "custom": "Свои даты"
        },
        "from": "С",
        "to": "По",
        "source": "Источник",
        "sources": {
          "all": "Все источники",
          "scan": "Отсканированные (доска или бланк)",
          "import": "Импортированный PGN",
          "online": "Lichess или Chess.com",
          "other": "Другие"
        },
        "timeControl": "Контроль времени",
        "timeControls": {
          "all": "Любой контроль",
          "bullet": "Пуля",
          "blitz": "Блиц",
          "rapid": "Рапид",
          "classical": "Классика",
          "daily": "По переписке",
          "unknown": "Не указан"
        },
        "clear": "Сбросить фильтры",
        "emptyTitle": "Нет проанализированных партий под эти фильтры",
        "emptyBody": "Попробуйте период подлиннее, другой источник или другой контроль времени.",
        "lockedLine": "С Pro профиль можно сузить до периода, источника или контроля времени."
      }
    },
    "analysisQueue": {
      "analyzeAll": "Проанализировать все ({{count}})",
      "analyzeAllHint": "Прогоняет движок в этом браузере по всем сохранённым партиям без анализа, одну за другой. Бесплатно.",
      "nothing": "У всех сохранённых партий уже есть анализ.",
      "startFailed": "Не удалось получить партии для анализа",
      "progress": "Проанализировано {{done}} из {{total}}",
      "running": "Ваши партии анализируются в фоне",
      "runningElsewhere": "Ваши партии анализируются в другой вкладке",
      "yielding": "Ждёт, пока вы пользуетесь движком",
      "hidden": "На паузе, пока вкладка в фоне",
      "paused": "Анализ на паузе",
      "away": "Анализ ждёт рабочее пространство, в котором был запущен",
      "signedOut": "Войдите снова, чтобы анализы продолжали сохраняться",
      "rateLimited": "Сохранение ждёт часового лимита и продолжится само",
      "errorEngine": "Движок не запустился в этом браузере",
      "errorUpload": "Не удалось сохранить анализы. Проверьте соединение и попробуйте снова",
      "finished_one": "{{count}} партия проанализирована и сохранена",
      "finished_few": "{{count}} партии проанализированы и сохранены",
      "finished_many": "{{count}} партий проанализированы и сохранены",
      "finished_other": "{{count}} партии проанализированы и сохранены",
      "skippedIllegal_one": "{{count}} партия пропущена: один из ходов невозможен. Откройте партию, чтобы исправить его.",
      "skippedIllegal_few": "{{count}} партии пропущены: в каждой есть невозможный ход. Откройте партии, чтобы исправить их.",
      "skippedIllegal_many": "{{count}} партий пропущено: в каждой есть невозможный ход. Откройте партии, чтобы исправить их.",
      "skippedIllegal_other": "{{count}} партии пропущены: в каждой есть невозможный ход. Откройте партии, чтобы исправить их.",
      "skippedOther_one": "{{count}} партия не сохранена: её изменили или удалили.",
      "skippedOther_few": "{{count}} партии не сохранены: их изменили или удалили.",
      "skippedOther_many": "{{count}} партий не сохранено: их изменили или удалили.",
      "skippedOther_other": "{{count}} партии не сохранены: их изменили или удалили.",
      "skippedInterrupted_one": "{{count}} партия не сохранена: вкладка, которая её анализировала, дважды закрылась до окончания.",
      "skippedInterrupted_few": "{{count}} партии не сохранены: вкладка, которая их анализировала, дважды закрылась до окончания.",
      "skippedInterrupted_many": "{{count}} партий не сохранено: вкладка, которая их анализировала, дважды закрылась до окончания.",
      "skippedInterrupted_other": "{{count}} партий не сохранено: вкладка, которая их анализировала, дважды закрылась до окончания.",
      "pause": "Пауза",
      "resume": "Продолжить",
      "cancel": "Отменить",
      "retry": "Повторить",
      "dismiss": "Закрыть",
      "free": "Бесплатно · работает в этом браузере, по одной партии · ваша собственная работа с движком всегда в приоритете · обычно 5–20 секунд на партию на ноутбуке, на телефоне дольше"
    },
    "reportShare": {
      "title": "Поделиться отчётом",
      "body": "Любой, у кого есть ссылка, может прочитать отчёт без аккаунта. Имена игроков скрыты, если вы не решите их показать.",
      "loadFailed": "Не удалось загрузить ссылки. Обновите страницу и попробуйте ещё раз.",
      "onlyMaker": "Поделиться отчётом может только участник, который его создал, или владелец либо администратор клуба.",
      "expiry": "Ссылка действует",
      "days_one": "{{count}} день",
      "days_few": "{{count}} дня",
      "days_many": "{{count}} дней",
      "days_other": "{{count}} дня",
      "minorHint": "Отчёт о юном шахматисте: ссылки действуют не больше 30 дней, полные имена никогда не показываются.",
      "showNames": "Показывать имена игроков",
      "showNamesHint": "Выключено: игрок показан инициалами, соперники — как «Соперник» с рейтингом.",
      "showNamesMinor": "Для юного шахматиста показываются только имя и первая буква фамилии; соперники остаются скрытыми.",
      "note": "Комментарий для читателя (необязательно)",
      "notePlaceholder": "Например: Отличный турнир. Дальше учимся реализовывать выигранные эндшпили.",
      "create": "Создать ссылку",
      "created": "Ссылка создана и скопирована",
      "copy": "Копировать ссылку",
      "open": "Открыть ссылку",
      "revoke": "Отозвать ссылку",
      "revoked": "Ссылка отозвана",
      "revokeTitle": "Отозвать эту ссылку?",
      "revokeBody": "Кто её откроет, увидит, что она больше не действует. Новую ссылку можно создать в любой момент.",
      "revokeConfirm": "Отозвать",
      "active_one": "{{count}} действующая ссылка",
      "active_few": "{{count}} действующие ссылки",
      "active_many": "{{count}} действующих ссылок",
      "active_other": "{{count}} действующей ссылки",
      "expires": "Действует до {{date}}",
      "views_one": "{{count}} просмотр",
      "views_few": "{{count}} просмотра",
      "views_many": "{{count}} просмотров",
      "views_other": "{{count}} просмотра",
      "namesShown": "Имена показаны",
      "namesHidden": "Имена скрыты",
      "public": {
        "metaTitle": "{{name}}: отчёт о турнире | ScanChess",
        "metaTitleBare": "Отчёт о турнире | ScanChess",
        "metaDesc": "Отчёт о турнире, отправленный по закрытой ссылке ScanChess.",
        "banner": "Отчёт по ссылке · создан {{made}} · ссылка действует до {{until}}",
        "noteTitle": "Комментарий от того, кто поделился отчётом",
        "opponent": "Соперник",
        "player": "Игрок",
        "namesHidden": "В этой копии имена скрыты: игрок показан инициалами, соперники — рейтингом.",
        "ctaTitle": "Превращайте бланки партий в такие отчёты",
        "ctaBody": "ScanChess распознаёт бланки, анализирует каждую партию и собирает отчёт о турнире за вас.",
        "cta": "Попробовать ScanChess",
        "expiredTitle": "Срок действия ссылки истёк",
        "expiredBody": "Отчёты по ссылке доступны ограниченное время. Попросите того, кто её прислал, отправить новую.",
        "revokedTitle": "Ссылка отозвана",
        "revokedBody": "Тот, кто поделился отчётом, отозвал ссылку. Если отчёт ещё нужен, попросите новую.",
        "missingTitle": "Отчёт не найден",
        "missingBody": "Эта ссылка не открывает отчёт. Проверьте, что она скопирована полностью, или попросите новую."
      }
    },
    "repertoire": {
      "title": "Дебютный репертуар",
      "description": "Храните варианты, которые готовите, и смотрите, где каждая партия из них вышла.",
      "color": "Цвет",
      "colorName": {
        "white": "Белые",
        "black": "Чёрные"
      },
      "name": "Название",
      "namePlaceholder": "например, Итальянская за белых",
      "listTitle": "Ваши репертуары",
      "newTitle": "Добавить репертуар",
      "emptyList": "Пока нет ни одного. Импортируйте PGN со своими вариантами или дайте своим партиям показать, что вы играете.",
      "emptyTitle": "Выберите или добавьте репертуар",
      "emptyBody": "Тогда каждая сохранённая партия покажет, где она вышла из вашей подготовки, а в отчётах о турнирах появится столбец «Подготовка».",
      "loadFailed": "Не удалось загрузить ваши репертуары.",
      "moveCount_one": "{{count}} ход",
      "moveCount_few": "{{count}} хода",
      "moveCount_many": "{{count}} ходов",
      "moveCount_other": "{{count}} хода",
      "counts_one": "{{count}} ход: ваших {{player}}, ответов соперника {{opponent}}",
      "counts_few": "{{count}} хода: ваших {{player}}, ответов соперника {{opponent}}",
      "counts_many": "{{count}} ходов: ваших {{player}}, ответов соперника {{opponent}}",
      "counts_other": "{{count}} хода: ваших {{player}}, ответов соперника {{opponent}}",
      "origin": {
        "pgn": "Импортирован из PGN",
        "inferred": "Собран по вашим партиям"
      },
      "rename": "Переименовать",
      "delete": "Удалить",
      "confirmDelete": "Удалить репертуар «{{name}}»? Это нельзя отменить.",
      "locked": {
        "accountBody": "Репертуары принадлежат вашему аккаунту, поэтому нужен зарегистрированный аккаунт.",
        "fullTitle": "Все места для репертуаров заняты",
        "fullBody_one": "Ваш тариф вмещает {{count}} репертуар. Удалите один, чтобы добавить новый.",
        "fullBody_few": "Ваш тариф вмещает {{count}} репертуара. Удалите один, чтобы добавить новый.",
        "fullBody_many": "Ваш тариф вмещает {{count}} репертуаров. Удалите один, чтобы добавить новый.",
        "fullBody_other": "Ваш тариф вмещает {{count}} репертуара. Удалите один, чтобы добавить новый.",
        "reason": "Сохранение репертуара входит в {{plan}}."
      },
      "errors": {
        "planRequired": "Репертуары входят в Pro. Перейдите на Pro, чтобы сохранить этот.",
        "full": "Все места для репертуаров в вашем тарифе заняты. Сначала удалите один.",
        "empty": "Нечего сохранять: ни один ход не играется из начальной позиции, или в ваших партиях пока нет устойчивых привычек.",
        "account": "Создайте аккаунт, чтобы сохранять репертуары."
      },
      "import": {
        "tab": "Импорт PGN",
        "lead": "Вставьте или откройте файл PGN. Учитываются все варианты, включая побочные; комментарии пропускаются.",
        "file": "Открыть файл .pgn",
        "placeholder": "1. e4 e5 (1... c5 2. c3) 2. Nf3 Nc6 3. Bc4 *",
        "label": "PGN репертуара",
        "found_one": "Найден {{count}} ход",
        "found_few": "Найдено {{count}} хода",
        "found_many": "Найдено {{count}} ходов",
        "found_other": "Найдено {{count}} хода",
        "skippedGames_one": "{{count}} партия начинается с расстановки и пропущена.",
        "skippedGames_few": "{{count}} партии начинаются с расстановки и пропущены.",
        "skippedGames_many": "{{count}} партий начинаются с расстановки и пропущены.",
        "skippedGames_other": "{{count}} партии начинаются с расстановки и пропущены.",
        "problems_one": "{{count}} ход не играется; вариант на нём обрывается.",
        "problems_few": "{{count}} хода не играются; варианты на них обрываются.",
        "problems_many": "{{count}} ходов не играются; варианты на них обрываются.",
        "problems_other": "{{count}} хода не играются; варианты на них обрываются.",
        "truncated": "Сохраняются только первые {{count}} ходов — больше в репертуар не помещается.",
        "save": "Сохранить репертуар"
      },
      "infer": {
        "tab": "По моим партиям",
        "lead": "Мы читаем ваши сохранённые партии одним цветом и оставляем ходы, которые вы делаете чаще всего, и ответы, которые часто встречаются.",
        "depth": "Смотреть первые",
        "moves_one": "{{count}} ход",
        "moves_few": "{{count}} хода",
        "moves_many": "{{count}} ходов",
        "moves_other": "{{count}} хода",
        "find": "Найти мой репертуар",
        "none_one": "В вашей {{count}} партии этим цветом пока ничего не повторяется достаточно часто. Ход учитывается, если вы сыграли его хотя бы в {{min}} партиях, причём в большинстве случаев.",
        "none_few": "В ваших {{count}} партиях этим цветом пока ничего не повторяется достаточно часто. Ход учитывается, если вы сыграли его хотя бы в {{min}} партиях, причём в большинстве случаев.",
        "none_many": "В ваших {{count}} партиях этим цветом пока ничего не повторяется достаточно часто. Ход учитывается, если вы сыграли его хотя бы в {{min}} партиях, причём в большинстве случаев.",
        "none_other": "В ваших {{count}} партиях этим цветом пока ничего не повторяется достаточно часто. Ход учитывается, если вы сыграли его хотя бы в {{min}} партиях, причём в большинстве случаев.",
        "found_one": "В ваших партиях найден {{count}} ход",
        "found_few": "В ваших партиях найдено {{count}} хода",
        "found_many": "В ваших партиях найдено {{count}} ходов",
        "found_other": "В ваших партиях найдено {{count}} хода",
        "save": "Сохранить как репертуар",
        "defaultName": {
          "white": "Мой репертуар за белых",
          "black": "Мой репертуар за чёрных"
        },
        "noGames": {
          "white": "У вас пока нет сохранённых партий белыми. Сохраните или импортируйте несколько и попробуйте снова.",
          "black": "У вас пока нет сохранённых партий чёрными. Сохраните или импортируйте несколько и попробуйте снова."
        },
        "fewGames_one": "Ход попадает в репертуар, когда вы сыграли его хотя бы в {{min}} партиях. Сохраните или импортируйте ещё {{count}} партию этим цветом (сейчас их {{games}}) и посмотрите снова.",
        "fewGames_few": "Ход попадает в репертуар, когда вы сыграли его хотя бы в {{min}} партиях. Сохраните или импортируйте ещё {{count}} партии этим цветом (сейчас их {{games}}) и посмотрите снова.",
        "fewGames_many": "Ход попадает в репертуар, когда вы сыграли его хотя бы в {{min}} партиях. Сохраните или импортируйте ещё {{count}} партий этим цветом (сейчас их {{games}}) и посмотрите снова.",
        "fewGames_other": "Ход попадает в репертуар, когда вы сыграли его хотя бы в {{min}} партиях. Сохраните или импортируйте ещё {{count}} партии этим цветом (сейчас их {{games}}) и посмотрите снова."
      },
      "tree": {
        "title": "Варианты",
        "hint": "Ваши ходы выделены жирным. Если убрать ход, уйдёт и всё, что следует только за ним.",
        "empty": "Ходов не осталось. Добавьте ходы из PGN ниже.",
        "expand": "Показать ходы после {{move}}",
        "collapse": "Скрыть ходы после {{move}}",
        "remove": "Убрать {{move}} и продолжение",
        "confirmRemove": "Убрать {{move}} и все ходы, которые следуют только за ним?",
        "transposition": "перестановка"
      },
      "add": {
        "open": "Добавить ходы из PGN",
        "title": "Добавить ходы из PGN",
        "save": "Добавить ходы"
      }
    },
    "student": {
      "back": "Все игроки",
      "description": "Сильные и слабые стороны в партиях клуба, закреплённых за этим игроком, с его стороны доски.",
      "private": "Видно только участникам клуба",
      "loadFailed": "Не удалось загрузить страницу игрока.",
      "notFound": "Этого игрока нет в списке клуба.",
      "gamesTitle": "Партии",
      "gamesEmpty": "За этим игроком пока не закреплено ни одной партии. После сканирования тура распределите доски по игрокам.",
      "gamesMore": "Показаны {{count}} последних партий.",
      "asWhite": "Белыми против {{opponent}}",
      "asBlack": "Чёрными против {{opponent}}",
      "round": "Тур {{round}}",
      "reportsTitle": "Отчёты по турнирам",
      "reportsEmpty": "Отчётов по турнирам об этом игроке пока нет. Создайте отчёт на вкладке «Отчёт» турнира.",
      "reportUntitled": "Отчёт по турниру",
      "reportSummary_one": "{{count}} партия · {{score}} очк. · точность {{accuracy}}",
      "reportSummary_few": "{{count}} партии · {{score}} очк. · точность {{accuracy}}",
      "reportSummary_many": "{{count}} партий · {{score}} очк. · точность {{accuracy}}",
      "reportSummary_other": "{{count}} партии · {{score}} очк. · точность {{accuracy}}",
      "analyse_one": "Проанализировать {{count}} партию",
      "analyse_few": "Проанализировать {{count}} партии",
      "analyse_many": "Проанализировать {{count}} партий",
      "analyse_other": "Проанализировать {{count}} партии",
      "truncated": "Учтены только {{count}} последних проанализированных партий.",
      "empty": {
        "title": "Проанализированных партий пока нет",
        "body_one": "Страница игрока {{name}} строится по анализу, сохранённому с партиями. Анализа ждёт {{count}} партия.",
        "body_few": "Страница игрока {{name}} строится по анализу, сохранённому с партиями. Анализа ждут {{count}} партии.",
        "body_many": "Страница игрока {{name}} строится по анализу, сохранённому с партиями. Анализа ждут {{count}} партий.",
        "body_other": "Страница игрока {{name}} строится по анализу, сохранённому с партиями. Анализа ждут {{count}} партии.",
        "noGamesTitle": "Партий пока нет",
        "noGamesBody": "За игроком {{name}} пока не закреплено ни одной партии. После сканирования тура распределите доски по игрокам — страница начнёт заполняться."
      },
      "insights": {
        "recent": {
          "noPrevious": "Проанализируйте больше партий, чтобы сравнить с прежней формой."
        },
        "top": {
          "stats_one": "{{count}} раз · {{share}} его ошибок",
          "stats_few": "{{count}} раза · {{share}} его ошибок",
          "stats_many": "{{count}} раз · {{share}} его ошибок",
          "stats_other": "{{count}} раза · {{share}} его ошибок"
        },
        "trend": {
          "hint_one": "Его последняя {{count}} партия. Каждый столбец открывает свою партию.",
          "hint_few": "Его последние {{count}} партии, самая старая слева. Каждый столбец открывает свою партию.",
          "hint_many": "Его последние {{count}} партий, самая старая слева. Каждый столбец открывает свою партию.",
          "hint_other": "Его последние {{count}} партии, самая старая слева. Каждый столбец открывает свою партию."
        },
        "phases": {
          "title": "Где теряются шансы на победу"
        },
        "categories": {
          "hint": "Все ошибки и грубые ошибки игрока по типам, самые дорогие первыми.",
          "none": "В его проанализированных партиях нет ошибок и грубых ошибок."
        },
        "openings": {
          "hint": "Его результат в каждом семействе дебютов (код ECO) белыми и чёрными."
        },
        "conversion": {
          "hint": "Партии, в которых он получал выигранную позицию (80% и выше не менее трёх ходов).",
          "none": "В его проанализированных партиях пока нет выигранных позиций."
        },
        "practice": {
          "small": "Для советов нужно не меньше {{min}} проанализированных партий; у него {{count}}."
        }
      },
      "notFoundBody": "Возможно, игрока удалили из списка или ссылка относится к другому клубу."
    },
    "roundStudents": {
      "title": "Ученики в этом туре",
      "analyseTitle": "Проанализировать тур",
      "body": "Проверьте, кто играл на каждой доске, и сохраните. Страница и отчёты каждого ученика строятся по закреплённым за ним партиям.",
      "analyseHint": "Движок анализирует партии тура в фоне. Бесплатно.",
      "board": "Доска {{board}}",
      "game": "Партия {{number}}",
      "notOurs": "Нет в списке",
      "check": "Проверьте",
      "twiceShort": "Дважды",
      "twice": "Выбран для нескольких досок: {{names}}",
      "save": "Сохранить учеников",
      "saveAndAnalyse": "Сохранить и проанализировать тур",
      "analyse": "Проанализировать тур",
      "saved_one": "{{count}} партия закреплена за учениками",
      "saved_few": "{{count}} партии закреплены за учениками",
      "saved_many": "{{count}} партий закреплены за учениками",
      "saved_other": "{{count}} партии закреплены за учениками",
      "failed": "Не удалось сохранить учеников",
      "queued_one": "{{count}} партия тура поставлена в очередь на анализ",
      "queued_few": "{{count}} партии тура поставлены в очередь на анализ",
      "queued_many": "{{count}} партий тура поставлены в очередь на анализ",
      "queued_other": "{{count}} партии тура поставлены в очередь на анализ",
      "locked": "Закрепление партий за учениками входит в клубный тариф Pro+.",
      "lockedCta": "О списке игроков",
      "rosterFailed": "Не удалось загрузить список игроков.",
      "emptyRoster": "Добавьте учеников клуба в список, чтобы закреплять за ними партии.",
      "emptyRosterCta": "Открыть список"
    },
    "scouting": {
      "title": "Подготовка к сопернику",
      "description": "Перед партией: что соперник играет онлайн, как набирает очки и куда бить.",
      "privacy": "Отчёты строятся только по публичным партиям соперника на Lichess или Chess.com. Хранится лишь сводка — 90 дней, и ею никогда не делятся.",
      "score": "Результат",
      "form": {
        "title": "Изучить соперника",
        "site": "Сайт",
        "username": "Ник соперника",
        "placeholder": "Ник или ссылка на профиль",
        "timeClass": "Контроль",
        "allTimeClasses": "Все контроли",
        "submit": "Изучить",
        "working": "Читаем партии…",
        "wait": "Читаем его последние публичные партии. Это может занять до полуминуты.",
        "hint": "Мы читаем его последние 200 публичных партий в обычные шахматы через открытый API сайта. Повторное изучение того же игрока в течение часа откроет тот же отчёт бесплатно."
      },
      "errors": {
        "notFound": "На {{site}} нет игрока с таким ником.",
        "invalid": "Это не похоже на ник.",
        "noGames": "У этого игрока нет недавних партий с таким контролем.",
        "busy": "{{site}} сейчас перегружен. Попробуйте через минуту.",
        "limit": "Отчёты на этот месяц израсходованы. Новые появятся в следующем месяце или с более высоким тарифом.",
        "plan": "Для подготовки к сопернику нужен Pro или Pro+.",
        "account": "Создайте бесплатный аккаунт, чтобы изучать соперников.",
        "rateLimited": "Слишком много запросов. Попробуйте позже.",
        "generic": "Не получилось. Попробуйте ещё раз.",
        "load": "Не удалось загрузить ваши отчёты.",
        "delete": "Не удалось удалить отчёт."
      },
      "list": {
        "title": "Сохранённые отчёты",
        "empty": "Отчётов пока нет. Изучите следующего соперника выше.",
        "games_one": "{{count}} партия",
        "games_few": "{{count}} партии",
        "games_many": "{{count}} партий",
        "games_other": "{{count}} партии",
        "score": "результат {{score}}",
        "delete": "Удалить отчёт о {{name}}"
      },
      "delete": {
        "title": "Удалить отчёт о {{name}}?",
        "body": "Он исчезнет для всех в этом рабочем пространстве. Повторное изучение игрока засчитается как новый отчёт.",
        "confirm": "Удалить"
      },
      "hints": {
        "title": "Куда бить",
        "none": "Пока ничего не выделяется. Больше партий скажут больше.",
        "note": "Выведено из цифр по фиксированным правилам. Результаты — соперника: 30% значит, что он набирает мало.",
        "weakOpening": {
          "white": "Белыми он набирает лишь {{score}} в дебюте «{{opening}}» (партий: {{games}}). Если он пойдёт на него — это его слабое место.",
          "black": "Чёрными он набирает лишь {{score}} в дебюте «{{opening}}» (партий: {{games}}). Ведите туда, когда играете белыми."
        },
        "strongOpening": {
          "white": "Его лучшее оружие белыми — «{{opening}}»: {{score}} (партий: {{games}}). Подготовьтесь к нему.",
          "black": "Чёрными он набирает {{score}} в дебюте «{{opening}}» (партий: {{games}}). Подумайте, как его обойти."
        },
        "firstMove": "Белыми он начинает {{move}} в {{share}} партий (партий: {{games}}).",
        "reply": "На {{against}} он отвечает {{reply}} в {{share}} случаев (партий: {{games}}).",
        "weakerColour": {
          "white": "Белыми он играет заметно хуже ({{score}}), чем чёрными ({{other}}).",
          "black": "Чёрными он играет заметно хуже ({{score}}), чем белыми ({{other}})."
        },
        "weakTimeControl": "Самый слабый контроль: {{control}} — {{score}} (партий: {{games}}) против {{best}} в лучшем.",
        "weakPhase": "Стадия, где он теряет больше всего: {{phase}} — {{loss}} п. п. шансов на победу за партию (проанализировано партий: {{games}}). Доводите партию до неё.",
        "commonError": "Самый частый тип ошибок: {{category}} — {{share}} его ошибок (проанализировано партий: {{games}})."
      },
      "report": {
        "back": "Все отчёты",
        "sample_one": "По его последней {{count}} партии, {{from}} – {{to}}.",
        "sample_few": "По его последним {{count}} партиям, {{from}} – {{to}}.",
        "sample_many": "По его последним {{count}} партиям, {{from}} – {{to}}.",
        "sample_other": "По его последним {{count}} партиям, {{from}} – {{to}}.",
        "partial": "Сайт отвечал медленно, поэтому учтены только партии, прочитанные вовремя.",
        "small": "Мало партий: относитесь к цифрам осторожно.",
        "reused": "Вы изучали этого игрока меньше часа назад — это тот же отчёт. Ничего не списано.",
        "expires": "Хранится до {{date}}, затем удаляется.",
        "profile": "Профиль на {{site}}",
        "missing": "Этого отчёта нет или срок его хранения истёк.",
        "missingTitle": "Этот отчёт о сопернике недоступен"
      },
      "tiles": {
        "score": "Его результат",
        "white": "Белыми",
        "black": "Чёрными",
        "accuracy_one": "сайт оценил {{count}} партию",
        "accuracy_few": "сайт оценил {{count}} партии",
        "accuracy_many": "сайт оценил {{count}} партий",
        "accuracy_other": "сайт оценил {{count}} партии"
      },
      "colour": {
        "white": "Его партии белыми ({{games}})",
        "black": "Его партии чёрными ({{games}})"
      },
      "openings": {
        "title": "Дебюты",
        "none": "Нет партий этим цветом.",
        "book": "Теория",
        "bookHint": "Сколько ходов в среднем оставалось в дебютной теории (полуходы)",
        "mainLine": "Главная линия"
      },
      "lines": {
        "title": "Варианты, которые он повторяет",
        "none": "Повторяющихся вариантов пока нет."
      },
      "tree": {
        "title": "Дерево ходов",
        "hint": "Первые {{moves}} ходов; только ходы, сыгранные минимум в двух партиях.",
        "node_one": "{{count}} партия · {{score}}",
        "node_few": "{{count}} партии · {{score}}",
        "node_many": "{{count}} партий · {{score}}",
        "node_other": "{{count}} партии · {{score}}"
      },
      "timeControls": {
        "title": "Контроли времени",
        "control": "Контроль",
        "rating": "Рейтинг"
      },
      "mistakes": {
        "title": "Где он ошибается",
        "hint_one": "По {{count}} партии, проанализированной сайтом, по правилам ScanChess.",
        "hint_few": "По {{count}} партиям, проанализированным сайтом, по правилам ScanChess.",
        "hint_many": "По {{count}} партиям, проанализированным сайтом, по правилам ScanChess.",
        "hint_other": "По {{count}} партиям, проанализированным сайтом, по правилам ScanChess.",
        "none": "Ни в одной из этих партий нет анализа сайта, поэтому ошибки оценить нельзя.",
        "noneChessCom": "Chess.com не публикует походовый анализ, поэтому здесь ошибки оценить нельзя. Попробуйте его аккаунт на Lichess, если он есть.",
        "phase": "Стадия",
        "perGame": "Ошибки / зевки за партию",
        "loss": "Потерянные шансы на победу за партию",
        "types": "Типы ошибок"
      },
      "preparation": {
        "title": "Против вашего репертуара",
        "none": "Добавьте репертуар, чтобы увидеть, где его варианты встречаются с вашей подготовкой.",
        "link": "Открыть мои репертуары",
        "noMatch": "Ни один из его повторяющихся вариантов не доходит до вашего репертуара за другой цвет.",
        "leftOpponent": "Он выходит из вашего «{{name}}» ходом {{played}}; вы готовили {{expected}}.",
        "leftPlayer": "Ваш «{{name}}» играет {{expected}} там, где в его партиях было {{played}}, — здесь вы уходите от этого варианта.",
        "covered": "Ваш «{{name}}» покрывает весь вариант — до {{moveNumber}}-го хода."
      }
    },
    "proLock": {
      "titles": {
        "insights": "Полный профиль входит в {{plan}}",
        "onlineDeep": "Подробное сравнение входит в {{plan}}",
        "repertoire": "Дебютные репертуары входят в {{plan}}",
        "scouting": "Подготовка к соперникам входит в {{plan}}",
        "eventReport": "Полный отчёт о турнире входит в {{plan}}",
        "reportShare": "Ссылки на отчёты входят в {{plan}}",
        "clubPlayers": "Список игроков входит в {{plan}}"
      },
      "perPlan": "Pro: {{pro}} · Pro+: {{proplus}}",
      "bothPlans": "Pro · Pro+: {{quota}}",
      "proPlusOnly": "Pro+, тариф для клубов и тренеров: {{quota}}",
      "cta": "Перейти на {{plan}}",
      "ctaClub": "Клубные тарифы",
      "askAdmin": "Попросите владельца или администратора клуба повысить тариф клуба.",
      "account": "Сначала создайте бесплатный аккаунт, затем можно перейти на платный тариф."
    },
    "importPgn": {
      "action": "Импорт PGN",
      "lead": "Вставьте одну или несколько партий или выберите файл .pgn. Они сохранятся в ваших партиях, и их можно сразу анализировать.",
      "label": "Текст PGN",
      "chooseFile": "Выбрать файл .pgn",
      "found_one": "{{count}} партия готова к импорту",
      "found_few": "{{count}} партии готовы к импорту",
      "found_many": "{{count}} партий готовы к импорту",
      "found_other": "{{count}} партии готовы к импорту",
      "skipped_one": "Пропущена {{count}} партия: в ней недопустимый ход, нет ходов или она начинается с заданной позиции.",
      "skipped_few": "Пропущено {{count}} партии: в каждой недопустимый ход, нет ходов или заданная начальная позиция.",
      "skipped_many": "Пропущено {{count}} партий: в каждой недопустимый ход, нет ходов или заданная начальная позиция.",
      "skipped_other": "Пропущено {{count}} партии: в каждой недопустимый ход, нет ходов или заданная начальная позиция.",
      "tooMany": "За один раз импортируются только первые {{max}} партий.",
      "none": "Партии не найдены. Вставьте ходы в PGN, например 1. e4 e5 2. Nf3.",
      "submit_one": "Импортировать {{count}} партию",
      "submit_few": "Импортировать {{count}} партии",
      "submit_many": "Импортировать {{count}} партий",
      "submit_other": "Импортировать {{count}} партии",
      "importing": "Импорт: {{done}} из {{total}}…",
      "done_one": "Импортирована {{count}} партия",
      "done_few": "Импортировано {{count}} партии",
      "done_many": "Импортировано {{count}} партий",
      "done_other": "Импортировано {{count}} партии",
      "partial": "Импортировано {{done}} из {{total}}. Остальные не сохранены: {{reason}}",
      "readFailed": "Не удалось прочитать файл.",
      "submitEmpty": "Импортировать",
      "intoEventTitle": "Импорт партий в {{name}}",
      "intoEventLead": "Вставьте партии этого турнира или выберите файл .pgn, опубликованный организатором. Они сохранятся в ваших партиях и будут отнесены к этому турниру — их можно сразу анализировать, и они войдут в отчёт.",
      "notFiled_one": "Импортирована {{count}} партия, но её не удалось добавить в {{event}}. Используйте «{{action}}» в разделе «Партии».",
      "notFiled_other": "Импортировано {{count}} партии, но их не удалось добавить в {{event}}. Используйте «{{action}}» в разделе «Партии».",
      "notFiled_few": "Импортировано {{count}} партии, но их не удалось добавить в {{event}}. Используйте «{{action}}» в разделе «Партии».",
      "notFiled_many": "Импортировано {{count}} партий, но их не удалось добавить в {{event}}. Используйте «{{action}}» в разделе «Партии»."
    },
    "notFound": {
      "body": "По этому адресу в рабочем пространстве нет страницы. Возможно, в адресе опечатка или страница переехала.",
      "back": "Вернуться к обзору"
    },
    "newMenu": {
      "roundScanHint_one": "{{count}} кредит за партию",
      "roundScanHint_other": "{{count}} кредита за партию",
      "roundScanHint_few": "{{count}} кредита за партию",
      "roundScanHint_many": "{{count}} кредитов за партию"
    },
    "invite": {
      "description_one": "Поделитесь ссылкой с друзьями-шахматистами. За каждого, кто присоединится, вы оба получите по {{count}} кредиту.",
      "description_few": "Поделитесь ссылкой с друзьями-шахматистами. За каждого, кто присоединится, вы оба получите по {{count}} кредита.",
      "description_many": "Поделитесь ссылкой с друзьями-шахматистами. За каждого, кто присоединится, вы оба получите по {{count}} кредитов.",
      "description_other": "Поделитесь ссылкой с друзьями-шахматистами. За каждого, кто присоединится, вы оба получите по {{count}} кредита.",
      "linkTitle": "Ваша пригласительная ссылка",
      "copy": "Скопировать ссылку",
      "copied": "Скопировано",
      "copiedAnnouncement": "Ссылка-приглашение скопирована",
      "share": "Поделиться",
      "sendWith": "Отправить через",
      "orSendWith": "Или отправить через",
      "channels": {
        "whatsapp": "WhatsApp",
        "telegram": "Telegram",
        "x": "X",
        "email": "Почта",
        "wechat": "WeChat"
      },
      "shareMessage_one": "Я превращаю бланки и фото доски в партии для анализа с помощью ScanChess. Зарегистрируйся по моей ссылке, и мы оба получим по {{count}} бесплатному кредиту:",
      "shareMessage_few": "Я превращаю бланки и фото доски в партии для анализа с помощью ScanChess. Зарегистрируйся по моей ссылке, и мы оба получим по {{count}} бесплатных кредита:",
      "shareMessage_many": "Я превращаю бланки и фото доски в партии для анализа с помощью ScanChess. Зарегистрируйся по моей ссылке, и мы оба получим по {{count}} бесплатных кредитов:",
      "shareMessage_other": "Я превращаю бланки и фото доски в партии для анализа с помощью ScanChess. Зарегистрируйся по моей ссылке, и мы оба получим по {{count}} бесплатного кредита:",
      "shareSubject_one": "Присоединяйся к ScanChess: по {{count}} бесплатному кредиту каждому",
      "shareSubject_few": "Присоединяйся к ScanChess: по {{count}} бесплатных кредита каждому",
      "shareSubject_many": "Присоединяйся к ScanChess: по {{count}} бесплатных кредитов каждому",
      "shareSubject_other": "Присоединяйся к ScanChess: по {{count}} бесплатного кредита каждому",
      "unverifiedTitle": "Подтвердите почту, чтобы получать кредиты",
      "unverifiedBody": "Друзья уже могут зарегистрироваться по вашей ссылке, но кредиты за приглашение начисляются, только если ваша почта подтверждена. Те, кто завершит регистрацию раньше, не засчитываются.",
      "resend": "Отправить письмо ещё раз",
      "resent": "Письмо отправлено",
      "resendFailed": "Не удалось отправить письмо. Попробуйте через минуту.",
      "stats": {
        "joined": "Присоединились",
        "earned": "Заработано кредитов",
        "noneYet": "Пока никого",
        "credited_one": "начислено: {{count}}",
        "credited_few": "начислено: {{count}}",
        "credited_many": "начислено: {{count}}",
        "credited_other": "начислено: {{count}}",
        "confirming_one": "ждут подтверждения почты: {{count}}",
        "confirming_few": "ждут подтверждения почты: {{count}}",
        "confirming_many": "ждут подтверждения почты: {{count}}",
        "confirming_other": "ждут подтверждения почты: {{count}}",
        "noBonus": "Присоединились до подтверждения вашей почты",
        "perFriend_one": "{{count}} кредит за каждого друга",
        "perFriend_few": "{{count}} кредита за каждого друга",
        "perFriend_many": "{{count}} кредитов за каждого друга",
        "perFriend_other": "{{count}} кредита за каждого друга"
      },
      "friendsTitle": "Друзья",
      "status": {
        "pending": "Ожидает",
        "signed_up": "Зарегистрирован",
        "rewarded": "Бонус получен"
      },
      "statusHint": {
        "pending_one": "Друг ещё не подтвердил почту. После этого вы оба получите по {{count}} кредиту.",
        "pending_few": "Друг ещё не подтвердил почту. После этого вы оба получите по {{count}} кредита.",
        "pending_many": "Друг ещё не подтвердил почту. После этого вы оба получите по {{count}} кредитов.",
        "pending_other": "Друг ещё не подтвердил почту. После этого вы оба получите по {{count}} кредита.",
        "signed_up_one": "Друг зарегистрировался, когда ваша почта ещё не была подтверждена, поэтому кредиты за это приглашение не начислены.",
        "signed_up_few": "Друг зарегистрировался, когда ваша почта ещё не была подтверждена, поэтому кредиты за это приглашение не начислены.",
        "signed_up_many": "Друг зарегистрировался, когда ваша почта ещё не была подтверждена, поэтому кредиты за это приглашение не начислены.",
        "signed_up_other": "Друг зарегистрировался, когда ваша почта ещё не была подтверждена, поэтому кредиты за это приглашение не начислены.",
        "rewarded_one": "Готово: вы оба получили по {{count}} кредиту.",
        "rewarded_few": "Готово: вы оба получили по {{count}} кредита.",
        "rewarded_many": "Готово: вы оба получили по {{count}} кредитов.",
        "rewarded_other": "Готово: вы оба получили по {{count}} кредита."
      },
      "joinedOn": "Дата регистрации: {{date}}",
      "creditsFor_one": "Заработан {{count}} кредит",
      "creditsFor_few": "Заработано {{count}} кредита",
      "creditsFor_many": "Заработано {{count}} кредитов",
      "creditsFor_other": "Заработано {{count}} кредита",
      "emptyTitle": "Пока никто не присоединился",
      "emptyBody_one": "Отправьте ссылку тому, с кем играете в шахматы. Друг появится здесь сразу после регистрации, а вы оба получите по {{count}} кредиту.",
      "emptyBody_few": "Отправьте ссылку тому, с кем играете в шахматы. Друг появится здесь сразу после регистрации, а вы оба получите по {{count}} кредита.",
      "emptyBody_many": "Отправьте ссылку тому, с кем играете в шахматы. Друг появится здесь сразу после регистрации, а вы оба получите по {{count}} кредитов.",
      "emptyBody_other": "Отправьте ссылку тому, с кем играете в шахматы. Друг появится здесь сразу после регистрации, а вы оба получите по {{count}} кредита.",
      "privacy": "Адреса частично скрыты, чтобы защитить данные ваших друзей.",
      "showingLatest_one": "Показаны последние: {{count}}.",
      "showingLatest_few": "Показаны последние: {{count}}.",
      "showingLatest_many": "Показаны последние: {{count}}.",
      "showingLatest_other": "Показаны последние: {{count}}.",
      "rules": {
        "title": "Как это работает",
        "step1": "Отправьте ссылку другу, который ещё не пользуется ScanChess.",
        "step2": "Он регистрируется по ней и подтверждает почту. Регистрация через Google засчитывается сразу.",
        "step3_one": "Вы оба получаете по {{count}} кредиту — он зачисляется автоматически.",
        "step3_few": "Вы оба получаете по {{count}} кредита — они зачисляются автоматически.",
        "step3_many": "Вы оба получаете по {{count}} кредитов — они зачисляются автоматически.",
        "step3_other": "Вы оба получаете по {{count}} кредита — они зачисляются автоматически.",
        "goodToKnow": "Полезно знать",
        "newOnly": "Засчитываются только новые аккаунты, и каждый аккаунт можно пригласить лишь один раз.",
        "verifiedInviter": "Кредиты за приглашения начисляются, только если ваша почта подтверждена.",
        "worth": "Кредиты тратятся на сканирование: {{costs}}."
      },
      "loadFailed": "Не удалось загрузить приглашения.",
      "retry": "Повторить",
      "noCode": "У вашего аккаунта пока нет пригласительной ссылки. Напишите в поддержку, и мы её добавим.",
      "anonymousTitle": "Создайте аккаунт, чтобы приглашать друзей",
      "anonymousBody": "Пригласительная ссылка появляется вместе с аккаунтом. Зарегистрируйтесь бесплатно и сразу делитесь ею."
    }
  },
  "extensionPage": {
    "eyebrow": "Расширение для Chrome и Edge",
    "title": "Распознавайте шахматные доски на веб-страницах",
    "lead": "Выделите доску и проверьте позицию перед копированием FEN или переходом к анализу. Нужен аккаунт ScanChess; распознавание одной доски стоит 1 кредит.",
    "ctaInstall": "Посмотреть в Chrome Web Store",
    "ctaUpload": "Загрузить изображение на сайте",
    "installNote": "Для Chrome и Microsoft Edge версии 116 и новее. Установка бесплатна; распознавание расходует кредиты.",
    "newTab": "открывает Chrome Web Store в новой вкладке",
    "screenshotAlt": "Пример интерфейса ScanChess с подготовленной позицией и её FEN",
    "stepsTitle": "Как это работает",
    "steps": [
      {
        "title": "Подключите аккаунт",
        "body": "Откройте ScanChess на панели браузера и перейдите к входу на сайте. Расширение подключается через ваш сеанс ScanChess на сайте."
      },
      {
        "title": "Выделите доску",
        "body": "Вернитесь на страницу с доской и обведите её рамкой. Убедитесь, что в область попали все 64 клетки."
      },
      {
        "title": "Проверьте позицию",
        "body": "Проверьте фигуры и очередь хода перед использованием FEN. При желании продолжите анализ на Lichess или Chess.com либо проверку позиции на ScanChess."
      }
    ],
    "usesTitle": "Для чего оно подходит",
    "usesLead": "Для шахмат, которые встречаются вам в браузере, где сохранить изображение и загрузить его заново — самая долгая часть.",
    "uses": [
      {
        "title": "Статьи и форумы",
        "body": "Диаграммы и скриншоты в блоге, ветке форума или рассылке."
      },
      {
        "title": "Видео на паузе",
        "body": "Поставьте урок или трансляцию на паузу в нужной позиции и захватите кадр."
      },
      {
        "title": "Задачи и диаграммы на веб-страницах",
        "body": "Позиции, опубликованные как изображения на веб-странице. Если PDF не удаётся захватить, сохраните изображение и загрузите его на сайте."
      }
    ],
    "outputs": [
      {
        "title": "Доска → FEN",
        "body": "Позиция для проверки, копирования и анализа. Прежде чем продолжить, проверьте фигуры и очередь хода."
      },
      {
        "title": "Рукописные бланки партий",
        "body": "Для бумажной записи и экспорта PGN используйте сканер на сайте; расширение работает с досками на веб-страницах."
      }
    ],
    "creditsTitle": "Тот же аккаунт, те же кредиты",
    "creditsBody": "Установка бесплатна. Нужен зарегистрированный аккаунт ScanChess. Каждое распознавание доски расходует 1 кредит с его баланса.",
    "creditsLink": "Посмотреть цены",
    "privacyTitle": "Что видит расширение",
    "privacy": [
      "Оно захватывает страницу только после того, как вы выберете действие сканирования.",
      "На api.scanchess.com для распознавания отправляется только выделенная область.",
      "Оно не собирает историю посещений.",
      "В нём нет скриптов аналитики.",
      "Данные подключения аккаунта находятся в защищённом хранилище расширения."
    ],
    "privacyLink": "Раздел о расширении в политике конфиденциальности",
    "faqTitle": "Вопросы о расширении",
    "faq": [
      {
        "q": "Расширение ScanChess бесплатное?",
        "a": "Установка бесплатна. Для распознавания одной доски нужны зарегистрированный аккаунт ScanChess и 1 кредит."
      },
      {
        "q": "В каких браузерах оно работает?",
        "a": "Google Chrome и Microsoft Edge версии 116 и новее (Chromium 116+). Версий для Firefox и Safari нет, а мобильные браузеры не запускают расширения, поэтому на телефоне загрузите изображение на сайте."
      },
      {
        "q": "Оно работает на любом сайте?",
        "a": "Расширение предназначено для досок на обычных веб-страницах. Внутренние страницы браузера, Chrome Web Store и встроенный просмотрщик PDF ограничивают захват. Если доску не удаётся захватить, сохраните изображение и загрузите его на scanchess.com."
      },
      {
        "q": "Нужен ли аккаунт?",
        "a": "Да. Создайте аккаунт или войдите на сайте ScanChess, затем следуйте шагам подключения расширения. Оно использует ваш сеанс на сайте; вводить пароль в расширении не нужно."
      }
    ],
    "finalTitle": "Изображение уже на компьютере или телефоне?",
    "finalBody": "Загружайте фотографии досок или рукописные бланки на сайте. Проверьте результат перед анализом или экспортом.",
    "screenshotCaption": "Пример интерфейса с подготовленной позицией. Распознавание не выполнялось."
  },
  "extensionPromo": {
    "uploadHint": "Доска на веб-странице? Захватите её расширением ScanChess",
    "cardEyebrow": "Расширение для браузера",
    "cardTitle": "Сканируйте доски прямо с веб-страниц",
    "cardBody": "Захватите доску в Chrome или Edge, проверьте позицию и скопируйте FEN. Нужен аккаунт ScanChess; каждая доска расходует 1 кредит.",
    "cardInstall": "Добавить в Chrome",
    "cardLearn": "Подробнее",
    "cardDismiss": "Скрыть это предложение"
  },
  "allowance": {
    "badge": {
      "leftToday": "Сегодня осталось {{count}}",
      "leftMonth": "В этом месяце осталось {{count}}",
      "left": "Осталось {{count}}",
      "thenCredits_one": "далее {{count}} кредит",
      "thenCredits_few": "далее {{count}} кредита",
      "thenCredits_many": "далее {{count}} кредитов",
      "thenCredits_other": "далее {{count}} кредита",
      "unlimited": "Без ограничений",
      "needsPlan": "Функция {{plan}}",
      "backAt": "снова с {{time}}"
    }
  },
  "positionCoach": {
    "title": "Изучить эту позицию",
    "lead": "Получите объяснение простыми словами, написанное только по данным движка, или сохраните позицию в блокнот, чтобы потренировать её позже.",
    "explain": "Объяснить позицию",
    "explainFree": "Объяснить позицию · сегодня бесплатно (осталось {{count}})",
    "explainCredit": "Объяснить позицию · {{count}} кредит",
    "explainExplained": "Объяснить позицию · уже объяснена (бесплатно)",
    "freeNote": "Одно объяснение в день бесплатно (общее с тренером партий); дальше — {{cost}} кредит.",
    "waitingEngine": "Движок ещё считает; объяснение начнётся, как только он закончит.",
    "signInExplain": "Войдите, чтобы получить объяснение — одно в день бесплатно.",
    "signInSave": "Войдите, чтобы сохранять позиции в блокнот.",
    "rejected": "Объяснение не прошло проверку фактов, поэтому не показано. Ничего не списано — попробуйте ещё раз.",
    "inProgress": "Эту позицию уже объясняют. Попробуйте чуть позже.",
    "save": "Сохранить в мои позиции",
    "saved": "Сохранено в мои позиции",
    "savedToast": "Позиция сохранена. Она в разделе «Позиции».",
    "openNotebook": "Открыть мои позиции",
    "practiceTitle": "Тренировать эту позицию",
    "practiceNeedsEngine": "Ответом станет лучший ход движка; дождитесь, пока движок закончит.",
    "answer": "Ответ:",
    "practice": "Добавить в тренировку",
    "practiceAdded": "Добавлено в ваши карточки.",
    "practiceExisting": "Уже есть в ваших карточках.",
    "openPractice": "Открыть тренировку",
    "field": {
      "position": "Позиция",
      "plan": "План",
      "watch": "Осторожно"
    },
    "basis": "Основа (Stockfish, глубина {{depth}}): лучший ход {{best}} · шансы на победу около {{win}}% у стороны: {{side}}",
    "basisMate": "Основа (Stockfish, глубина {{depth}}): {{best}} начинает форсированный мат, сторона: {{side}}",
    "uncertain": "Причина хода движка лежит дальше, чем показывает его вариант; план — его оценка, а не доказанный вариант.",
    "charged": "Списан {{count}} кредит. Повторный запрос этой позиции на любом языке бесплатен.",
    "usedFree": "Использовано сегодняшнее бесплатное объяснение — кредиты не списаны.",
    "cached": "Уже объяснено — ничего не списано.",
    "form": {
      "source": "Откуда позиция?",
      "title": "Название",
      "titleBook": "например, «Моя система», глава 3",
      "titleVideo": "например, название видео",
      "optional": "Необязательно",
      "page": "Страница",
      "pageInvalid": "Укажите номер страницы.",
      "timestamp": "Время в видео",
      "timestampInvalid": "Минуты и секунды, например 12:34.",
      "url": "Ссылка на видео",
      "urlInvalid": "Ссылка должна начинаться с http:// или https://.",
      "note": "Заметка",
      "notePlaceholder": "Что запомнить об этой позиции",
      "submit": "Сохранить"
    },
    "outdated": "Написано прежней версией тренера. Читать бесплатно; новое объяснение считается как обычно.",
    "explainAgain": "Объяснить заново"
  },
  "howItWorks": {
    "pageTitle": "Как работает ScanChess",
    "lead": "Три части: отсканируйте партию, проанализируйте её и потренируйте то, что она показала. Сканирование стоит кредитов; проверка, анализ, просмотр и экспорт бесплатны.",
    "partLabel": "Часть {{number}}",
    "scan": {
      "title": "Сканирование",
      "intro": "Превратите бумагу или картинку в партию или позицию, с которой можно работать.",
      "cta": "Отсканировать бланк",
      "secondary": "Отсканировать изображение доски",
      "steps": [
        {
          "title": "Сделайте снимок",
          "text": "Сфотографируйте рукописный бланк ровно и при равномерном свете или возьмите скриншот, диаграмму из книги либо снимок доски сверху. JPG, PNG или WebP до 15 МБ; HEIC не поддерживается."
        },
        {
          "title": "Загрузите и отсканируйте",
          "text": "Добавьте страницы одной партии по порядку, до 10 изображений, или одно изображение доски. Скан бланка стоит 2 кредита независимо от числа страниц, доска — 1; новые аккаунты получают 10 бесплатных кредитов."
        },
        {
          "title": "Проверьте результат",
          "text": "Каждый ход разыгрывается на доске: невозможные ходы отмечены красным, сомнительные — жёлтым, с ближайшими допустимыми ходами на выбор. Для доски подтвердите, чей ход. Исправления бесплатны."
        },
        {
          "title": "Сохраните или экспортируйте",
          "text": "Отсканированная партия сохраняется вместе с фото в библиотеке партий. Скопируйте или скачайте PGN или FEN для Lichess, Chess.com или ChessBase."
        }
      ]
    },
    "analyze": {
      "title": "Анализ",
      "intro": "Посмотрите, где партия была выиграна и проиграна.",
      "cta": "Проанализировать партию",
      "secondary": "Открыть доску для анализа",
      "steps": [
        {
          "title": "Запустите анализ",
          "text": "Stockfish бесплатно анализирует партию и сохраняет результат вместе с ней: точность каждой стороны, каждую неточность, ошибку и грубую ошибку, а также моменты, где партия переломилась."
        },
        {
          "title": "Спросите ИИ-тренера",
          "text": "Тренер простыми словами объясняет переломные моменты: что произошло, что было лучше и почему. С подтверждённой почтой одна партия в день бесплатно, дальше 1 кредит за партию."
        },
        {
          "title": "Просматривайте и исследуйте",
          "text": "Пройдите партию по ходам, проверьте свои идеи на доске для анализа или откройте партию на Lichess. Партию, которая уже есть у вас в PGN, можно импортировать и разобрать так же."
        }
      ]
    },
    "practice": {
      "title": "Тренировка",
      "intro": "Превратите свои ошибки в тренировку.",
      "cta": "Тренировать упущенную тактику",
      "secondary": "Сравнить тарифы",
      "steps": [
        {
          "title": "Ежедневная тренировка",
          "text": "Тактика, упущенная в проанализированных партиях, превращается в короткие упражнения. Бесплатным аккаунтам доступно 15 в день, в Pro ограничений нет."
        },
        {
          "title": "Игровой профиль",
          "text": "Игровой профиль показывает закономерности по всем вашим партиям и может сравнить вашу игру за доской с привязанным аккаунтом Lichess или Chess.com. Полный профиль — точность во времени, стадии партии и типы ошибок — входит в Pro."
        },
        {
          "title": "Подготовка (Pro)",
          "text": "Храните дебютные репертуары и смотрите, где партия от них отклонилась, а также изучайте онлайн-партии соперника: что он играет и куда целиться."
        }
      ]
    },
    "clubs": "Тренируете группу или ведёте клуб? Pro+ добавляет список игроков со страницей для каждого ученика, привязывает партии отсканированного тура к игрокам за один шаг и позволяет делиться отчётами о турнирах по ссылке.",
    "clubsLink": "Тренерам и клубам"
  }
}
