Files
farolero/lib/l10n/app_es.arb
ShanaiaBot 757344ca48
All checks were successful
Build & Deploy Farolero / Análisis de código (push) Successful in 9s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m7s
feat: discovery automático + QR como fallback en PantallaUnirse
- Discovery: busca hosts cercanos automáticamente y los muestra en lista
- Cada host aparece como tile tocable con nombre de la sala
- QR fallback: botón 'Escanear QR' debajo de la lista
- ServicioNearby: hostsEncontrados map, pararBusqueda(), no auto-connect
- Flujo: nombre → buscar → lista de salas (o QR) → conectar → espera
- l10n: searchGames, searchingGames, noGamesFound, orScanQR (es/en)
2026-04-04 03:20:36 +02:00

259 lines
9.8 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",
"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",
"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"
}