Files
sepot/app/lib/l10n/generated/app_localizations_it.dart
T
Julius Joska 2f6b542f24 fix(security): require a fresh PIN or biometric check for sensitive actions
An unlocked phone was enough to read the 24-word recovery phrase. The
phrase, backup export and import, the duress PIN, a longer auto-lock,
turning off screen security, enabling biometrics and deleting the
account now ask for the PIN (or biometrics with biometricOnly) every
time. The duress session never shows the phrase. PIN checks outside the
lock screen count towards the same failure throttle.
2026-10-23 10:50:16 +02:00

1831 lines
48 KiB
Dart

// 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 => 'Šepot';
@override
String get settingsLanguage => 'Lingua dell\'app';
@override
String get languageSystem => 'Predefinita di sistema';
@override
String get commonUnknownContact => 'Sconosciuto';
@override
String get verifyVerified => 'Verificato';
@override
String get verifyUnverified => 'Non verificato';
@override
String get chatMenuVerifyContact => 'Verifica contatto';
@override
String get chatDisappearingMessages => 'Messaggi a scomparsa';
@override
String get chatMenuUnblockContact => 'Sblocca contatto';
@override
String get chatMenuBlockContact => 'Blocca contatto';
@override
String get reportAndBlock => 'Segnala e blocca';
@override
String errorGeneric(String error) {
return 'Errore: $error';
}
@override
String get groupsYouLeftGroup => 'Non sei più nel gruppo';
@override
String groupsMemberCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count membri',
one: '1 membro',
);
return '$_temp0';
}
@override
String get groupsMembers => 'Membri';
@override
String get groupsRename => 'Rinomina gruppo';
@override
String get groupsLeave => 'Abbandona il gruppo';
@override
String get groupsLeftBanner =>
'Non sei più nel gruppo. La cronologia resta, i nuovi messaggi non arriveranno.';
@override
String get groupsYou => 'Tu';
@override
String get groupsFounder => 'Fondatore';
@override
String get groupsAdmin => 'Amministratore';
@override
String get groupsMakeAdmin => 'Rendi amministratore';
@override
String get groupsDismissAdmin => 'Rimuovi ruolo di amministratore';
@override
String get groupsRemoveMember => 'Rimuovi dal gruppo';
@override
String groupsRemoveMemberConfirmTitle(String name) {
return 'Rimuovere $name dal gruppo?';
}
@override
String get groupsRemoveMemberConfirmBody =>
'Non riceverà più i nuovi messaggi del gruppo. La cronologia esistente resta.';
@override
String get groupsRemoveAction => 'Rimuovi';
@override
String get groupsViewContact => 'Vedi contatto';
@override
String get groupsAdminOnlyHint =>
'Solo gli amministratori possono cambiare nome, membri e amministratori del gruppo.';
@override
String get groupsAdminOnlyCompatHint =>
'Solo gli amministratori possono rinominare il gruppo o cambiare gli amministratori. Per ora chiunque può aggiungere persone, perché qualcuno nel gruppo ha una versione precedente di Šepot.';
@override
String groupsAdminActionFailed(String error) {
return 'Modifica non riuscita: $error';
}
@override
String get groupsResyncNotice =>
'Il gruppo si sta allineando con l\'amministratore. Le modifiche ai membri potrebbero arrivare in ritardo.';
@override
String get groupsRejectedChangeNotice =>
'Qualcuno senza permesso ha provato a modificare il gruppo. La modifica non è stata applicata.';
@override
String get errorGroupNotAdmin =>
'Solo un amministratore del gruppo può farlo.';
@override
String get errorGroupLastAdmin =>
'Sei l\'unico amministratore. Prima rendi amministratore qualcun altro.';
@override
String get groupsNameHint => 'Nome del gruppo';
@override
String get commonCancel => 'Annulla';
@override
String get commonSave => 'Salva';
@override
String groupsRenameFailed(String error) {
return 'Rinomina non riuscita: $error';
}
@override
String get groupsLeaveConfirmTitle => 'Abbandonare il gruppo?';
@override
String get groupsLeaveConfirmBody =>
'Gli altri vedranno che non sei più nel gruppo. La cronologia ti resterà, ma non riceverai più nuovi messaggi e per rientrare qualcuno dovrà invitarti.';
@override
String get groupsLeaveAction => 'Abbandona';
@override
String groupsLeaveFailed(String error) {
return 'Uscita non riuscita: $error';
}
@override
String get chatBlockedBanner =>
'Il contatto è bloccato. Non ricevi i suoi messaggi e non puoi scrivergli.';
@override
String get chatUnblock => 'Sblocca';
@override
String chatContactBlocked(String name) {
return 'Contatto $name bloccato';
}
@override
String chatContactUnblocked(String name) {
return 'Contatto $name sbloccato';
}
@override
String reportAndBlockBody(String name) {
return 'Bloccheremo il contatto $name e smetterai di ricevere i suoi messaggi. Poi ti proporremo un modulo per farci sapere cosa è successo — non vediamo il contenuto dei messaggi, quindi senza la tua descrizione non ne sappiamo nulla.';
}
@override
String get chatEmptyEncrypted => 'I messaggi sono cifrati end-to-end.';
@override
String get chatEmptyNoOneElse => 'Nessun altro può leggerli.';
@override
String get commonToday => 'Oggi';
@override
String get commonYesterday => 'Ieri';
@override
String get chatMessageHint => 'Scrivi un messaggio…';
@override
String get chatDiscardRecording => 'Scarta';
@override
String get chatRecording => 'Registrazione…';
@override
String get chatMicPermissionMissing =>
'Manca l\'autorizzazione per il microfono';
@override
String chatRecordingFailed(String error) {
return 'Registrazione non riuscita: $error';
}
@override
String chatVoiceSendFailed(String error) {
return 'Invio del messaggio vocale non riuscito: $error';
}
@override
String get chatDeletedMessagePreview => 'Messaggio eliminato';
@override
String get chatVoiceMessagePreview => '🎤 Messaggio vocale';
@override
String get chatPhotoPreview => '📷 Foto';
@override
String get chatAttachmentPreview => '📎 Allegato';
@override
String get chatEditingMessage => 'Modifica messaggio';
@override
String get chatReply => 'Risposta';
@override
String get chatActionReply => 'Rispondi';
@override
String get chatActionForward => 'Inoltra';
@override
String get forwardTitle => 'Inoltra a…';
@override
String get forwardSearchHint => 'Cerca contatto o gruppo';
@override
String get forwardEmpty => 'Nessun risultato';
@override
String forwardDone(String name) {
return 'Inoltrato a $name';
}
@override
String forwardFailed(String error) {
return 'Inoltro non riuscito: $error';
}
@override
String get commonCopy => 'Copia';
@override
String get commonEdit => 'Modifica';
@override
String get chatDeleteForMe => 'Elimina per me';
@override
String get chatDeleteForEveryone => 'Elimina per tutti';
@override
String get commonOff => 'Disattivato';
@override
String get chatDisappearing30s => '30 secondi';
@override
String get chatDisappearing5m => '5 minuti';
@override
String get chatDisappearing1h => '1 ora';
@override
String get chatDisappearing1d => '1 giorno';
@override
String get chatDisappearing1w => '1 settimana';
@override
String get chatDisappearingDescription =>
'I nuovi messaggi verranno eliminati allo scadere del tempo, sia per te che per l\'altra persona.';
@override
String get chatDisappearingDisabled => 'Messaggi a scomparsa disattivati';
@override
String chatDisappearingEnabled(String duration) {
return 'I nuovi messaggi scompariranno dopo: $duration';
}
@override
String get attachmentGallery => 'Foto dalla galleria';
@override
String get attachmentTakePhoto => 'Scatta foto';
@override
String get attachmentDocument => 'Documento';
@override
String attachmentTooLarge(int maxMb) {
return 'Il file è troppo grande (max $maxMb MB)';
}
@override
String get attachmentKeepsMetadataTitle => 'La foto includerà la posizione';
@override
String get attachmentKeepsMetadataBody =>
'Non riesco a rimuovere i metadati da questo formato (ad es. HEIC). Verrebbe inviata in originale, compresi il luogo dello scatto e i dati del telefono. È più sicuro inviarla dalla Galleria, dove i metadati vengono rimossi.';
@override
String get attachmentSendOriginal => 'Invia originale';
@override
String attachmentPickFailed(String error) {
return 'Selezione dell\'allegato non riuscita: $error';
}
@override
String attachmentSendFailed(String error) {
return 'Invio dell\'allegato non riuscito: $error';
}
@override
String chatSendFailed(String error) {
return 'Invio non riuscito: $error';
}
@override
String get chatMessageDeleted => 'Messaggio eliminato';
@override
String get chatEdited => 'modificato';
@override
String get errorTrustRootChanged =>
'Il trust root del relay è cambiato! Comunicazione rifiutata.';
@override
String get errorRelayUnavailable =>
'Relay non disponibile (sender certificate)';
@override
String get errorNotYetRegistered =>
'Šepot si sta ancora connettendo al relay — riprova a inviare tra un istante.';
@override
String get errorContactLinkIncomplete =>
'Questo link è incompleto — l\'altra persona l\'ha creato prima di connettersi. Chiedile un nuovo link sepot://.';
@override
String errorAttachmentTooLarge(int maxMb) {
return 'L\'allegato è troppo grande (max $maxMb MB)';
}
@override
String get errorGroupNeedsMember => 'Il gruppo ha bisogno di almeno 1 membro';
@override
String get errorAttachmentUnavailable =>
'L\'allegato non è più su questo telefono';
@override
String errorGroupMaxMembers(int maxMembers) {
return 'Il gruppo può avere al massimo $maxMembers membri';
}
@override
String errorMemberNoDeliveryAddress(String displayName) {
return '$displayName non ha un indirizzo di consegna — chiedi un nuovo link';
}
@override
String get errorContactNoDeliveryAddress =>
'Il contatto non ha un indirizzo di consegna — chiedigli un nuovo link sepot://';
@override
String get errorIdentityKeyMismatch =>
'La chiave di identità dal relay NON corrisponde al contatto — possibile MITM! Messaggio non inviato.';
@override
String get settingsTitle => 'Impostazioni';
@override
String get settingsSectionGeneral => 'Generali';
@override
String get settingsSectionSecurity => 'Sicurezza';
@override
String get settingsChangePinTitle => 'Cambia PIN';
@override
String get settingsChangePinSubtitle => 'PIN a 6 cifre per sbloccare';
@override
String get settingsAutoLockTitle => 'Blocco automatico';
@override
String get settingsAutoLock5min => 'Dopo 5 minuti';
@override
String get settingsDecoyPinTitle => 'PIN anti-coercizione';
@override
String get settingsDecoyPinSetSubtitle => 'Impostato — apre un\'app vuota';
@override
String get settingsDecoyPinUnsetSubtitle =>
'Un secondo PIN che apre un\'app vuota';
@override
String get settingsSectionNotifications => 'Notifiche';
@override
String get settingsSectionConnection => 'Connessione';
@override
String get settingsSectionPrivacy => 'Privacy';
@override
String get settingsReadReceiptsTitle => 'Conferme di lettura';
@override
String get settingsReadReceiptsSubtitle =>
'Mostra all\'altra persona quando leggi i messaggi (disattivato di default)';
@override
String get settingsScreenSecurityTitle => 'Sicurezza dello schermo';
@override
String get settingsScreenSecuritySubtitle =>
'Blocca gli screenshot e nasconde il contenuto nelle app recenti';
@override
String get settingsSectionBackup => 'Backup delle chiavi';
@override
String get settingsSeedPhraseTitle => 'Frase di recupero';
@override
String get settingsSeedPhraseSubtitle =>
'24 parole per ripristinare l\'identità';
@override
String get settingsBackupExportTitle => 'Backup della cronologia';
@override
String get settingsBackupExportSubtitle =>
'File cifrato con contatti e messaggi';
@override
String get settingsBackupImportTitle => 'Ripristina da backup';
@override
String get settingsBackupImportSubtitle =>
'Carica un backup (solo con la tua identità)';
@override
String get settingsSectionSafety => 'Protezione';
@override
String get settingsReportAbuseTitle => 'Segnala un abuso';
@override
String get settingsReportAbuseSubtitle =>
'Molestie, truffe, minori in pericolo';
@override
String get settingsChildSafetyTitle => 'Standard di tutela dei minori';
@override
String get settingsChildSafetySubtitle =>
'Come agiamo contro gli abusi sui minori';
@override
String get settingsSectionAbout => 'Informazioni';
@override
String get commonAppName => 'Šepot';
@override
String settingsVersion(String version) {
return 'Versione $version';
}
@override
String get settingsLicenseTitle => 'Licenza';
@override
String get settingsLicenseSubtitle => 'AGPL-3.0';
@override
String get settingsPrivacyPolicyTitle => 'Informativa sulla privacy';
@override
String get settingsPrivacyPolicySubtitle => 'Cosa sappiamo di te (e cosa no)';
@override
String get settingsTermsTitle => 'Termini di utilizzo';
@override
String get settingsTermsSubtitle => 'sepot.cz/podminky';
@override
String get settingsDataDeletionTitle => 'Eliminazione dei dati';
@override
String get settingsDataDeletionSubtitle => 'Come richiedere la cancellazione';
@override
String get settingsDeleteAllDataButton => 'Elimina tutti i dati';
@override
String settingsLicenseBody(String supportEmail) {
return 'Šepot è distribuito sotto licenza GNU Affero General Public License versione 3 (AGPL-3.0). Usa la libreria libsignal, anch\'essa AGPL-3.0.\n\nPer ricevere il codice sorgente corrispondente a questa versione scrivi a $supportEmail e te lo invieremo.';
}
@override
String get commonClose => 'Chiudi';
@override
String get settingsIdCopied => 'ID copiato';
@override
String settingsFingerprint(String fingerprint) {
return 'Impronta: $fingerprint';
}
@override
String get backupShareSubject => 'Šepot — backup cifrato';
@override
String backupExportFailed(String error) {
return 'Backup non riuscito: $error';
}
@override
String backupRestoredCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Ripristinate $count conversazioni dal backup',
one: 'Ripristinata 1 conversazione dal backup',
);
return '$_temp0';
}
@override
String backupImportFailed(String error) {
return 'Ripristino dal backup non riuscito: $error';
}
@override
String get settingsDecoyPinExplain =>
'Inserendo questo PIN l\'app si apre vuota — senza i tuoi contatti e messaggi. Deve essere diverso dal PIN normale.';
@override
String get commonConfirm => 'Conferma';
@override
String get commonSet => 'Imposta';
@override
String get settingsDecoyPinEnabled => 'PIN anti-coercizione impostato';
@override
String get settingsDecoyPinConflict =>
'Il PIN anti-coercizione deve essere diverso da quello normale';
@override
String get settingsDecoyPinDisabled => 'PIN anti-coercizione rimosso';
@override
String get settingsSeedPhraseNotFound => 'Frase di recupero non trovata';
@override
String get settingsSeedPhraseWarning =>
'Queste parole sono l\'unico backup della tua identità. Non mostrarle a nessuno!';
@override
String settingsSeedWordChip(int index, String word) {
return '$index. $word';
}
@override
String get settingsAboutTagline => 'Šepot — Messenger privato';
@override
String get settingsAboutBody =>
'Messenger cifrato E2E e open source.\n\nCrittografia:\n• X25519 (scambio di chiavi)\n• XChaCha20-Poly1305 (cifratura)\n• Ed25519 (firme)\n\n© 2026 ajtak.it';
@override
String get settingsDeleteAccountTitle =>
'Eliminare l\'account e tutti i dati?';
@override
String get settingsDeleteAccountBody =>
'Questa azione è irreversibile. Tutti i messaggi, i contatti e le chiavi verranno eliminati da questo dispositivo e l\'account verrà deregistrato dal server. Se non hai la frase di recupero, perderai la tua identità.';
@override
String get settingsDeleteAccountServerOffline =>
'Il server al momento non è raggiungibile — i dati sul dispositivo sono stati eliminati, ma la registrazione sul server è rimasta. Scrivici a podpora@sepot.cz e cancelleremo il resto.';
@override
String get settingsDeleteAllConfirm => 'Elimina tutto';
@override
String groupsCreateFailed(String error) {
return 'Impossibile creare il gruppo: $error';
}
@override
String get groupsNewGroupTitle => 'Nuovo gruppo';
@override
String get groupsCreateAction => 'Crea';
@override
String groupsMembersCounter(int selectedCount, int maxMembers) {
return 'Membri ($selectedCount/$maxMembers)';
}
@override
String get groupsEmptyContactsHint =>
'Prima aggiungi dei contatti — un gruppo è fatto di persone con cui puoi già scrivere.';
@override
String get groupsMemberMissingAddress =>
'Manca l\'indirizzo di consegna — chiedi un nuovo link';
@override
String attachmentSizeBytes(int bytes) {
return '$bytes B';
}
@override
String attachmentSizeKb(String kilobytes) {
return '$kilobytes kB';
}
@override
String attachmentSizeMb(String megabytes) {
return '$megabytes MB';
}
@override
String get attachmentDownloadFailedTapToRetry =>
'Download non riuscito — tocca per riprovare';
@override
String get attachmentDownloadFailed => 'Download non riuscito';
@override
String get attachmentDownloading => 'Download in corso…';
@override
String get attachmentSharedFileFallbackName => 'file';
@override
String attachmentOpenFailed(String error) {
return 'Impossibile aprire l\'allegato: $error';
}
@override
String get commonFile => 'File';
@override
String get chatListNewConversation => 'Nuova conversazione';
@override
String get chatListReadReceiptPreview => 'Letto';
@override
String get chatListDraft => 'Bozza';
@override
String get notesTitle => 'Note per me';
@override
String get notesSubtitle => 'Solo su questo telefono, cifrato';
@override
String get callVoice => 'Chiama';
@override
String get callVideo => 'Videochiamata';
@override
String get callStatusRinging => 'Squilla…';
@override
String get callIncomingVoice => 'Chiamata in arrivo';
@override
String get callIncomingVideo => 'Videochiamata in arrivo';
@override
String get callStatusConnecting => 'Connessione…';
@override
String get callEnded => 'Chiamata terminata';
@override
String get callEndedBusy => 'Occupato';
@override
String get callEndedRejected => 'Chiamata rifiutata';
@override
String get callEndedUnanswered => 'Nessuna risposta';
@override
String get callEndedFailed => 'Connessione non riuscita';
@override
String get callEncrypted => 'Crittografia end-to-end';
@override
String get callAccept => 'Accetta';
@override
String get callReject => 'Rifiuta';
@override
String get callMute => 'Disattiva microfono';
@override
String get callSpeaker => 'Altoparlante';
@override
String get callCamera => 'Disattiva fotocamera';
@override
String get callSwitchCamera => 'Cambia fotocamera';
@override
String get callHangUp => 'Riaggancia';
@override
String get callLogMissed => 'Chiamata persa';
@override
String get callLogUnanswered => 'Chiamata senza risposta';
@override
String get callLogRejected => 'Chiamata rifiutata';
@override
String get callLogBusy => 'Occupato';
@override
String get callLogFailed => 'Chiamata non riuscita';
@override
String callLogVoice(String duration) {
return 'Chiamata · $duration';
}
@override
String callLogVideo(String duration) {
return 'Videochiamata · $duration';
}
@override
String get chatListTimeNow => 'adesso';
@override
String chatListTimeMinutes(int minutes) {
return '$minutes min';
}
@override
String get qrScanTitle => 'Scansiona codice QR';
@override
String get qrScanInstruction => 'Inquadra il codice QR del contatto';
@override
String get qrScanHint =>
'Il codice QR contiene la chiave pubblica del contatto';
@override
String get qrNewContactTitle => 'Nuovo contatto';
@override
String qrContactAdded(String name) {
return 'Contatto $name aggiunto';
}
@override
String get commonAdd => 'Aggiungi';
@override
String get onboardingWelcomeTitle => 'Ti diamo il benvenuto in Šepot';
@override
String get onboardingWelcomeSubtitle =>
'Un messenger privato con cifratura end-to-end.\nNessun numero di telefono. Nessuna email.\nSolo le tue chiavi.';
@override
String get onboardingStart => 'Inizia';
@override
String get onboardingRestoreExisting =>
'Ho già un account — ripristina dalla frase di recupero';
@override
String get onboardingEncryptionTitle => 'I tuoi messaggi, le tue chiavi';
@override
String get onboardingFeatureSignalTitle => 'Protocollo Signal';
@override
String get onboardingFeatureSignalSubtitle =>
'X3DH + Double Ratchet, forward secrecy';
@override
String get onboardingFeaturePqTitle => 'Protezione post-quantistica';
@override
String get onboardingFeaturePqSubtitle =>
'Kyber (PQXDH) fin dal primo messaggio';
@override
String get onboardingFeatureLocalKeysTitle =>
'Chiavi solo sul tuo dispositivo';
@override
String get onboardingFeatureLocalKeysSubtitle => 'Nessun server le possiede';
@override
String get onboardingFeatureDisappearingSubtitle =>
'Si eliminano automaticamente';
@override
String get commonContinue => 'Continua';
@override
String get onboardingIdentityTitle => 'Crea la tua identità';
@override
String get onboardingIdentitySubtitle =>
'Nessuna email né telefono. Solo un nome e chiavi crittografiche.';
@override
String get onboardingDisplayNameLabel => 'Nome visualizzato';
@override
String get onboardingDisplayNameHint => 'Es. Marco';
@override
String onboardingSeedPhraseWarning(int count) {
return 'Annota queste $count parole. Sono l\'unico backup delle tue chiavi!';
}
@override
String get onboardingSeedSavedConfirm =>
'Confermo di aver salvato la frase in un luogo sicuro';
@override
String get onboardingGenerateKeys => 'Genera le chiavi';
@override
String get verifyMismatchTitle => 'I numeri NON corrispondono';
@override
String verifyMatchBody(String contactName) {
return 'Le chiavi corrispondono. $contactName è un contatto verificato.';
}
@override
String get verifyMismatchBody =>
'I numeri di sicurezza non corrispondono. Qualcuno potrebbe intercettare la connessione (MITM), oppure stai scansionando il codice di un altro contatto. NON inviare messaggi sensibili e verificatevi di nuovo tramite un altro canale.';
@override
String get commonUnderstood => 'Ho capito';
@override
String get verifyManualConfirmTitle => 'Segnare come verificato?';
@override
String get verifyManualConfirmBody =>
'Conferma solo se hai confrontato le cifre con l\'altra persona tramite un altro canale affidabile (di persona, con una chiamata…) e corrispondono.';
@override
String get verifyManualConfirmAction => 'Corrispondono, verifica';
@override
String get verifyTitle => 'Verifica del contatto';
@override
String get verifyContactVerifiedBanner => 'Il contatto è verificato';
@override
String verifyIntro(String contactName) {
return 'Confronta questo numero con $contactName. Se corrisponde, nessuno sta intercettando la vostra cifratura. Il modo più rapido è scansionare a vicenda i codici QR.';
}
@override
String get verifyScanButton => 'Scansiona il codice dell\'altra persona';
@override
String get verifyManualButton => 'Le cifre corrispondono — segna manualmente';
@override
String get verifyUnverifyButton => 'Rimuovi verifica';
@override
String get verifyScanScreenTitle => 'Scansiona il QR di verifica';
@override
String get reportTitle => 'Segnala';
@override
String get reportSubmitted => 'Segnalazione inviata';
@override
String get reportSubmittedChildSafety =>
'Diamo priorità a queste segnalazioni. Se un minore è in pericolo immediato, chiama subito il 112 o il 114 (Emergenza Infanzia).';
@override
String get reportSubmittedThanks =>
'Grazie. L\'esamineremo il prima possibile.';
@override
String get commonDone => 'Fatto';
@override
String get reportPanelE2eNotice =>
'I messaggi sono cifrati end-to-end, quindi non possiamo vederne il contenuto nemmeno ora. Descrivi con parole tue cosa è successo. Non incollare qui il contenuto dei messaggi né link ad esso — non possiamo conservarlo e non ci serve per la valutazione.';
@override
String get reportPanelCsamWarning =>
'NON inviarci materiale che mostra abusi su minori. Detenerlo è un reato anche per noi e non ci serve per la segnalazione. Il materiale va segnalato direttamente alla polizia o a una hotline dedicata alla protezione dei minori. Scrivici solo cosa è successo — bloccheremo l\'account e inoltreremo il caso.';
@override
String get reportPanelIpNotice =>
'La segnalazione non passa dal relay ma dal nostro server web, che al momento dell\'invio vedrà il tuo indirizzo IP.';
@override
String get reportCategoryHeading => 'Oggetto della segnalazione';
@override
String get reportDescriptionHeading => 'Cosa è successo';
@override
String get reportAttachContactId => 'Allega l\'ID del contatto segnalato';
@override
String reportAttachContactIdNamed(String contactName) {
return 'Allega l\'ID del contatto $contactName';
}
@override
String get reportReplyToHeading => 'Come contattarti (facoltativo)';
@override
String get reportReplyToHint =>
'email, nel caso avessimo bisogno di chiarimenti';
@override
String get reportSubmitButton => 'Invia segnalazione';
@override
String get contactsTitle => 'Contatti';
@override
String get contactsAddContact => 'Aggiungi contatto';
@override
String get contactsSearchHint => 'Cerca un contatto...';
@override
String get contactsEmpty => 'Ancora nessun contatto';
@override
String get contactsNoResults => 'Nessun risultato';
@override
String get contactsShareCardTitle => 'Condividi il tuo Šepot ID';
@override
String get contactsShareCardSubtitle => 'Mostra il codice QR o invia un link';
@override
String get contactsAddDialogPrompt =>
'Incolla la stringa di condivisione (share string) del contatto:';
@override
String get contactsShareStringHint => 'Incolla la share string...';
@override
String get contactsInvalidShareString => 'Share string non valida';
@override
String contactsAdded(String name) {
return 'Contatto $name aggiunto';
}
@override
String get verifyContactSubtitle => 'Confronto del numero di sicurezza';
@override
String get contactsDeleteContact => 'Elimina contatto';
@override
String get pinConfirmTitle => 'Conferma il PIN';
@override
String get pinSetupTitle => 'Imposta il tuo PIN';
@override
String get pinConfirmSubtitle => 'Inserisci di nuovo il PIN per confermare';
@override
String get pinSetupSubtitle => 'PIN a 6 cifre per sbloccare l\'app';
@override
String get pinSetupFailed => 'Impostazione del PIN non riuscita. Riprova.';
@override
String get pinMismatchRetry => 'I PIN non corrispondono. Riprova.';
@override
String get pinChangeCurrentTitle => 'Inserisci il PIN attuale';
@override
String get pinChangeCurrentSubtitle => 'Lo verifichiamo sbloccando la chiave';
@override
String get pinChangeNewTitle => 'Inserisci il nuovo PIN';
@override
String get pinChangeNewSubtitle => '6 cifre';
@override
String get pinChangeConfirmTitle => 'Conferma il nuovo PIN';
@override
String get pinChangeConfirmSubtitle => 'Inseriscilo ancora una volta';
@override
String get pinWrong => 'PIN errato.';
@override
String get pinChangeMustDiffer =>
'Il nuovo PIN deve essere diverso da quello attuale.';
@override
String get pinMismatch => 'I PIN non corrispondono.';
@override
String get pinDecoyConflict =>
'Questo PIN appartiene già alla modalità anti-coercizione. Scegline un altro.';
@override
String get pinChangeFailed => 'Cambio del PIN non riuscito. Riprova.';
@override
String get pinChanged => 'PIN cambiato';
@override
String get errorCryptoInitTitle => 'Il motore di cifratura non si è avviato';
@override
String get errorStartupTitle => 'Šepot non si è avviato';
@override
String get errorScreenNotRenderedTitle =>
'Questa schermata non è stata visualizzata';
@override
String get errorStartupBody =>
'Qualcosa è andato storto subito all\'avvio. Inviami questo testo, per favore (tieni premuto e copia) — mi aiuterà a trovare l\'errore.';
@override
String get errorContactFooter => 'sepot.cz · contattami';
@override
String get pinUnlockTitle => 'Sblocca Šepot';
@override
String get pinEnterPin => 'Inserisci il PIN';
@override
String get pinUnlockWithBiometrics => 'Sblocca con biometria';
@override
String get pinWrong2 => 'PIN errato';
@override
String get pinUnlockError => 'Errore di sblocco';
@override
String pinLockedFor(int seconds) {
return 'Troppi tentativi. Riprova tra $seconds s.';
}
@override
String get pushTitle => 'Notifiche push';
@override
String get pushModeOffDesc =>
'I messaggi verranno scaricati solo all\'apertura dell\'app.';
@override
String get pushModeUp => 'UnifiedPush (senza Google)';
@override
String get pushModeUpDesc =>
'Senza Google — richiede l\'app ntfy (F-Droid/Play).';
@override
String get pushModeFcm => 'Google (FCM, predefinito)';
@override
String get pushModeFcmDesc =>
'Affidabile senza altre app. Il token push del dispositivo va a Google; il contenuto dei messaggi mai.';
@override
String pushSetupFailed(String error) {
return 'Configurazione delle notifiche push non riuscita: $error';
}
@override
String get pushHintOff =>
'I messaggi arrivano solo quando apri Šepot — le notifiche non sono configurate.';
@override
String get pushHintFailed =>
'Le notifiche non funzionano: vedrai i messaggi solo aprendo Šepot.';
@override
String get pushRegistrationFailed =>
'Le notifiche non arrivano — il distributore ha rifiutato la registrazione. Prova a disattivare e riattivare il push.';
@override
String get pushNoDistributorTitle => 'Nessun distributore';
@override
String get pushNoDistributorBody =>
'Per notifiche senza Google installa un distributore UnifiedPush, ad es. ntfy (F-Droid o Play). Poi riattiva le notifiche push.';
@override
String get commonOk => 'OK';
@override
String get pushPickDistributorTitle => 'Scegli il distributore';
@override
String pushSubtitleUnifiedPush(String distributor) {
return 'UnifiedPush · $distributor';
}
@override
String get pushNoDistributorFallback => 'nessun distributore';
@override
String get pushSubtitleFcm => 'Google (FCM)';
@override
String get restoreErrorNameRequired => 'Inserisci il nome visualizzato.';
@override
String restoreErrorWordCount(int wordCount, int requiredWords) {
String _temp0 = intl.Intl.pluralLogic(
wordCount,
locale: localeName,
other: 'La frase ha $wordCount parole, ne servono $requiredWords.',
one: 'La frase ha 1 parola, ne servono $requiredWords.',
);
return '$_temp0';
}
@override
String get restoreErrorInvalidPhrase =>
'La frase non è valida — controlla le parole e il loro ordine.';
@override
String restoreErrorFailed(String error) {
return 'Ripristino non riuscito: $error';
}
@override
String get restoreTitle => 'Ripristina account';
@override
String get restoreHeading => 'Inserisci la tua frase di recupero';
@override
String restoreIntro(int wordCount) {
return '$wordCount parole, dal backup fatto quando hai creato l\'account. Ripristina la tua identità (stesso codice SEP, i contatti continueranno a riconoscerti).';
}
@override
String get restoreHistoryWarning =>
'La cronologia dei messaggi non verrà ripristinata — è salvata solo sul dispositivo originale.';
@override
String get restorePhraseHint => 'parola1 parola2 parola3 …';
@override
String restoreWordCountHelper(int wordCount, int requiredWords) {
return '$wordCount / $requiredWords parole';
}
@override
String chatListArchivedCount(int count) {
return 'Archiviate ($count)';
}
@override
String get chatListEmptyTitle => 'Ancora nessuna conversazione';
@override
String get chatListEmptySubtitle =>
'Aggiungi un contatto e inizia a sussurrare!';
@override
String get chatListUnmute => 'Riattiva notifiche';
@override
String get chatListMute => 'Silenzia';
@override
String get chatListArchive => 'Archivia';
@override
String get qrShareTitle => 'Il mio Šepot ID';
@override
String get qrShareConnectingTitle => 'Connessione al relay…';
@override
String get qrShareConnectingBody =>
'Il tuo codice QR e il link appariranno appena Šepot si connette per la prima volta. Un istante — bastano pochi secondi.';
@override
String get qrIdentityNotFound => 'Identità non trovata';
@override
String get commonCopiedToClipboard => 'Copiato negli appunti';
@override
String qrShareInviteMessage(String shareString) {
return 'Aggiungimi su Šepot!\n\n$shareString';
}
@override
String get commonShare => 'Condividi';
@override
String get qrShareInfo =>
'Il contatto scansiona il tuo codice QR o incolla la stringa di condivisione nell\'app.';
@override
String get reportCategoryChildSafety => 'Minore in pericolo';
@override
String get reportCategoryChildSafetyHint =>
'Descrivi la situazione con parole tue. Non incollare il contenuto dei messaggi né link al materiale.';
@override
String get reportCategoryHarassment => 'Molestie o minacce';
@override
String get reportCategoryHarassmentHint =>
'Qualcuno ti intimidisce, ti minaccia o ti molesta.';
@override
String get reportCategorySpam => 'Spam';
@override
String get reportCategorySpamHint => 'Messaggi indesiderati, invii di massa.';
@override
String get reportCategoryFraud => 'Truffa';
@override
String get reportCategoryFraudHint =>
'Un tentativo di ottenere con l\'inganno denaro, chiavi o dati personali.';
@override
String get reportCategoryOther => 'Altro';
@override
String get reportCategoryOtherHint => 'Qualcos\'altro che dovremmo sapere.';
@override
String get reportErrorEmptyDescription =>
'Scrivi cosa è successo, per favore.';
@override
String reportErrorConnection(String supportEmail) {
return 'Impossibile contattare il server. Riprova, oppure scrivi a $supportEmail.';
}
@override
String reportErrorRateLimited(String supportEmail) {
return 'Troppe segnalazioni dalla tua rete. Riprova tra un\'ora, oppure scrivi a $supportEmail.';
}
@override
String reportErrorServer(int statusCode, String supportEmail) {
return 'Invio non riuscito (codice $statusCode). Scrivi a $supportEmail, per favore.';
}
@override
String get settingsAutoLockNever => 'Mai';
@override
String get settingsAutoLock1min => 'Dopo 1 minuto';
@override
String get settingsAutoLock15min => 'Dopo 15 minuti';
@override
String torToggleFailed(String error) {
return 'Impossibile cambiare lo stato di Tor: $error';
}
@override
String get torConnectionTitle => 'Connessione via Tor';
@override
String get torDialogBody =>
'Il traffico verso il server passerà dalla rete Tor (nasconde il tuo indirizzo IP). Richiede l\'app Orbot installata e in esecuzione, con proxy SOCKS attivo sulla porta 9050.\n\nSenza Orbot in esecuzione i messaggi non vengono né inviati né ricevuti. La connessione tende a essere più lenta.';
@override
String get commonTurnOn => 'Attiva';
@override
String get torSubtitleOff =>
'Connessione cifrata diretta (WSS). Attiva per nascondere l\'IP via Tor.';
@override
String get torStatusConnected => 'Connesso via Tor (.onion).';
@override
String get torStatusConnecting =>
'Connessione via Tor… (Orbot è in esecuzione?)';
@override
String get torStatusWaiting => 'Via Tor — in attesa di Orbot (SOCKS 9050).';
@override
String get biometricsPinRequiredFirst =>
'Prima imposta un PIN — la biometria è solo un complemento.';
@override
String get biometricsStorageLocked =>
'La memoria protetta è bloccata — sblocca l\'app con il PIN.';
@override
String get biometricsNotAvailable =>
'Il dispositivo non ha la biometria configurata.';
@override
String get biometricsEnrollPromptReason =>
'Conferma l\'attivazione dello sblocco biometrico';
@override
String biometricsSetupFailed(String error) {
return 'Impossibile configurare la biometria: $error';
}
@override
String get biometricsTileTitle => 'Biometria';
@override
String get biometricsTileSubtitle =>
'Sblocco con impronta / volto (il PIN resta di riserva)';
@override
String get backupErrorCorruptedFile => 'File di backup danneggiato';
@override
String get backupErrorUnknownFormat => 'Formato di backup non riconosciuto';
@override
String get backupErrorWrongIdentity =>
'Impossibile decifrare il backup — appartiene a un\'altra identità?';
@override
String attachmentSharedImageFilename(String ext) {
return 'sepot-immagine.$ext';
}
@override
String get attachmentDecryptFailed => 'Impossibile decifrare l\'allegato';
@override
String get pushActionOpen => 'Apri';
@override
String get pushChannelMessagesName => 'Messaggi';
@override
String get pushChannelMessagesDescription =>
'Avvisi per i nuovi messaggi (senza contenuto)';
@override
String pushNewMessageFrom(String senderName) {
return 'Nuovo messaggio da $senderName';
}
@override
String get pushNewMessages => 'Hai nuovi messaggi';
@override
String get archiveTitle => 'Archiviate';
@override
String get archiveEmpty => 'Nessuna conversazione archiviata';
@override
String get archiveUnarchive => 'Rimuovi dall\'archivio';
@override
String restoreErrorMnemonicWordCount(int count, int expected) {
return 'La frase ha $count parole, ne servono $expected';
}
@override
String restoreErrorInvalidMnemonic(String message) {
return 'Frase non valida: $message';
}
@override
String get contactsErrorAlreadyExists => 'Il contatto esiste già';
@override
String get commonAppTagline => 'Messenger privato';
@override
String get commonE2eBadgeCompact => 'E2E';
@override
String get commonE2eBadgeFull => 'Cifrato end-to-end';
@override
String get photoPreviewCaptionHint => 'Aggiungi una didascalia…';
@override
String get photoPreviewDraw => 'Disegna';
@override
String get photoPreviewAddText => 'Aggiungi testo';
@override
String get photoPreviewRotate => 'Ruota';
@override
String get photoPreviewUndo => 'Annulla';
@override
String get photoPreviewSend => 'Invia';
@override
String get photoPreviewTextDialogTitle => 'Testo sulla foto';
@override
String get photoPreviewRemoveText => 'Rimuovi';
@override
String get photoPreviewDecodeFailed => 'Impossibile caricare la foto';
@override
String get chatActionInfo => 'Info messaggio';
@override
String get messageInfoSent => 'Inviato';
@override
String get messageInfoDelivered => 'Consegnato';
@override
String get messageInfoRead => 'Letto';
@override
String get messageInfoPending => 'non ancora';
@override
String get messageInfoReadReceiptsOff =>
'Vedi quando i tuoi messaggi vengono letti solo se condividi anche tu le conferme di lettura (Impostazioni).';
@override
String chatStatusReadAt(String time) {
return 'Letto $time';
}
@override
String chatStatusDeliveredAt(String time) {
return 'Consegnato $time';
}
@override
String get groupsAddMembers => 'Aggiungi membri';
@override
String get groupsAddMembersAction => 'Aggiungi';
@override
String groupsAddMembersFailed(String error) {
return 'Impossibile aggiungere: $error';
}
@override
String get groupsNoContactsToAdd =>
'Tutti i tuoi contatti sono già nel gruppo. Aggiungi prima una nuova persona ai contatti tramite codice QR.';
@override
String get navChats => 'Chat';
@override
String get chatListNewChat => 'Nuova chat';
@override
String get chatListSearchHint => 'Cerca in chat e messaggi';
@override
String get chatFilterAll => 'Tutte';
@override
String get chatFilterUnread => 'Non lette';
@override
String get chatFilterGroups => 'Gruppi';
@override
String get chatFilterArchive => 'Archivio';
@override
String get chatListNoResults => 'Nessun risultato.';
@override
String get chatListFilterEmpty => 'Ancora niente qui.';
@override
String get chatListPin => 'Fissa';
@override
String get chatListUnpin => 'Sblocca';
@override
String get chatOpenProfile => 'Vedi profilo';
@override
String get groupsProfile => 'Info gruppo';
@override
String get chatSearchHint => 'Cerca nella chat';
@override
String get chatSearchNoMatches => 'Nessuno';
@override
String chatSearchCounter(int current, int total) {
return '$current di $total';
}
@override
String get chatSearchOlder => 'Risultato precedente';
@override
String get chatSearchNewer => 'Risultato successivo';
@override
String chatUnreadDivider(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count nuovi messaggi',
one: '1 nuovo messaggio',
);
return '$_temp0';
}
@override
String get chatJumpToLatest => 'Vai ai più recenti';
@override
String get chatAttach => 'Allega';
@override
String get chatSend => 'Invia';
@override
String get chatRecordVoice => 'Registra messaggio vocale';
@override
String get profileSharedMedia => 'Media condivisi';
@override
String get profileMessage => 'Messaggio';
@override
String get profileSearch => 'Cerca';
@override
String get profileUnmute => 'Riattiva';
@override
String get profileDisappearing => 'Effimeri';
@override
String get profileCommonGroups => 'Gruppi in comune';
@override
String get profileSafetyNumber => 'Numero di sicurezza';
@override
String get profileSafetyNumberHint => 'Confronta di persona o con codice QR';
@override
String get profileVerifiedInPerson => 'Verificato di persona';
@override
String get profileVerifyNow => 'Verifica contatto';
@override
String get profileAdd => 'Aggiungi';
@override
String profileGroupSubtitle(String members, String date) {
return 'Gruppo · $members · creato il $date';
}
@override
String profileMembersOfMax(int count, int max) {
return '$count su $max';
}
@override
String get chatTyping => 'sta scrivendo…';
@override
String chatTypingNamed(String name) {
return '$name sta scrivendo…';
}
@override
String get chatTypingSeveral => 'Più persone stanno scrivendo…';
@override
String get settingsTypingTitle => 'Indicatore di scrittura';
@override
String get settingsTypingSubtitle =>
'Reciproco — se non lo condividi, non lo vedi (disattivato di default)';
@override
String get pollAttach => 'Sondaggio';
@override
String get pollCreateTitle => 'Nuovo sondaggio';
@override
String get pollQuestion => 'Domanda';
@override
String pollOptionHint(int number) {
return 'Opzione $number';
}
@override
String get pollAddOption => 'Aggiungi opzione';
@override
String get pollRemoveOption => 'Rimuovi opzione';
@override
String get pollAllowMultiple => 'Consenti più risposte';
@override
String get pollSingle => 'Sondaggio';
@override
String get pollMulti => 'Sondaggio, scelta multipla';
@override
String pollVoters(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count voti',
one: '1 voto',
zero: 'ancora nessun voto',
);
return '$_temp0';
}
@override
String pollFallback(String question) {
return 'Sondaggio: $question';
}
@override
String get pollFallbackUpdate => 'Aggiorna Šepot per votare.';
@override
String get profilePhotoEdit => 'Cambia foto profilo';
@override
String get profilePhotoPick => 'Scegli foto';
@override
String get profilePhotoRemove => 'Rimuovi foto';
@override
String get profilePhotoHint =>
'La vedranno solo le persone con cui chatti — cifrata come i messaggi. Posizione e metadati non vengono inviati.';
@override
String profilePhotoFailed(String error) {
return 'Impossibile impostare la foto: $error';
}
@override
String get reauthTitle => 'Conferma che sei tu';
@override
String get reauthPinRequired =>
'Questa azione richiede un PIN. Impostalo prima.';
@override
String get reauthSetPin => 'Imposta PIN';
@override
String get reauthReasonSeed => 'Mostra le 24 parole di recupero';
@override
String get reauthReasonBackupExport => 'Esporta backup';
@override
String get reauthReasonBackupImport => 'Ripristina da backup';
@override
String get reauthReasonDecoyPin => 'Modifica il PIN di emergenza';
@override
String get reauthReasonAutoLock => 'Prolunga il blocco automatico';
@override
String get reauthReasonScreenSecurity => 'Disattiva la protezione schermo';
@override
String get reauthReasonDeleteAccount => 'Elimina l\'account e tutti i dati';
@override
String get reauthReasonBiometrics => 'Attiva la biometria';
@override
String contactRequestName(String name) {
return '$name (sconosciuto)';
}
@override
String get pushMessageRequest =>
'Richiesta di messaggio da un mittente sconosciuto';
@override
String get requestTitle => 'Richiesta di messaggio';
@override
String requestBody(String name) {
return '«$name» non è tra i tuoi contatti. Nome e foto li ha scelti da sé, quindi potrebbe non essere chi dice di essere. Finché non accetti, non vede che hai letto il messaggio e non può chiamarti.';
}
@override
String requestLookalikeWarning(String name) {
return 'Attenzione: il tuo contatto $name ha lo stesso nome. Questa è una chiave diversa, quindi un altro telefono o un\'altra persona. Verifica in un altro modo prima di rispondere (chiama, incontratevi).';
}
@override
String get requestAccept => 'Accetta';
@override
String get requestAcceptTitle => 'Accetta come contatto';
@override
String get requestAcceptBody =>
'Dai tu un nome al contatto. Il nome scelto dal mittente non viene ripreso automaticamente.';
@override
String get requestAcceptNameLabel => 'Nome del contatto';
@override
String get requestNameEmpty => 'Inserisci un nome.';
@override
String get requestNameTaken =>
'Un altro contatto ha già questo nome (o quasi). Scegline uno che non si possa confondere.';
@override
String noticeIdentityChanged(String name) {
return 'Il codice di sicurezza di $name è cambiato. Al suo indirizzo si è presentata una chiave diversa: nuovo telefono, reinstallazione o un impostore. La verifica è stata annullata. Confrontate di nuovo il codice prima di inviare qualcosa di sensibile.';
}
@override
String noticeLookalikeRequest(String claimed, String name) {
return 'Un mittente sconosciuto si è chiamato «$claimed», un nome che si confonde con il tuo contatto $name. Non è questo contatto, il messaggio è arrivato da una chiave diversa. Lo trovi nelle chat come richiesta di messaggio.';
}
@override
String get noticeVerifyAction => 'Verifica codice';
@override
String get noticePreview => 'Avviso di sicurezza';
}