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
+139 -70
View File
@@ -18,19 +18,20 @@ class AppLocalizationsDe extends AppLocalizations {
String get loadingWords => 'Wörter werden geladen...';
@override
String get matchRewards => "Spielbelohnungen";
String get matchRewards => 'Spielbelohnungen';
@override
String get newMedals => "Neue Medaillen";
String get newMedals => 'Neue Medaillen';
@override
String get noNewMedalsKeepFire => "Diesmal keine neuen Medaillen. Baue dein Feuer weiter aus.";
String get noNewMedalsKeepFire =>
'Diesmal keine neuen Medaillen. Baue dein Feuer weiter aus.';
@override
String get calculatingRewards => "Belohnungen werden berechnet...";
String get calculatingRewards => 'Belohnungen werden berechnet...';
@override
String get fireLabel => "Feuer";
String get fireLabel => 'Feuer';
@override
String get playersRange => '3-20 Spieler • Ohne Internet';
@@ -126,7 +127,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get impostorClueDescription => 'Der Hochstapler kennt die Kategorie';
@override
String get debate => '🗣️ Debate';
String get debate => '🗣️ Diskussion';
@override
String get debateTime => '⏱️ Diskussionszeit';
@@ -216,16 +217,6 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get playersInDebate => 'Spieler in der Diskussion';
@override
String voteOf(String name) {
return "Stimme von $name";
}
@override
String firstTurnInstruction(String name) {
return "$name beginnt und sagt sein/ihr Wort.";
}
@override
String activePlayersInfo(int active, int impostors) {
return '$active aktiv • $impostors versteckte(r) Hochstapler';
@@ -506,131 +497,134 @@ class AppLocalizationsDe extends AppLocalizations {
String get licenses => 'Lizenzen';
@override
String get scanToJoin => 'Escanea el QR para unirte';
String get scanToJoin => 'Scanne den QR-Code zum Beitreten';
@override
String get connectedPlayers => 'Jugadores conectados';
String get connectedPlayers => 'Verbundene Spieler';
@override
String get hostGame => 'Gestor de partida';
String get hostGame => 'Spielleitung';
@override
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
String get waitingPlayersSeeWord =>
'Warten, bis alle ihr Wort gesehen haben ...';
@override
String get activePlayers => 'Jugadores activos';
String get activePlayers => 'Aktive Spieler';
@override
String get playersVoted => 'Han votado';
String get playersVoted => 'Haben abgestimmt';
@override
String get waitingVoting => 'Esperando que voten...';
String get waitingVoting => 'Warten auf die Stimmen ...';
@override
String get waitingForPlayers => 'Esperando jugadores...';
String get waitingForPlayers => 'Warten auf Spieler ...';
@override
String needMorePlayers(int count) {
return 'Faltan $count jugadores más';
return 'Es fehlen noch $count Spieler';
}
@override
String get starting => 'Iniciando...';
String get starting => 'Wird gestartet ...';
@override
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
String get enterNameAndScan =>
'Gib deinen Namen ein und scanne den QR-Code des Hosts';
@override
String get yourName => 'Tu nombre';
String get yourName => 'Dein Name';
@override
String get nameRequired => 'Escribe tu nombre';
String get nameRequired => 'Gib deinen Namen ein';
@override
String get connectingTo => 'Conectando a';
String get connectingTo => 'Verbinde mit';
@override
String get scanQR => 'Escanear QR';
String get scanQR => 'QR-Code scannen';
@override
String get scanHostQR => 'Apunta al QR del host';
String get scanHostQR => 'Richte die Kamera auf den QR-Code des Hosts';
@override
String get connectedWaiting => '¡Conectado!';
String get connectedWaiting => 'Verbunden!';
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
String get waitingForHost => 'Warten, bis der Host das Spiel startet ...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
'Gib deinen Namen ein, um Spiele in der Nähe zu finden';
@override
String get searchGames => 'Buscar partidas';
String get searchGames => 'Spiele suchen';
@override
String get searchingGames => 'Buscando partidas cercanas...';
String get searchingGames => 'Suche nach Spielen in der Nähe ...';
@override
String get noGamesFound => 'No se encontraron partidas';
String get noGamesFound => 'Keine Spiele gefunden';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
'Stelle sicher, dass der Host den Raum geöffnet hat und ihr in der Nähe seid';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
String get orScanQR => 'Wird nicht angezeigt? Scanne den QR-Code des Hosts';
@override
String get iveSeenIt => 'Ya la he visto';
String get iveSeenIt => 'Ich habe es gesehen';
@override
String clueIs(String category) {
return 'La pista es: $category';
return 'Der Hinweis lautet: $category';
}
@override
String get debatePhaseActive => 'Fase de debate activa';
String get debatePhaseActive => 'Diskussionsphase läuft';
@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.';
'Sprecht miteinander und sagt, wen ihr für den Betrüger haltet. Wenn ihr bereit seid, fordert die Abstimmung an.';
@override
String get solicitarVotacion => 'Solicitar votación';
String get solicitarVotacion => 'Abstimmung anfordern';
@override
String get votacionSolicitada => 'Votación solicitada';
String get votacionSolicitada => 'Abstimmung angefordert';
@override
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
String get whoDoYouThinkIsTheImpostor => 'Wer ist der Betrüger?';
@override
String get selectOnePlayer => 'Selecciona a un jugador para votar';
String get selectOnePlayer => 'Wähle einen Spieler zum Abstimmen';
@override
String get votar => 'Votar';
String get votar => 'Abstimmen';
@override
String get selectYourProfile => 'Tu perfil';
String get selectYourProfile => 'Dein Profil';
@override
String get selectProfile => 'Selecciona un perfil';
String get selectProfile => 'Wähle ein Profil';
@override
String get createNewUser => 'Crear nuevo usuario';
String get createNewUser => 'Neuen Benutzer erstellen';
@override
String get userNameRequired => 'El nombre no puede estar vacio';
String get userNameRequired => 'Der Name darf nicht leer sein';
@override
String get profileSelected => 'Perfil seleccionado';
String get profileSelected => 'Profil ausgewählt';
@override
String get availableProfiles => 'Perfiles disponibles';
String get availableProfiles => 'Verfügbare Profile';
@override
String get scanThisCodeFromAnotherPhone => 'Scanne diesen Code mit einem anderen Handy';
String get scanThisCodeFromAnotherPhone =>
'Scanne diesen Code mit einem anderen Handy';
@override
String get gameUsers => 'Spielbenutzer';
@@ -663,34 +657,41 @@ class AppLocalizationsDe extends AppLocalizations {
String get delete => 'Löschen';
@override
String get selectAtLeastThreeUsersToStart => 'Wähle mindestens 3 Benutzer aus, um zu starten.';
String get selectAtLeastThreeUsersToStart =>
'Wähle mindestens 3 Benutzer aus, um zu starten.';
@override
String get hostPhoneMustSelectUser => 'Das Host-Handy muss mindestens einen Benutzer auswählen.';
String get hostPhoneMustSelectUser =>
'Das Host-Handy muss mindestens einen Benutzer auswählen.';
@override
String get roomNoLongerInLobby => 'Der Raum ist nicht mehr in der Lobby.';
@override
String get completeUserSelectionToStart => 'Schließe die Benutzerauswahl ab, um zu starten.';
String get completeUserSelectionToStart =>
'Schließe die Benutzerauswahl ab, um zu starten.';
@override
String get preparingSecureRoom => 'Sicherer Raum wird vorbereitet';
@override
String get searchingNearbyBluetoothGames => 'Suche nach Spielen in der Nähe per Bluetooth';
String get searchingNearbyBluetoothGames =>
'Suche nach Spielen in der Nähe per Bluetooth';
@override
String get tapToJoin => 'Tippen zum Beitreten';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth- und Standortberechtigungen sind erforderlich, um Spiele zu suchen.';
String get bluetoothLocationPermissionsRequired =>
'Bluetooth- und Standortberechtigungen sind erforderlich, um Spiele zu suchen.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth- und Standortberechtigungen sind erforderlich';
String get bluetoothLocationPermissionsShort =>
'Bluetooth- und Standortberechtigungen sind erforderlich';
@override
String get couldNotStartSearch => 'Suche konnte nicht gestartet werden. Prüfe Bluetooth und Standort.';
String get couldNotStartSearch =>
'Suche konnte nicht gestartet werden. Prüfe Bluetooth und Standort.';
@override
String couldNotConnectToHost(String host) {
@@ -704,13 +705,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get singleDeviceSubtitle => 'Spiel auf diesem Gerät';
@override
String get singleDeviceDescription => 'Ideal, um gemeinsam zu spielen, indem das Handy weitergegeben wird. Schnelle, direkte Einrichtung.';
String get singleDeviceDescription =>
'Ideal, um gemeinsam zu spielen, indem das Handy weitergegeben wird. Schnelle, direkte Einrichtung.';
@override
String get multiDeviceSubtitle => 'Jeder Spieler auf seinem Handy';
@override
String get multiDeviceDescription => 'Erstelle einen Premium-Raum, teile den QR-Code und verwalte Benutzer in der Lobby.';
String get multiDeviceDescription =>
'Erstelle einen Premium-Raum, teile den QR-Code und verwalte Benutzer in der Lobby.';
@override
String get singleDeviceGameLabel => 'Spiel auf diesem Gerät';
@@ -722,7 +725,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get mainDeviceUser => 'Hauptbenutzer des Geräts';
@override
String get couldNotCreateRoom => 'Raum konnte nicht erstellt werden. Prüfe Bluetooth.';
String get couldNotCreateRoom =>
'Raum konnte nicht erstellt werden. Prüfe Bluetooth.';
@override
String cannotStartWithReason(String reason) {
@@ -734,6 +738,7 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get defaultPlayerName => 'Spieler';
@override
String get play => 'Spielen';
@@ -765,7 +770,8 @@ class AppLocalizationsDe extends AppLocalizations {
String get errorNoGame => 'Fehler: Keine Partie';
@override
String get disconnectedPlayersWarning => 'Einige Spieler haben ein getrenntes Gerät.';
String get disconnectedPlayersWarning =>
'Einige Spieler haben ein getrenntes Gerät.';
@override
String get assumeOnThisPhone => 'Auf diesem Handy übernehmen';
@@ -774,8 +780,71 @@ class AppLocalizationsDe extends AppLocalizations {
String get noResult => 'Kein Ergebnis';
@override
String historyGameSummary(int players, int impostors, int rounds, String word, String category) {
return '$players Spieler • $impostors Verräter • $rounds Runden\n$word$category';
String historyGameSummary(
int players,
int impostors,
int rounds,
String word,
String category,
) {
return '\$players Spieler • \$impostors Verräter • \$rounds Runden\n\$word • \$category';
}
}
@override
String voteOf(String name) {
return 'Stimme von $name';
}
@override
String firstTurnInstruction(String name) {
return '$name beginnt und sagt sein/ihr Wort.';
}
@override
String get impostorsKnowEachOther => '🎭 Betrüger kennen einander';
@override
String get impostorsKnowEachOtherDescription =>
'Jeder Betrüger sieht die Namen der anderen';
@override
String get impostorsKnowEachOtherNeedsTwo => 'Gilt nur ab 2 Betrügern';
@override
String otherImpostorsTitle(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Die anderen Betrüger',
one: 'Der andere Betrüger',
);
return '$_temp0';
}
@override
String get youAreTheOnlyImpostor => 'Du bist der einzige Betrüger';
@override
String impostorsAdjusted(int count) {
return 'Betrüger auf $count angepasst — abhängig von der Spielerzahl';
}
@override
String get eliminatedCannotVote =>
'Du bist ausgeschieden du stimmst nicht mehr ab';
@override
String get reconnecting => 'Verbindung wird wiederhergestellt ...';
@override
String get reconnectingHint =>
'Verbindung zum Host verloren. Dein Platz im Spiel bleibt reserviert.';
@override
String get leaveGame => 'Spiel verlassen';
@override
String playerRejoined(String name) {
return '$name ist zurück im Spiel';
}
}