Files
farolero/lib/l10n/generated/app_localizations_it.dart
T
FreeTLab 56f07364c2
Build & Deploy Farolero / Análisis de código (push) Successful in 13s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m22s
feat: confirm before leaving a game, and fix untranslated strings
Exit confirmation
- A dialog in the app's own style now guards every in-game screen. The safe
  action is the prominent one, so a stray tap keeps you in the game.
- Eleven screens covered, against both the system back gesture and the close
  buttons. The message adapts: a single-device game is lost, a host ends it
  for everyone, a client can rejoin.
- The two screens the host also opens from the manager take a flag so that
  back there just closes them instead of offering to quit.

Translations
- 21 keys were still holding the English text in Arabic, Basque, Hindi,
  Japanese, Korean, Dutch, Polish, Russian, Turkish and both Chinese
  variants: 231 strings, covering the whole multi-device flow, permissions
  and the mode picker. Nothing failed, the app just showed English.
- The permissions dialog was hardcoded in Spanish; it is localized now.
- Portuguese used Spanish gerunds where pt-PT takes "a + infinitive".

Checked what looked untranslated but is not: Animals and Notes are correct
Catalan, Configuration and Vibration correct French, Version correct German.
Those are whitelisted in the new test rather than silently rewritten.

l10n_cobertura_test guards all of it: no missing or orphan keys, no empty
values, no English left outside the whitelist, and placeholders preserved.
2026-07-25 23:59:57 +02:00

