- ServicioNearby completo: P2P_STAR, auto-accept, protocolo mensajes - PantallaLobbyHost: QR code + lista jugadores tiempo real - PantallaUnirse: escaneo QR + conexión + sala espera - Protocolo MensajeP2P: salaInfo, partidaInicio, fase, voto, resultado, fin - Manejo desconexiones jugador/host - l10n: nuevas keys es/en - Version bump 1.1.0+5
521 lines
13 KiB
Dart
521 lines
13 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for German (`de`).
|
|
class AppLocalizationsDe extends AppLocalizations {
|
|
AppLocalizationsDe([String locale = 'de']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'Farolero';
|
|
|
|
@override
|
|
String get subtitle => 'Soziales Deduktionsspiel';
|
|
|
|
@override
|
|
String get loadingWords => 'Wörter werden geladen...';
|
|
|
|
@override
|
|
String get playersRange => '3-20 Spieler • Ohne Internet';
|
|
|
|
@override
|
|
String get createGame => 'Spiel erstellen';
|
|
|
|
@override
|
|
String get joinGame => 'Spiel beitreten';
|
|
|
|
@override
|
|
String get howToPlay => 'Spielanleitung';
|
|
|
|
@override
|
|
String get settings => 'Einstellungen';
|
|
|
|
@override
|
|
String get gameMode => 'Spielmodus';
|
|
|
|
@override
|
|
String get singleDevice => 'Ein Gerät';
|
|
|
|
@override
|
|
String get multiDevice => 'Mehrere Geräte';
|
|
|
|
@override
|
|
String get category => 'Kategorie';
|
|
|
|
@override
|
|
String get categoryAll => 'Alle';
|
|
|
|
@override
|
|
String get categoryAnimals => 'Tiere';
|
|
|
|
@override
|
|
String get categoryFood => 'Essen';
|
|
|
|
@override
|
|
String get categoryCountries => 'Länder';
|
|
|
|
@override
|
|
String get categorySports => 'Sport';
|
|
|
|
@override
|
|
String get categoryProfessions => 'Berufe';
|
|
|
|
@override
|
|
String get categoryObjects => 'Gegenstände';
|
|
|
|
@override
|
|
String get categoryPlaces => 'Orte';
|
|
|
|
@override
|
|
String get categoryMovies => 'Filme';
|
|
|
|
@override
|
|
String get categoryMusic => 'Musik';
|
|
|
|
@override
|
|
String get categoryTechnology => 'Technologie';
|
|
|
|
@override
|
|
String playersCount(int count) {
|
|
return 'Spieler ($count)';
|
|
}
|
|
|
|
@override
|
|
String get playersRangeHint => '3-20';
|
|
|
|
@override
|
|
String get playerNameHint => 'Name des Spielers';
|
|
|
|
@override
|
|
String get playerAlreadyExists =>
|
|
'Ein Spieler mit diesem Namen existiert bereits';
|
|
|
|
@override
|
|
String get maxPlayersReached => 'Maximal 20 Spieler';
|
|
|
|
@override
|
|
String get minPlayersRequired => 'Mindestens 3 Spieler erforderlich';
|
|
|
|
@override
|
|
String get configuration => 'Konfiguration';
|
|
|
|
@override
|
|
String get impostors => '🎭 Hochstapler';
|
|
|
|
@override
|
|
String get impostorClue => '🔍 Hinweis für den Hochstapler';
|
|
|
|
@override
|
|
String get impostorClueDescription => 'Der Hochstapler kennt die Kategorie';
|
|
|
|
@override
|
|
String get debateTime => '⏱️ Diskussionszeit';
|
|
|
|
@override
|
|
String get noLimit => 'Kein Limit';
|
|
|
|
@override
|
|
String get oneMin => '1 Min';
|
|
|
|
@override
|
|
String get twoMin => '2 Min';
|
|
|
|
@override
|
|
String get threeMin => '3 Min';
|
|
|
|
@override
|
|
String get fiveMin => '5 Min';
|
|
|
|
@override
|
|
String get startGame => 'Spiel starten';
|
|
|
|
@override
|
|
String get seeYourWord => 'Dein Wort ansehen';
|
|
|
|
@override
|
|
String get eachPlayerMustSee =>
|
|
'Jeder Spieler muss sein Wort im Geheimen ansehen';
|
|
|
|
@override
|
|
String roundNumber(int round) {
|
|
return 'Runde $round';
|
|
}
|
|
|
|
@override
|
|
String get alreadySeen => 'Hat sein Wort bereits gesehen';
|
|
|
|
@override
|
|
String get tapToSee => 'Tippen zum Ansehen';
|
|
|
|
@override
|
|
String get allSeenStartDebate => 'Alle haben gesehen → Diskussion starten';
|
|
|
|
@override
|
|
String playersRemaining(int count) {
|
|
return 'Noch $count Spieler übrig';
|
|
}
|
|
|
|
@override
|
|
String get youAreImpostor => 'Du bist der Hochstapler!';
|
|
|
|
@override
|
|
String get yourWordIs => 'Dein Wort ist:';
|
|
|
|
@override
|
|
String clueCategory(String category) {
|
|
return 'Hinweis: $category';
|
|
}
|
|
|
|
@override
|
|
String get holdToSeeWord => 'Gedrückt halten, um dein Wort zu sehen';
|
|
|
|
@override
|
|
String get makeSureNoOneLooks =>
|
|
'Stelle sicher, dass niemand anderes hinschaut';
|
|
|
|
@override
|
|
String get showingWord => '👁️ Wird angezeigt...';
|
|
|
|
@override
|
|
String get holdToSee => '👆 Gedrückt halten zum Ansehen';
|
|
|
|
@override
|
|
String get seenMyWord => 'Ich habe mein Wort gesehen';
|
|
|
|
@override
|
|
String debateRound(int round) {
|
|
return 'Diskussion - Runde $round';
|
|
}
|
|
|
|
@override
|
|
String get timeUp => '⏰ Zeit abgelaufen!';
|
|
|
|
@override
|
|
String get timeRemaining => '⏱️ Verbleibende Zeit';
|
|
|
|
@override
|
|
String get playersInDebate => 'Spieler in der Diskussion';
|
|
|
|
@override
|
|
String activePlayersInfo(int active, int impostors) {
|
|
return '$active aktiv • $impostors versteckte(r) Hochstapler';
|
|
}
|
|
|
|
@override
|
|
String get eliminated => 'Ausgeschieden';
|
|
|
|
@override
|
|
String get notes => 'Notizen';
|
|
|
|
@override
|
|
String get goToVoting => 'Zur Abstimmung';
|
|
|
|
@override
|
|
String get voting => '🗳️ Abstimmung';
|
|
|
|
@override
|
|
String get turnToVote => 'Jetzt abstimmen:';
|
|
|
|
@override
|
|
String votesProgress(int current, int total) {
|
|
return 'Stimmen: $current/$total';
|
|
}
|
|
|
|
@override
|
|
String get whoIsImpostor => 'Wer ist deiner Meinung nach der Hochstapler?';
|
|
|
|
@override
|
|
String get confirmVote => 'Stimme bestätigen';
|
|
|
|
@override
|
|
String get votingComplete => '🗳️ Abstimmung abgeschlossen';
|
|
|
|
@override
|
|
String get allVoted => 'Alle haben abgestimmt!';
|
|
|
|
@override
|
|
String get tapToReveal => 'Tippen, um das Ergebnis aufzudecken';
|
|
|
|
@override
|
|
String get revealResult => 'Ergebnis aufdecken';
|
|
|
|
@override
|
|
String get result => 'Ergebnis';
|
|
|
|
@override
|
|
String get revealing => 'Wird aufgedeckt...';
|
|
|
|
@override
|
|
String get wasImpostor => 'War ein HOCHSTAPLER! 🎉';
|
|
|
|
@override
|
|
String get wasInnocent => 'War UNSCHULDIG 😱';
|
|
|
|
@override
|
|
String get votesThisRound => 'Stimmen dieser Runde';
|
|
|
|
@override
|
|
String get seeEndResult => 'Endergebnis anzeigen';
|
|
|
|
@override
|
|
String get impostorGuessWord => 'Errät der Hochstapler das Wort?';
|
|
|
|
@override
|
|
String get nextRound => 'Nächste Runde';
|
|
|
|
@override
|
|
String get impostorGuessTitle => '🎯 Tipp des Hochstaplers';
|
|
|
|
@override
|
|
String get impostorCanGuess =>
|
|
'Der ausgeschiedene Hochstapler kann\nversuchen, das Wort zu erraten';
|
|
|
|
@override
|
|
String get ifCorrectImpostorsWin =>
|
|
'Bei richtigem Tipp gewinnen die Hochstapler!';
|
|
|
|
@override
|
|
String get guessWordHint => 'Was glaubst du, ist das Wort?';
|
|
|
|
@override
|
|
String get dontGuess => 'Nicht versuchen';
|
|
|
|
@override
|
|
String get guess => 'Raten';
|
|
|
|
@override
|
|
String get correctGuess => 'Richtig geraten!';
|
|
|
|
@override
|
|
String theWordWas(String word) {
|
|
return 'Das Wort war: $word';
|
|
}
|
|
|
|
@override
|
|
String get impostorsWin => 'Die Hochstapler gewinnen!';
|
|
|
|
@override
|
|
String get wrongGuess => 'Falsch geraten!';
|
|
|
|
@override
|
|
String get gameContinues => 'Das Spiel geht weiter...';
|
|
|
|
@override
|
|
String get gameOver => 'Spielende';
|
|
|
|
@override
|
|
String get playersWin => 'Die Spieler gewinnen!';
|
|
|
|
@override
|
|
String get theSecretWordWas => '🔍 Das Wort war:';
|
|
|
|
@override
|
|
String categoryLabel(String category) {
|
|
return 'Kategorie: $category';
|
|
}
|
|
|
|
@override
|
|
String get theImpostorWas => '🎭 Der Hochstapler war:';
|
|
|
|
@override
|
|
String get theImpostorsWere => '🎭 Die Hochstapler waren:';
|
|
|
|
@override
|
|
String get votingHistory => '📊 Abstimmungsverlauf';
|
|
|
|
@override
|
|
String roundElimination(int round, String name) {
|
|
return 'Runde $round: $name';
|
|
}
|
|
|
|
@override
|
|
String get rematch => 'Revanche';
|
|
|
|
@override
|
|
String get mainMenu => 'Hauptmenü';
|
|
|
|
@override
|
|
String get notesTitle => '📝 Notizen';
|
|
|
|
@override
|
|
String get notesSaved => 'Notizen gespeichert';
|
|
|
|
@override
|
|
String get whoAreYou => 'Wer bist du?';
|
|
|
|
@override
|
|
String get selectYourName =>
|
|
'Wähle deinen Namen, um deine privaten Notizen zu sehen';
|
|
|
|
@override
|
|
String notesOf(String name) {
|
|
return 'Notizen von $name';
|
|
}
|
|
|
|
@override
|
|
String get notesAboutPlayers => 'Notizen zu jedem Spieler';
|
|
|
|
@override
|
|
String get playerNoteHint => 'Was hat er/sie gesagt? Verdächtig?';
|
|
|
|
@override
|
|
String get freeNote => 'Freie Notiz';
|
|
|
|
@override
|
|
String get freeNoteHint => 'Persönliche Notizen...';
|
|
|
|
@override
|
|
String get rulesTitle => '📖 Spielanleitung';
|
|
|
|
@override
|
|
String get rulesWhatIsTitle => '🎭 Was ist Der Hochstapler?';
|
|
|
|
@override
|
|
String get rulesWhatIsBody =>
|
|
'Ein soziales Deduktionsspiel für 3-20 Spieler. Alle erhalten ein geheimes Wort... außer der Hochstapler! Deine Mission: herausfinden, wer blufft.';
|
|
|
|
@override
|
|
String get rulesHowToPlayTitle => '🔍 Wie wird gespielt?';
|
|
|
|
@override
|
|
String get rulesHowToPlayBody =>
|
|
'1. Die Rollen werden verteilt: Alle erhalten dasselbe Wort, außer der/die Hochstapler.\n\n2. Diskussion: Reihum beschreibt jeder Spieler das Wort, OHNE es direkt zu sagen. Der Hochstapler muss so tun, als ob er es kennt.\n\n3. Abstimmung: Nach der Diskussion stimmen alle ab, wer ihrer Meinung nach der Hochstapler ist.\n\n4. Ausscheiden: Der Spieler mit den meisten Stimmen scheidet aus und es wird aufgedeckt, ob er der Hochstapler war oder nicht.\n\n5. War es der Hochstapler, darf er versuchen, das Wort zu erraten. Bei richtigem Tipp gewinnen die Hochstapler!';
|
|
|
|
@override
|
|
String get rulesWhoWinsTitle => '🏆 Wer gewinnt?';
|
|
|
|
@override
|
|
String get rulesWhoWinsBody =>
|
|
'• Spieler: gewinnen, wenn sie ALLE Hochstapler entlarven.\n• Hochstapler: gewinnen, wenn sie nicht entdeckt werden, bis gleich viele oder weniger normale Spieler als Hochstapler übrig sind, oder wenn sie beim Ausscheiden das Wort erraten.';
|
|
|
|
@override
|
|
String get rulesTipsPlayersTitle => '💡 Tipps für Spieler';
|
|
|
|
@override
|
|
String get rulesTipsPlayersBody =>
|
|
'• Gib subtile Hinweise, die zeigen, dass du das Wort kennst, aber nicht so offensichtlich, dass der Hochstapler sie nutzen kann.\n• Achte darauf, wer vage oder allgemeine Antworten gibt.\n• Nutze die Notizen, um aufzuschreiben, was jeder sagt.\n• Sage das Wort nicht direkt, das hilft dem Hochstapler!';
|
|
|
|
@override
|
|
String get rulesTipsImpostorTitle => '🎭 Tipps für den Hochstapler';
|
|
|
|
@override
|
|
String get rulesTipsImpostorBody =>
|
|
'• Höre aufmerksam auf die Hinweise der anderen.\n• Versuche das Wort zu erraten, um glaubwürdige Hinweise zu geben.\n• Sprich nicht als Erster, wenn du dir unsicher bist.\n• Wenn du die Kategorie als Hinweis bekommst, nutze sie zu deinem Vorteil.\n• Beschuldige andere, um die Aufmerksamkeit abzulenken.';
|
|
|
|
@override
|
|
String get rulesModesTitle => '📱 Spielmodi';
|
|
|
|
@override
|
|
String get rulesModesBody =>
|
|
'• Ein Gerät: Alle teilen sich das Gerät. Jeder Spieler sieht sein Wort, indem er einen Button gedrückt hält.\n\n• Mehrere Geräte: Jeder Spieler nutzt sein eigenes Gerät. Die Verbindung erfolgt über Bluetooth/WiFi Direct ohne Internetzugang.';
|
|
|
|
@override
|
|
String get rulesExampleTitle => '✏️ Beispielrunde';
|
|
|
|
@override
|
|
String get rulesExampleBody =>
|
|
'Geheimes Wort: \"Pizza\"\n\n• Lisa: \"Man isst es warm\" ✓\n• Max: \"Kommt in einer Schachtel\" ✓\n• Nina (Hochstapler): \"Ist sehr beliebt\" 🤔\n• Felix: \"Hat Käse drauf\" ✓\n\nNina gab eine sehr allgemeine Antwort... Verdächtig!';
|
|
|
|
@override
|
|
String get joinGameTitle => 'Spiel beitreten';
|
|
|
|
@override
|
|
String get multiDeviceMode => 'Mehrere-Geräte-Modus';
|
|
|
|
@override
|
|
String get scanQrDescription =>
|
|
'Scanne den QR-Code des Hosts, um der Partie über Bluetooth/WiFi Direct beizutreten.';
|
|
|
|
@override
|
|
String get comingSoon => 'Demnächst';
|
|
|
|
@override
|
|
String get nearbyNotAvailable =>
|
|
'Die Mehrgeräte-Verbindung mit Nearby Connections erfordert physische Android-Geräte.\n\nVerwende vorerst den Modus \"Ein Gerät\", um auf einem gemeinsamen Gerät zu spielen.';
|
|
|
|
@override
|
|
String get back => 'Zurück';
|
|
|
|
@override
|
|
String get yes => 'Ja';
|
|
|
|
@override
|
|
String get no => 'Nein';
|
|
|
|
@override
|
|
String get cancel => 'Abbrechen';
|
|
|
|
@override
|
|
String get accept => 'Akzeptieren';
|
|
|
|
@override
|
|
String get next => 'Weiter';
|
|
|
|
@override
|
|
String get settingsTitle => 'Einstellungen';
|
|
|
|
@override
|
|
String get language => 'Sprache';
|
|
|
|
@override
|
|
String get soundVolume => 'Effektlautstärke';
|
|
|
|
@override
|
|
String get vibration => 'Vibration';
|
|
|
|
@override
|
|
String get about => 'Über';
|
|
|
|
@override
|
|
String get version => 'Version';
|
|
|
|
@override
|
|
String get developer => 'Entwickler';
|
|
|
|
@override
|
|
String get licenses => 'Lizenzen';
|
|
|
|
@override
|
|
String get scanToJoin => 'Escanea el QR para unirte';
|
|
|
|
@override
|
|
String get connectedPlayers => 'Jugadores conectados';
|
|
|
|
@override
|
|
String get waitingForPlayers => 'Esperando jugadores...';
|
|
|
|
@override
|
|
String needMorePlayers(int count) {
|
|
return 'Faltan $count jugadores más';
|
|
}
|
|
|
|
@override
|
|
String get starting => 'Iniciando...';
|
|
|
|
@override
|
|
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
|
|
|
|
@override
|
|
String get yourName => 'Tu nombre';
|
|
|
|
@override
|
|
String get nameRequired => 'Escribe tu nombre';
|
|
|
|
@override
|
|
String get connectingTo => 'Conectando a';
|
|
|
|
@override
|
|
String get scanQR => 'Escanear QR';
|
|
|
|
@override
|
|
String get scanHostQR => 'Apunta al QR del host';
|
|
|
|
@override
|
|
String get connectedWaiting => '¡Conectado!';
|
|
|
|
@override
|
|
String get waitingForHost => 'Esperando a que el host inicie la partida...';
|
|
}
|