Files
sepot/app/lib/l10n/generated/app_localizations_cs.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

1821 lines
46 KiB
Dart

// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for Czech (`cs`).
class AppLocalizationsCs extends AppLocalizations {
AppLocalizationsCs([String locale = 'cs']) : super(locale);
@override
String get appTitle => 'Šepot';
@override
String get settingsLanguage => 'Jazyk aplikace';
@override
String get languageSystem => 'Podle systému';
@override
String get commonUnknownContact => 'Neznámý';
@override
String get verifyVerified => 'Ověřeno';
@override
String get verifyUnverified => 'Neověřeno';
@override
String get chatMenuVerifyContact => 'Ověřit kontakt';
@override
String get chatDisappearingMessages => 'Mizící zprávy';
@override
String get chatMenuUnblockContact => 'Odblokovat kontakt';
@override
String get chatMenuBlockContact => 'Blokovat kontakt';
@override
String get reportAndBlock => 'Nahlásit a zablokovat';
@override
String errorGeneric(String error) {
return 'Chyba: $error';
}
@override
String get groupsYouLeftGroup => 'Už nejsi ve skupině';
@override
String groupsMemberCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count členů',
many: '$count člena',
few: '$count členové',
one: '1 člen',
);
return '$_temp0';
}
@override
String get groupsMembers => 'Členové';
@override
String get groupsRename => 'Přejmenovat skupinu';
@override
String get groupsLeave => 'Opustit skupinu';
@override
String get groupsLeftBanner =>
'Už nejsi ve skupině. Historie zůstává, nové zprávy nedorazí.';
@override
String get groupsYou => 'Ty';
@override
String get groupsFounder => 'Zakladatel';
@override
String get groupsAdmin => 'Správce';
@override
String get groupsMakeAdmin => 'Udělat správcem';
@override
String get groupsDismissAdmin => 'Odebrat roli správce';
@override
String get groupsRemoveMember => 'Odebrat ze skupiny';
@override
String groupsRemoveMemberConfirmTitle(String name) {
return 'Odebrat $name ze skupiny?';
}
@override
String get groupsRemoveMemberConfirmBody =>
'Přestanou mu chodit nové zprávy skupiny. Dosavadní historie mu zůstane.';
@override
String get groupsRemoveAction => 'Odebrat';
@override
String get groupsViewContact => 'Zobrazit kontakt';
@override
String get groupsAdminOnlyHint =>
'Jméno, členy a správce skupiny mění jen správci.';
@override
String get groupsAdminOnlyCompatHint =>
'Jméno a správce mění jen správci. Přidávat lidi zatím může každý, protože někdo ve skupině má starší verzi Šepotu.';
@override
String groupsAdminActionFailed(String error) {
return 'Změna se nepovedla: $error';
}
@override
String get groupsResyncNotice =>
'Stav skupiny se srovnává se správcem. Změny členů se můžou chvíli opozdit.';
@override
String get groupsRejectedChangeNotice =>
'Někdo bez oprávnění zkusil skupinu změnit. Změna se neprovedla.';
@override
String get errorGroupNotAdmin => 'Tohle může udělat jen správce skupiny.';
@override
String get errorGroupLastAdmin =>
'Jsi jediný správce. Nejdřív udělej správcem někoho dalšího.';
@override
String get groupsNameHint => 'Název skupiny';
@override
String get commonCancel => 'Zrušit';
@override
String get commonSave => 'Uložit';
@override
String groupsRenameFailed(String error) {
return 'Přejmenování selhalo: $error';
}
@override
String get groupsLeaveConfirmTitle => 'Opustit skupinu?';
@override
String get groupsLeaveConfirmBody =>
'Ostatní uvidí, že už ve skupině nejsi. Historie ti zůstane, ale nové zprávy už nedostaneš a zpět tě musí někdo pozvat.';
@override
String get groupsLeaveAction => 'Opustit';
@override
String groupsLeaveFailed(String error) {
return 'Odchod selhal: $error';
}
@override
String get chatBlockedBanner =>
'Kontakt je zablokovaný. Nedostáváš od něj zprávy a nemůžeš mu psát.';
@override
String get chatUnblock => 'Odblokovat';
@override
String chatContactBlocked(String name) {
return 'Kontakt $name je zablokovaný';
}
@override
String chatContactUnblocked(String name) {
return 'Kontakt $name je odblokovaný';
}
@override
String reportAndBlockBody(String name) {
return 'Kontakt $name zablokujeme a přestaneš od něj dostávat zprávy. Pak ti nabídneme formulář, kterým nám dáš vědět, co se stalo — obsah zpráv nevidíme, takže bez tvého popisu o tom nevíme.';
}
@override
String get chatEmptyEncrypted => 'Zprávy jsou end-to-end šifrované.';
@override
String get chatEmptyNoOneElse => 'Nikdo jiný je nemůže číst.';
@override
String get commonToday => 'Dnes';
@override
String get commonYesterday => 'Včera';
@override
String get chatMessageHint => 'Napiš zprávu…';
@override
String get chatDiscardRecording => 'Zahodit';
@override
String get chatRecording => 'Nahrávám…';
@override
String get chatMicPermissionMissing => 'Chybí oprávnění k mikrofonu';
@override
String chatRecordingFailed(String error) {
return 'Nahrávání selhalo: $error';
}
@override
String chatVoiceSendFailed(String error) {
return 'Odeslání hlasové zprávy selhalo: $error';
}
@override
String get chatDeletedMessagePreview => 'Smazaná zpráva';
@override
String get chatVoiceMessagePreview => '🎤 Hlasová zpráva';
@override
String get chatPhotoPreview => '📷 Fotka';
@override
String get chatAttachmentPreview => '📎 Příloha';
@override
String get chatEditingMessage => 'Úprava zprávy';
@override
String get chatReply => 'Odpověď';
@override
String get chatActionReply => 'Odpovědět';
@override
String get chatActionForward => 'Přeposlat';
@override
String get forwardTitle => 'Přeposlat do…';
@override
String get forwardSearchHint => 'Hledat kontakt nebo skupinu';
@override
String get forwardEmpty => 'Nic tu není';
@override
String forwardDone(String name) {
return 'Přeposláno: $name';
}
@override
String forwardFailed(String error) {
return 'Přeposlání se nepovedlo: $error';
}
@override
String get commonCopy => 'Kopírovat';
@override
String get commonEdit => 'Upravit';
@override
String get chatDeleteForMe => 'Smazat u mě';
@override
String get chatDeleteForEveryone => 'Smazat pro všechny';
@override
String get commonOff => 'Vypnuto';
@override
String get chatDisappearing30s => '30 sekund';
@override
String get chatDisappearing5m => '5 minut';
@override
String get chatDisappearing1h => '1 hodina';
@override
String get chatDisappearing1d => '1 den';
@override
String get chatDisappearing1w => '1 týden';
@override
String get chatDisappearingDescription =>
'Nové zprávy se po uplynutí doby smažou u tebe i u protistrany.';
@override
String get chatDisappearingDisabled => 'Mizící zprávy vypnuty';
@override
String chatDisappearingEnabled(String duration) {
return 'Nové zprávy zmizí po: $duration';
}
@override
String get attachmentGallery => 'Fotka z galerie';
@override
String get attachmentTakePhoto => 'Vyfotit';
@override
String get attachmentDocument => 'Dokument';
@override
String attachmentTooLarge(int maxMb) {
return 'Soubor je příliš velký (max $maxMb MB)';
}
@override
String get attachmentKeepsMetadataTitle => 'Fotka odejde i s polohou';
@override
String get attachmentKeepsMetadataBody =>
'Tenhle formát fotky (třeba HEIC) neumím zbavit metadat. Odešla by v originále včetně polohy, kde vznikla, a údajů o telefonu. Bezpečnější je poslat ji přes Galerii, kde se metadata odstraní.';
@override
String get attachmentSendOriginal => 'Poslat originál';
@override
String attachmentPickFailed(String error) {
return 'Výběr přílohy selhal: $error';
}
@override
String attachmentSendFailed(String error) {
return 'Odeslání přílohy selhalo: $error';
}
@override
String chatSendFailed(String error) {
return 'Odeslání selhalo: $error';
}
@override
String get chatMessageDeleted => 'Zpráva smazána';
@override
String get chatEdited => 'upraveno';
@override
String get errorTrustRootChanged =>
'Trust root relaye se změnil! Odmítám komunikovat.';
@override
String get errorRelayUnavailable => 'Relay nedostupný (sender certificate)';
@override
String get errorNotYetRegistered =>
'Šepot se ještě připojuje k relayi — zkus zprávu poslat za chvíli.';
@override
String get errorContactLinkIncomplete =>
'Odkaz je neúplný — protistrana ho vytvořila dřív, než se stihla připojit. Požádej ji o nový sepot:// odkaz.';
@override
String errorAttachmentTooLarge(int maxMb) {
return 'Příloha je příliš velká (max $maxMb MB)';
}
@override
String get errorGroupNeedsMember => 'Skupina potřebuje aspoň 1 člena';
@override
String get errorAttachmentUnavailable => 'Příloha už v telefonu není';
@override
String errorGroupMaxMembers(int maxMembers) {
return 'Skupina může mít nejvýš $maxMembers členů';
}
@override
String errorMemberNoDeliveryAddress(String displayName) {
return '$displayName nemá doručovací adresu — požádej o nový odkaz';
}
@override
String get errorContactNoDeliveryAddress =>
'Kontakt nemá doručovací adresu — požádej ho o nový sepot:// odkaz';
@override
String get errorIdentityKeyMismatch =>
'Identity klíč z relaye NESEDÍ s kontaktem — možný MITM! Zpráva neodeslána.';
@override
String get settingsTitle => 'Nastavení';
@override
String get settingsSectionGeneral => 'Obecné';
@override
String get settingsSectionSecurity => 'Zabezpečení';
@override
String get settingsChangePinTitle => 'Změnit PIN';
@override
String get settingsChangePinSubtitle => '6místný PIN pro odemknutí';
@override
String get settingsAutoLockTitle => 'Automatický zámek';
@override
String get settingsAutoLock5min => 'Po 5 minutách';
@override
String get settingsDecoyPinTitle => 'Nátlakový PIN';
@override
String get settingsDecoyPinSetSubtitle =>
'Nastaven — otevře prázdnou aplikaci';
@override
String get settingsDecoyPinUnsetSubtitle =>
'Druhý PIN, který otevře prázdnou aplikaci';
@override
String get settingsSectionNotifications => 'Notifikace';
@override
String get settingsSectionConnection => 'Připojení';
@override
String get settingsSectionPrivacy => 'Soukromí';
@override
String get settingsReadReceiptsTitle => 'Potvrzení přečtení';
@override
String get settingsReadReceiptsSubtitle =>
'Ukazovat protistraně přečtení zpráv (výchozí vypnuto)';
@override
String get settingsScreenSecurityTitle => 'Zabezpečení obrazovky';
@override
String get settingsScreenSecuritySubtitle =>
'Blokovat screenshoty a skrýt obsah v přepínači aplikací';
@override
String get settingsSectionBackup => 'Záloha klíčů';
@override
String get settingsSeedPhraseTitle => 'Zálohovací fráze';
@override
String get settingsSeedPhraseSubtitle => '24 slov pro obnovu identity';
@override
String get settingsBackupExportTitle => 'Zálohovat historii';
@override
String get settingsBackupExportSubtitle =>
'Šifrovaný soubor s kontakty a zprávami';
@override
String get settingsBackupImportTitle => 'Obnovit ze zálohy';
@override
String get settingsBackupImportSubtitle =>
'Načíst zálohu (jen s tvojí identitou)';
@override
String get settingsSectionSafety => 'Bezpečnost';
@override
String get settingsReportAbuseTitle => 'Nahlásit zneužití';
@override
String get settingsReportAbuseSubtitle =>
'Obtěžování, podvod, ohrožení dítěte';
@override
String get settingsChildSafetyTitle => 'Standardy ochrany dětí';
@override
String get settingsChildSafetySubtitle =>
'Jak postupujeme proti zneužívání dětí';
@override
String get settingsSectionAbout => 'O aplikaci';
@override
String get commonAppName => 'Šepot';
@override
String settingsVersion(String version) {
return 'Verze $version';
}
@override
String get settingsLicenseTitle => 'Licence';
@override
String get settingsLicenseSubtitle => 'AGPL-3.0';
@override
String get settingsPrivacyPolicyTitle => 'Zásady ochrany soukromí';
@override
String get settingsPrivacyPolicySubtitle => 'Co o tobě víme (a co ne)';
@override
String get settingsTermsTitle => 'Podmínky použití';
@override
String get settingsTermsSubtitle => 'sepot.cz/podminky';
@override
String get settingsDataDeletionTitle => 'Smazání dat';
@override
String get settingsDataDeletionSubtitle => 'Jak požádat o výmaz';
@override
String get settingsDeleteAllDataButton => 'Smazat všechna data';
@override
String settingsLicenseBody(String supportEmail) {
return 'Šepot je šířen pod licencí GNU Affero General Public License verze 3 (AGPL-3.0). Používá knihovnu libsignal, rovněž AGPL-3.0.\n\nO zdrojový kód odpovídající této verzi si můžeš napsat na $supportEmail a pošleme ti ho.';
}
@override
String get commonClose => 'Zavřít';
@override
String get settingsIdCopied => 'ID zkopírováno';
@override
String settingsFingerprint(String fingerprint) {
return 'Otisk: $fingerprint';
}
@override
String get backupShareSubject => 'Šepot — šifrovaná záloha';
@override
String backupExportFailed(String error) {
return 'Záloha selhala: $error';
}
@override
String backupRestoredCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Obnoveno $count konverzací ze zálohy',
many: 'Obnoveno $count konverzace ze zálohy',
few: 'Obnoveny $count konverzace ze zálohy',
one: 'Obnovena 1 konverzace ze zálohy',
);
return '$_temp0';
}
@override
String backupImportFailed(String error) {
return 'Obnova ze zálohy selhala: $error';
}
@override
String get settingsDecoyPinExplain =>
'Zadáním tohoto PINu se aplikace otevře prázdná — bez tvých kontaktů a zpráv. Musí být jiný než běžný PIN.';
@override
String get commonConfirm => 'Potvrdit';
@override
String get commonSet => 'Nastavit';
@override
String get settingsDecoyPinEnabled => 'Nátlakový PIN nastaven';
@override
String get settingsDecoyPinConflict =>
'Nátlakový PIN musí být jiný než běžný';
@override
String get settingsDecoyPinDisabled => 'Nátlakový PIN zrušen';
@override
String get settingsSeedPhraseNotFound => 'Zálohovací fráze nebyla nalezena';
@override
String get settingsSeedPhraseWarning =>
'Tato slova jsou jedinou zálohou tvé identity. Nikomu je neukazuj!';
@override
String settingsSeedWordChip(int index, String word) {
return '$index. $word';
}
@override
String get settingsAboutTagline => 'Šepot — Soukromý Messenger';
@override
String get settingsAboutBody =>
'E2E šifrovaný messenger s otevřeným zdrojovým kódem.\n\nKryptografie:\n• X25519 (výměna klíčů)\n• XChaCha20-Poly1305 (šifrování)\n• Ed25519 (podpisy)\n\n© 2026 ajtak.it';
@override
String get settingsDeleteAccountTitle => 'Smazat účet a všechna data?';
@override
String get settingsDeleteAccountBody =>
'Tato akce je nevratná. Všechny zprávy, kontakty a klíče budou smazány z tohoto zařízení a účet bude odregistrován ze serveru. Pokud nemáš zálohovací frázi, přijdeš o svou identitu.';
@override
String get settingsDeleteAccountServerOffline =>
'Server je teď nedostupný — data v zařízení jsou smazaná, registrace na serveru zůstala. Zbytek smažeme na podpora@sepot.cz.';
@override
String get settingsDeleteAllConfirm => 'Smazat vše';
@override
String groupsCreateFailed(String error) {
return 'Skupinu se nepovedlo založit: $error';
}
@override
String get groupsNewGroupTitle => 'Nová skupina';
@override
String get groupsCreateAction => 'Založit';
@override
String groupsMembersCounter(int selectedCount, int maxMembers) {
return 'Členové ($selectedCount/$maxMembers)';
}
@override
String get groupsEmptyContactsHint =>
'Nejdřív si přidej kontakty — skupina se skládá z lidí, se kterými si už můžeš psát.';
@override
String get groupsMemberMissingAddress =>
'Chybí doručovací adresa — požádej o nový odkaz';
@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 =>
'Stažení selhalo — klepni pro opakování';
@override
String get attachmentDownloadFailed => 'Stažení selhalo';
@override
String get attachmentDownloading => 'Stahuji…';
@override
String get attachmentSharedFileFallbackName => 'soubor';
@override
String attachmentOpenFailed(String error) {
return 'Otevření přílohy selhalo: $error';
}
@override
String get commonFile => 'Soubor';
@override
String get chatListNewConversation => 'Nová konverzace';
@override
String get chatListReadReceiptPreview => 'Přečteno';
@override
String get chatListDraft => 'Koncept';
@override
String get notesTitle => 'Poznámky pro sebe';
@override
String get notesSubtitle => 'Jen v tomto telefonu, šifrovaně';
@override
String get callVoice => 'Zavolat';
@override
String get callVideo => 'Videohovor';
@override
String get callStatusRinging => 'Vyzvání…';
@override
String get callIncomingVoice => 'Příchozí hovor';
@override
String get callIncomingVideo => 'Příchozí videohovor';
@override
String get callStatusConnecting => 'Spojuji…';
@override
String get callEnded => 'Hovor skončil';
@override
String get callEndedBusy => 'Obsazeno';
@override
String get callEndedRejected => 'Hovor odmítnut';
@override
String get callEndedUnanswered => 'Nikdo to nevzal';
@override
String get callEndedFailed => 'Spojení se nepodařilo';
@override
String get callEncrypted => 'Šifrováno end-to-end';
@override
String get callAccept => 'Přijmout';
@override
String get callReject => 'Odmítnout';
@override
String get callMute => 'Ztlumit mikrofon';
@override
String get callSpeaker => 'Reproduktor';
@override
String get callCamera => 'Vypnout kameru';
@override
String get callSwitchCamera => 'Přepnout kameru';
@override
String get callHangUp => 'Zavěsit';
@override
String get callLogMissed => 'Zmeškaný hovor';
@override
String get callLogUnanswered => 'Nepřijatý hovor';
@override
String get callLogRejected => 'Odmítnutý hovor';
@override
String get callLogBusy => 'Obsazeno';
@override
String get callLogFailed => 'Hovor se nespojil';
@override
String callLogVoice(String duration) {
return 'Hovor · $duration';
}
@override
String callLogVideo(String duration) {
return 'Videohovor · $duration';
}
@override
String get chatListTimeNow => 'teď';
@override
String chatListTimeMinutes(int minutes) {
return '$minutes min';
}
@override
String get qrScanTitle => 'Skenovat QR kód';
@override
String get qrScanInstruction => 'Namiř kameru na QR kód kontaktu';
@override
String get qrScanHint => 'QR kód obsahuje veřejný klíč kontaktu';
@override
String get qrNewContactTitle => 'Nový kontakt';
@override
String qrContactAdded(String name) {
return '$name přidán/a';
}
@override
String get commonAdd => 'Přidat';
@override
String get onboardingWelcomeTitle => 'Vítej v Šepotu';
@override
String get onboardingWelcomeSubtitle =>
'Soukromý messenger s end-to-end šifrováním.\nŽádné telefonní číslo. Žádný email.\nJen tvoje klíče.';
@override
String get onboardingStart => 'Začít';
@override
String get onboardingRestoreExisting =>
'Už mám účet — obnovit ze zálohovací fráze';
@override
String get onboardingEncryptionTitle => 'Tvoje zprávy, tvoje klíče';
@override
String get onboardingFeatureSignalTitle => 'Signal protokol';
@override
String get onboardingFeatureSignalSubtitle =>
'X3DH + Double Ratchet, forward secrecy';
@override
String get onboardingFeaturePqTitle => 'Post-kvantová ochrana';
@override
String get onboardingFeaturePqSubtitle => 'Kyber (PQXDH) od první zprávy';
@override
String get onboardingFeatureLocalKeysTitle => 'Klíče jen na tvém zařízení';
@override
String get onboardingFeatureLocalKeysSubtitle => 'Žádný server je nemá';
@override
String get onboardingFeatureDisappearingSubtitle => 'Automaticky se smaží';
@override
String get commonContinue => 'Pokračovat';
@override
String get onboardingIdentityTitle => 'Vytvoř svoji identitu';
@override
String get onboardingIdentitySubtitle =>
'Žádný email ani telefon. Jen jméno a kryptografické klíče.';
@override
String get onboardingDisplayNameLabel => 'Zobrazované jméno';
@override
String get onboardingDisplayNameHint => 'Např. Jan';
@override
String onboardingSeedPhraseWarning(int count) {
return 'Zapiš si těchto $count slov. Jsou jedinou zálohou tvých klíčů!';
}
@override
String get onboardingSeedSavedConfirm =>
'Potvrzuji, že jsem si frázi bezpečně uložil/a';
@override
String get onboardingGenerateKeys => 'Vygenerovat klíče';
@override
String get verifyMismatchTitle => 'Čísla NESOUHLASÍ';
@override
String verifyMatchBody(String contactName) {
return 'Klíče si odpovídají. $contactName je ověřený kontakt.';
}
@override
String get verifyMismatchBody =>
'Bezpečnostní čísla nesedí. Někdo může odposlouchávat spojení (MITM), nebo skenuješ kód jiného kontaktu. NEposílej citlivé zprávy a ověřte se znovu jiným kanálem.';
@override
String get commonUnderstood => 'Rozumím';
@override
String get verifyManualConfirmTitle => 'Označit jako ověřené?';
@override
String get verifyManualConfirmBody =>
'Potvrď jen v případě, že sis číslice porovnal/a s protistranou jiným důvěryhodným kanálem (osobně, hovorem…) a souhlasí.';
@override
String get verifyManualConfirmAction => 'Souhlasí, ověřit';
@override
String get verifyTitle => 'Ověření kontaktu';
@override
String get verifyContactVerifiedBanner => 'Kontakt je ověřený';
@override
String verifyIntro(String contactName) {
return 'Porovnej toto číslo s $contactName. Když souhlasí, vaše šifrování nikdo neodposlouchává. Nejrychlejší je vzájemně si naskenovat QR kódy.';
}
@override
String get verifyScanButton => 'Naskenovat kód protistrany';
@override
String get verifyManualButton => 'Číslice souhlasí — označit ručně';
@override
String get verifyUnverifyButton => 'Zrušit ověření';
@override
String get verifyScanScreenTitle => 'Naskenuj ověřovací QR';
@override
String get reportTitle => 'Nahlásit';
@override
String get reportSubmitted => 'Hlášení odesláno';
@override
String get reportSubmittedChildSafety =>
'Hlášení řešíme přednostně. Pokud je dítě v bezprostředním ohrožení, zavolej 158 nebo linku 116 111.';
@override
String get reportSubmittedThanks => 'Díky. Podíváme se na to co nejdřív.';
@override
String get commonDone => 'Hotovo';
@override
String get reportPanelE2eNotice =>
'Zprávy jsou end-to-end šifrované, takže jejich obsah nevidíme ani teď. Popiš prosím vlastními slovy, co se stalo. Nevkládej sem obsah zpráv ani odkazy na něj — nesmíme ho držet a k posouzení ho nepotřebujeme.';
@override
String get reportPanelCsamWarning =>
'Materiál zobrazující zneužívání dítěte nám NEPOSÍLEJ. Jeho držení je trestné i pro nás a pro nahlášení ho nepotřebujeme. Materiál patří přímo na STOPonline.cz nebo Policii ČR (158). Nám napiš jen to, co se stalo — zablokujeme účet a předáme věc dál.';
@override
String get reportPanelIpNotice =>
'Hlášení nejde přes relay, ale na náš webový server. Ten se při odeslání dozví tvou IP adresu.';
@override
String get reportCategoryHeading => 'Čeho se hlášení týká';
@override
String get reportDescriptionHeading => 'Co se stalo';
@override
String get reportAttachContactId => 'Přiložit ID nahlášeného kontaktu';
@override
String reportAttachContactIdNamed(String contactName) {
return 'Přiložit ID kontaktu $contactName';
}
@override
String get reportReplyToHeading => 'Kontakt na tebe (nepovinné)';
@override
String get reportReplyToHint => 'e-mail, kdybychom se potřebovali doptat';
@override
String get reportSubmitButton => 'Odeslat hlášení';
@override
String get contactsTitle => 'Kontakty';
@override
String get contactsAddContact => 'Přidat kontakt';
@override
String get contactsSearchHint => 'Hledat kontakt...';
@override
String get contactsEmpty => 'Zatím žádné kontakty';
@override
String get contactsNoResults => 'Žádné výsledky';
@override
String get contactsShareCardTitle => 'Sdílej svůj Šepot ID';
@override
String get contactsShareCardSubtitle => 'Ukaž QR kód nebo pošli odkaz';
@override
String get contactsAddDialogPrompt =>
'Vlož sdílený řetězec (share string) kontaktu:';
@override
String get contactsShareStringHint => 'Vložit share string...';
@override
String get contactsInvalidShareString => 'Neplatný share string';
@override
String contactsAdded(String name) {
return 'Kontakt $name přidán';
}
@override
String get verifyContactSubtitle => 'Porovnání bezpečnostního čísla';
@override
String get contactsDeleteContact => 'Smazat kontakt';
@override
String get pinConfirmTitle => 'Potvrď PIN';
@override
String get pinSetupTitle => 'Nastav si PIN';
@override
String get pinConfirmSubtitle => 'Zadej PIN znovu pro potvrzení';
@override
String get pinSetupSubtitle => '6-místný PIN pro odemknutí aplikace';
@override
String get pinSetupFailed => 'Nastavení PINu selhalo. Zkus to znovu.';
@override
String get pinMismatchRetry => 'PINy se neshodují. Zkus to znovu.';
@override
String get pinChangeCurrentTitle => 'Zadej současný PIN';
@override
String get pinChangeCurrentSubtitle => 'Ověříme ho odemčením klíče';
@override
String get pinChangeNewTitle => 'Zadej nový PIN';
@override
String get pinChangeNewSubtitle => '6 číslic';
@override
String get pinChangeConfirmTitle => 'Potvrď nový PIN';
@override
String get pinChangeConfirmSubtitle => 'Zadej ho ještě jednou';
@override
String get pinWrong => 'Špatný PIN.';
@override
String get pinChangeMustDiffer => 'Nový PIN se musí lišit od současného.';
@override
String get pinMismatch => 'PINy se neshodují.';
@override
String get pinDecoyConflict =>
'Tenhle PIN už patří nátlakovému režimu. Zvol jiný.';
@override
String get pinChangeFailed => 'Změna PINu selhala. Zkus to znovu.';
@override
String get pinChanged => 'PIN změněn';
@override
String get errorCryptoInitTitle => 'Šifrovací jádro se nespustilo';
@override
String get errorStartupTitle => 'Šepot se nespustil';
@override
String get errorScreenNotRenderedTitle => 'Tahle obrazovka se nevykreslila';
@override
String get errorStartupBody =>
'Něco se pokazilo hned při startu. Pošli mi prosím tenhle text (podrž prst a zkopíruj) — pomůže mi to najít chybu.';
@override
String get errorContactFooter => 'sepot.cz · napiš mi na kontakt';
@override
String get pinUnlockTitle => 'Odemkni Šepot';
@override
String get pinEnterPin => 'Zadej PIN';
@override
String get pinUnlockWithBiometrics => 'Odemknout biometrií';
@override
String get pinWrong2 => 'Špatný PIN';
@override
String get pinUnlockError => 'Chyba odemčení';
@override
String pinLockedFor(int seconds) {
return 'Příliš mnoho pokusů. Zkus to za $seconds s.';
}
@override
String get pushTitle => 'Push notifikace';
@override
String get pushModeOffDesc => 'Zprávy se stáhnou až po otevření appky.';
@override
String get pushModeUp => 'UnifiedPush (bez Googlu)';
@override
String get pushModeUpDesc =>
'Degooglované — potřebuje aplikaci ntfy (F-Droid/Play).';
@override
String get pushModeFcm => 'Google (FCM, výchozí)';
@override
String get pushModeFcmDesc =>
'Spolehlivé bez další aplikace. Push token zařízení jde Googlu; obsah zpráv nikdy.';
@override
String pushSetupFailed(String error) {
return 'Nastavení pushů selhalo: $error';
}
@override
String get pushHintOff =>
'Zprávy ti přijdou, až Šepot otevřeš — budíčky nejsou nastavené.';
@override
String get pushHintFailed =>
'Budíčky nefungují, zprávy uvidíš až po otevření Šepotu.';
@override
String get pushRegistrationFailed =>
'Budíčky nechodí — distributor registraci odmítl. Zkus push vypnout a znovu zapnout.';
@override
String get pushNoDistributorTitle => 'Žádný distributor';
@override
String get pushNoDistributorBody =>
'Pro degooglované notifikace nainstaluj UnifiedPush distributor, např. ntfy (F-Droid nebo Play). Pak push zapni znovu.';
@override
String get commonOk => 'OK';
@override
String get pushPickDistributorTitle => 'Vyber distributora';
@override
String pushSubtitleUnifiedPush(String distributor) {
return 'UnifiedPush · $distributor';
}
@override
String get pushNoDistributorFallback => 'bez distributora';
@override
String get pushSubtitleFcm => 'Google (FCM)';
@override
String get restoreErrorNameRequired => 'Zadej zobrazované jméno.';
@override
String restoreErrorWordCount(int wordCount, int requiredWords) {
String _temp0 = intl.Intl.pluralLogic(
wordCount,
locale: localeName,
other: 'Fráze má $wordCount slov, potřebuji $requiredWords.',
many: 'Fráze má $wordCount slova, potřebuji $requiredWords.',
few: 'Fráze má $wordCount slova, potřebuji $requiredWords.',
one: 'Fráze má 1 slovo, potřebuji $requiredWords.',
);
return '$_temp0';
}
@override
String get restoreErrorInvalidPhrase =>
'Fráze není platná — zkontroluj slova i jejich pořadí.';
@override
String restoreErrorFailed(String error) {
return 'Obnova selhala: $error';
}
@override
String get restoreTitle => 'Obnovit účet';
@override
String get restoreHeading => 'Zadej svoji zálohovací frázi';
@override
String restoreIntro(int wordCount) {
return '$wordCount slov, ze zálohy vytvořené při zakládání účtu. Obnoví tvoji identitu (stejný SEP kód, kontakty tě dál poznají).';
}
@override
String get restoreHistoryWarning =>
'Historie zpráv se neobnoví — je uložená jen na původním zařízení.';
@override
String get restorePhraseHint => 'slovo1 slovo2 slovo3 …';
@override
String restoreWordCountHelper(int wordCount, int requiredWords) {
return '$wordCount / $requiredWords slov';
}
@override
String chatListArchivedCount(int count) {
return 'Archivované ($count)';
}
@override
String get chatListEmptyTitle => 'Zatím žádné konverzace';
@override
String get chatListEmptySubtitle => 'Přidej kontakt a začni šeptat!';
@override
String get chatListUnmute => 'Zrušit ztlumení';
@override
String get chatListMute => 'Ztlumit';
@override
String get chatListArchive => 'Archivovat';
@override
String get qrShareTitle => 'Můj Šepot ID';
@override
String get qrShareConnectingTitle => 'Připojuji k relayi…';
@override
String get qrShareConnectingBody =>
'Až se Šepot poprvé připojí, objeví se tvůj QR kód a odkaz. Chvilku strpení — stačí pár sekund.';
@override
String get qrIdentityNotFound => 'Identita nebyla nalezena';
@override
String get commonCopiedToClipboard => 'Zkopírováno do schránky';
@override
String qrShareInviteMessage(String shareString) {
return 'Přidej mě na Šepotu!\n\n$shareString';
}
@override
String get commonShare => 'Sdílet';
@override
String get qrShareInfo =>
'Kontakt naskenuje tvůj QR kód nebo vloží sdílený řetězec do aplikace.';
@override
String get reportCategoryChildSafety => 'Ohrožení dítěte';
@override
String get reportCategoryChildSafetyHint =>
'Popiš situaci vlastními slovy. Nevkládej obsah zpráv ani odkazy na materiál.';
@override
String get reportCategoryHarassment => 'Obtěžování nebo výhrůžky';
@override
String get reportCategoryHarassmentHint =>
'Někdo tě zastrašuje, vyhrožuje nebo obtěžuje.';
@override
String get reportCategorySpam => 'Spam';
@override
String get reportCategorySpamHint =>
'Nevyžádané zprávy, hromadné rozesílání.';
@override
String get reportCategoryFraud => 'Podvod';
@override
String get reportCategoryFraudHint =>
'Pokus vylákat peníze, klíče nebo osobní údaje.';
@override
String get reportCategoryOther => 'Jiné';
@override
String get reportCategoryOtherHint => 'Něco jiného, co bychom měli vědět.';
@override
String get reportErrorEmptyDescription => 'Napiš prosím, co se stalo.';
@override
String reportErrorConnection(String supportEmail) {
return 'Nepodařilo se spojit se serverem. Zkus to znovu, nebo napiš na $supportEmail.';
}
@override
String reportErrorRateLimited(String supportEmail) {
return 'Z tvé sítě přišlo příliš mnoho hlášení. Zkus to za hodinu, nebo napiš na $supportEmail.';
}
@override
String reportErrorServer(int statusCode, String supportEmail) {
return 'Odeslání selhalo (kód $statusCode). Napiš prosím na $supportEmail.';
}
@override
String get settingsAutoLockNever => 'Nikdy';
@override
String get settingsAutoLock1min => 'Po 1 minutě';
@override
String get settingsAutoLock15min => 'Po 15 minutách';
@override
String torToggleFailed(String error) {
return 'Přepnutí Toru selhalo: $error';
}
@override
String get torConnectionTitle => 'Připojení přes Tor';
@override
String get torDialogBody =>
'Provoz na server půjde přes síť Tor (skryje tvou IP adresu). Vyžaduje nainstalovanou a spuštěnou aplikaci Orbot s aktivním SOCKS proxy na portu 9050.\n\nBez běžícího Orbotu se zprávy neodešlou ani nepřijmou. Spojení bývá pomalejší.';
@override
String get commonTurnOn => 'Zapnout';
@override
String get torSubtitleOff =>
'Přímé šifrované spojení (WSS). Zapni pro skrytí IP přes Tor.';
@override
String get torStatusConnected => 'Připojeno přes Tor (.onion).';
@override
String get torStatusConnecting => 'Připojuji přes Tor… (běží Orbot?)';
@override
String get torStatusWaiting => 'Přes Tor — čekám na Orbot (SOCKS 9050).';
@override
String get biometricsPinRequiredFirst =>
'Nejdřív nastav PIN — biometrie ho jen doplňuje.';
@override
String get biometricsStorageLocked =>
'Úložiště je zamčené — odemkni appku PINem.';
@override
String get biometricsNotAvailable => 'Zařízení nemá nastavenou biometrii.';
@override
String get biometricsEnrollPromptReason =>
'Potvrď zapnutí biometrického odemčení';
@override
String biometricsSetupFailed(String error) {
return 'Biometrii se nepodařilo nastavit: $error';
}
@override
String get biometricsTileTitle => 'Biometrie';
@override
String get biometricsTileSubtitle =>
'Odemknutí otiskem prstu / obličejem (PIN zůstává záloha)';
@override
String get backupErrorCorruptedFile => 'Poškozený soubor zálohy';
@override
String get backupErrorUnknownFormat => 'Nerozpoznaný formát zálohy';
@override
String get backupErrorWrongIdentity =>
'Zálohu nelze dešifrovat — patří k jiné identitě?';
@override
String attachmentSharedImageFilename(String ext) {
return 'sepot-obrazek.$ext';
}
@override
String get attachmentDecryptFailed => 'Přílohu se nepodařilo dešifrovat';
@override
String get pushActionOpen => 'Otevřít';
@override
String get pushChannelMessagesName => 'Zprávy';
@override
String get pushChannelMessagesDescription =>
'Upozornění na nové zprávy (bez obsahu)';
@override
String pushNewMessageFrom(String senderName) {
return 'Nová zpráva od $senderName';
}
@override
String get pushNewMessages => 'Máš nové zprávy';
@override
String get archiveTitle => 'Archivované';
@override
String get archiveEmpty => 'Žádné archivované konverzace';
@override
String get archiveUnarchive => 'Zrušit archivaci';
@override
String restoreErrorMnemonicWordCount(int count, int expected) {
return 'Fráze má $count slov, očekávám $expected';
}
@override
String restoreErrorInvalidMnemonic(String message) {
return 'Neplatná fráze: $message';
}
@override
String get contactsErrorAlreadyExists => 'Kontakt již existuje';
@override
String get commonAppTagline => 'Soukromý messenger';
@override
String get commonE2eBadgeCompact => 'E2E';
@override
String get commonE2eBadgeFull => 'End-to-end šifrováno';
@override
String get photoPreviewCaptionHint => 'Přidat popisek…';
@override
String get photoPreviewDraw => 'Kreslit';
@override
String get photoPreviewAddText => 'Přidat text';
@override
String get photoPreviewRotate => 'Otočit';
@override
String get photoPreviewUndo => 'Zpět';
@override
String get photoPreviewSend => 'Poslat';
@override
String get photoPreviewTextDialogTitle => 'Text na fotce';
@override
String get photoPreviewRemoveText => 'Odebrat';
@override
String get photoPreviewDecodeFailed => 'Fotku se nepodařilo načíst';
@override
String get chatActionInfo => 'Info o zprávě';
@override
String get messageInfoSent => 'Odesláno';
@override
String get messageInfoDelivered => 'Doručeno';
@override
String get messageInfoRead => 'Přečteno';
@override
String get messageInfoPending => 'zatím ne';
@override
String get messageInfoReadReceiptsOff =>
'Kdy si zprávu přečetli, uvidíš, jen když sám sdílíš potvrzení přečtení (Nastavení).';
@override
String chatStatusReadAt(String time) {
return 'Přečteno $time';
}
@override
String chatStatusDeliveredAt(String time) {
return 'Doručeno $time';
}
@override
String get groupsAddMembers => 'Přidat členy';
@override
String get groupsAddMembersAction => 'Přidat';
@override
String groupsAddMembersFailed(String error) {
return 'Přidání se nepovedlo: $error';
}
@override
String get groupsNoContactsToAdd =>
'Všechny tvoje kontakty už ve skupině jsou. Nového člověka nejdřív přidej do kontaktů přes QR kód.';
@override
String get navChats => 'Chaty';
@override
String get chatListNewChat => 'Nový chat';
@override
String get chatListSearchHint => 'Hledat v chatech a zprávách';
@override
String get chatFilterAll => 'Vše';
@override
String get chatFilterUnread => 'Nepřečtené';
@override
String get chatFilterGroups => 'Skupiny';
@override
String get chatFilterArchive => 'Archiv';
@override
String get chatListNoResults => 'Nic nenalezeno.';
@override
String get chatListFilterEmpty => 'Tady zatím nic není.';
@override
String get chatListPin => 'Připnout';
@override
String get chatListUnpin => 'Odepnout';
@override
String get chatOpenProfile => 'Zobrazit profil';
@override
String get groupsProfile => 'Profil skupiny';
@override
String get chatSearchHint => 'Hledat v konverzaci';
@override
String get chatSearchNoMatches => 'Nic';
@override
String chatSearchCounter(int current, int total) {
return '$current z $total';
}
@override
String get chatSearchOlder => 'Starší shoda';
@override
String get chatSearchNewer => 'Novější shoda';
@override
String chatUnreadDivider(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count nových zpráv',
few: '$count nové zprávy',
one: '1 nová zpráva',
);
return '$_temp0';
}
@override
String get chatJumpToLatest => 'Na nejnovější zprávy';
@override
String get chatAttach => 'Přiložit';
@override
String get chatSend => 'Odeslat';
@override
String get chatRecordVoice => 'Nahrát hlasovou zprávu';
@override
String get profileSharedMedia => 'Sdílená média';
@override
String get profileMessage => 'Zpráva';
@override
String get profileSearch => 'Hledat';
@override
String get profileUnmute => 'Zvuk';
@override
String get profileDisappearing => 'Mizení';
@override
String get profileCommonGroups => 'Společné skupiny';
@override
String get profileSafetyNumber => 'Bezpečnostní číslo';
@override
String get profileSafetyNumberHint => 'Porovnejte osobně nebo QR kódem';
@override
String get profileVerifiedInPerson => 'Ověřeno osobně';
@override
String get profileVerifyNow => 'Ověřit kontakt';
@override
String get profileAdd => 'Přidat';
@override
String profileGroupSubtitle(String members, String date) {
return 'Skupina · $members · založena $date';
}
@override
String profileMembersOfMax(int count, int max) {
return '$count ze $max';
}
@override
String get chatTyping => 'píše…';
@override
String chatTypingNamed(String name) {
return '$name píše…';
}
@override
String get chatTypingSeveral => 'Několik lidí píše…';
@override
String get settingsTypingTitle => 'Ukazovat, že píšu';
@override
String get settingsTypingSubtitle =>
'Oboustranné — kdo nesdílí, nevidí (výchozí vypnuto)';
@override
String get pollAttach => 'Anketa';
@override
String get pollCreateTitle => 'Nová anketa';
@override
String get pollQuestion => 'Otázka';
@override
String pollOptionHint(int number) {
return 'Možnost $number';
}
@override
String get pollAddOption => 'Přidat možnost';
@override
String get pollRemoveOption => 'Odebrat možnost';
@override
String get pollAllowMultiple => 'Povolit víc odpovědí';
@override
String get pollSingle => 'Anketa';
@override
String get pollMulti => 'Anketa, více voleb';
@override
String pollVoters(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count hlasů',
few: '$count hlasy',
one: '1 hlas',
zero: 'zatím bez hlasů',
);
return '$_temp0';
}
@override
String pollFallback(String question) {
return 'Anketa: $question';
}
@override
String get pollFallbackUpdate => 'Hlasovat jde v aktuální verzi Šepotu.';
@override
String get profilePhotoEdit => 'Změnit profilovou fotku';
@override
String get profilePhotoPick => 'Vybrat fotku';
@override
String get profilePhotoRemove => 'Odebrat fotku';
@override
String get profilePhotoHint =>
'Fotku uvidí jen lidé, se kterými si píšeš — šifrovaně, stejně jako zprávy. Poloha ani údaje o fotce se neposílají.';
@override
String profilePhotoFailed(String error) {
return 'Fotku se nepodařilo nastavit: $error';
}
@override
String get reauthTitle => 'Potvrď, že jsi to ty';
@override
String get reauthPinRequired =>
'Tahle akce potřebuje PIN. Nejdřív si ho nastav.';
@override
String get reauthSetPin => 'Nastavit PIN';
@override
String get reauthReasonSeed => 'Zobrazení 24 slov pro obnovu účtu';
@override
String get reauthReasonBackupExport => 'Export zálohy';
@override
String get reauthReasonBackupImport => 'Obnova ze zálohy';
@override
String get reauthReasonDecoyPin => 'Změna nátlakového PINu';
@override
String get reauthReasonAutoLock => 'Prodloužení automatického zámku';
@override
String get reauthReasonScreenSecurity => 'Vypnutí ochrany obrazovky';
@override
String get reauthReasonDeleteAccount => 'Smazání účtu a všech dat';
@override
String get reauthReasonBiometrics => 'Zapnutí biometrie';
@override
String contactRequestName(String name) {
return '$name (neznámý)';
}
@override
String get pushMessageRequest => 'Žádost o zprávu od neznámého odesílatele';
@override
String get requestTitle => 'Žádost o zprávu';
@override
String requestBody(String name) {
return '„$name“ není ve tvých kontaktech. Jméno i fotku si zvolil sám, takže nemusí jít o toho, za koho se vydává. Dokud ho nepřijmeš, neuvidí, že jsi zprávu četl, a nemůže ti volat.';
}
@override
String requestLookalikeWarning(String name) {
return 'Pozor: stejně se jmenuje tvůj kontakt $name. Tohle je jiný klíč, tedy jiný telefon nebo jiný člověk. Než odpovíš, ověř si to jinou cestou (zavolej, potkejte se).';
}
@override
String get requestAccept => 'Přijmout';
@override
String get requestAcceptTitle => 'Přijmout jako kontakt';
@override
String get requestAcceptBody =>
'Pojmenuj kontakt sám. Jméno, které si odesílatel zvolil, se nepřebírá automaticky.';
@override
String get requestAcceptNameLabel => 'Jméno kontaktu';
@override
String get requestNameEmpty => 'Zadej jméno.';
@override
String get requestNameTaken =>
'Tak (nebo skoro tak) se už jmenuje jiný kontakt. Zvol jméno, které je nezamění.';
@override
String noticeIdentityChanged(String name) {
return 'Bezpečnostní kód kontaktu $name se změnil. Pod jeho adresou se ozval jiný klíč: nový telefon, přeinstalace, nebo podvrh. Ověření je zrušené. Než pošleš něco citlivého, porovnejte kód znovu.';
}
@override
String noticeLookalikeRequest(String claimed, String name) {
return 'Neznámý odesílatel si dal jméno „$claimed“, které se plete s kontaktem $name. Tento kontakt to není, zpráva přišla z jiného klíče. Najdeš ji v chatech jako žádost o zprávu.';
}
@override
String get noticeVerifyAction => 'Ověřit kód';
@override
String get noticePreview => 'Bezpečnostní upozornění';
}