// Russian message catalog. Typed as Record so it must cover every // key the English catalog defines (a Vitest test asserts parity too). import type { MessageKey } from './en'; export const ru: Record = { 'app.title': 'Scrabble', 'common.back': 'Назад', 'common.cancel': 'Отмена', 'common.ok': 'ОК', 'common.close': 'Закрыть', 'common.loading': 'Загрузка…', 'common.retry': 'Повторить', 'common.you': 'Вы', 'common.save': 'Сохранить', 'login.title': 'Вход', 'login.guest': 'Играть как гость', 'login.email': 'Эл. почта', 'login.emailPlaceholder': 'you@example.com', 'login.sendCode': 'Отправить код', 'login.codePlaceholder': 'Код из 6 цифр', 'login.signIn': 'Войти', 'login.codeSent': 'Мы отправили код на {email}.', 'lobby.activeGames': 'Активные игры', 'lobby.finishedGames': 'Завершённые игры', 'lobby.noActive': 'Пока нет активных игр.', 'lobby.noFinished': 'Пока нет завершённых игр.', 'lobby.new': 'Новая', 'lobby.stats': 'Статы', 'lobby.tournaments': 'Турниры', 'lobby.profile': 'Профиль', 'lobby.settings': 'Настройки', 'lobby.about': 'О программе', 'lobby.yourTurn': 'Ваш ход', 'lobby.theirTurn': 'Ход соперника', 'lobby.vs': 'против {opponents}', 'lobby.soon': 'Скоро', 'new.title': 'Новая игра', 'new.subtitle': 'Автоподбор соперника', 'new.english': 'Английский', 'new.russian': 'Русский', 'new.erudit': 'Эрудит', 'new.find': 'Найти игру', 'new.searching': 'Ищем соперника…', 'game.bag': 'Мешок {n}', 'game.hints': 'Подсказки {n}', 'game.yourTurn': 'Ваш ход', 'game.waiting': 'Ожидаем {name}', 'game.makeMove': 'Сделать ход', 'game.reset': 'Сброс', 'game.draw': 'Обмен', 'game.skip': 'Пас', 'game.shuffle': 'Перемешать', 'game.hint': 'Подсказка', 'game.history': 'История', 'game.chat': 'Чат', 'game.checkWord': 'Проверить слово', 'game.dropGame': 'Покинуть игру', 'game.preview': 'Очков: {n}', 'game.previewIllegal': 'Недопустимый ход', 'game.chooseBlank': 'Выберите букву для бланка', 'game.exchangeTitle': 'Выберите фишки для обмена', 'game.exchangeConfirm': 'Обменять {n}', 'game.confirmResign': 'Сдаться в этой игре?', 'game.hintShown': 'Лучший ход: {word} на {n}', 'game.over': 'Игра окончена', 'game.won': 'Вы выиграли', 'game.lost': 'Вы проиграли', 'game.tied': 'Ничья', 'game.checkWordPrompt': 'Введите слово', 'game.wordLegal': '«{word}» допустимо', 'game.wordIllegal': '«{word}» недопустимо', 'game.complain': 'Не согласен', 'game.complaintSent': 'Спасибо, отправлено на проверку.', 'game.confirm': 'Да', 'game.check': 'Проверить', 'game.checkWait': 'Секунду, пожалуйста.', 'game.noHintOptions': 'Нет вариантов с вашим набором.', 'game.scores': 'Очков: {n}', 'result.victory': 'Победа', 'result.defeat': 'Поражение', 'result.draw': 'Ничья', 'result.place2': 'II место', 'result.place3': 'III место', 'result.place4': 'IV место', 'result.yourMove': 'Ваш ход', 'result.oppMove': 'Ход соперника', 'chat.placeholder': 'Короткое сообщение…', 'chat.send': 'Отправить', 'chat.nudge': 'Поторопить', 'chat.empty': 'Сообщений пока нет.', 'chat.nudged': '{name} торопит вас', 'profile.title': 'Профиль', 'profile.language': 'Язык', 'profile.timezone': 'Часовой пояс', 'profile.hintBalance': 'Баланс подсказок', 'profile.guest': 'Гостевой аккаунт', 'profile.edit': 'Редактировать профиль', 'profile.displayName': 'Отображаемое имя', 'profile.awayWindow': 'Окно отсутствия', 'profile.awayHint': 'В эти часы вам не засчитывают автопоражение.', 'profile.from': 'С', 'profile.to': 'До', 'profile.blockChat': 'Отключить чат', 'profile.blockFriendRequests': 'Отключить заявки в друзья', 'profile.notificationsInAppOnly': 'Уведомления только в приложении', 'profile.email': 'Эл. почта', 'profile.bindEmail': 'Привязать почту', 'profile.emailCode': 'Код подтверждения', 'profile.emailSent': 'Мы отправили код на {email}.', 'profile.emailBound': 'Почта подтверждена.', 'profile.saved': 'Профиль сохранён.', 'profile.guestLocked': 'Войдите по почте, чтобы управлять профилем.', 'profile.linkAccount': 'Привязать аккаунт', 'profile.linkTelegram': 'Привязать Telegram', 'profile.linked': 'Аккаунт привязан.', 'profile.merged': 'Аккаунты объединены.', 'profile.mergeTitle': 'Объединить аккаунты?', 'profile.mergeBody': 'Эта личность уже принадлежит «{name}» (игр: {games}, друзей: {friends}).', 'profile.mergeIrreversible': 'Объединение сольёт оба аккаунта в этот и необратимо.', 'profile.mergeConfirm': 'Объединить', 'settings.title': 'Настройки', 'settings.theme': 'Тема', 'settings.themeAuto': 'Авто', 'settings.themeLight': 'Светлая', 'settings.themeDark': 'Тёмная', 'settings.language': 'Язык интерфейса', 'settings.boardStyle': 'Стиль доски', 'settings.boardLabels': 'Подписи бонусов', 'settings.labelsBeginner': 'Новичок', 'settings.labelsClassic': 'Классика', 'settings.labelsNone': 'Без текста', 'settings.reduceMotion': 'Меньше анимаций', 'about.title': 'О программе', 'about.description': 'Мультиплатформенная игра в скрабл.', 'about.version': 'Версия {v}', 'lang.en': 'English', 'lang.ru': 'Русский', 'error.not_your_turn': 'Сейчас не ваш ход.', 'error.nudge_own_turn': 'Сейчас ваш ход — некого торопить.', 'error.illegal_play': 'Это недопустимый ход.', 'error.hint_unavailable': 'Подсказки недоступны.', 'error.no_hint_available': 'Нет вариантов с вашим набором.', 'error.chat_rejected': 'Сообщение отклонено (слишком длинное или содержит контакты).', 'error.game_finished': 'Эта игра уже завершена.', 'error.not_a_player': 'Вы не участник этой игры.', 'error.already_queued': 'Вы уже в очереди.', 'error.email_taken': 'Эта почта принадлежит другому аккаунту.', 'error.code_invalid': 'Неверный или истёкший код.', 'error.invalid_email': 'Введите корректный адрес почты.', 'error.invalid_config': 'Неверные настройки игры.', 'error.not_found': 'Не найдено.', 'error.session_invalid': 'Сессия истекла. Войдите снова.', 'error.unauthenticated': 'Пожалуйста, войдите.', 'error.rate_limited': 'Слишком много запросов, помедленнее.', 'error.unavailable': 'Проблема соединения. Повторяем…', 'error.internal': 'Что-то пошло не так.', 'error.generic': 'Что-то пошло не так.', 'lobby.invitations': 'Приглашения', 'lobby.friends': 'Друзья', 'friends.title': 'Друзья', 'friends.yours': 'Ваши друзья', 'friends.none': 'Друзей пока нет.', 'friends.incoming': 'Заявки в друзья', 'friends.accept': 'Принять', 'friends.decline': 'Отклонить', 'friends.unfriend': 'Удалить', 'friends.block': 'Заблокировать', 'friends.add': 'Добавить друга', 'friends.addFromGame': 'В друзья', 'friends.requestSent': 'Заявка в друзья отправлена.', 'friends.getCode': 'Показать мой код', 'friends.codeHint': 'Передайте этот код другу в течение 12 часов.', 'friends.codeExpires': 'Истекает в {time}', 'friends.enterCode': 'Есть код? Добавить друга', 'friends.codePlaceholder': 'Код из 6 цифр', 'friends.redeem': 'Добавить', 'friends.copy': 'Копировать', 'friends.codeCopied': 'Код скопирован.', 'friends.shareTelegram': 'Поделиться через Telegram', 'friends.added': 'Добавлен(а) {name}.', 'friends.blockedList': 'Заблокированные', 'friends.unblock': 'Разблокировать', 'friends.noneBlocked': 'Заблокированных нет.', 'invitations.none': 'Приглашений нет.', 'invitations.from': 'От {name}', 'invitations.with': 'С {names}', 'invitations.accept': 'Принять', 'invitations.decline': 'Отклонить', 'invitations.cancel': 'Отменить', 'invitations.waiting': 'Ожидаем ответы', 'new.auto': 'Быстрая игра', 'new.withFriends': 'Игра с друзьями', 'new.pickFriends': 'Кого пригласить', 'new.searchFriends': 'Поиск друзей', 'new.gameType': 'Тип игры', 'new.invite': 'Отправить приглашение', 'new.moveTime': 'Время на ход', 'new.hintsPerPlayer': 'Подсказок на игрока', 'new.invited': 'Приглашение отправлено.', 'new.noFriends': 'Сначала добавьте друзей, чтобы пригласить их.', 'stats.title': 'Статистика', 'stats.wins': 'Победы', 'stats.losses': 'Поражения', 'stats.draws': 'Ничьи', 'stats.played': 'Игр', 'stats.winRate': 'Доля побед', 'stats.maxGame': 'Лучшая игра', 'stats.maxWord': 'Лучший ход', 'stats.guestHint': 'Войдите, чтобы вести статистику.', 'game.exportGcg': 'Экспорт GCG', 'game.gcgActiveOnly': 'Доступно после завершения игры.', 'game.requestSent': 'Запрос отправлен', 'time.minutes': '{n} мин', 'time.hours': '{n} ч', 'error.self_relation': 'Нельзя сделать это с самим собой.', 'error.request_exists': 'Заявка или дружба уже существует.', 'error.request_blocked': 'Игрок не принимает заявки.', 'error.request_not_found': 'Подходящей заявки нет.', 'error.no_shared_game': 'Можно добавить только того, с кем вы играли.', 'error.request_declined': 'Игрок отклонил вашу заявку.', 'error.friend_code_invalid': 'Код недействителен или истёк.', 'error.invalid_invitation': 'Неверное приглашение.', 'error.invitation_blocked': 'Нельзя пригласить этого игрока.', 'error.invitation_not_found': 'Приглашение не найдено.', 'error.invitation_not_pending': 'Приглашение больше не открыто.', 'error.invitation_expired': 'Приглашение истекло.', 'error.not_invited': 'Вас не приглашали.', 'error.already_responded': 'Вы уже ответили.', 'error.not_inviter': 'Только пригласивший может это сделать.', 'error.game_active': 'Доступно только после завершения игры.', 'error.invalid_profile': 'Некоторые поля профиля некорректны.', 'error.already_confirmed': 'Эта почта уже подтверждена.', };