Files
farolero/lib/l10n/app_en.arb
ShanaiaBot d3fc3386f9 feat(multi-device): host puede participar como jugador
- Añadido modelo Usuario con pool de usuarios sincronizado
- El host ahora recibe palabra y rol como cualquier jugador
- UI de selección de perfil en pantallas de lobby
- Los clientes pueden ver usuarios del servidor o crear nuevos
- El juego no inicia hasta que el host selecciona perfil
2026-04-24 18:47:56 +02:00

266 lines
9.7 KiB
Plaintext

{
"@@locale": "en",
"appTitle": "Farolero",
"subtitle": "Social deduction game",
"loadingWords": "Loading words...",
"playersRange": "3-20 players • No internet needed",
"createGame": "Create game",
"joinGame": "Join game",
"howToPlay": "How to play",
"settings": "Settings",
"gameMode": "Game mode",
"singleDevice": "Single device",
"multiDevice": "Multi-device",
"category": "Category",
"categoryAll": "All",
"categoryAnimals": "Animals",
"categoryFood": "Food",
"categoryCountries": "Countries",
"categorySports": "Sports",
"categoryProfessions": "Professions",
"categoryObjects": "Objects",
"categoryPlaces": "Places",
"categoryMovies": "Movies",
"categoryMusic": "Music",
"categoryTechnology": "Technology",
"playersCount": "Players ({count})",
"@playersCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"playersRangeHint": "3-20",
"playerNameHint": "Player name",
"playerAlreadyExists": "A player with that name already exists",
"maxPlayersReached": "Maximum 20 players",
"minPlayersRequired": "At least 3 players are needed",
"configuration": "Configuration",
"impostors": "🎭 Impostors",
"impostorClue": "🔍 Clue for impostor",
"impostorClueDescription": "The impostor knows the category",
"debateTime": "⏱️ Discussion time",
"noLimit": "No limit",
"oneMin": "1 min",
"twoMin": "2 min",
"threeMin": "3 min",
"fiveMin": "5 min",
"startGame": "Start game",
"seeYourWord": "See your word",
"eachPlayerMustSee": "Each player must see their word in secret",
"roundNumber": "Round {round}",
"@roundNumber": {
"placeholders": {
"round": {
"type": "int"
}
}
},
"alreadySeen": "Already seen their word",
"tapToSee": "Tap to see",
"allSeenStartDebate": "Everyone has seen → Start discussion",
"playersRemaining": "{count} players remaining",
"@playersRemaining": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"youAreImpostor": "You are the impostor!",
"yourWordIs": "Your word is:",
"clueCategory": "Clue: {category}",
"@clueCategory": {
"placeholders": {
"category": {
"type": "String"
}
}
},
"holdToSeeWord": "Hold to see your word",
"makeSureNoOneLooks": "Make sure no one else is looking",
"showingWord": "👁️ Showing...",
"holdToSee": "👆 Hold to see",
"seenMyWord": "I've seen my word",
"debateRound": "Discussion - Round {round}",
"@debateRound": {
"placeholders": {
"round": {
"type": "int"
}
}
},
"timeUp": "⏰ Time's up!",
"timeRemaining": "⏱️ Time remaining",
"playersInDebate": "Players in discussion",
"activePlayersInfo": "{active} active • {impostors} hidden impostor(s)",
"@activePlayersInfo": {
"placeholders": {
"active": {
"type": "int"
},
"impostors": {
"type": "int"
}
}
},
"eliminated": "Eliminated",
"notes": "Notes",
"goToVoting": "Go to voting",
"voting": "🗳️ Voting",
"turnToVote": "Your turn to vote:",
"votesProgress": "Votes: {current}/{total}",
"@votesProgress": {
"placeholders": {
"current": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"whoIsImpostor": "Who do you think is the impostor?",
"confirmVote": "Confirm vote",
"votingComplete": "🗳️ Voting complete",
"allVoted": "Everyone has voted!",
"tapToReveal": "Tap to reveal the result",
"revealResult": "Reveal result",
"result": "Result",
"revealing": "Revealing...",
"wasImpostor": "Was the IMPOSTOR! 🎉",
"wasInnocent": "Was INNOCENT 😱",
"votesThisRound": "Votes this round",
"seeEndResult": "See final result",
"impostorGuessWord": "Can the impostor guess the word?",
"nextRound": "Next round",
"impostorGuessTitle": "🎯 Impostor's guess",
"impostorCanGuess": "The eliminated impostor can\ntry to guess the word",
"ifCorrectImpostorsWin": "If correct, the impostors win!",
"guessWordHint": "What do you think the word is?",
"dontGuess": "Don't guess",
"guess": "Guess",
"correctGuess": "Correct guess!",
"theWordWas": "The word was: {word}",
"@theWordWas": {
"placeholders": {
"word": {
"type": "String"
}
}
},
"impostorsWin": "The impostors win!",
"wrongGuess": "Wrong guess!",
"gameContinues": "The game continues...",
"gameOver": "Game over",
"playersWin": "The players win!",
"theSecretWordWas": "🔍 The word was:",
"categoryLabel": "Category: {category}",
"@categoryLabel": {
"placeholders": {
"category": {
"type": "String"
}
}
},
"theImpostorWas": "🎭 The impostor was:",
"theImpostorsWere": "🎭 The impostors were:",
"votingHistory": "📊 Voting history",
"roundElimination": "Round {round}: {name}",
"@roundElimination": {
"placeholders": {
"round": {
"type": "int"
},
"name": {
"type": "String"
}
}
},
"rematch": "Rematch",
"mainMenu": "Main menu",
"notesTitle": "📝 Notes",
"notesSaved": "Notes saved",
"whoAreYou": "Who are you?",
"selectYourName": "Select your name to view your private notes",
"notesOf": "{name}'s notes",
"@notesOf": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"notesAboutPlayers": "Notes about each player",
"playerNoteHint": "What did they say? Suspicious?",
"freeNote": "Free note",
"freeNoteHint": "Personal notes...",
"rulesTitle": "📖 How to play",
"rulesWhatIsTitle": "🎭 What is Farolero?",
"rulesWhatIsBody": "A social deduction game for 3-20 players. Everyone receives a secret word... except the impostor! Your mission: figure out who's faking it.",
"rulesHowToPlayTitle": "🔍 How do you play?",
"rulesHowToPlayBody": "1. Roles are dealt: everyone receives the same word, except the impostor(s).\n\n2. Discussion: taking turns, each player describes the word WITHOUT saying it directly. The impostor must pretend they know it.\n\n3. Voting: once the discussion ends, everyone votes on who they think the impostor is.\n\n4. Elimination: the player with the most votes is eliminated and it is revealed whether they were the impostor or not.\n\n5. If they were the impostor, they can try to guess the word. If they get it right, the impostors win!",
"rulesWhoWinsTitle": "🏆 Who wins?",
"rulesWhoWinsBody": "• Players: win by eliminating ALL impostors.\n• Impostors: win if they remain undiscovered until there are equal or fewer regular players than impostors, or if they guess the word when eliminated.",
"rulesTipsPlayersTitle": "💡 Tips for players",
"rulesTipsPlayersBody": "• Give subtle clues that prove you know the word, but not so obvious that the impostor can use them.\n• Watch for vague or generic answers.\n• Use the notes to jot down what everyone says.\n• Don't say the word directly — that helps the impostor!",
"rulesTipsImpostorTitle": "🎭 Tips for the impostor",
"rulesTipsImpostorBody": "• Listen carefully to the others' clues.\n• Try to deduce the word so you can give believable clues.\n• Don't be the first to speak if you're unsure.\n• If you're given the category as a clue, use it to your advantage.\n• Accuse others to divert attention.",
"rulesModesTitle": "📱 Game modes",
"rulesModesBody": "• Single device: everyone shares the device. Each player sees their word by pressing and holding a button.\n\n• Multi-device: each player uses their own device. They connect via Bluetooth/WiFi Direct with no internet needed.",
"rulesExampleTitle": "✏️ Example round",
"rulesExampleBody": "Secret word: \"Pizza\"\n\n• Anna: \"You eat it hot\" ✓\n• Charles: \"It comes in a box\" ✓\n• Eve (impostor): \"It's very popular\" 🤔\n• David: \"It has cheese\" ✓\n\nEve gave a very generic answer... Suspicious!",
"joinGameTitle": "Join game",
"multiDeviceMode": "Multi-device mode",
"scanQrDescription": "Scan the QR code shown by the host to connect to the game via Bluetooth/WiFi Direct.",
"comingSoon": "Coming soon",
"nearbyNotAvailable": "Multi-device connection with Nearby Connections requires physical Android devices.\n\nFor now, use the \"Single device\" mode to play on a shared device.",
"back": "Back",
"yes": "Yes",
"no": "No",
"cancel": "Cancel",
"accept": "Accept",
"next": "Next",
"settingsTitle": "Settings",
"language": "Language",
"soundVolume": "Sound effects volume",
"vibration": "Vibration",
"about": "About",
"version": "Version",
"developer": "Developer",
"licenses": "Licenses",
"scanToJoin": "Scan QR to join",
"connectedPlayers": "Connected players",
"waitingForPlayers": "Waiting for players...",
"needMorePlayers": "Need {count} more players",
"@needMorePlayers": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"starting": "Starting...",
"enterNameAndScan": "Enter your name and scan the host's QR",
"yourName": "Your name",
"nameRequired": "Enter your name",
"connectingTo": "Connecting to",
"scanQR": "Scan QR",
"scanHostQR": "Point at the host's QR code",
"connectedWaiting": "Connected!",
"waitingForHost": "Waiting for the host to start the game...",
"enterNameToSearch": "Enter your name to search for nearby games",
"searchGames": "Search games",
"searchingGames": "Searching for nearby games...",
"noGamesFound": "No games found",
"noGamesFoundHint": "Make sure the host has the room open and you are nearby",
"orScanQR": "Not showing up? Scan the host's QR code",
"selectYourProfile": "Your profile",
"selectProfile": "Select a profile",
"createNewUser": "Create new user",
"userNameRequired": "Name cannot be empty",
"profileSelected": "Profile selected",
"availableProfiles": "Available profiles"
}