feat(i18n): fill the translation backlog and add the new strings

40 keys existed only in app_es.arb and fell back to Spanish everywhere else
(15 of them in English). Most were multi-device screens: hostGame, votar,
clueIs, whoDoYouThinkIsTheImpostor, waitingPlayersSeeWord.

Adds those plus the new keys for impostor awareness, the adjusted impostor
count, the eliminated-player notice and the reconnection screen.

51 keys across the 18 supported languages.
This commit is contained in:
2026-07-25 20:36:39 +02:00
parent 863690168c
commit b1b12cc8af
36 changed files with 3677 additions and 1206 deletions
+112 -44
View File
@@ -18,19 +18,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get loadingWords => 'Loading words...';
@override
String get matchRewards => "Game rewards";
String get matchRewards => 'Game rewards';
@override
String get newMedals => "New medals";
String get newMedals => 'New medals';
@override
String get noNewMedalsKeepFire => "No new medals this time. Keep building your fire.";
String get noNewMedalsKeepFire =>
'No new medals this time. Keep building your fire.';
@override
String get calculatingRewards => "Calculating rewards...";
String get calculatingRewards => 'Calculating rewards...';
@override
String get fireLabel => "Fire";
String get fireLabel => 'Fire';
@override
String get playersRange => '3-20 players • No internet needed';
@@ -213,16 +214,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get playersInDebate => 'Players in discussion';
@override
String voteOf(String name) {
return "Vote from $name";
}
@override
String firstTurnInstruction(String name) {
return "$name starts by saying their word.";
}
@override
String activePlayersInfo(int active, int impostors) {
return '$active active • $impostors hidden impostor(s)';
@@ -507,19 +498,20 @@ class AppLocalizationsEn extends AppLocalizations {
String get connectedPlayers => 'Connected players';
@override
String get hostGame => 'Gestor de partida';
String get hostGame => 'Game manager';
@override
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
String get waitingPlayersSeeWord =>
'Waiting for everyone to see their word...';
@override
String get activePlayers => 'Jugadores activos';
String get activePlayers => 'Active players';
@override
String get playersVoted => 'Han votado';
String get playersVoted => 'Have voted';
@override
String get waitingVoting => 'Esperando que voten...';
String get waitingVoting => 'Waiting for votes...';
@override
String get waitingForPlayers => 'Waiting for players...';
@@ -576,34 +568,34 @@ class AppLocalizationsEn extends AppLocalizations {
String get orScanQR => 'Not showing up? Scan the host\'s QR code';
@override
String get iveSeenIt => 'Ya la he visto';
String get iveSeenIt => 'I\'ve seen it';
@override
String clueIs(String category) {
return 'La pista es: $category';
return 'The clue is: $category';
}
@override
String get debatePhaseActive => 'Fase de debate activa';
String get debatePhaseActive => 'Debate phase in progress';
@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.';
'Talk to each other and say who you think the impostor is. When you\'re ready, call for a vote.';
@override
String get solicitarVotacion => 'Solicitar votación';
String get solicitarVotacion => 'Call for a vote';
@override
String get votacionSolicitada => 'Votación solicitada';
String get votacionSolicitada => 'Vote requested';
@override
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
String get whoDoYouThinkIsTheImpostor => 'Who is the impostor?';
@override
String get selectOnePlayer => 'Selecciona a un jugador para votar';
String get selectOnePlayer => 'Select a player to vote for';
@override
String get votar => 'Votar';
String get votar => 'Vote';
@override
String get selectYourProfile => 'Your profile';
@@ -624,7 +616,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get availableProfiles => 'Available profiles';
@override
String get scanThisCodeFromAnotherPhone => 'Scan this code from another phone';
String get scanThisCodeFromAnotherPhone =>
'Scan this code from another phone';
@override
String get gameUsers => 'Game users';
@@ -657,34 +650,41 @@ class AppLocalizationsEn extends AppLocalizations {
String get delete => 'Delete';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
String get selectAtLeastThreeUsersToStart =>
'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
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.';
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';
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.';
String get bluetoothLocationPermissionsRequired =>
'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
String get bluetoothLocationPermissionsShort =>
'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
String get couldNotStartSearch =>
'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
@@ -698,13 +698,15 @@ class AppLocalizationsEn extends AppLocalizations {
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
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.';
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';
@@ -716,7 +718,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
String get couldNotCreateRoom =>
'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
@@ -728,6 +731,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get defaultPlayerName => 'Player';
@override
String get play => 'Play';
@@ -759,7 +763,8 @@ class AppLocalizationsEn extends AppLocalizations {
String get errorNoGame => 'Error: no game';
@override
String get disconnectedPlayersWarning => 'Some players have a disconnected device.';
String get disconnectedPlayersWarning =>
'Some players have a disconnected device.';
@override
String get assumeOnThisPhone => 'Take over on this phone';
@@ -768,8 +773,71 @@ class AppLocalizationsEn extends AppLocalizations {
String get noResult => 'No result';
@override
String historyGameSummary(int players, int impostors, int rounds, String word, String category) {
return '$players players • $impostors impostor(s) • $rounds round(s)\n$word$category';
String historyGameSummary(
int players,
int impostors,
int rounds,
String word,
String category,
) {
return '\$players players • \$impostors impostor(s) • \$rounds round(s)\n\$word • \$category';
}
}
@override
String voteOf(String name) {
return 'Vote from $name';
}
@override
String firstTurnInstruction(String name) {
return '$name starts by saying their word.';
}
@override
String get impostorsKnowEachOther => '🎭 Impostors know each other';
@override
String get impostorsKnowEachOtherDescription =>
'Each impostor will see the names of the others';
@override
String get impostorsKnowEachOtherNeedsTwo =>
'Only applies with 2 or more impostors';
@override
String otherImpostorsTitle(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'The other impostors',
one: 'The other impostor',
);
return '$_temp0';
}
@override
String get youAreTheOnlyImpostor => 'You are the only impostor';
@override
String impostorsAdjusted(int count) {
return 'Impostors adjusted to $count for this number of players';
}
@override
String get eliminatedCannotVote => 'You\'re eliminated — you no longer vote';
@override
String get reconnecting => 'Reconnecting...';
@override
String get reconnectingHint =>
'Lost connection to the host. Your place in the game is being held.';
@override
String get leaveGame => 'Leave the game';
@override
String playerRejoined(String name) {
return '$name has rejoined the game';
}
}