Files
farolero/lib/l10n/app_es.arb
ShanaiaBot eb2662f561
Some checks failed
Build & Deploy Farolero / Análisis de código (push) Has been cancelled
Build & Deploy Farolero / Build APK + AAB release (push) Has been cancelled
fix: multidispositivo - Random seguro + gestor host + reacción clientes
- Random.secure() para selección de impostores (no predecible)
- Random.secure() también en desempate de votación
- Nueva PantallaGestorHost para coordinación multi-device
- Navegación: host va a gestor tras iniciar, no a pantalla de palabra
- PantallaPalabraCliente: cada jugador ve su palabra en su móvil
- PantallaDebateCliente: debate con timer y botón solicitar votación
- PantallaVotacionCliente: voto desde el móvil del cliente
- PantallaUnirse: listener que reacciona a partidaInicio y cambia de fase
- Protocolo: listo/voto/solicitoVotacion via Nearby hacia el host
- Nuevas cadenas l10n ES
2026-04-15 02:09:05 +02:00

281 lines
11 KiB
Plaintext

{
"@@locale": "es",
"appTitle": "Farolero",
"subtitle": "Juego de deducción social",
"loadingWords": "Cargando palabras...",
"playersRange": "3-20 jugadores • Sin internet",
"createGame": "Crear partida",
"joinGame": "Unirse a partida",
"howToPlay": "Cómo jugar",
"settings": "Ajustes",
"gameMode": "Modo de juego",
"singleDevice": "Un solo móvil",
"multiDevice": "Multimóvil",
"category": "Categoría",
"categoryAll": "Todas",
"categoryAnimals": "Animales",
"categoryFood": "Comida",
"categoryCountries": "Países",
"categorySports": "Deportes",
"categoryProfessions": "Profesiones",
"categoryObjects": "Objetos",
"categoryPlaces": "Lugares",
"categoryMovies": "Películas",
"categoryMusic": "Música",
"categoryTechnology": "Tecnología",
"playersCount": "Jugadores ({count})",
"@playersCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"playersRangeHint": "3-20",
"playerNameHint": "Nombre del jugador",
"playerAlreadyExists": "Ya existe un jugador con ese nombre",
"maxPlayersReached": "Máximo 20 jugadores",
"minPlayersRequired": "Se necesitan al menos 3 jugadores",
"configuration": "Configuración",
"impostors": "🎭 Impostores",
"impostorClue": "🔍 Pista para impostor",
"impostorClueDescription": "El impostor conoce la categoría",
"debate": "🗣️ Debate",
"debateTime": "⏱️ Tiempo de debate",
"noLimit": "Sin límite",
"oneMin": "1 min",
"twoMin": "2 min",
"threeMin": "3 min",
"fiveMin": "5 min",
"startGame": "Iniciar partida",
"seeYourWord": "Ver tu palabra",
"eachPlayerMustSee": "Cada jugador debe ver su palabra en secreto",
"roundNumber": "Ronda {round}",
"@roundNumber": {
"placeholders": {
"round": {
"type": "int"
}
}
},
"alreadySeen": "Ya ha visto su palabra",
"tapToSee": "Pulsa para ver",
"allSeenStartDebate": "Todos han visto → Iniciar debate",
"playersRemaining": "Faltan {count} jugadores",
"@playersRemaining": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"youAreImpostor": "¡Eres el impostor!",
"yourWordIs": "Tu palabra es:",
"clueCategory": "Pista: {category}",
"@clueCategory": {
"placeholders": {
"category": {
"type": "String"
}
}
},
"holdToSeeWord": "Mantén pulsado para ver tu palabra",
"makeSureNoOneLooks": "Asegúrate de que nadie más mira",
"showingWord": "👁️ Mostrando...",
"holdToSee": "👆 Mantén pulsado para ver",
"seenMyWord": "He visto mi palabra",
"debateRound": "Debate - Ronda {round}",
"@debateRound": {
"placeholders": {
"round": {
"type": "int"
}
}
},
"timeUp": "⏰ ¡Tiempo agotado!",
"timeRemaining": "⏱️ Tiempo restante",
"playersInDebate": "Jugadores en debate",
"activePlayersInfo": "{active} activos • {impostors} impostor(es) ocultos",
"@activePlayersInfo": {
"placeholders": {
"active": {
"type": "int"
},
"impostors": {
"type": "int"
}
}
},
"eliminated": "Eliminado",
"notes": "Notas",
"goToVoting": "Ir a votación",
"voting": "🗳️ Votación",
"turnToVote": "Turno de votar:",
"votesProgress": "Votos: {current}/{total}",
"@votesProgress": {
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"whoIsImpostor": "¿Quién crees que es el impostor?",
"confirmVote": "Confirmar voto",
"votingComplete": "🗳️ Votación completa",
"allVoted": "¡Todos han votado!",
"tapToReveal": "Pulsa para revelar el resultado",
"revealResult": "Revelar resultado",
"result": "Resultado",
"revealing": "Revelando...",
"wasImpostor": "¡Era IMPOSTOR! 🎉",
"wasInnocent": "Era INOCENTE 😱",
"votesThisRound": "Votos de esta ronda",
"seeEndResult": "Ver resultado final",
"impostorGuessWord": "¿El impostor adivina la palabra?",
"nextRound": "Siguiente ronda",
"impostorGuessTitle": "🎯 Adivinanza del impostor",
"impostorCanGuess": "El impostor eliminado puede\nintentar adivinar la palabra",
"ifCorrectImpostorsWin": "Si acierta, ¡los impostores ganan!",
"guessWordHint": "¿Cuál crees que es la palabra?",
"dontGuess": "No intentar",
"guess": "Adivinar",
"correctGuess": "¡Ha acertado!",
"theWordWas": "La palabra era: {word}",
"@theWordWas": {
"placeholders": {
"word": {
"type": "String"
}
}
},
"impostorsWin": "¡Los impostores ganan!",
"wrongGuess": "¡No ha acertado!",
"gameContinues": "La partida continúa...",
"gameOver": "Fin de partida",
"playersWin": "¡Los jugadores ganan!",
"theSecretWordWas": "🔍 La palabra era:",
"categoryLabel": "Categoría: {category}",
"@categoryLabel": {
"placeholders": {
"category": {
"type": "String"
}
}
},
"theImpostorWas": "🎭 El impostor era:",
"theImpostorsWere": "🎭 Los impostores eran:",
"votingHistory": "📊 Historial de votaciones",
"roundElimination": "Ronda {round}: {name}",
"@roundElimination": {
"placeholders": {
"round": {
"type": "int"
},
"name": {
"type": "String"
}
}
},
"rematch": "Revancha",
"mainMenu": "Menú principal",
"notesTitle": "📝 Notas",
"notesSaved": "Notas guardadas",
"whoAreYou": "¿Quién eres?",
"selectYourName": "Selecciona tu nombre para ver tus notas privadas",
"notesOf": "Notas de {name}",
"@notesOf": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"notesAboutPlayers": "Apuntes sobre cada jugador",
"playerNoteHint": "¿Qué ha dicho? ¿Sospechoso?",
"freeNote": "Nota libre",
"freeNoteHint": "Apuntes personales...",
"rulesTitle": "📖 Cómo jugar",
"rulesWhatIsTitle": "🎭 ¿Qué es Farolero?",
"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.",
"rulesHowToPlayTitle": "🔍 ¿Cómo se juega?",
"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!",
"rulesWhoWinsTitle": "🏆 ¿Quién gana?",
"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.",
"rulesTipsPlayersTitle": "💡 Consejos para jugadores",
"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!",
"rulesTipsImpostorTitle": "🎭 Consejos para el impostor",
"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.",
"rulesModesTitle": "📱 Modos de juego",
"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.",
"rulesExampleTitle": "✏️ Ejemplo de partida",
"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!",
"joinGameTitle": "Unirse a partida",
"multiDeviceMode": "Modo multimóvil",
"scanQrDescription": "Escanea el código QR que muestra el host para conectarte a la partida vía Bluetooth/WiFi Direct.",
"comingSoon": "Próximamente",
"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.",
"back": "Volver",
"yes": "Sí",
"no": "No",
"cancel": "Cancelar",
"accept": "Aceptar",
"next": "Siguiente",
"settingsTitle": "Ajustes",
"language": "Idioma",
"soundVolume": "Volumen de efectos",
"vibration": "Vibración",
"about": "Acerca de",
"version": "Versión",
"developer": "Desarrollador",
"licenses": "Licencias",
"scanToJoin": "Escanea el QR para unirte",
"connectedPlayers": "Jugadores conectados",
"hostGame": "Gestor de partida",
"waitingPlayersSeeWord": "Esperando que todos vean su palabra...",
"activePlayers": "Jugadores activos",
"playersVoted": "Han votado",
"waitingVoting": "Esperando que voten...",
"waitingForPlayers": "Esperando jugadores...",
"needMorePlayers": "Faltan {count} jugadores más",
"@needMorePlayers": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"starting": "Iniciando...",
"enterNameAndScan": "Escribe tu nombre y escanea el QR del host",
"yourName": "Tu nombre",
"nameRequired": "Escribe tu nombre",
"connectingTo": "Conectando a",
"scanQR": "Escanear QR",
"scanHostQR": "Apunta al QR del host",
"connectedWaiting": "¡Conectado!",
"waitingForHost": "Esperando a que el host inicie la partida...",
"enterNameToSearch": "Escribe tu nombre para buscar partidas cercanas",
"searchGames": "Buscar partidas",
"searchingGames": "Buscando partidas cercanas...",
"noGamesFound": "No se encontraron partidas",
"noGamesFoundHint": "Asegúrate de que el host tiene la sala abierta y estáis cerca",
"orScanQR": "¿No aparece? Escanea el QR del host",
"iveSeenIt": "Ya la he visto",
"clueIs": "La pista es: {category}",
"@clueIs": {
"placeholders": {
"category": {
"type": "String"
}
}
},
"debatePhaseActive": "Fase de debate activa",
"debateInstructions": "Hablad entre vosotros y decid quién creéis que es el impostor. Cuando estéis listos, solicitad la votación.",
"solicitarVotacion": "Solicitar votación",
"votacionSolicitada": "Votación solicitada",
"whoDoYouThinkIsTheImpostor": "¿Quién es el impostor?",
"selectOnePlayer": "Selecciona a un jugador para votar",
"votar": "Votar"
}