Internacionalización completa: - 18 ficheros .arb: es, en, fr, pt, de, it, ru, ja, ko, zh, zh_TW, ar, hi, tr, pl, nl, ca, eu - Todos los strings extraídos de todas las pantallas - Detección automática de idioma del sistema - Selector manual en pantalla de ajustes Pantalla de ajustes nueva: - Selector de idioma con banderas emoji - Vibración ON/OFF - Acerca de (versión, desarrollador) Bancos de palabras multiidioma: - palabras.json (castellano, 1000 palabras) - palabras_en.json (inglés, 1000 palabras) - palabras_fr.json (francés, 1000 palabras) - Fallback a castellano si no hay banco del idioma 13138 líneas Dart, 39 ficheros, 0 issues en flutter analyze
476 lines
12 KiB
Dart
476 lines
12 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Spanish Castilian (`es`).
|
|
class AppLocalizationsEs extends AppLocalizations {
|
|
AppLocalizationsEs([String locale = 'es']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'El Impostor';
|
|
|
|
@override
|
|
String get subtitle => 'Juego de deducción social';
|
|
|
|
@override
|
|
String get loadingWords => 'Cargando palabras...';
|
|
|
|
@override
|
|
String get playersRange => '3-20 jugadores • Sin internet';
|
|
|
|
@override
|
|
String get createGame => 'Crear partida';
|
|
|
|
@override
|
|
String get joinGame => 'Unirse a partida';
|
|
|
|
@override
|
|
String get howToPlay => 'Cómo jugar';
|
|
|
|
@override
|
|
String get settings => 'Ajustes';
|
|
|
|
@override
|
|
String get gameMode => 'Modo de juego';
|
|
|
|
@override
|
|
String get singleDevice => 'Un solo móvil';
|
|
|
|
@override
|
|
String get multiDevice => 'Multimóvil';
|
|
|
|
@override
|
|
String get category => 'Categoría';
|
|
|
|
@override
|
|
String get categoryAll => 'Todas';
|
|
|
|
@override
|
|
String get categoryAnimals => 'Animales';
|
|
|
|
@override
|
|
String get categoryFood => 'Comida';
|
|
|
|
@override
|
|
String get categoryCountries => 'Países';
|
|
|
|
@override
|
|
String get categorySports => 'Deportes';
|
|
|
|
@override
|
|
String get categoryProfessions => 'Profesiones';
|
|
|
|
@override
|
|
String get categoryObjects => 'Objetos';
|
|
|
|
@override
|
|
String get categoryPlaces => 'Lugares';
|
|
|
|
@override
|
|
String get categoryMovies => 'Películas';
|
|
|
|
@override
|
|
String get categoryMusic => 'Música';
|
|
|
|
@override
|
|
String get categoryTechnology => 'Tecnología';
|
|
|
|
@override
|
|
String playersCount(int count) {
|
|
return 'Jugadores ($count)';
|
|
}
|
|
|
|
@override
|
|
String get playersRangeHint => '3-20';
|
|
|
|
@override
|
|
String get playerNameHint => 'Nombre del jugador';
|
|
|
|
@override
|
|
String get playerAlreadyExists => 'Ya existe un jugador con ese nombre';
|
|
|
|
@override
|
|
String get maxPlayersReached => 'Máximo 20 jugadores';
|
|
|
|
@override
|
|
String get minPlayersRequired => 'Se necesitan al menos 3 jugadores';
|
|
|
|
@override
|
|
String get configuration => 'Configuración';
|
|
|
|
@override
|
|
String get impostors => '🎭 Impostores';
|
|
|
|
@override
|
|
String get impostorClue => '🔍 Pista para impostor';
|
|
|
|
@override
|
|
String get impostorClueDescription => 'El impostor conoce la categoría';
|
|
|
|
@override
|
|
String get debateTime => '⏱️ Tiempo de debate';
|
|
|
|
@override
|
|
String get noLimit => 'Sin límite';
|
|
|
|
@override
|
|
String get oneMin => '1 min';
|
|
|
|
@override
|
|
String get twoMin => '2 min';
|
|
|
|
@override
|
|
String get threeMin => '3 min';
|
|
|
|
@override
|
|
String get fiveMin => '5 min';
|
|
|
|
@override
|
|
String get startGame => 'Iniciar partida';
|
|
|
|
@override
|
|
String get seeYourWord => 'Ver tu palabra';
|
|
|
|
@override
|
|
String get eachPlayerMustSee => 'Cada jugador debe ver su palabra en secreto';
|
|
|
|
@override
|
|
String roundNumber(int round) {
|
|
return 'Ronda $round';
|
|
}
|
|
|
|
@override
|
|
String get alreadySeen => 'Ya ha visto su palabra';
|
|
|
|
@override
|
|
String get tapToSee => 'Pulsa para ver';
|
|
|
|
@override
|
|
String get allSeenStartDebate => 'Todos han visto → Iniciar debate';
|
|
|
|
@override
|
|
String playersRemaining(int count) {
|
|
return 'Faltan $count jugadores';
|
|
}
|
|
|
|
@override
|
|
String get youAreImpostor => '¡Eres el impostor!';
|
|
|
|
@override
|
|
String get yourWordIs => 'Tu palabra es:';
|
|
|
|
@override
|
|
String clueCategory(String category) {
|
|
return 'Pista: $category';
|
|
}
|
|
|
|
@override
|
|
String get holdToSeeWord => 'Mantén pulsado para ver tu palabra';
|
|
|
|
@override
|
|
String get makeSureNoOneLooks => 'Asegúrate de que nadie más mira';
|
|
|
|
@override
|
|
String get showingWord => '👁️ Mostrando...';
|
|
|
|
@override
|
|
String get holdToSee => '👆 Mantén pulsado para ver';
|
|
|
|
@override
|
|
String get seenMyWord => 'He visto mi palabra';
|
|
|
|
@override
|
|
String debateRound(int round) {
|
|
return 'Debate - Ronda $round';
|
|
}
|
|
|
|
@override
|
|
String get timeUp => '⏰ ¡Tiempo agotado!';
|
|
|
|
@override
|
|
String get timeRemaining => '⏱️ Tiempo restante';
|
|
|
|
@override
|
|
String get playersInDebate => 'Jugadores en debate';
|
|
|
|
@override
|
|
String activePlayersInfo(int active, int impostors) {
|
|
return '$active activos • $impostors impostor(es) ocultos';
|
|
}
|
|
|
|
@override
|
|
String get eliminated => 'Eliminado';
|
|
|
|
@override
|
|
String get notes => 'Notas';
|
|
|
|
@override
|
|
String get goToVoting => 'Ir a votación';
|
|
|
|
@override
|
|
String get voting => '🗳️ Votación';
|
|
|
|
@override
|
|
String get turnToVote => 'Turno de votar:';
|
|
|
|
@override
|
|
String votesProgress(int current, int total) {
|
|
return 'Votos: $current/$total';
|
|
}
|
|
|
|
@override
|
|
String get whoIsImpostor => '¿Quién crees que es el impostor?';
|
|
|
|
@override
|
|
String get confirmVote => 'Confirmar voto';
|
|
|
|
@override
|
|
String get votingComplete => '🗳️ Votación completa';
|
|
|
|
@override
|
|
String get allVoted => '¡Todos han votado!';
|
|
|
|
@override
|
|
String get tapToReveal => 'Pulsa para revelar el resultado';
|
|
|
|
@override
|
|
String get revealResult => 'Revelar resultado';
|
|
|
|
@override
|
|
String get result => 'Resultado';
|
|
|
|
@override
|
|
String get revealing => 'Revelando...';
|
|
|
|
@override
|
|
String get wasImpostor => '¡Era IMPOSTOR! 🎉';
|
|
|
|
@override
|
|
String get wasInnocent => 'Era INOCENTE 😱';
|
|
|
|
@override
|
|
String get votesThisRound => 'Votos de esta ronda';
|
|
|
|
@override
|
|
String get seeEndResult => 'Ver resultado final';
|
|
|
|
@override
|
|
String get impostorGuessWord => '¿El impostor adivina la palabra?';
|
|
|
|
@override
|
|
String get nextRound => 'Siguiente ronda';
|
|
|
|
@override
|
|
String get impostorGuessTitle => '🎯 Adivinanza del impostor';
|
|
|
|
@override
|
|
String get impostorCanGuess =>
|
|
'El impostor eliminado puede\nintentar adivinar la palabra';
|
|
|
|
@override
|
|
String get ifCorrectImpostorsWin => 'Si acierta, ¡los impostores ganan!';
|
|
|
|
@override
|
|
String get guessWordHint => '¿Cuál crees que es la palabra?';
|
|
|
|
@override
|
|
String get dontGuess => 'No intentar';
|
|
|
|
@override
|
|
String get guess => 'Adivinar';
|
|
|
|
@override
|
|
String get correctGuess => '¡Ha acertado!';
|
|
|
|
@override
|
|
String theWordWas(String word) {
|
|
return 'La palabra era: $word';
|
|
}
|
|
|
|
@override
|
|
String get impostorsWin => '¡Los impostores ganan!';
|
|
|
|
@override
|
|
String get wrongGuess => '¡No ha acertado!';
|
|
|
|
@override
|
|
String get gameContinues => 'La partida continúa...';
|
|
|
|
@override
|
|
String get gameOver => 'Fin de partida';
|
|
|
|
@override
|
|
String get playersWin => '¡Los jugadores ganan!';
|
|
|
|
@override
|
|
String get theSecretWordWas => '🔍 La palabra era:';
|
|
|
|
@override
|
|
String categoryLabel(String category) {
|
|
return 'Categoría: $category';
|
|
}
|
|
|
|
@override
|
|
String get theImpostorWas => '🎭 El impostor era:';
|
|
|
|
@override
|
|
String get theImpostorsWere => '🎭 Los impostores eran:';
|
|
|
|
@override
|
|
String get votingHistory => '📊 Historial de votaciones';
|
|
|
|
@override
|
|
String roundElimination(int round, String name) {
|
|
return 'Ronda $round: $name';
|
|
}
|
|
|
|
@override
|
|
String get rematch => 'Revancha';
|
|
|
|
@override
|
|
String get mainMenu => 'Menú principal';
|
|
|
|
@override
|
|
String get notesTitle => '📝 Notas';
|
|
|
|
@override
|
|
String get notesSaved => 'Notas guardadas';
|
|
|
|
@override
|
|
String get whoAreYou => '¿Quién eres?';
|
|
|
|
@override
|
|
String get selectYourName =>
|
|
'Selecciona tu nombre para ver tus notas privadas';
|
|
|
|
@override
|
|
String notesOf(String name) {
|
|
return 'Notas de $name';
|
|
}
|
|
|
|
@override
|
|
String get notesAboutPlayers => 'Apuntes sobre cada jugador';
|
|
|
|
@override
|
|
String get playerNoteHint => '¿Qué ha dicho? ¿Sospechoso?';
|
|
|
|
@override
|
|
String get freeNote => 'Nota libre';
|
|
|
|
@override
|
|
String get freeNoteHint => 'Apuntes personales...';
|
|
|
|
@override
|
|
String get rulesTitle => '📖 Cómo jugar';
|
|
|
|
@override
|
|
String get rulesWhatIsTitle => '🎭 ¿Qué es El Impostor?';
|
|
|
|
@override
|
|
String get rulesWhatIsBody =>
|
|
'Un juego de deducción social para 3-20 jugadores. Todos reciben una palabra secreta... ¡excepto el impostor! Tu misión: descubrir quién finge.';
|
|
|
|
@override
|
|
String get rulesHowToPlayTitle => '🔍 ¿Cómo se juega?';
|
|
|
|
@override
|
|
String get rulesHowToPlayBody =>
|
|
'1. Se reparten los roles: todos reciben la misma palabra, excepto el/los impostores.\n\n2. Debate: por turnos, cada jugador describe la palabra SIN decirla directamente. El impostor debe fingir que la conoce.\n\n3. Votación: al terminar el debate, todos votan a quién creen que es el impostor.\n\n4. Eliminación: el más votado queda eliminado y se revela si era impostor o no.\n\n5. Si era impostor, puede intentar adivinar la palabra. Si acierta, ¡los impostores ganan!';
|
|
|
|
@override
|
|
String get rulesWhoWinsTitle => '🏆 ¿Quién gana?';
|
|
|
|
@override
|
|
String get rulesWhoWinsBody =>
|
|
'• Jugadores: ganan si eliminan a TODOS los impostores.\n• Impostores: ganan si no son descubiertos hasta que queden igual o menos jugadores normales que impostores, o si adivinan la palabra al ser eliminados.';
|
|
|
|
@override
|
|
String get rulesTipsPlayersTitle => '💡 Consejos para jugadores';
|
|
|
|
@override
|
|
String get rulesTipsPlayersBody =>
|
|
'• Da pistas sutiles que demuestren que conoces la palabra, pero no tan obvias que el impostor las use.\n• Observa quién da respuestas vagas o genéricas.\n• Usa las notas para apuntar lo que dice cada uno.\n• No digas la palabra directamente, ¡eso ayuda al impostor!';
|
|
|
|
@override
|
|
String get rulesTipsImpostorTitle => '🎭 Consejos para el impostor';
|
|
|
|
@override
|
|
String get rulesTipsImpostorBody =>
|
|
'• Escucha atentamente las pistas de los demás.\n• Intenta deducir la palabra para dar pistas creíbles.\n• No seas el primero en hablar si no estás seguro.\n• Si te dan la categoría como pista, úsala a tu favor.\n• Acusa a otros para desviar la atención.';
|
|
|
|
@override
|
|
String get rulesModesTitle => '📱 Modos de juego';
|
|
|
|
@override
|
|
String get rulesModesBody =>
|
|
'• Un solo móvil: todos comparten el dispositivo. Cada jugador ve su palabra pulsando y manteniendo un botón.\n\n• Multimóvil: cada jugador usa su propio dispositivo. Se conectan por Bluetooth/WiFi Direct sin necesidad de internet.';
|
|
|
|
@override
|
|
String get rulesExampleTitle => '✏️ Ejemplo de partida';
|
|
|
|
@override
|
|
String get rulesExampleBody =>
|
|
'Palabra secreta: \"Pizza\"\n\n• Ana: \"Se come caliente\" ✓\n• Carlos: \"Viene en una caja\" ✓\n• Eva (impostor): \"Es muy popular\" 🤔\n• David: \"Tiene queso\" ✓\n\nEva dio una respuesta muy genérica... ¡Sospechosa!';
|
|
|
|
@override
|
|
String get joinGameTitle => 'Unirse a partida';
|
|
|
|
@override
|
|
String get multiDeviceMode => 'Modo multimóvil';
|
|
|
|
@override
|
|
String get scanQrDescription =>
|
|
'Escanea el código QR que muestra el host para conectarte a la partida vía Bluetooth/WiFi Direct.';
|
|
|
|
@override
|
|
String get comingSoon => 'Próximamente';
|
|
|
|
@override
|
|
String get nearbyNotAvailable =>
|
|
'La conexión multimóvil con Nearby Connections requiere dispositivos Android físicos.\n\nPor ahora, usa el modo \"Un solo móvil\" para jugar en un dispositivo compartido.';
|
|
|
|
@override
|
|
String get back => 'Volver';
|
|
|
|
@override
|
|
String get yes => 'Sí';
|
|
|
|
@override
|
|
String get no => 'No';
|
|
|
|
@override
|
|
String get cancel => 'Cancelar';
|
|
|
|
@override
|
|
String get accept => 'Aceptar';
|
|
|
|
@override
|
|
String get next => 'Siguiente';
|
|
|
|
@override
|
|
String get settingsTitle => 'Ajustes';
|
|
|
|
@override
|
|
String get language => 'Idioma';
|
|
|
|
@override
|
|
String get soundVolume => 'Volumen de efectos';
|
|
|
|
@override
|
|
String get vibration => 'Vibración';
|
|
|
|
@override
|
|
String get about => 'Acerca de';
|
|
|
|
@override
|
|
String get version => 'Versión';
|
|
|
|
@override
|
|
String get developer => 'Desarrollador';
|
|
|
|
@override
|
|
String get licenses => 'Licencias';
|
|
}
|