894 lines
22 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Italian (`it`).
class AppLocalizationsIt extends AppLocalizations {
AppLocalizationsIt([String locale = 'it']) : super(locale);
@override
String get appTitle => 'Farolero';
@override
String get subtitle => 'Gioco di deduzione sociale';
@override
String get loadingWords => 'Caricamento parole...';
@override
String get matchRewards => 'Ricompense partita';
@override
String get newMedals => 'Nuove medaglie';
@override
String get noNewMedalsKeepFire =>
'Nessuna nuova medaglia questa volta. Continua ad alimentare il fuoco.';
@override
String get calculatingRewards => 'Calcolo ricompense...';
@override
String get fireLabel => 'Fuoco';
@override
String get playersRange => '3-20 giocatori • Senza internet';
@override
String get createGame => 'Crea partita';
@override
String get joinGame => 'Unisciti alla partita';
@override
String get howToPlay => 'Come giocare';
@override
String get settings => 'Impostazioni';
@override
String get gameMode => 'Modalità di gioco';
@override
String get singleDevice => 'Un solo dispositivo';
@override
String get multiDevice => 'Multi-dispositivo';
@override
String get category => 'Categoria';
@override
String get categoryAll => 'Tutte';
@override
String get categoryAnimals => 'Animali';
@override
String get categoryFood => 'Cibo';
@override
String get categoryCountries => 'Paesi';
@override
String get categorySports => 'Sport';
@override
String get categoryProfessions => 'Professioni';
@override
String get categoryObjects => 'Oggetti';
@override
String get categoryPlaces => 'Luoghi';
@override
String get categoryMovies => 'Film';
@override
String get categoryMusic => 'Musica';
@override
String get categoryTechnology => 'Tecnologia';
@override
String playersCount(int count) {
return 'Giocatori ($count)';
}
@override
String get playersRangeHint => '3-20';
@override
String get playerNameHint => 'Nome del giocatore';
@override
String get playerAlreadyExists => 'Esiste già un giocatore con questo nome';
@override
String get maxPlayersReached => 'Massimo 20 giocatori';
@override
String get minPlayersRequired => 'Servono almeno 3 giocatori';
@override
String get configuration => 'Configurazione';
@override
String get impostors => '🎭 Impostori';
@override
String get impostorClue => '🔍 Indizio per l\'impostore';
@override
String get impostorClueDescription => 'L\'impostore conosce la categoria';
@override
String get debate => '🗣️ Dibattito';
@override
String get debateTime => '⏱️ Tempo di discussione';
@override
String get noLimit => 'Senza limite';
@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 => 'Inizia partita';
@override
String get seeYourWord => 'Vedi la tua parola';
@override
String get eachPlayerMustSee =>
'Ogni giocatore deve vedere la propria parola in segreto';
@override
String roundNumber(int round) {
return 'Round $round';
}
@override
String get alreadySeen => 'Ha già visto la sua parola';
@override
String get tapToSee => 'Tocca per vedere';
@override
String get allSeenStartDebate => 'Tutti hanno visto → Inizia discussione';
@override
String playersRemaining(int count) {
return 'Mancano $count giocatori';
}
@override
String get youAreImpostor => 'Sei l\'impostore!';
@override
String get yourWordIs => 'La tua parola è:';
@override
String clueCategory(String category) {
return 'Indizio: $category';
}
@override
String get holdToSeeWord => 'Tieni premuto per vedere la tua parola';
@override
String get makeSureNoOneLooks => 'Assicurati che nessun altro stia guardando';
@override
String get showingWord => '👁️ Mostrando...';
@override
String get holdToSee => '👆 Tieni premuto per vedere';
@override
String get seenMyWord => 'Ho visto la mia parola';
@override
String debateRound(int round) {
return 'Discussione - Round $round';
}
@override
String get timeUp => '⏰ Tempo scaduto!';
@override
String get timeRemaining => '⏱️ Tempo rimanente';
@override
String get playersInDebate => 'Giocatori in discussione';
@override
String activePlayersInfo(int active, int impostors) {
return '$active attivi • $impostors impostore/i nascosti';
}
@override
String get eliminated => 'Eliminato';
@override
String get notes => 'Note';
@override
String get goToVoting => 'Vai alla votazione';
@override
String get voting => '🗳️ Votazione';
@override
String get turnToVote => 'Turno di votare:';
@override
String votesProgress(int current, int total) {
return 'Voti: $current/$total';
}
@override
String get whoIsImpostor => 'Chi pensi sia l\'impostore?';
@override
String get confirmVote => 'Conferma voto';
@override
String get votingComplete => '🗳️ Votazione completata';
@override
String get allVoted => 'Tutti hanno votato!';
@override
String get tapToReveal => 'Tocca per rivelare il risultato';
@override
String get revealResult => 'Rivela risultato';
@override
String get result => 'Risultato';
@override
String get revealing => 'Rivelando...';
@override
String get wasImpostor => 'Era un IMPOSTORE! 🎉';
@override
String get wasInnocent => 'Era INNOCENTE 😱';
@override
String get votesThisRound => 'Voti di questo round';
@override
String get seeEndResult => 'Vedi risultato finale';
@override
String get impostorGuessWord => 'L\'impostore indovina la parola?';
@override
String get nextRound => 'Prossimo round';
@override
String get impostorGuessTitle => '🎯 Tentativo dell\'impostore';
@override
String get impostorCanGuess =>
'L\'impostore eliminato può\nprovare a indovinare la parola';
@override
String get ifCorrectImpostorsWin => 'Se indovina, gli impostori vincono!';
@override
String get guessWordHint => 'Qual è secondo te la parola?';
@override
String get dontGuess => 'Non provare';
@override
String get guess => 'Indovina';
@override
String get correctGuess => 'Ha indovinato!';
@override
String theWordWas(String word) {
return 'La parola era: $word';
}
@override
String get impostorsWin => 'Gli impostori vincono!';
@override
String get wrongGuess => 'Non ha indovinato!';
@override
String get gameContinues => 'La partita continua...';
@override
String get gameOver => 'Fine della partita';
@override
String get playersWin => 'I giocatori vincono!';
@override
String get theSecretWordWas => '🔍 La parola era:';
@override
String categoryLabel(String category) {
return 'Categoria: $category';
}
@override
String get theImpostorWas => '🎭 L\'impostore era:';
@override
String get theImpostorsWere => '🎭 Gli impostori erano:';
@override
String get votingHistory => '📊 Cronologia delle votazioni';
@override
String roundElimination(int round, String name) {
return 'Round $round: $name';
}
@override
String get rematch => 'Rivincita';
@override
String get mainMenu => 'Menu principale';
@override
String get notesTitle => '📝 Note';
@override
String get notesSaved => 'Note salvate';
@override
String get whoAreYou => 'Chi sei?';
@override
String get selectYourName =>
'Seleziona il tuo nome per vedere le tue note private';
@override
String notesOf(String name) {
return 'Note di $name';
}
@override
String get notesAboutPlayers => 'Appunti su ogni giocatore';
@override
String get playerNoteHint => 'Cosa ha detto? Sospetto?';
@override
String get freeNote => 'Nota libera';
@override
String get freeNoteHint => 'Appunti personali...';
@override
String get rulesTitle => '📖 Come giocare';
@override
String get rulesWhatIsTitle => '🎭 Cos\'è L\'Impostore?';
@override
String get rulesWhatIsBody =>
'Un gioco di deduzione sociale per 3-20 giocatori. Tutti ricevono una parola segreta... tranne l\'impostore! La tua missione: scoprire chi sta fingendo.';
@override
String get rulesHowToPlayTitle => '🔍 Come si gioca?';
@override
String get rulesHowToPlayBody =>
'1. Si assegnano i ruoli: tutti ricevono la stessa parola, tranne l\'impostore/gli impostori.\n\n2. Discussione: a turno, ogni giocatore descrive la parola SENZA dirla direttamente. L\'impostore deve fingere di conoscerla.\n\n3. Votazione: al termine della discussione, tutti votano chi pensano sia l\'impostore.\n\n4. Eliminazione: il più votato viene eliminato e si rivela se era l\'impostore o meno.\n\n5. Se era l\'impostore, può provare a indovinare la parola. Se indovina, gli impostori vincono!';
@override
String get rulesWhoWinsTitle => '🏆 Chi vince?';
@override
String get rulesWhoWinsBody =>
'• Giocatori: vincono se eliminano TUTTI gli impostori.\n• Impostori: vincono se non vengono scoperti finché non restano pari o meno giocatori normali rispetto agli impostori, oppure se indovinano la parola al momento dell\'eliminazione.';
@override
String get rulesTipsPlayersTitle => '💡 Consigli per i giocatori';
@override
String get rulesTipsPlayersBody =>
'• Dai indizi sottili che dimostrino che conosci la parola, ma non così ovvi da permettere all\'impostore di usarli.\n• Osserva chi dà risposte vaghe o generiche.\n• Usa le note per appuntare quello che dice ognuno.\n• Non dire la parola direttamente, questo aiuta l\'impostore!';
@override
String get rulesTipsImpostorTitle => '🎭 Consigli per l\'impostore';
@override
String get rulesTipsImpostorBody =>
'• Ascolta attentamente gli indizi degli altri.\n• Cerca di dedurre la parola per dare indizi credibili.\n• Non essere il primo a parlare se non sei sicuro.\n• Se ti danno la categoria come indizio, usala a tuo vantaggio.\n• Accusa gli altri per deviare l\'attenzione.';
@override
String get rulesModesTitle => '📱 Modalità di gioco';
@override
String get rulesModesBody =>
'• Un solo dispositivo: tutti condividono il dispositivo. Ogni giocatore vede la propria parola tenendo premuto un pulsante.\n\n• Multi-dispositivo: ogni giocatore usa il proprio dispositivo. Si connettono tramite Bluetooth/WiFi Direct senza bisogno di internet.';
@override
String get rulesExampleTitle => '✏️ Esempio di partita';
@override
String get rulesExampleBody =>
'Parola segreta: \"Pizza\"\n\n• Marco: \"Si mangia calda\"\n• Giulia: \"Arriva in una scatola\"\n• Luca (impostore): \"È molto popolare\" 🤔\n• Sofia: \"Ha il formaggio\"\n\nLuca ha dato una risposta molto generica... Sospetto!';
@override
String get joinGameTitle => 'Unisciti alla partita';
@override
String get multiDeviceMode => 'Modalità multi-dispositivo';
@override
String get scanQrDescription =>
'Scansiona il codice QR mostrato dall\'host per connetterti alla partita tramite Bluetooth/WiFi Direct.';
@override
String get comingSoon => 'Prossimamente';
@override
String get nearbyNotAvailable =>
'La connessione multi-dispositivo con Nearby Connections richiede dispositivi Android fisici.\n\nPer ora, usa la modalità \"Un solo dispositivo\" per giocare su un dispositivo condiviso.';
@override
String get back => 'Indietro';
@override
String get yes => 'Sì';
@override
String get no => 'No';
@override
String get cancel => 'Annulla';
@override
String get accept => 'Accetta';
@override
String get next => 'Avanti';
@override
String get settingsTitle => 'Impostazioni';
@override
String get language => 'Lingua';
@override
String get soundVolume => 'Volume effetti';
@override
String get vibration => 'Vibrazione';
@override
String get about => 'Informazioni';
@override
String get version => 'Versione';
@override
String get developer => 'Sviluppatore';
@override
String get licenses => 'Licenze';
@override
String get scanToJoin => 'Scansiona il QR per unirti';
@override
String get connectedPlayers => 'Giocatori connessi';
@override
String get hostGame => 'Gestione partita';
@override
String get waitingPlayersSeeWord =>
'In attesa che tutti vedano la propria parola...';
@override
String get activePlayers => 'Giocatori attivi';
@override
String get playersVoted => 'Hanno votato';
@override
String get waitingVoting => 'In attesa dei voti...';
@override
String get waitingForPlayers => 'In attesa di giocatori...';
@override
String needMorePlayers(int count) {
return 'Mancano ancora $count giocatori';
}
@override
String get starting => 'Avvio...';
@override
String get enterNameAndScan =>
'Scrivi il tuo nome e scansiona il QR dell\'host';
@override
String get yourName => 'Il tuo nome';
@override
String get nameRequired => 'Scrivi il tuo nome';
@override
String get connectingTo => 'Connessione a';
@override
String get scanQR => 'Scansiona QR';
@override
String get scanHostQR => 'Inquadra il QR dell\'host';
@override
String get connectedWaiting => 'Connesso!';
@override
String get waitingForHost => 'In attesa che l\'host avvii la partita...';
@override
String get enterNameToSearch =>
'Scrivi il tuo nome per cercare partite vicine';
@override
String get searchGames => 'Cerca partite';
@override
String get searchingGames => 'Ricerca di partite vicine...';
@override
String get noGamesFound => 'Nessuna partita trovata';
@override
String get noGamesFoundHint =>
'Assicurati che l\'host abbia la stanza aperta e che siate vicini';
@override
String get orScanQR => 'Non compare? Scansiona il QR dell\'host';
@override
String get iveSeenIt => 'L\'ho vista';
@override
String clueIs(String category) {
return 'L\'indizio è: $category';
}
@override
String get debatePhaseActive => 'Fase di dibattito in corso';
@override
String get debateInstructions =>
'Parlate tra voi e dite chi pensate sia l\'impostore. Quando siete pronti, chiedete la votazione.';
@override
String get solicitarVotacion => 'Chiedi la votazione';
@override
String get votacionSolicitada => 'Votazione richiesta';
@override
String get whoDoYouThinkIsTheImpostor => 'Chi è l\'impostore?';
@override
String get selectOnePlayer => 'Seleziona un giocatore per votare';
@override
String get votar => 'Vota';
@override
String get selectYourProfile => 'Il tuo profilo';
@override
String get selectProfile => 'Seleziona un profilo';
@override
String get createNewUser => 'Crea nuovo utente';
@override
String get userNameRequired => 'Il nome non può essere vuoto';
@override
String get profileSelected => 'Profilo selezionato';
@override
String get availableProfiles => 'Profili disponibili';
@override
String get scanThisCodeFromAnotherPhone =>
'Scansiona questo codice da un altro telefono';
@override
String get gameUsers => 'Utenti della partita';
@override
String get selectedPlayers => 'Giocatori selezionati';
@override
String get connectedPhones => 'Telefoni connessi';
@override
String get selectedOnThisPhone => 'Selezionato su questo telefono';
@override
String get selectedByAnotherDevice => 'Selezionato su un altro dispositivo';
@override
String get available => 'Disponibile';
@override
String get notAvailable => 'Non disponibile';
@override
String get release => 'Libera';
@override
String get select => 'Seleziona';
@override
String get delete => 'Elimina';
@override
String get selectAtLeastThreeUsersToStart =>
'Seleziona almeno 3 utenti per iniziare.';
@override
String get hostPhoneMustSelectUser =>
'Il telefono host deve selezionare almeno un utente.';
@override
String get roomNoLongerInLobby => 'La stanza non è più nella lobby.';
@override
String get completeUserSelectionToStart =>
'Completa la selezione utenti per iniziare.';
@override
String get preparingSecureRoom => 'Preparazione della stanza sicura';
@override
String get searchingNearbyBluetoothGames =>
'Ricerca di partite vicine via Bluetooth';
@override
String get tapToJoin => 'Tocca per unirti';
@override
String get bluetoothLocationPermissionsRequired =>
'Sono necessari i permessi Bluetooth e posizione per cercare partite.';
@override
String get bluetoothLocationPermissionsShort =>
'Sono necessari i permessi Bluetooth e posizione';
@override
String get couldNotStartSearch =>
'Impossibile avviare la ricerca. Verifica Bluetooth e posizione.';
@override
String couldNotConnectToHost(String host) {
return 'Impossibile connettersi a $host';
}
@override
String get room => 'Stanza';
@override
String get singleDeviceSubtitle => 'Partita su questo dispositivo';
@override
String get singleDeviceDescription =>
'Ideale per giocare insieme passandosi il telefono. Configurazione rapida e diretta.';
@override
String get multiDeviceSubtitle => 'Ogni giocatore sul proprio telefono';
@override
String get multiDeviceDescription =>
'Crea una stanza premium, condividi il QR e gestisci gli utenti dalla lobby.';
@override
String get singleDeviceGameLabel => 'Partita su questo dispositivo';
@override
String get multiDeviceGameLabel => 'Partita multi-dispositivo';
@override
String get mainDeviceUser => 'Utente principale del dispositivo';
@override
String get couldNotCreateRoom =>
'Impossibile creare la stanza. Verifica Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Impossibile iniziare: $reason';
}
@override
String get invalidRoom => 'stanza non valida';
@override
String get defaultPlayerName => 'Giocatore';
@override
String get play => 'Gioca';
@override
String get history => 'Cronologia';
@override
String get mainTagline => 'Scopri limpostore prima che sia troppo tardi';
@override
String get deviceProfile => 'Profilo del dispositivo';
@override
String get profileName => 'Nome';
@override
String get profileNick => 'Nick';
@override
String get save => 'Salva';
@override
String get automaticLanguage => 'Automatico';
@override
String get noSavedGames => 'Non ci sono ancora partite salvate.';
@override
String get errorNoGame => 'Errore: nessuna partita';
@override
String get disconnectedPlayersWarning =>
'Alcuni giocatori hanno il dispositivo disconnesso.';
@override
String get assumeOnThisPhone => 'Assumi su questo telefono';
@override
String get noResult => 'Nessun risultato';
@override
String historyGameSummary(
int players,
int impostors,
int rounds,
String word,
String category,
) {
return '\$players giocatori • \$impostors impostore/i • \$rounds round\n\$word • \$category';
}
@override
String voteOf(String name) {
return 'Voto di $name';
}
@override
String firstTurnInstruction(String name) {
return '$name inizia dicendo la sua parola.';
}
@override
String get impostorsKnowEachOther => '🎭 Gli impostori si conoscono';
@override
String get impostorsKnowEachOtherDescription =>
'Ogni impostore vedrà i nomi degli altri';
@override
String get impostorsKnowEachOtherNeedsTwo =>
'Si applica solo con 2 o più impostori';
@override
String otherImpostorsTitle(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Gli altri impostori',
one: 'L\'altro impostore',
);
return '$_temp0';
}
@override
String get youAreTheOnlyImpostor => 'Sei l\'unico impostore';
@override
String impostorsAdjusted(int count) {
return 'Impostori regolati a $count in base al numero di giocatori';
}
@override
String get eliminatedCannotVote => 'Sei eliminato: non voti più';
@override
String get reconnecting => 'Riconnessione...';
@override
String get reconnectingHint =>
'Connessione con l\'host persa. Il tuo posto nella partita resta riservato.';
@override
String get leaveGame => 'Esci dalla partita';
@override
String playerRejoined(String name) {
return '$name è tornato in partita';
}
@override
String get leaveGameTitle => 'Vuoi uscire dalla partita?';
@override
String get leaveGameSingleDevice =>
'La partita in corso andrà persa e non potrà essere recuperata.';
@override
String get leaveGameHost =>
'Sei l\'host: se esci, la partita finisce per tutti i giocatori.';
@override
String get leaveGameClient =>
'Uscirai dalla partita. Potrai rientrare finché l\'host la tiene aperta.';
@override
String get stayInGame => 'Continua a giocare';
@override
String get permissionsNeededTitle => 'Autorizzazioni necessarie';
@override
String get permissionsNeededBody => 'Per la modalità multigiocatore servono:';
@override
String get openAppSettingsQuestion =>
'Vuoi aprire le impostazioni dell\'app?';
@override
String get openSettings => 'Apri impostazioni';
@override
String get permissionLocation => 'Posizione';
@override
String get permissionBluetoothAdvertise => 'Bluetooth (annuncio)';
@override
String get permissionBluetoothConnect => 'Bluetooth (connessione)';
@override
String get permissionBluetoothScan => 'Bluetooth (scansione)';
@override
String get permissionNearbyWifi => 'Wi-Fi nelle vicinanze';
}