{
  "common": {
    "help": "Как играть",
    "settings": "Настройки",
    "close": "Закрыть",
    "retry": "Попробовать снова",
    "today": "Сегодня",
    "playCollection": "Играть в Коллекции",
    "share": "Поделиться",
    "point": "Точка",
    "cross": "Крестик",
    "undo": "Отменить",
    "redo": "Повторить",
    "resetBoard": "Очистить поле",
    "resetConfirmTitle": "Очистить это поле?",
    "resetConfirmMessage": "Все отметки в этой задаче будут удалены. Вернуть их можно кнопкой «Отменить».",
    "resetConfirmCancel": "Не очищать",
    "resetConfirmAction": "Очистить поле",
    "backToBoard": "Вернуться к игре",
    "previous": "Назад",
    "next": "Вперёд",
    "all": "Все",
    "language": "Язык",
    "chooseLanguage": "Выбрать язык",
    "found": "Решено",
    "loadingDaily": "Загружаем задачу дня…",
    "dailyWaiting": "Не удалось загрузить задачу дня.",
    "dailyEveryone": "Одна задача для всех. Каждый день — новая.",
    "dailyAvailable": "Новая задача дня уже готова.",
    "playIt": "Решить",
    "collectionAlways": "Коллекция всегда открыта.",
    "statusStart": "Числа задают количество точек. Каждая точка касается стороной ровно одной другой.",
    "statusLines": "Сошлось строк и столбцов: {{matched}} из {{total}}",
    "statusExcess": "В строке или столбце слишком много точек. Уберите одну или отмените ход.",
    "statusCrowd": "Точка касается сразу нескольких других. Разведите пары.",
    "statusPairs": "Числа сошлись. Осталось найти пару каждой точке.",
    "statusWon": "Все числа. Все пары. Решение найдено.",
    "victory": "Всё сошлось.",
    "anotherPuzzle": "Следующая задача",
    "playToday": "Решить задачу дня",
    "shareResult": "Поделиться результатом",
    "tool": "Инструмент",
    "soundOn": "Выключить звук",
    "soundOff": "Включить звук",
    "zoom": "Увеличить",
    "seeAll": "Всё поле",
    "sharePuzzle": "Поделиться этой задачей",
    "skipToBoard": "Перейти к игровому полю",
    "boardGame": "Игра Puntokus",
    "errorTitle": "Что-то пошло не так.",
    "errorBody": "Ваш прогресс в сохранности. Перезагрузите страницу, чтобы вернуться к игре.",
    "retryPage": "Попробовать снова",
    "undoShortcut": "Ctrl / ⌘ Z",
    "redoShortcut": "Ctrl / ⌘ Shift Z"
  },
  "notices": {
    "saveFailed": "Не удалось сохранить последний ход. Продолжить игру можно в этой вкладке.",
    "dailyLoadFailed": "Не удалось загрузить задачу дня. Проверьте подключение и попробуйте снова.",
    "choiceNotSaved": "Ваш выбор действует в этом сеансе, но сохранить его не удалось.",
    "soundNotSaved": "Настройка звука действует только в этом сеансе.",
    "dailyUnavailable": "Задача дня сейчас недоступна. Коллекция по-прежнему открыта.",
    "dailyMissing": "Задача на эту дату ещё не опубликована.",
    "dailyFuture": "Эта задача пока недоступна. Можно решить сегодняшнюю.",
    "dailyInvalid": "Не удаётся открыть эту задачу дня. Попробуйте снова или вернитесь в Коллекцию.",
    "dailySaveFailed": "Этот браузер не может сохранить сегодняшнюю игру. Продолжить можно в этой вкладке.",
    "dailyVersionMismatch": "Для этой задачи дня есть прогресс, сохранённый другой версией Puntokus. Играть можно — эти данные мы не тронем.",
    "dailyContentMismatch": "Эта задача дня не совпадает с сохранённой игрой. Прежние данные мы сохранили, а играть можно в этой вкладке.",
    "dailyRecoveryPartial": "Часть прогресса задачи дня восстановить не удалось. Всё, что удалось прочитать, мы сохранили.",
    "unknownPuzzle": "Задача по этой ссылке не найдена. Можно начать с этой.",
    "progressUnavailable": "Ваш браузер не может сохранить эту игру. Продолжить можно в этой вкладке.",
    "progressVersionMismatch": "Эти игры сохранены более новой версией Puntokus. Играть можно — эти данные мы не тронем.",
    "progressRecoveryPartial": "Часть сохранённых игр восстановить не удалось. Все игры, которые удалось прочитать, мы сохранили.",
    "padHidden": "Кнопки направления убраны. Их можно снова включить в настройках.",
    "hintLoadFailed": "Не удалось загрузить подсказку. Проверьте подключение и попробуйте снова."
  },
  "board": {
    "rowClue_one": "Строка {{index}}: {{placed}} из {{count}} точки{{state}}",
    "rowClue_few": "Строка {{index}}: {{placed}} из {{count}} точек{{state}}",
    "rowClue_many": "Строка {{index}}: {{placed}} из {{count}} точек{{state}}",
    "rowClue_other": "Строка {{index}}: {{placed}} из {{count}} точки{{state}}",
    "columnClue_one": "Столбец {{index}}: {{placed}} из {{count}} точки{{state}}",
    "columnClue_few": "Столбец {{index}}: {{placed}} из {{count}} точек{{state}}",
    "columnClue_many": "Столбец {{index}}: {{placed}} из {{count}} точек{{state}}",
    "columnClue_other": "Столбец {{index}}: {{placed}} из {{count}} точки{{state}}",
    "separator": ", ",
    "countComplete": "количество совпадает",
    "tooMany": "слишком много точек",
    "empty": "пусто",
    "paired": "в паре",
    "unpaired": "без пары",
    "crowded": "касается нескольких соседей",
    "group": "Поле: строк — {{rows}}, столбцов — {{columns}}. У каждой точки должен быть ровно один сосед по стороне. Перемещайтесь стрелками; D — точка, X — крестик, Delete — стереть.",
    "cell": "Строка {{row}}, столбец {{column}}: {{mark}}{{state}}",
    "hinted": "отмечена подсказкой",
    "suggestDot": "подсказка предлагает точку",
    "suggestCross": "подсказка предлагает крестик",
    "suggestRemove": "подсказка предлагает стереть отметку",
    "supposedDot": "подсказка предполагает здесь точку",
    "supposedEmpty": "подсказка предполагает, что клетка пуста",
    "supposedStepDot": "шаг {{step}} предположения: точка",
    "supposedStepEmpty": "шаг {{step}} предположения: пусто",
    "impliedEmpty": "пуста из-за твоих точек"
  },
  "meta": {
    "dailyTitle": "Задача дня Puntokus · {{date}}"
  },
  "app": {
    "shortcuts": "Сочетания клавиш",
    "eraseKey": "стереть",
    "deleteKey": "Del",
    "dailyUnplayed": "ещё не решена",
    "dailyLabel": "Задача дня",
    "introLabel": "Разминка {{current}}/{{total}}",
    "puzzleLabel": "Задача",
    "soundEnabled": "Звук включён",
    "soundDisabled": "Звук выключен",
    "dailyOverline": "Задача дня Puntokus",
    "openToday": "Открыть задачу дня",
    "practiceAtYourPace": "Тренируйтесь в своём темпе.",
    "returnToDaily": "Вернуться к задаче дня",
    "sameChallenge": "Одна задача для всех. Не торопитесь.",
    "dailySolved": "Задача дня решена",
    "dailyCaption": "Одна задача в день",
    "fitComplete": "Задача решена",
    "logicCaption": "Без спешки. Только логика.",
    "dailyDeckNote": "Один день. Одна задача. Без спешки.",
    "dailyChanges": "Новая задача дня появляется в 00:00 UTC.",
    "tomorrowCollection": "Новая задача — завтра. Коллекция ждёт →",
    "continueCollection": "Играть дальше в Коллекции →",
    "enjoyedPrompt": "Понравилась игра?",
    "smallChallenge": "Небольшая задача. Всё встало на свои места.",
    "panBoard": "Перетаскивайте поле, чтобы увидеть остальные клетки.",
    "markHint": "Отметьте клетку. Отметьте ещё раз, чтобы стереть.",
    "zoomOutTitle": "Показать всё поле",
    "zoomInTitle": "Увеличить; перетаскивайте, чтобы двигаться по полю"
  },
  "feedback": {
    "inviteLabel": "Статистика по желанию",
    "inviteTitle": "Поможете улучшить Puntokus?",
    "inviteBody": "С вашего разрешения мы используем файлы cookie Google Analytics, чтобы измерять посещения и использование игры. Изменить выбор можно в любой момент в настройках.",
    "localPreview": "Тестовый режим · данные не отправляются.",
    "reject": "Отклонить",
    "accept": "Принять",
    "privacyLink": "Конфиденциальность и cookie",
    "title": "Расскажите, как вам игра",
    "kicker": "Напишите мне",
    "intro": "Нашли ошибку, есть идея или просто хотите рассказать, как вам Puntokus? Мне будет очень приятно получить ваше письмо.",
    "write": "Написать письмо",
    "writeNote": "Откроется почтовое приложение: задача и язык уже указаны, это помогает с ошибками. Их можно удалить.",
    "mailSubject": "Puntokus: мой отзыв",
    "mailContext": "Данные для помощи (можно удалить):",
    "supportNote": "Puntokus бесплатен и без рекламы, но его поддержка требует времени и денег. Если захотите, можете поддержать его чашкой кофе на Ko‑fi.",
    "quickTitle": "Или, если удобнее, быстрый ответ:",
    "thanks": "Спасибо, что поделились.",
    "localThanks": "Ответ записан только в этом локальном тесте.",
    "continuePlaying": "Можно играть дальше.",
    "unavailable": "Отзыв можно будет оставить, когда на этом сайте включат статистику.",
    "consentBody": "Чтобы отправить отзыв, нужно ваше разрешение на статистику (Google Analytics, с файлами cookie). Ваши отметки мы никогда не отправляем.",
    "allow": "Разрешить статистику",
    "details": "Подробнее",
    "yes": "Да, понравилось",
    "mixed": "Отчасти",
    "no": "Не моё"
  },
  "settings": {
    "appearanceTitle": "Оформление",
    "appearanceBody": "«Авто» подстраивается под светлую или тёмную тему устройства.",
    "themeAuto": "Авто",
    "themeLight": "Светлая",
    "themeDark": "Тёмная",
    "title": "Оформление, звук и статистика.",
    "kicker": "Настройки",
    "soundTitle": "Звуки игры",
    "soundBody": "Короткие звуки, когда вы ставите отметку, собираете пару и решаете задачу, и лёгкая вибрация на телефонах, которые её поддерживают.",
    "soundLabel": "Звук",
    "mascotTitle": "Талисман",
    "mascotBody": "Toku составит вам компанию рядом с полем и порадуется каждой вашей паре. Появляется, только когда есть место.",
    "mascotLabel": "Талисман",
    "mascotNoRoom": "Сейчас на этом экране рядом с полем нет места. Toku появится, когда оно освободится.",
    "mascotZoomed": "Пока поле увеличено, Toku не показывается.",
    "hintsTitle": "Подсказки",
    "hintsBody": "Toku помогает, только когда вы просите: сначала куда смотреть, потом почему, а если хотите — покажет шаг. В «Задаче дня» подсказок нет.",
    "hintsLabel": "Подсказки",
    "hintsNeedMascot": "Включите талисман, чтобы пользоваться подсказками.",
    "analyticsTitle": "Статистика по желанию",
    "analyticsBody": "Файлы cookie Google Analytics, которые измеряют посещения и использование игры.",
    "analyticsLabel": "Разрешить статистику",
    "analyticsOff": "Статистика использования отключена.",
    "localAnalytics": "Тестовый режим · данные не отправляются в Google.",
    "privacy": "Конфиденциальность и cookie",
    "feedback": "Написать мне",
    "padTitle": "Кнопки направления",
    "padBody": "Стрелки двигают курсор и ставят отметки, не касаясь клеток. «Авто» показывает их на больших полях на сенсорных экранах.",
    "padAuto": "Авто",
    "padAlways": "Всегда",
    "padNever": "Никогда"
  },
  "hints": {
    "button": "Подсказка",
    "buttonTitle": "Попросить подсказку у Toku",
    "tokuRightClick": "Щёлкните по Toku правой кнопкой, чтобы получить подсказку",
    "title": "Подсказка от Toku",
    "mistakeTitle": "Что-то не сходится",
    "why": "Почему?",
    "show": "Покажи",
    "place": "Поставить",
    "point": "Где именно?",
    "remove": "Стереть",
    "close": "Понятно",
    "look_row": "Посмотри на строку {{n}}.",
    "look_column": "Посмотри на столбец {{n}}.",
    "lookPair": "Посмотри на эту пару.",
    "lookDot": "Посмотри на эту точку.",
    "lookCell": "Посмотри на отмеченную клетку.",
    "mistakeLine_row": "В строке {{n}} что-то не сходится.",
    "mistakeLine_column": "В столбце {{n}} что-то не сходится.",
    "mistakeDot": "Этой точки нет в решении.",
    "mistakeCross": "Этот крестик закрывает точку решения.",
    "mistakeMany_one": "Не сходится {{count}} отметка.",
    "mistakeMany_few": "Не сходятся {{count}} отметки.",
    "mistakeMany_many": "Не сходятся {{count}} отметок.",
    "mistakeMany_other": "Не сходятся {{count}} отметки.",
    "completeLine_row_one": "В строке {{n}} нужна {{count}} точка, и она уже стоит: остальные клетки остаются пустыми.",
    "completeLine_row_few": "В строке {{n}} нужны {{count}} точки, и они уже стоят: остальные клетки остаются пустыми.",
    "completeLine_row_many": "В строке {{n}} нужно {{count}} точек, и они уже стоят: остальные клетки остаются пустыми.",
    "completeLine_row_other": "В строке {{n}} нужны {{count}} точки, и они уже стоят: остальные клетки остаются пустыми.",
    "completeLine_column_one": "В столбце {{n}} нужна {{count}} точка, и она уже стоит: остальные клетки остаются пустыми.",
    "completeLine_column_few": "В столбце {{n}} нужны {{count}} точки, и они уже стоят: остальные клетки остаются пустыми.",
    "completeLine_column_many": "В столбце {{n}} нужно {{count}} точек, и они уже стоят: остальные клетки остаются пустыми.",
    "completeLine_column_other": "В столбце {{n}} нужны {{count}} точки, и они уже стоят: остальные клетки остаются пустыми.",
    "countRemaining_row_one": "В строке {{n}} не хватает {{count}} точки, и свободна только {{count}} клетка: в ней будет точка.",
    "countRemaining_row_few": "В строке {{n}} не хватает {{count}} точек, и свободны только {{count}} клетки: во всех будут точки.",
    "countRemaining_row_many": "В строке {{n}} не хватает {{count}} точек, и свободно только {{count}} клеток: во всех будут точки.",
    "countRemaining_row_other": "В строке {{n}} не хватает {{count}} точек, и свободны только {{count}} клетки: во всех будут точки.",
    "countRemaining_column_one": "В столбце {{n}} не хватает {{count}} точки, и свободна только {{count}} клетка: в ней будет точка.",
    "countRemaining_column_few": "В столбце {{n}} не хватает {{count}} точек, и свободны только {{count}} клетки: во всех будут точки.",
    "countRemaining_column_many": "В столбце {{n}} не хватает {{count}} точек, и свободно только {{count}} клеток: во всех будут точки.",
    "countRemaining_column_other": "В столбце {{n}} не хватает {{count}} точек, и свободны только {{count}} клетки: во всех будут точки.",
    "linePatterns_row_one": "Только {{count}} способ расставить точки в строке {{n}} согласуется с тем, что ты уже знаешь: он определяет отмеченные клетки.",
    "linePatterns_row_few": "Только {{count}} способа расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "linePatterns_row_many": "Только {{count}} способов расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "linePatterns_row_other": "Только {{count}} способа расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "linePatterns_column_one": "Только {{count}} способ расставить точки в столбце {{n}} согласуется с тем, что ты уже знаешь: он определяет отмеченные клетки.",
    "linePatterns_column_few": "Только {{count}} способа расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "linePatterns_column_many": "Только {{count}} способов расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "linePatterns_column_other": "Только {{count}} способа расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь, и все они совпадают в отмеченных клетках.",
    "neighborLines_row": "Посмотри на строку {{n}} вместе с соседними строками: каждой точке нужен ровно один партнёр, и все подходящие варианты совпадают в отмеченных клетках.",
    "neighborLines_column": "Посмотри на столбец {{n}} вместе с соседними столбцами: каждой точке нужен ровно один партнёр, и все подходящие варианты совпадают в отмеченных клетках.",
    "linePatternsWhy_row_one": "Только {{count}} способ расставить точки в строке {{n}} согласуется с тем, что ты уже знаешь. Какой?",
    "linePatternsWhy_row_few": "Только {{count}} способа расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "linePatternsWhy_row_many": "Только {{count}} способов расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "linePatternsWhy_row_other": "Только {{count}} способа расставить точки в строке {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "linePatternsWhy_column_one": "Только {{count}} способ расставить точки в столбце {{n}} согласуется с тем, что ты уже знаешь. Какой?",
    "linePatternsWhy_column_few": "Только {{count}} способа расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "linePatternsWhy_column_many": "Только {{count}} способов расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "linePatternsWhy_column_other": "Только {{count}} способа расставить точки в столбце {{n}} согласуются с тем, что ты уже знаешь. В каких клетках они все совпадают?",
    "neighborLinesWhy_row": "Посмотри на строку {{n}} вместе с соседними строками: каждой точке нужен ровно один партнёр. В каких клетках совпадают все подходящие варианты?",
    "neighborLinesWhy_column": "Посмотри на столбец {{n}} вместе с соседними столбцами: каждой точке нужен ровно один партнёр. В каких клетках совпадают все подходящие варианты?",
    "protectPair": "Эта пара уже собрана: клетки, которые касаются её сторонами, остаются пустыми. Касание углами не в счёт.",
    "onlyPartner": "Этой точке ещё нужна пара, а свободной осталась только одна соседняя клетка: пара будет там.",
    "noPartner": "Точке здесь не с кем было бы составить пару: все клетки рядом исключены. Клетка остаётся пустой.",
    "trialDot_row": "Если бы в этой клетке стояла точка, строку {{n}} уже нельзя было бы решить. Клетка остаётся пустой.",
    "trialDot_column": "Если бы в этой клетке стояла точка, столбец {{n}} уже нельзя было бы решить. Клетка остаётся пустой.",
    "trialEmpty_row": "Если бы эта клетка осталась пустой, строку {{n}} уже нельзя было бы решить. В ней будет точка.",
    "trialEmpty_column": "Если бы эта клетка осталась пустой, столбец {{n}} уже нельзя было бы решить. В ней будет точка.",
    "trialAlone": "Если бы в этой клетке стояла точка, ей не с кем было бы составить пару. Клетка остаётся пустой.",
    "trialDotLeavesAlone": "Если бы в этой клетке стояла точка, отмеченной точке не с кем было бы составить пару. Клетка остаётся пустой.",
    "trialEmptyLeavesAlone": "Если бы эта клетка осталась пустой, отмеченной точке не с кем было бы составить пару. В ней будет точка.",
    "mistakeAround": "Рядом с этой точкой что-то не так.",
    "mistakeOver_row_one": "В строке {{n}} нужна {{count}} точка, а поставлено {{placed}}.",
    "mistakeOver_column_one": "В столбце {{n}} нужна {{count}} точка, а поставлено {{placed}}.",
    "mistakeOver_row_few": "В строке {{n}} нужны {{count}} точки, а поставлено {{placed}}.",
    "mistakeOver_column_few": "В столбце {{n}} нужны {{count}} точки, а поставлено {{placed}}.",
    "mistakeOver_row_many": "В строке {{n}} нужно {{count}} точек, а поставлено {{placed}}.",
    "mistakeOver_column_many": "В столбце {{n}} нужно {{count}} точек, а поставлено {{placed}}.",
    "mistakeOver_row_other": "В строке {{n}} нужно {{count}} точки, а поставлено {{placed}}.",
    "mistakeOver_column_other": "В столбце {{n}} нужно {{count}} точки, а поставлено {{placed}}.",
    "mistakeShort_row_one": "В строке {{n}} нужна {{count}} точка, но для неё не осталось места: там, где она должна быть, стоят крестики.",
    "mistakeShort_column_one": "В столбце {{n}} нужна {{count}} точка, но для неё не осталось места: там, где она должна быть, стоят крестики.",
    "mistakeShort_row_few": "В строке {{n}} нужны {{count}} точки, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeShort_column_few": "В столбце {{n}} нужны {{count}} точки, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeShort_row_many": "В строке {{n}} нужно {{count}} точек, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeShort_column_many": "В столбце {{n}} нужно {{count}} точек, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeShort_row_other": "В строке {{n}} нужно {{count}} точки, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeShort_column_other": "В столбце {{n}} нужно {{count}} точки, но для них не осталось места: там, где они должны быть, стоят крестики.",
    "mistakeCrowded": "Эта точка касается сразу двух других, а каждая точка должна касаться ровно одной.",
    "mistakeAlone": "У этой точки крестики со всех сторон: пары у неё уже не будет.",
    "mistakeHidden_one": "{{count}} отметка не совпадает с решением, хотя пока не нарушает правил. Показать какая?",
    "mistakeHidden_few": "{{count}} отметки не совпадают с решением, хотя пока не нарушают правил. Показать одну?",
    "mistakeHidden_many": "{{count}} отметок не совпадают с решением, хотя пока не нарушают правил. Показать одну?",
    "mistakeHidden_other": "{{count}} отметки не совпадают с решением, хотя пока не нарушают правил. Показать одну?",
    "rewind_one": "Вернуться к моменту без ошибок ({{count}} изменение)",
    "rewind_few": "Вернуться к моменту без ошибок ({{count}} изменения)",
    "rewind_many": "Вернуться к моменту без ошибок ({{count}} изменений)",
    "rewind_other": "Вернуться к моменту без ошибок ({{count}} изменения)",
    "another": "Другая подсказка",
    "patternsTotal_row_one": "С учётом того, что ты знаешь, точки строки {{n}} можно расставить {{count}} способом.",
    "patternsTotal_column_one": "С учётом того, что ты знаешь, точки столбца {{n}} можно расставить {{count}} способом.",
    "patternsTotal_row_few": "С учётом того, что ты знаешь, точки строки {{n}} можно расставить {{count}} способами.",
    "patternsTotal_column_few": "С учётом того, что ты знаешь, точки столбца {{n}} можно расставить {{count}} способами.",
    "patternsTotal_row_many": "С учётом того, что ты знаешь, точки строки {{n}} можно расставить {{count}} способами.",
    "patternsTotal_column_many": "С учётом того, что ты знаешь, точки столбца {{n}} можно расставить {{count}} способами.",
    "patternsTotal_row_other": "С учётом того, что ты знаешь, точки строки {{n}} можно расставить {{count}} способами.",
    "patternsTotal_column_other": "С учётом того, что ты знаешь, точки столбца {{n}} можно расставить {{count}} способами.",
    "patternsTriple_one": "{{count}} из них даёт три точки подряд.",
    "patternsTriple_few": "{{count}} из них дают три точки подряд.",
    "patternsTriple_many": "{{count}} из них дают три точки подряд.",
    "patternsTriple_other": "{{count}} из них дают три точки подряд.",
    "patternsCrowded_one": "{{count}} из них заставляет точку касаться двух.",
    "patternsCrowded_few": "{{count}} из них заставляют точку касаться двух.",
    "patternsCrowded_many": "{{count}} из них заставляют точку касаться двух.",
    "patternsCrowded_other": "{{count}} из них заставляют точку касаться двух.",
    "patternsAlone_one": "{{count}} из них оставляет точку без пары.",
    "patternsAlone_few": "{{count}} из них оставляют точку без пары.",
    "patternsAlone_many": "{{count}} из них оставляют точку без пары.",
    "patternsAlone_other": "{{count}} из них оставляют точку без пары.",
    "patternsLeft_one": "Остался {{count}} способ: какой?",
    "patternsLeft_few": "Осталось {{count}} способа: в каких клетках они совпадают?",
    "patternsLeft_many": "Осталось {{count}} способов: в каких клетках они совпадают?",
    "patternsLeft_other": "Осталось {{count}} способа: в каких клетках они совпадают?",
    "sentenceSeparator": " ",
    "storyStart_dot": "Предположение, точка: {{cell}}.",
    "storyStart_empty": "Предположение, пусто: {{cell}}.",
    "storyStep_dot_one": "Шаг {{step}}, точка: {{cells}}.",
    "storyStep_dot_few": "Шаг {{step}}, точки: {{cells}}.",
    "storyStep_dot_many": "Шаг {{step}}, точки: {{cells}}.",
    "storyStep_dot_other": "Шаг {{step}}, точки: {{cells}}.",
    "storyStep_empty_one": "Шаг {{step}}, пусто: {{cells}}.",
    "storyStep_empty_few": "Шаг {{step}}, пусто: {{cells}}.",
    "storyStep_empty_many": "Шаг {{step}}, пусто: {{cells}}.",
    "storyStep_empty_other": "Шаг {{step}}, пусто: {{cells}}.",
    "revealAsk": "Отсюда это трудно вывести. Показать одну клетку?",
    "reveal": "Здесь стоит точка.",
    "unavailable": "Сейчас подсказки не нашлось.",
    "impliedLead": "Считай пустыми клетки, которые твои точки уже исключают, даже без крестика. {{text}}",
    "cells": "Клетки: {{cells}}.",
    "cell": "строка {{row}}, столбец {{column}}",
    "cellSeparator": "; "
  },
  "library": {
    "title": "Выберите задачу",
    "kicker": "КОЛЛЕКЦИЯ · РЕШЕНО {{solved, number}} ИЗ {{total, number}}",
    "pickerTitle": "Выбрать задачу",
    "pickerLabel": "Puntokus {{number}}, {{width}} на {{height}}{{difficulty}}. Выбрать задачу",
    "currentState": ", сейчас в игре",
    "search": "Поиск задач",
    "searchLabel": "Найти задачу по номеру или коду",
    "searchPlaceholder": "Номер или код",
    "size": "Размер",
    "puzzles_one": "{{count, number}} задача",
    "puzzles_few": "{{count, number}} задачи",
    "puzzles_many": "{{count, number}} задач",
    "puzzles_other": "{{count, number}} задачи",
    "unfinished": "Только нерешённые",
    "itemLabel": "Puntokus {{number}}, {{width}} на {{height}}{{difficulty}}, код {{code}}{{state}}",
    "solvedState": ", решена вами",
    "inProgress": "Начата",
    "empty": "Под эти фильтры не подходит ни одна задача. Попробуйте другой размер или код.",
    "page": "Страница {{current}} из {{total}}"
  },
  "difficulty": {
    "title": "Примерная сложность",
    "levels": {
      "intro": "Вводный",
      "normal": "Обычный",
      "advanced": "Продвинутый",
      "hard": "Сложный"
    },
    "spoken": ", примерная сложность: {{level}}",
    "all": "Все",
    "what": "Что это значит?",
    "estimate": "Мы оцениваем, сколько рассуждений обычно требует поле. Это ориентир, а не точная мера: каждый застревает на чём-то своём.",
    "size": "Размер важен, но это не всё.",
    "sizeExample": "Поле 6×6 может быть «{{hard}}», а 10×10 — «{{normal}}»."
  },
  "panels": {
    "helpTitle": "Правила простые.",
    "welcomeKicker": "Добро пожаловать в Puntokus",
    "helpKicker": "Как играть",
    "shareSolvedTitle": "Задача решена. Поделитесь!",
    "shareChallengeTitle": "Бросьте вызов друзьям.",
    "resultKicker": "Ваш результат",
    "challengeKicker": "Поделиться",
    "privacyTitle": "Ваши данные — коротко.",
    "privacyKicker": "Конфиденциальность и хранение"
  },
  "tutorial": {
    "figureLabel": "Одно поле, шаг за шагом",
    "boardLabel": "Пример поля: 3 строки и 3 столбца. Числа для строк: {{rows}}. Числа для столбцов: {{columns}}. {{summary}}",
    "solvedNoCrosses": "Решено без крестиков",
    "stillSolved": "Всё ещё решено",
    "diagonalCaption": "Касаться углами можно. В паре точки касаются стороной.",
    "fitCaption": "Числа и точки должны сойтись.",
    "step": "Шаг {{current}} из {{total}}",
    "navigation": "Шаги обучения",
    "previous": "Предыдущий шаг",
    "replay": "Посмотреть снова",
    "next": "Далее",
    "pauseAuto": "Остановить автоматическое листание",
    "replayAuto": "Пролистать ещё раз",
    "playAuto": "Листать автоматически",
    "pause": "Пауза",
    "nextIn": "далее через {{seconds}} с",
    "autoDescription": "Запускается по нажатию и переключает шаги каждые шесть секунд. Остановите его или нажмите «Далее» в любой момент.",
    "controlsTitle": "Как ставить и стирать отметки",
    "controlsTouch": "Выберите инструмент «Точка» или «Крестик» и коснитесь клетки. Коснитесь ещё раз, чтобы стереть. «Отменить» возвращает отметку.",
    "controlsKeyboard": "Клавиатура: стрелки перемещают курсор, D ставит точку, X — крестик, Delete стирает, пробел применяет выбранный инструмент, а Ctrl / ⌘ Z отменяет ход. Щелчок правой кнопкой применяет другой инструмент; Shift + щелчок ставит крестик.",
    "playDaily": "Решить задачу дня",
    "yourTurn": "Твой ход · 4×4",
    "playPuzzle": "Решить эту задачу",
    "returnGame": "Вернуться к своей игре",
    "practice": "Сначала разминка · 4×4",
    "dailyNote": "Новая задача дня появляется каждый день в 00:00 UTC.",
    "introNote": "Для разминки — две задачи 4×4.",
    "returnNote": "Эти правила можно открыть в любой момент.",
    "rowsSummary": "Точки по строкам: {{rows}}. Точки по столбцам: {{columns}}.",
    "steps": {
      "counts": {
        "title": "Числа задают количество точек.",
        "description": "В каждой строке и каждом столбце должно быть столько точек, сколько показывает число рядом. В этой строке их должно быть {{count}}.",
        "summary": "Пустое поле. Числа показывают количество точек, а не пар."
      },
      "pair": {
        "title": "Каждой точке нужна пара.",
        "description": "Поставь две точки рядом. Они касаются стороной и образуют пару.",
        "summary": "Первые две точки верхней строки образуют горизонтальную пару. Каждая касается ровно одной точки. Поле ещё не решено."
      },
      "triple": {
        "title": "Третья — лишняя.",
        "description": "Средняя точка касается сразу двух других. А каждая точка должна касаться ровно одной.",
        "summary": "В верхней строке три точки. У средней два соседа, поэтому пары не получается. К тому же в строке одна точка лишняя."
      },
      "diagonal": {
        "title": "Касаться углами можно.",
        "description": "Эти точки могут касаться углами. Но пару это не образует: новой точке всё ещё нужен сосед по стороне.",
        "summary": "Касание углами разрешено. Горизонтальная пара на месте, а у новой точки нет соседа по стороне, и ей всё ещё нужна пара."
      },
      "complete": {
        "title": "Всё сошлось.",
        "description": "Касание углами остаётся. Добавь новой точке пару снизу — и все точки и числа сходятся. Решено!",
        "summary": "Поле решено: горизонтальная пара сверху и вертикальная справа. Все числа совпадают, и у каждой точки ровно один сосед."
      },
      "notes": {
        "title": "Крестики — это пометки.",
        "description": "Отмечайте ими клетки, которые вы исключили. Для победы они не нужны: задача уже была решена.",
        "summary": "То же решённое поле, теперь с крестиками в пустых клетках. Крестики не добавляют точек и не меняют ни пары, ни результат."
      },
      "toku": {
        "title": "Застряли? Toku поможет.",
        "description": "Он живёт рядом с полем. Включите его подсказки, и когда попросите, он скажет, куда смотреть, потом объяснит почему, а если захотите — покажет.",
        "summary": "Верхняя строка выделена: на неё указывает подсказка Toku. Две её точки уже образуют пару."
      }
    },
    "tokuEnable": "Включить Toku",
    "hintsEnable": "Включить его подсказки",
    "tokuOn": "Toku уже с вами",
    "tokuNote": "Это можно изменить в любой момент в настройках.",
    "tokuCaption": "Toku: «{{line}}»"
  },
  "privacy": {
    "controllerLabel": "Контролёр данных",
    "purposesLabel": "Цель",
    "purposes": "Обеспечивать работу игры, а с вашего разрешения — измерять её использование, чтобы улучшать игру.",
    "basisLabel": "Правовое основание",
    "basis": "Законный интерес — для работы сайта и задачи дня; ваше согласие — для статистики. Согласие можно отозвать в настройках.",
    "recipientsLabel": "Получатели",
    "recipients": "Google как наш обработчик данных (Firebase и Google Analytics). Google может обрабатывать данные в США с надлежащими гарантиями. Больше мы ни с кем данными не делимся.",
    "contactLabel": "Контакты",
    "contact": "<contact>{{email}}</contact> — для вопросов и обращений по поводу ваших прав.",
    "more": "Подробнее",
    "localPreview": "Тестовый режим: статистика видна только в локальной консоли и не отправляется в Google.",
    "remoteOff": "В этой предварительной версии отправка статистики отключена.",
    "deviceTitle": "В вашем браузере",
    "deviceBody": "Ваша игра, история ходов и настройки (звук, язык, раздел, отметка о просмотре правил, талисман и подсказки, решение о статистике) хранятся только в этом браузере, чтобы вы могли продолжить. Учётных записей нет, и ничего не отправляется на сервер. Если очистить данные сайта, всё это удалится.",
    "serviceTitle": "Когда вы открываете сайт и задачу дня",
    "serviceBody": "Сайт предоставляет Firebase Hosting, а задачу дня и фразы Toku к особым датам — Firestore. Как и при посещении любого сайта, Google получает ваш IP-адрес и технические данные браузера, чтобы отвечать на запросы и защищать сервис, и несколько месяцев хранит журналы Hosting. Файлы cookie и идентификаторы игроков не используются. Задача хранится в вашем браузере до шести часов, чтобы не загружать её повторно.",
    "analyticsTitle": "Статистика (по желанию)",
    "analyticsBody": "Только с вашего согласия Google Analytics фиксирует посещения, начатые и решённые задачи, примерное время игры, ходы, использование правил, Toku, подсказок и функции «Поделиться», ваш отзыв (если вы его оставите) и коды ошибок. Ваши отметки, решения и произвольный текст мы никогда не отправляем. Используются файлы cookie (до 90 дней) и идентификаторы браузера, поэтому данные не анонимны. Рекламные функции отключены.",
    "retention": "Google Analytics хранит события в течение {{eventCount}} месяцев, а данные на уровне пользователя — в течение {{userCount}} месяцев. При новой активности срок хранения пользовательских данных отсчитывается заново. Эти сроки не распространяются на стандартные сводные отчёты. Ваш выбор запоминается в течение {{renewMonths}} месяцев, после чего мы спросим снова.",
    "withdrawal": "Отозвать разрешение можно в настройках. После этого новые данные перестанут отправляться, но уже полученные Google данные не удаляются.",
    "sharingTitle": "Когда вы делитесь",
    "sharingBody": "Сообщение создаётся на вашем устройстве. Оно может содержать головоломку или номер задания дня, пары, а для решённого задания дня — повёрнутую карту порядка решения, ваш стиль, отметку о решении без удаления точек и число дней подряд с решённым заданием дня. Мы его не получаем; при отправке через другой сервис действуют его условия.",
    "transfersTitle": "Передача данных и ваши права",
    "transfersBody": "Google может обрабатывать данные за пределами Европейской экономической зоны; такая передача основана на рамочном соглашении ЕС–США о конфиденциальности данных (Data Privacy Framework) и стандартных договорных условиях. Подробнее — в <firebase>сведениях о конфиденциальности Firebase</firebase>.",
    "rightsDetail": "Написав по указанному адресу, вы можете запросить доступ к данным, их исправление, удаление, ограничение обработки и перенос, а также возразить против обработки. Вы также вправе подать жалобу в <authority>Испанское агентство по защите данных (AEPD)</authority>. Отзыв согласия не влияет на законность обработки, выполненной до этого. Играть можно и без согласия на статистику."
  },
  "share": {
    "pairs_one": "{{count}} пара",
    "pairs_few": "{{count}} пары",
    "pairs_many": "{{count}} пар",
    "pairs_other": "{{count}} пары",
    "dailyTitle": "Задача дня Puntokus · {{date}} · {{size}}",
    "puzzleTitle": "Puntokus № {{number}} · {{size}}",
    "solvedResult": "{{quantity}}. Задача решена.",
    "challengeResult": "🟡🟡 В этой задаче {{quantity}}.",
    "yourTurn": "Твой ход ↓",
    "canYouSolve": "Сможешь найти все? ↓",
    "description": "{{title}}. {{result}} В сообщении есть ссылка на эту же задачу.",
    "preview": "Предпросмотр сообщения",
    "copied": "Скопировано",
    "copyResult": "Скопировать результат",
    "copyChallenge": "Скопировать вызов",
    "native": "Поделиться…",
    "nativeLabel": "Поделиться в другом приложении",
    "reaction": "Добавьте реакцию",
    "optional": "необязательно",
    "manual": "Выделить текст вручную",
    "fullMessage": "Сообщение целиком",
    "copiedMessage": "Скопировано. Вставьте сообщение в чат, группу или куда угодно.",
    "copyFailed": "Не удалось скопировать автоматически. Выделите текст и скопируйте его.",
    "nativeDone": "Сообщение можно скопировать снова в любой момент.",
    "nativeCancelled": "Сообщение никуда не делось.",
    "nativeFailed": "Не удалось открыть меню «Поделиться». Можно просто скопировать сообщение.",
    "solvedExplainer": "Каждый значок 🟡🟡 — одна пара. По их порядку нельзя восстановить поле.",
    "challengeExplainer": "Ссылка откроет эту же задачу. Каждой точке нужна пара.",
    "solutionPrivate": "Ваше решение останется при вас.",
    "reactionCalm": "😌 Отличная передышка.",
    "reactionThinking": "🧠 Пришлось подумать.",
    "reactionChallenge": "😈 Бросаю тебе вызов.",
    "copyText": "Скопировать текст"
  },
  "toku": {
    "greet": {
      "title": "Toku",
      "hello": "Привет! Я Toku. Побуду рядом, пока вы играете, — и место на поле не займу.",
      "more": "Расскажи ещё",
      "howMouse": "Нажимайте на меня, когда захотите, — мне это нравится. А если застрянете, щёлкните по мне правой кнопкой, и я дам подсказку.",
      "howTouch": "Касайтесь меня, когда захотите, — мне это нравится. А если застрянете, нажмите на меня и подержите, и я дам подсказку.",
      "petMouse": "Нажимайте на меня, когда захотите, — мне это нравится.",
      "petTouch": "Касайтесь меня, когда захотите, — мне это нравится.",
      "noHints": "Если застрянете, я могу подсказать. Сейчас подсказки выключены: включите их здесь или в любой момент в настройках.",
      "daily": "Только в «Задаче дня» я не подсказываю: её вы решаете сами.",
      "done": "Понятно!",
      "enableHints": "Включить подсказки",
      "remove": "Играть без Toku",
      "bye": "Хорошо! Если передумаете, найдёте меня в настройках.",
      "byeClose": "До встречи!"
    },
    "support": {
      "ask": "Отлично получилось! Если вам нравится Puntokus, чашка кофе на Ko‑fi помогает его поддерживать… и мне оставаться рядом с вами.",
      "accept": "Угостить кофе",
      "decline": "Не сейчас"
    }
  },
  "pad": {
    "group": "Двигать курсор",
    "up": "Вверх",
    "down": "Вниз",
    "left": "Влево",
    "right": "Вправо",
    "apply": "{{mark}}: строка {{row}}, столбец {{column}}",
    "notice": "Эти стрелки двигают курсор, чтобы отмечать маленькие клетки, не касаясь их. Их можно убрать в любой момент.",
    "remove": "Убрать",
    "keep": "Понятно"
  },
  "dock": {
    "hint": "Подсказка",
    "reset": "Очистить",
    "seeAll": "Всё поле"
  },
  "header": {
    "expand": "Показать навигацию",
    "collapse": "Скрыть навигацию"
  },
  "iosApp": {
    "kicker": "Уже в App Store",
    "title": "Мгновение для себя.",
    "titleAccent": "Теперь на iOS.",
    "lead": "Больше головоломок, новые задачи и постепенное прохождение уровней. Открывайте темы оформления и выбирайте спутника в приложении.",
    "download": "Скачать в App Store",
    "playWeb": "Играть в браузере",
    "proof": "Без рекламы · Можно офлайн · В своём темпе",
    "heroLabel": "Логика в хорошей компании.",
    "heroNote": "Маленький ритуал на каждый день.",
    "homeAlt": "Главный экран Puntokus с ежедневной головоломкой и прогрессом по уровням",
    "boardAlt": "Головоломка в приложении Puntokus для iOS",
    "levelsKicker": "Ещё больше задач",
    "levelsTitle": "Новые уровни для вашего мастерства.",
    "levelsBody": "В приложении больше головоломок и другие задачи, чем в веб-версии. Уровни постепенно ведут от простого к сложному.",
    "companionsKicker": "Выберите спутника",
    "companionsTitle": "У Toku есть друзья.",
    "companionsBody": "Знакомьтесь: Orbi, Daru, Bip, Haru и Rizo. Выберите спутника по душе.",
    "themesKicker": "Создайте свою атмосферу",
    "themesTitle": "Тема для каждого настроения.",
    "themesBody": "Созвездия, Сакура или Аркада: меняйте атмосферу своих головоломок.",
    "discoverKicker": "Откройте приложение",
    "discoverTitle": "Больше путей. Больше возможностей играть по-своему.",
    "discoverBody": "Ежедневная головоломка — только начало. Исследуйте уровни, темы и новых спутников.",
    "levelsNote": "От новичка до эксперта · Обучение и практика",
    "progressAlt": "Головоломки приложения по сложности: от уровня 1 до 14",
    "companionsAlt": "Коллекция спутников: Toku, Orbi, Daru, Bip, Haru и Rizo",
    "themesAlt": "Несколько тем оформления приложения",
    "closingTitle": "Ваша следующая пауза начинается здесь.",
    "closingBody": "Puntokus уже доступен для iOS.",
    "qrHint": "Сканируйте с iPhone или iPad, чтобы открыть App Store.",
    "qrAlt": "QR-код страницы Puntokus в App Store",
    "storeBadgeSmall": "Загрузите в",
    "webNote": "Без установки — играйте прямо в браузере.",
    "appChoiceTitle": "Всё лучшее — в приложении.",
    "webChoiceTitle": "Сначала попробуйте в браузере.",
    "webChoiceBody": "Ничего не нужно скачивать: откройте браузер и решите головоломку дня.",
    "dailyAlt": "Экран головоломки дня в приложении: каждый день новая",
    "hintsAlt": "Экран подсказки в приложении: объясняет следующий шаг",
    "themeMesa": "Классика",
    "themeConstellations": "Созвездия",
    "themeSakura": "Сакура",
    "themeArcade": "Аркада",
    "themeInk": "Тушь",
    "themeNeon": "Неон",
    "themeSnowyChristmas": "Снежное Рождество",
    "themeAlchemy": "Алхимия",
    "themeSevilla": "Севилья",
    "themeMedina": "Iulia",
    "themeXian": "Сиань",
    "achievementsAlt": "Достижения в приложении: открываются по ходу игры",
    "stampsAlt": "Марки за головоломки дня в приложении: по одной каждый месяц"
  },
  "iosBeta": {
    "label": "Бета-версия Puntokus для iOS",
    "eyebrow": "iOS · Открытая бета",
    "title": "Поможешь мне проверить приложение?",
    "body": "Попробуй Puntokus на iPhone или iPad и расскажи, что можно улучшить.",
    "action": "Попробовать бету · TestFlight",
    "close": "Напомнить через 7 дней",
    "qrAlt": "QR-код бета-версии Puntokus в TestFlight",
    "qrHint": "Сканируй с iPhone или iPad"
  },
  "footprint.clean": "Чисто",
  "footprint.eyebrow": "Ваш стиль сегодня",
  "footprint.legend": "🔵 решено первым, 🔴 решено последним. Карта каждый раз случайно поворачивается, так что подсказок в ней нет.",
  "footprint.message.eyebrow": "Так это уйдёт",
  "footprint.share.header": "Puntokus #{{number}} · {{style}}",
  "footprint.spoken": "Puntokus {{number}}, стиль «{{style}}». Карта порядка, в котором решено поле.",
  "footprint.spoken.clean": "Чисто: ни одна точка не убрана.",
  "footprint.spoken.run": "Дней подряд: {{count}}.",
  "footprint.style.burst": "Взрыв",
  "footprint.style.burst.detail": "Вы начали в центре, а закончили на краях.",
  "footprint.style.knot": "Узел",
  "footprint.style.knot.detail": "Всё шло гладко до последнего тугого узла.",
  "footprint.style.lines": "Линии",
  "footprint.style.lines.detail": "Вы шли строка за строкой, столбец за столбцом.",
  "footprint.style.spiral": "Спираль",
  "footprint.style.spiral.detail": "Вы начали с краёв, а закончили в центре.",
  "footprint.style.wave": "Волна",
  "footprint.style.wave.detail": "Вы шли от одного края поля к другому.",
  "footprint.style.zigzag": "Зигзаг",
  "footprint.style.zigzag.detail": "Вы перескакивали из зоны в зону."
}
