753 lines
22 KiB
Dart
753 lines
22 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for Russian (`ru`).
|
||
class AppLocalizationsRu extends AppLocalizations {
|
||
AppLocalizationsRu([String locale = 'ru']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'Самозванец';
|
||
|
||
@override
|
||
String get subtitle => 'Социальная игра на дедукцию';
|
||
|
||
@override
|
||
String get loadingWords => 'Загрузка слов...';
|
||
|
||
@override
|
||
String get playersRange => '3-20 игроков • Без интернета';
|
||
|
||
@override
|
||
String get createGame => 'Создать игру';
|
||
|
||
@override
|
||
String get joinGame => 'Присоединиться к игре';
|
||
|
||
@override
|
||
String get howToPlay => 'Как играть';
|
||
|
||
@override
|
||
String get settings => 'Настройки';
|
||
|
||
@override
|
||
String get gameMode => 'Режим игры';
|
||
|
||
@override
|
||
String get singleDevice => 'Одно устройство';
|
||
|
||
@override
|
||
String get multiDevice => 'Несколько устройств';
|
||
|
||
@override
|
||
String get category => 'Категория';
|
||
|
||
@override
|
||
String get categoryAll => 'Все';
|
||
|
||
@override
|
||
String get categoryAnimals => 'Животные';
|
||
|
||
@override
|
||
String get categoryFood => 'Еда';
|
||
|
||
@override
|
||
String get categoryCountries => 'Страны';
|
||
|
||
@override
|
||
String get categorySports => 'Спорт';
|
||
|
||
@override
|
||
String get categoryProfessions => 'Профессии';
|
||
|
||
@override
|
||
String get categoryObjects => 'Предметы';
|
||
|
||
@override
|
||
String get categoryPlaces => 'Места';
|
||
|
||
@override
|
||
String get categoryMovies => 'Фильмы';
|
||
|
||
@override
|
||
String get categoryMusic => 'Музыка';
|
||
|
||
@override
|
||
String get categoryTechnology => 'Технологии';
|
||
|
||
@override
|
||
String playersCount(int count) {
|
||
return 'Игроки ($count)';
|
||
}
|
||
|
||
@override
|
||
String get playersRangeHint => '3-20';
|
||
|
||
@override
|
||
String get playerNameHint => 'Имя игрока';
|
||
|
||
@override
|
||
String get playerAlreadyExists => 'Игрок с таким именем уже существует';
|
||
|
||
@override
|
||
String get maxPlayersReached => 'Максимум 20 игроков';
|
||
|
||
@override
|
||
String get minPlayersRequired => 'Нужно минимум 3 игрока';
|
||
|
||
@override
|
||
String get configuration => 'Конфигурация';
|
||
|
||
@override
|
||
String get impostors => '🎭 Самозванцы';
|
||
|
||
@override
|
||
String get impostorClue => '🔍 Подсказка для самозванца';
|
||
|
||
@override
|
||
String get impostorClueDescription => 'Самозванец знает категорию';
|
||
|
||
@override
|
||
String get debate => '🗣️ Debate';
|
||
|
||
@override
|
||
String get debateTime => '⏱️ Время обсуждения';
|
||
|
||
@override
|
||
String get noLimit => 'Без ограничений';
|
||
|
||
@override
|
||
String get oneMin => '1 мин';
|
||
|
||
@override
|
||
String get twoMin => '2 мин';
|
||
|
||
@override
|
||
String get threeMin => '3 мин';
|
||
|
||
@override
|
||
String get fiveMin => '5 мин';
|
||
|
||
@override
|
||
String get startGame => 'Начать игру';
|
||
|
||
@override
|
||
String get seeYourWord => 'Посмотри своё слово';
|
||
|
||
@override
|
||
String get eachPlayerMustSee =>
|
||
'Каждый игрок должен тайно посмотреть своё слово';
|
||
|
||
@override
|
||
String roundNumber(int round) {
|
||
return 'Раунд $round';
|
||
}
|
||
|
||
@override
|
||
String get alreadySeen => 'Уже видел своё слово';
|
||
|
||
@override
|
||
String get tapToSee => 'Нажми, чтобы увидеть';
|
||
|
||
@override
|
||
String get allSeenStartDebate => 'Все увидели → Начать обсуждение';
|
||
|
||
@override
|
||
String playersRemaining(int count) {
|
||
return 'Осталось $count игроков';
|
||
}
|
||
|
||
@override
|
||
String get youAreImpostor => 'Ты самозванец!';
|
||
|
||
@override
|
||
String get yourWordIs => 'Твоё слово:';
|
||
|
||
@override
|
||
String clueCategory(String category) {
|
||
return 'Подсказка: $category';
|
||
}
|
||
|
||
@override
|
||
String get holdToSeeWord => 'Удерживай, чтобы увидеть своё слово';
|
||
|
||
@override
|
||
String get makeSureNoOneLooks => 'Убедись, что никто не подсматривает';
|
||
|
||
@override
|
||
String get showingWord => '👁️ Показываю...';
|
||
|
||
@override
|
||
String get holdToSee => '👆 Удерживай, чтобы увидеть';
|
||
|
||
@override
|
||
String get seenMyWord => 'Я увидел своё слово';
|
||
|
||
@override
|
||
String debateRound(int round) {
|
||
return 'Обсуждение - Раунд $round';
|
||
}
|
||
|
||
@override
|
||
String get timeUp => '⏰ Время вышло!';
|
||
|
||
@override
|
||
String get timeRemaining => '⏱️ Оставшееся время';
|
||
|
||
@override
|
||
String get playersInDebate => 'Игроки в обсуждении';
|
||
|
||
@override
|
||
String activePlayersInfo(int active, int impostors) {
|
||
return '$active активных • $impostors скрытый(-х) самозванец(-ев)';
|
||
}
|
||
|
||
@override
|
||
String get eliminated => 'Выбыл';
|
||
|
||
@override
|
||
String get notes => 'Заметки';
|
||
|
||
@override
|
||
String get goToVoting => 'Перейти к голосованию';
|
||
|
||
@override
|
||
String get voting => '🗳️ Голосование';
|
||
|
||
@override
|
||
String get turnToVote => 'Твоя очередь голосовать:';
|
||
|
||
@override
|
||
String votesProgress(int current, int total) {
|
||
return 'Голоса: $current/$total';
|
||
}
|
||
|
||
@override
|
||
String get whoIsImpostor => 'Кто, по-твоему, самозванец?';
|
||
|
||
@override
|
||
String get confirmVote => 'Подтвердить голос';
|
||
|
||
@override
|
||
String get votingComplete => '🗳️ Голосование завершено';
|
||
|
||
@override
|
||
String get allVoted => 'Все проголосовали!';
|
||
|
||
@override
|
||
String get tapToReveal => 'Нажми, чтобы узнать результат';
|
||
|
||
@override
|
||
String get revealResult => 'Показать результат';
|
||
|
||
@override
|
||
String get result => 'Результат';
|
||
|
||
@override
|
||
String get revealing => 'Раскрываем...';
|
||
|
||
@override
|
||
String get wasImpostor => 'Был САМОЗВАНЦЕМ! 🎉';
|
||
|
||
@override
|
||
String get wasInnocent => 'Был НЕВИНОВЕН 😱';
|
||
|
||
@override
|
||
String get votesThisRound => 'Голоса этого раунда';
|
||
|
||
@override
|
||
String get seeEndResult => 'Увидеть итоговый результат';
|
||
|
||
@override
|
||
String get impostorGuessWord => 'Самозванец угадает слово?';
|
||
|
||
@override
|
||
String get nextRound => 'Следующий раунд';
|
||
|
||
@override
|
||
String get impostorGuessTitle => '🎯 Догадка самозванца';
|
||
|
||
@override
|
||
String get impostorCanGuess =>
|
||
'Выбывший самозванец может\nпопытаться угадать слово';
|
||
|
||
@override
|
||
String get ifCorrectImpostorsWin => 'Если угадает — самозванцы побеждают!';
|
||
|
||
@override
|
||
String get guessWordHint => 'Как ты думаешь, какое слово?';
|
||
|
||
@override
|
||
String get dontGuess => 'Не пытаться';
|
||
|
||
@override
|
||
String get guess => 'Угадать';
|
||
|
||
@override
|
||
String get correctGuess => 'Угадал!';
|
||
|
||
@override
|
||
String theWordWas(String word) {
|
||
return 'Слово было: $word';
|
||
}
|
||
|
||
@override
|
||
String get impostorsWin => 'Самозванцы побеждают!';
|
||
|
||
@override
|
||
String get wrongGuess => 'Не угадал!';
|
||
|
||
@override
|
||
String get gameContinues => 'Игра продолжается...';
|
||
|
||
@override
|
||
String get gameOver => 'Конец игры';
|
||
|
||
@override
|
||
String get playersWin => 'Игроки побеждают!';
|
||
|
||
@override
|
||
String get theSecretWordWas => '🔍 Загаданное слово:';
|
||
|
||
@override
|
||
String categoryLabel(String category) {
|
||
return 'Категория: $category';
|
||
}
|
||
|
||
@override
|
||
String get theImpostorWas => '🎭 Самозванцем был:';
|
||
|
||
@override
|
||
String get theImpostorsWere => '🎭 Самозванцами были:';
|
||
|
||
@override
|
||
String get votingHistory => '📊 История голосований';
|
||
|
||
@override
|
||
String roundElimination(int round, String name) {
|
||
return 'Раунд $round: $name';
|
||
}
|
||
|
||
@override
|
||
String get rematch => 'Реванш';
|
||
|
||
@override
|
||
String get mainMenu => 'Главное меню';
|
||
|
||
@override
|
||
String get notesTitle => '📝 Заметки';
|
||
|
||
@override
|
||
String get notesSaved => 'Заметки сохранены';
|
||
|
||
@override
|
||
String get whoAreYou => 'Кто ты?';
|
||
|
||
@override
|
||
String get selectYourName =>
|
||
'Выбери своё имя, чтобы увидеть свои личные заметки';
|
||
|
||
@override
|
||
String notesOf(String name) {
|
||
return 'Заметки $name';
|
||
}
|
||
|
||
@override
|
||
String get notesAboutPlayers => 'Записи о каждом игроке';
|
||
|
||
@override
|
||
String get playerNoteHint => 'Что он сказал? Подозрительно?';
|
||
|
||
@override
|
||
String get freeNote => 'Свободная заметка';
|
||
|
||
@override
|
||
String get freeNoteHint => 'Личные записи...';
|
||
|
||
@override
|
||
String get rulesTitle => '📖 Как играть';
|
||
|
||
@override
|
||
String get rulesWhatIsTitle => '🎭 Что такое «Самозванец»?';
|
||
|
||
@override
|
||
String get rulesWhatIsBody =>
|
||
'Социальная игра на дедукцию для 3-20 игроков. Все получают секретное слово... кроме самозванца! Твоя задача: вычислить, кто притворяется.';
|
||
|
||
@override
|
||
String get rulesHowToPlayTitle => '🔍 Как играть?';
|
||
|
||
@override
|
||
String get rulesHowToPlayBody =>
|
||
'1. Раздача ролей: все получают одно и то же слово, кроме самозванца(-ев).\n\n2. Обсуждение: по очереди каждый игрок описывает слово, НЕ называя его напрямую. Самозванец должен притворяться, что знает его.\n\n3. Голосование: после обсуждения все голосуют за того, кого считают самозванцем.\n\n4. Исключение: игрок, набравший больше всего голосов, выбывает, и выясняется, был ли он самозванцем.\n\n5. Если это был самозванец, он может попытаться угадать слово. Если угадает — самозванцы побеждают!';
|
||
|
||
@override
|
||
String get rulesWhoWinsTitle => '🏆 Кто побеждает?';
|
||
|
||
@override
|
||
String get rulesWhoWinsBody =>
|
||
'• Игроки: побеждают, если вычислят ВСЕХ самозванцев.\n• Самозванцы: побеждают, если остаются нераскрытыми, пока обычных игроков не станет столько же или меньше, чем самозванцев, или если угадают слово при выбывании.';
|
||
|
||
@override
|
||
String get rulesTipsPlayersTitle => '💡 Советы для игроков';
|
||
|
||
@override
|
||
String get rulesTipsPlayersBody =>
|
||
'• Давай тонкие подсказки, доказывающие, что ты знаешь слово, но не настолько очевидные, чтобы самозванец мог ими воспользоваться.\n• Следи за тем, кто даёт расплывчатые или общие ответы.\n• Используй заметки, чтобы записывать сказанное каждым.\n• Не называй слово напрямую — это поможет самозванцу!';
|
||
|
||
@override
|
||
String get rulesTipsImpostorTitle => '🎭 Советы для самозванца';
|
||
|
||
@override
|
||
String get rulesTipsImpostorBody =>
|
||
'• Внимательно слушай подсказки остальных.\n• Попытайся вычислить слово, чтобы давать правдоподобные подсказки.\n• Не говори первым, если не уверен.\n• Если тебе дали категорию как подсказку, используй это в свою пользу.\n• Обвиняй других, чтобы отвлечь внимание.';
|
||
|
||
@override
|
||
String get rulesModesTitle => '📱 Режимы игры';
|
||
|
||
@override
|
||
String get rulesModesBody =>
|
||
'• Одно устройство: все передают телефон по кругу. Каждый игрок видит своё слово, нажав и удерживая кнопку.\n\n• Несколько устройств: каждый игрок использует собственное устройство. Подключение через Bluetooth/WiFi Direct без интернета.';
|
||
|
||
@override
|
||
String get rulesExampleTitle => '✏️ Пример раунда';
|
||
|
||
@override
|
||
String get rulesExampleBody =>
|
||
'Секретное слово: «Пицца»\n\n• Аня: «Её едят горячей» ✓\n• Кирилл: «Приходит в коробке» ✓\n• Лена (самозванец): «Очень популярная» 🤔\n• Дима: «С сыром» ✓\n\nЛена дала слишком общий ответ... Подозрительно!';
|
||
|
||
@override
|
||
String get joinGameTitle => 'Присоединиться к игре';
|
||
|
||
@override
|
||
String get multiDeviceMode => 'Режим нескольких устройств';
|
||
|
||
@override
|
||
String get scanQrDescription =>
|
||
'Отсканируй QR-код, который показывает хост, чтобы подключиться к игре через Bluetooth/WiFi Direct.';
|
||
|
||
@override
|
||
String get comingSoon => 'Скоро';
|
||
|
||
@override
|
||
String get nearbyNotAvailable =>
|
||
'Подключение нескольких устройств через Nearby Connections требует физических Android-устройств.\n\nПока что используй режим «Одно устройство» для игры на общем телефоне.';
|
||
|
||
@override
|
||
String get back => 'Назад';
|
||
|
||
@override
|
||
String get yes => 'Да';
|
||
|
||
@override
|
||
String get no => 'Нет';
|
||
|
||
@override
|
||
String get cancel => 'Отмена';
|
||
|
||
@override
|
||
String get accept => 'Принять';
|
||
|
||
@override
|
||
String get next => 'Далее';
|
||
|
||
@override
|
||
String get settingsTitle => 'Настройки';
|
||
|
||
@override
|
||
String get language => 'Язык';
|
||
|
||
@override
|
||
String get soundVolume => 'Громкость эффектов';
|
||
|
||
@override
|
||
String get vibration => 'Вибрация';
|
||
|
||
@override
|
||
String get about => 'О приложении';
|
||
|
||
@override
|
||
String get version => 'Версия';
|
||
|
||
@override
|
||
String get developer => 'Разработчик';
|
||
|
||
@override
|
||
String get licenses => 'Лицензии';
|
||
|
||
@override
|
||
String get scanToJoin => 'Escanea el QR para unirte';
|
||
|
||
@override
|
||
String get connectedPlayers => 'Jugadores conectados';
|
||
|
||
@override
|
||
String get hostGame => 'Gestor de partida';
|
||
|
||
@override
|
||
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
|
||
|
||
@override
|
||
String get activePlayers => 'Jugadores activos';
|
||
|
||
@override
|
||
String get playersVoted => 'Han votado';
|
||
|
||
@override
|
||
String get waitingVoting => 'Esperando que voten...';
|
||
|
||
@override
|
||
String get waitingForPlayers => 'Esperando jugadores...';
|
||
|
||
@override
|
||
String needMorePlayers(int count) {
|
||
return 'Faltan $count jugadores más';
|
||
}
|
||
|
||
@override
|
||
String get starting => 'Iniciando...';
|
||
|
||
@override
|
||
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
|
||
|
||
@override
|
||
String get yourName => 'Tu nombre';
|
||
|
||
@override
|
||
String get nameRequired => 'Escribe tu nombre';
|
||
|
||
@override
|
||
String get connectingTo => 'Conectando a';
|
||
|
||
@override
|
||
String get scanQR => 'Escanear QR';
|
||
|
||
@override
|
||
String get scanHostQR => 'Apunta al QR del host';
|
||
|
||
@override
|
||
String get connectedWaiting => '¡Conectado!';
|
||
|
||
@override
|
||
String get waitingForHost => 'Esperando a que el host inicie la partida...';
|
||
|
||
@override
|
||
String get enterNameToSearch =>
|
||
'Escribe tu nombre para buscar partidas cercanas';
|
||
|
||
@override
|
||
String get searchGames => 'Buscar partidas';
|
||
|
||
@override
|
||
String get searchingGames => 'Buscando partidas cercanas...';
|
||
|
||
@override
|
||
String get noGamesFound => 'No se encontraron partidas';
|
||
|
||
@override
|
||
String get noGamesFoundHint =>
|
||
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
|
||
|
||
@override
|
||
String get orScanQR => '¿No aparece? Escanea el QR del host';
|
||
|
||
@override
|
||
String get iveSeenIt => 'Ya la he visto';
|
||
|
||
@override
|
||
String clueIs(String category) {
|
||
return 'La pista es: $category';
|
||
}
|
||
|
||
@override
|
||
String get debatePhaseActive => 'Fase de debate activa';
|
||
|
||
@override
|
||
String get debateInstructions =>
|
||
'Hablad entre vosotros y decid quién creéis que es el impostor. Cuando estéis listos, solicitad la votación.';
|
||
|
||
@override
|
||
String get solicitarVotacion => 'Solicitar votación';
|
||
|
||
@override
|
||
String get votacionSolicitada => 'Votación solicitada';
|
||
|
||
@override
|
||
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
|
||
|
||
@override
|
||
String get selectOnePlayer => 'Selecciona a un jugador para votar';
|
||
|
||
@override
|
||
String get votar => 'Votar';
|
||
|
||
@override
|
||
String get selectYourProfile => 'Tu perfil';
|
||
|
||
@override
|
||
String get selectProfile => 'Selecciona un perfil';
|
||
|
||
@override
|
||
String get createNewUser => 'Crear nuevo usuario';
|
||
|
||
@override
|
||
String get userNameRequired => 'El nombre no puede estar vacio';
|
||
|
||
@override
|
||
String get profileSelected => 'Perfil seleccionado';
|
||
|
||
@override
|
||
String get availableProfiles => 'Perfiles disponibles';
|
||
|
||
@override
|
||
String get scanThisCodeFromAnotherPhone => 'Отсканируйте этот код с другого телефона';
|
||
|
||
@override
|
||
String get gameUsers => 'Пользователи игры';
|
||
|
||
@override
|
||
String get selectedPlayers => 'Выбранные игроки';
|
||
|
||
@override
|
||
String get connectedPhones => 'Подключённые телефоны';
|
||
|
||
@override
|
||
String get selectedOnThisPhone => 'Выбрано на этом телефоне';
|
||
|
||
@override
|
||
String get selectedByAnotherDevice => 'Выбрано на другом устройстве';
|
||
|
||
@override
|
||
String get available => 'Доступно';
|
||
|
||
@override
|
||
String get notAvailable => 'Недоступно';
|
||
|
||
@override
|
||
String get release => 'Освободить';
|
||
|
||
@override
|
||
String get select => 'Выбрать';
|
||
|
||
@override
|
||
String get delete => 'Удалить';
|
||
|
||
@override
|
||
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
|
||
|
||
@override
|
||
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
|
||
|
||
@override
|
||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
||
|
||
@override
|
||
String get completeUserSelectionToStart => 'Complete user selection to start.';
|
||
|
||
@override
|
||
String get preparingSecureRoom => 'Preparing the secure room';
|
||
|
||
@override
|
||
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
|
||
|
||
@override
|
||
String get tapToJoin => 'Tap to join';
|
||
|
||
@override
|
||
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
|
||
|
||
@override
|
||
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
|
||
|
||
@override
|
||
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
|
||
|
||
@override
|
||
String couldNotConnectToHost(String host) {
|
||
return 'Could not connect to $host';
|
||
}
|
||
|
||
@override
|
||
String get room => 'Комната';
|
||
|
||
@override
|
||
String get singleDeviceSubtitle => 'Game on this device';
|
||
|
||
@override
|
||
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
||
|
||
@override
|
||
String get multiDeviceSubtitle => 'Each player on their phone';
|
||
|
||
@override
|
||
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
|
||
|
||
@override
|
||
String get singleDeviceGameLabel => 'Game on this device';
|
||
|
||
@override
|
||
String get multiDeviceGameLabel => 'Multi-device game';
|
||
|
||
@override
|
||
String get mainDeviceUser => 'Main device user';
|
||
|
||
@override
|
||
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
|
||
|
||
@override
|
||
String cannotStartWithReason(String reason) {
|
||
return 'Cannot start: $reason';
|
||
}
|
||
|
||
@override
|
||
String get invalidRoom => 'invalid room';
|
||
|
||
@override
|
||
String get defaultPlayerName => 'Игрок';
|
||
@override
|
||
String get play => 'Играть';
|
||
|
||
@override
|
||
String get history => 'История';
|
||
|
||
@override
|
||
String get mainTagline => 'Найди самозванца, пока не стало слишком поздно';
|
||
|
||
@override
|
||
String get deviceProfile => 'Профиль устройства';
|
||
|
||
@override
|
||
String get profileName => 'Имя';
|
||
|
||
@override
|
||
String get profileNick => 'Ник';
|
||
|
||
@override
|
||
String get save => 'Сохранить';
|
||
|
||
@override
|
||
String get automaticLanguage => 'Автоматически';
|
||
|
||
@override
|
||
String get noSavedGames => 'Сохранённых игр пока нет.';
|
||
|
||
@override
|
||
String get errorNoGame => 'Ошибка: нет игры';
|
||
|
||
@override
|
||
String get disconnectedPlayersWarning => 'У некоторых игроков устройство отключено.';
|
||
|
||
@override
|
||
String get assumeOnThisPhone => 'Взять на этом телефоне';
|
||
|
||
@override
|
||
String get noResult => 'Нет результата';
|
||
|
||
@override
|
||
String historyGameSummary(int players, int impostors, int rounds, String word, String category) {
|
||
return '$players игроков • $impostors самозванцев • $rounds раундов\n$word • $category';
|
||
}
|
||
|
||
} |