Files
TREK/shared/src/i18n/cs/settings.ts
T
Maurice 77162aa8d5 feat(roadtrip): avoid tolls, motorways and ferries, through a second engine
The switch a road tripper keeps asking for has never worked. OSRM's `exclude` is the only
avoidance TREK has, and the two public hosts it ships with answer it HTTP 400 on every
leg: their car profile is built without excludable classes, and their own Lua says why
("no memory for classes on demo server"). So "drive this without the tolls" produced
nothing at all on a default install, and the fallback inside the alternatives bar quietly
gave up after one refusal per host.

FOSSGIS runs a public Valhalla on the whole planet next to that OSRM, keyless, and there
avoidance is a runtime weighting rather than a profile that has to be rebuilt. This adds
it as a second engine asked only the questions the first cannot answer, and puts three
switches under the road trip settings that change the road itself rather than offering an
alternative beside it. Paris to Lyon measured 465.8 km / 297 min with tolls against
492.0 km / 454 min without; Hamburg to Copenhagen comes back ferry-free at 469.8 km,
which OSRM cannot produce at all — where a ferry IS the crossing it answers NoRoute
rather than driving round.

Four things the docs would have got wrong, all measured against the live instance:

- `format=osrm` does not carry `has_toll`. That flag is the entire reason for doing this,
  and it exists only in the native answer — which is also 5.7x smaller, because the OSRM
  shape drags every intersection along. So the adapter translates instead of borrowing a
  familiar envelope.
- Without a `radius` Valhalla refuses a point it cannot bind to a road, where OSRM still
  snaps one. Vienna's Stephansdom, in a pedestrian zone, answers error 442 until a search
  radius is allowed. TREK is full of such places, so every location carries one.
- Ten locations is a hard cap and a road trip day is bundled into one request. A day over
  it is split into runs overlapping by one point, which is exact rather than approximate:
  a measured six-stop day came back within two metres and under a second of the same day
  asked whole.
- Its drive times run 5.4 % above OSRM's over ten European legs and 36 % above on one, and
  those times feed the arrival clocks of a day. So a day is answered by one engine or by
  neither, never by both, and a piece that will not answer loses the whole day rather than
  half of it — the schedule chains leg times blindly and would otherwise print a complete,
  plausible, silently wrong timetable.

Because the weighting can fail, the honest surface is the answer rather than the request.
`use_tolls: 0` still returns a tolled road where there is no untolled crossing, so what
the road actually turned out to be is read back per leg, and a day that could not avoid
what it was asked to avoid says so on its own header instead of wearing a label the road
disproves. The switches disable themselves, with a reason, on an instance pointed at its
own OSRM: that operator chose against public hosts, and a second one they never asked for
would undo the choice.

Two things that would have broken quietly and did not:

- The route cache keys on `profile:unit:coords` and is shared with the day planner, the
  studio and the booking geometry. Without the avoidance in the key, flipping a switch
  returns the old road out of cache in under a millisecond — and worse, an avoiding answer
  stored under the plain key hands those other callers a road nobody drives.
- `snapped` is OSRM-only and carries the dashed kerb-to-door spur from #2273. Valhalla
  echoes the coordinates it was given and never says where it bound them, but the ends of
  a leg's line are exactly those points: measured against Füssen, its first vertex matches
  OSRM's snapped location to the digit.

The alternatives bar gets the same engine, which finally makes its "no motorway" and "no
tolls" offers appear on a default install, plus a ferry-free one. `sameRoad` now compares
geometry rather than numbers there, because two engines' distances for the same road sit
kilometres apart and the old 200 m tolerance called that a discovery.

Desktop only, like the whole road trip mode: nothing under client/src/mobile renders it.
2026-09-09 19:03:00 +02:00

571 lines
37 KiB
TypeScript
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.
import type { TranslationStrings } from '../types';
const settings: TranslationStrings = {
'settings.title': 'Nastavení',
'settings.subtitle': 'Upravte své osobní nastavení',
'settings.tabs.display': 'Zobrazení',
'settings.tabs.map': 'Mapa',
'settings.tabs.notifications': 'Oznámení',
'settings.tabs.integrations': 'Integrace',
'settings.plugins.oauth.connected': 'Připojeno',
'settings.plugins.oauth.notConnected': 'Nepřipojeno',
'settings.plugins.oauth.connect': 'Připojit',
'settings.plugins.oauth.disconnect': 'Odpojit',
'settings.tabs.plugins': 'Doplňky',
'settings.plugins.title': 'Nastavení doplňků',
'settings.plugins.subtitle': 'Tvá osobní nastavení pro doplňky, které používáš (klíče API, předvolby).',
'settings.plugins.empty': 'Nejsou aktivní žádné doplňky.',
'settings.plugins.saved': 'Nastavení uloženo',
'settings.plugins.requiredMissing': '„{field}" je povinné',
'settings.tabs.account': 'Účet',
'settings.tabs.offline': 'Offline',
'settings.tabs.about': 'O aplikaci',
'settings.map': 'Mapy',
'settings.mapTemplate': 'Šablona mapy',
'settings.mapTemplatePlaceholder.select': 'Vyberte šablonu...',
'settings.mapDefaultHint': 'Ponechte prázdné pro OpenStreetMap (výchozí)',
'settings.routingBase': 'Vlastní směrovací server',
'settings.routingBaseHint': 'Vlastní instance OSRM. Prázdné použije veřejné servery s limitem asi jednoho požadavku za sekundu — na den to stačí, na road trip je to málo. Projeví se po restartu serveru.',
'settings.valhallaBase': 'Vlastní instance Valhalla',
'settings.valhallaBaseHint': 'Vlastní instance Valhalla. Ptáme se jí, když má úsek objet mýtné, dálnice nebo trajekty — veřejné servery OSRM to neumí zodpovědět. Prázdné použije veřejnou Valhallu od FOSSGIS, ledaže je výše uveden vlastní směrovací engine; pak se žádný druhý engine neptá. Projeví se po restartu serveru.',
'settings.mapHint': 'URL šablony pro mapové dlaždice',
'settings.mapProvider': 'Poskytovatel mapy',
'settings.mapProviderHint': 'Ovlivňuje mapy v Trip Planneru a Journey. Atlas vždy používá Leaflet.',
'settings.mapLeafletSubtitle': 'Klasické 2D, libovolné rastrové dlaždice',
'settings.mapMapboxSubtitle': 'Vektorové dlaždice, 3D budovy a terén',
'settings.mapMapLibreSubtitle': 'Vektorové dlaždice OpenFreeMap, bez tokenu',
'settings.mapExperimental': 'Experimentální',
'settings.mapMapboxToken': 'Mapbox přístupový token',
'settings.mapMapboxTokenHint': 'Veřejný token (pk.*) z',
'settings.mapMapboxTokenLink': 'mapbox.com → Přístupové tokeny',
'settings.mapCartoKey': 'CARTO API klíč',
'settings.mapCartoKeyHint': 'Podkladové mapy CARTO se bez klíče zobrazují s vodoznakem. Zdarma a bez účtu, na',
'settings.mapCartoKeyLink': 'carto.com API klíč pro podkladové mapy',
'settings.mapCartoKeyMissing':
'Tato šablona je podkladová mapa CARTO. Bez klíče CARTO vypálí do každé dlaždice nápis "API KEY REQUIRED". Dokud klíč nezadáte, TREK zobrazuje výchozí podkladovou mapu.',
'settings.mapStyle': 'Styl mapy',
'settings.mapStylePlaceholder': 'Vyberte styl Mapbox',
'settings.mapStyleHint': 'Preset nebo vaše vlastní URL mapbox://styles/USER/ID',
'settings.mapOpenFreeMapStylePlaceholder': 'Vyberte styl OpenFreeMap',
'settings.mapOpenFreeMapStyleHint': 'Preset nebo URL stylu OpenFreeMap. Styly OpenFreeMap fungují bez tokenu.',
'settings.map3dBuildings': '3D budovy a terén',
'settings.map3dHint': 'Náklon + skutečné 3D vyvýšení budov — funguje s každým stylem, včetně satelitu.',
'settings.mapHighQuality': 'Režim vysoké kvality',
'settings.mapHighQualityHint': 'Antialiasing + zobrazení glóbu pro ostřejší hrany a realistický pohled na svět.',
'settings.mapHighQualityWarning': 'Může ovlivnit výkon na slabších zařízeních.',
'settings.mapTipLabel': 'Tip:',
'settings.mapTip':
'Pravé tlačítko myši a táhněte pro rotaci/náklon mapy. Prostřední tlačítko pro přidání místa (pravé tlačítko je vyhrazeno pro rotaci).',
'settings.saveMap': 'Uložit nastavení mapy',
'settings.apiKeys': 'API klíče',
'settings.mapsKey': 'Google Maps API klíč',
'settings.mapsKeyHint': 'Pro vyhledávání míst. Vyžaduje Places API (New). Získáte na console.cloud.google.com',
'settings.weatherKey': 'OpenWeatherMap API klíč',
'settings.weatherKeyHint': 'Pro předpověď počasí. Zdarma na openweathermap.org/api',
'settings.keyPlaceholder': 'Vložte klíč...',
'settings.configured': 'Nastaveno',
'settings.saveKeys': 'Uložit klíče',
'settings.display': 'Zobrazení',
'settings.colorMode': 'Barevné schéma',
'settings.light': 'Světlé',
'settings.dark': 'Tmavé',
'settings.auto': 'Automatické',
'settings.language': 'Jazyk',
'settings.temperature': 'Jednotky teploty',
'settings.distance': 'Jednotky vzdálenosti',
'settings.timeFormat': 'Formát času',
'settings.blurBookingCodes': 'Skrýt rezervační kódy',
'settings.aiAlwaysRetry': 'Always retry booking imports with AI',
'settings.aiAlwaysRetryHint': 'When a file cannot be read by the standard parser, automatically retry it with AI.',
'settings.optimizeFromAccommodation': 'Optimalizovat trasu od ubytování',
'settings.optimizeFromAccommodationHint':
'Při optimalizaci dne začne trasa v hotelu, ve kterém se ráno probudíte, a skončí v hotelu, do kterého se večer ubytujete.',
'settings.notifications': 'Oznámení',
'settings.notifyTripInvite': 'Pozvánky na cesty',
'settings.notifyBookingChange': 'Změny rezervací',
'settings.notifyTripReminder': 'Připomínky cest',
'settings.notifyTodoDue': 'Úkol se blíží',
'settings.notifyVacayInvite': 'Pozvánky k propojení Vacay',
'settings.notifyVacayShare': 'Sdílení kalendáře Vacay',
'settings.notifyCollectionInvite': 'Pozvánky do sbírek',
'settings.notifySynologySessionCleared': 'Relace Synology byla zrušena',
'settings.notifyPluginNotification': 'Oznámení pluginů',
'settings.notifyPhotosShared': 'Sdílené fotky (Immich)',
'settings.notifyCollabMessage': 'Zprávy v chatu (Collab)',
'settings.notifyPackingTagged': 'Seznam balení: přiřazení',
'settings.notifyWebhook': 'Webhook oznámení',
'settings.notificationsDisabled':
'Oznámení nejsou nakonfigurována. Požádejte správce o aktivaci e-mailových nebo webhookových oznámení.',
'settings.notificationsActive': 'Aktivní kanál',
'settings.notificationsManagedByAdmin': 'Události oznámení jsou konfigurovány administrátorem.',
'settings.on': 'Zapnuto',
'settings.off': 'Vypnuto',
'settings.mcp.title': 'Konfigurace MCP',
'settings.mcp.endpoint': 'MCP endpoint',
'settings.mcp.clientConfig': 'Konfigurace klienta',
'settings.mcp.clientConfigHint':
'Nahraďte <your_token> API tokenem ze seznamu níže. Cestu k npx může být nutné upravit pro váš systém (např. C:\\PROGRA~1\\nodejs\\npx.cmd ve Windows).',
'settings.mcp.clientConfigHintOAuth':
'Nahraďte <your_client_id> a <your_client_secret> přihlašovacími údaji ze klienta OAuth 2.1, který jste vytvořili výše. mcp-remote při prvním připojení otevře prohlížeč pro dokončení autorizace. Cestu k npx může být nutné upravit pro váš systém (např. C:\\PROGRA~1\\nodejs\\npx.cmd ve Windows).',
'settings.mcp.copy': 'Kopírovat',
'settings.mcp.copied': 'Zkopírováno!',
'settings.mcp.apiTokens': 'API tokeny',
'settings.mcp.createToken': 'Vytvořit nový token',
'settings.mcp.noTokens': 'Zatím žádné tokeny. Vytvořte jeden pro připojení MCP klientů.',
'settings.mcp.tokenCreatedAt': 'Vytvořen',
'settings.mcp.tokenUsedAt': 'Použit',
'settings.mcp.deleteTokenTitle': 'Smazat token',
'settings.mcp.deleteTokenMessage':
'Tento token přestane okamžitě fungovat. Všichni MCP klienti, kteří ho používají, ztratí přístup.',
'settings.mcp.modal.createTitle': 'Vytvořit API token',
'settings.mcp.modal.tokenName': 'Název tokenu',
'settings.mcp.modal.tokenNamePlaceholder': 'např. Claude Desktop, Pracovní notebook',
'settings.mcp.modal.creating': 'Vytváření…',
'settings.mcp.modal.create': 'Vytvořit token',
'settings.mcp.modal.createdTitle': 'Token vytvořen',
'settings.mcp.modal.createdWarning':
'Tento token bude zobrazen pouze jednou. Zkopírujte a uložte ho nyní — nelze ho obnovit.',
'settings.mcp.modal.done': 'Hotovo',
'settings.mcp.toast.created': 'Token vytvořen',
'settings.mcp.toast.createError': 'Nepodařilo se vytvořit token',
'settings.mcp.toast.deleted': 'Token smazán',
'settings.mcp.toast.deleteError': 'Nepodařilo se smazat token',
'settings.mcp.apiTokensDeprecated':
'API tokeny jsou zastaralé a budou odstraněny v budoucí verzi. Místo toho použijte klienty OAuth 2.1.',
'settings.oauth.clients': 'Klienti OAuth 2.1',
'settings.oauth.clientsHint':
'Zaregistrujte klienty OAuth 2.1, aby se aplikace MCP třetích stran (Claude Web, Cursor atd.) mohly připojit bez statických tokenů.',
'settings.oauth.createClient': 'Nový klient',
'settings.oauth.noClients': 'Žádní klienti OAuth nejsou zaregistrováni.',
'settings.oauth.clientId': 'ID klienta',
'settings.oauth.clientSecret': 'Tajný klíč klienta',
'settings.oauth.deleteClient': 'Smazat klienta',
'settings.oauth.deleteClientMessage':
'Tento klient a všechny aktivní relace budou trvale odstraněny. Jakákoliv aplikace, která ho používá, okamžitě ztratí přístup.',
'settings.oauth.rotateSecret': 'Obnovit tajný klíč',
'settings.oauth.rotateSecretMessage':
'Bude vygenerován nový tajný klíč klienta a všechny stávající relace budou okamžitě zneplatněny. Aktualizujte aplikaci před zavřením tohoto dialogu.',
'settings.oauth.rotateSecretConfirm': 'Obnovit',
'settings.oauth.rotateSecretConfirming': 'Obnovování…',
'settings.oauth.rotateSecretDoneTitle': 'Nový tajný klíč vygenerován',
'settings.oauth.rotateSecretDoneWarning':
'Tento tajný klíč se zobrazí pouze jednou. Zkopírujte ho nyní a aktualizujte aplikaci — všechny předchozí relace byly zneplatněny.',
'settings.oauth.activeSessions': 'Aktivní relace OAuth',
'settings.oauth.sessionScopes': 'Oprávnění',
'settings.oauth.sessionExpires': 'Vyprší',
'settings.oauth.revoke': 'Odvolat',
'settings.oauth.revokeSession': 'Odvolat relaci',
'settings.oauth.revokeSessionMessage': 'Tím se okamžitě odvolá přístup pro tuto relaci OAuth.',
'settings.oauth.modal.createTitle': 'Zaregistrovat klienta OAuth',
'settings.oauth.modal.presets': 'Rychlá nastavení',
'settings.oauth.modal.clientName': 'Název aplikace',
'settings.oauth.modal.clientNamePlaceholder': 'např. Claude Web, Moje MCP aplikace',
'settings.oauth.modal.redirectUris': 'Přesměrovací URI',
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
'settings.oauth.modal.redirectUrisHint':
'Jedno URI na řádek. HTTPS, HTTP na loopbacku nebo vlastní schéma aplikace (myapp://). Přesná shoda, kromě portu u loopback URI.',
'settings.oauth.modal.scopes': 'Povolená oprávnění',
'settings.oauth.modal.scopesHint':
'list_trips a get_trip_summary jsou vždy dostupné — bez požadovaného oprávnění. Umožňují AI zjistit potřebná ID výletů.',
'settings.oauth.modal.selectAll': 'Vybrat vše',
'settings.oauth.modal.deselectAll': 'Zrušit výběr',
'settings.oauth.modal.creating': 'Registrování…',
'settings.oauth.modal.create': 'Zaregistrovat klienta',
'settings.oauth.modal.createdTitle': 'Klient zaregistrován',
'settings.oauth.modal.createdWarning':
'Tajný klíč klienta se zobrazí pouze jednou. Zkopírujte ho nyní — nelze ho obnovit.',
'settings.oauth.toast.createError': 'Registrace klienta OAuth se nezdařila',
'settings.oauth.toast.deleted': 'Klient OAuth smazán',
'settings.oauth.toast.deleteError': 'Smazání klienta OAuth se nezdařilo',
'settings.oauth.toast.revoked': 'Relace odvolána',
'settings.oauth.toast.revokeError': 'Odvolání relace se nezdařilo',
'settings.oauth.toast.rotateError': 'Obnovení tajného klíče klienta se nezdařilo',
'settings.oauth.modal.machineClient': 'Strojový klient (bez přihlášení v prohlížeči)',
'settings.oauth.modal.machineClientHint':
'Používá grant client_credentials — bez URI pro přesměrování. Token je vydán přímo přes client_id + client_secret a funguje jako vy v rámci vybraných oborů.',
'settings.oauth.modal.machineClientUsage':
'Získat token: POST /oauth/token s grant_type=client_credentials, client_id a client_secret. Bez prohlížeče, bez obnovovacího tokenu.',
'settings.oauth.badge.machine': 'strojový',
'settings.account': 'Účet',
'settings.about': 'O aplikaci',
'settings.about.reportBug': 'Nahlásit chybu',
'settings.about.reportBugHint': 'Našli jste problém? Dejte nám vědět',
'settings.about.featureRequest': 'Navrhnout funkci',
'settings.about.featureRequestHint': 'Navrhněte novou funkci',
'settings.about.wikiHint': 'Dokumentace a návody',
'settings.about.descriptionManaged':
'TREK helps you organize your trips from the first idea to the last memory. Day planning, budget, packing lists, photos and much more — all in one place.',
'settings.about.sourceTitle': 'Source code',
'settings.about.sourceHint': 'TREK is open source, licensed AGPL-3.0',
'settings.about.supporters.badge': 'Měsíční podporovatelé',
'settings.about.supporters.title': 'Společníci na cestě s TREK',
'settings.about.supporters.subtitle':
'Zatímco plánuješ další trasu, tihle lidé plánují společně se mnou budoucnost TREK. Jejich měsíční příspěvek jde přímo na vývoj a reálně strávené hodiny — aby TREK zůstal Open Source.',
'settings.about.supporters.since': 'podporovatel od {date}',
'settings.about.supporters.tierEmpty': 'Buď první',
'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket',
'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP',
'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer',
'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller',
'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate',
'settings.about.description':
'TREK je samohostovaný plánovač cest, který vám pomůže organizovat výlety od prvního nápadu po poslední vzpomínku. Denní plánování, rozpočet, balicí seznamy, fotky a mnoho dalšího — vše na jednom místě, na vašem vlastním serveru.',
'settings.about.madeWith': 'Vytvořeno s',
'settings.about.madeBy': 'Mauricem a rostoucí open-source komunitou.',
'settings.username': 'Uživatelské jméno',
'settings.email': 'E-mail',
'settings.role': 'Role',
'settings.roleAdmin': 'Administrátor',
'settings.oidcLinked': 'Propojeno přes',
'settings.changePassword': 'Změnit heslo',
'settings.currentPassword': 'Současné heslo',
'settings.currentPasswordRequired': 'Současné heslo je vyžadováno',
'settings.newPassword': 'Nové heslo',
'settings.confirmPassword': 'Potvrdit nové heslo',
'settings.updatePassword': 'Aktualizovat heslo',
'settings.passwordRequired': 'Zadejte prosím současné i nové heslo',
'settings.passwordTooShort': 'Heslo musí mít alespoň 8 znaků',
'settings.passwordMismatch': 'Hesla se neshodují',
'settings.passwordWeak': 'Heslo musí obsahovat velké a malé písmeno, číslici a speciální znak',
'settings.passwordChanged': 'Heslo bylo úspěšně změněno',
'settings.deleteAccount': 'Smazat účet',
'settings.deleteAccountTitle': 'Smazat váš účet?',
'settings.deleteAccountWarning':
'Váš účet a všechny vaše cesty, místa a soubory budou trvale smazány. Tuto akci nelze vrátit.',
'settings.deleteAccountConfirm': 'Smazat natrvalo',
'settings.deleteBlockedTitle': 'Účet nelze smazat',
'settings.deleteBlockedMessage':
'Jste jediným administrátorem. Před smazáním svého účtu předejte roli administrátora jinému uživateli.',
'settings.roleUser': 'Uživatel',
'settings.saveProfile': 'Uložit profil',
'settings.toast.mapSaved': 'Nastavení map uloženo',
'settings.toast.keysSaved': 'API klíče uloženy',
'settings.toast.displaySaved': 'Nastavení zobrazení uloženo',
'settings.toast.profileSaved': 'Profil byl uložen',
'settings.uploadAvatar': 'Nahrát profilový obrázek',
'settings.removeAvatar': 'Odebrat profilový obrázek',
'settings.avatarUploaded': 'Profilový obrázek byl aktualizován',
'settings.avatarRemoved': 'Profilový obrázek byl odstraněn',
'settings.avatarError': 'Nahrávání se nezdařilo',
'settings.avatarRemoveError': 'Odstranění se nezdařilo',
'settings.mfa.title': 'Dvoufaktorové ověření (2FA)',
'settings.mfa.description':
'Přidá druhý stupeň zabezpečení při přihlašování e-mailem a heslem. Použijte aplikaci (Google Authenticator, Authy apod.).',
'settings.mfa.requiredByPolicy': 'Správce vyžaduje dvoufázové ověření. Nejdřív níže nastavte aplikaci autentikátoru.',
'settings.mfa.backupTitle': 'Záložní kódy',
'settings.mfa.backupDescription': 'Použijte tyto jednorázové kódy, pokud ztratíte přístup k autentizační aplikaci.',
'settings.mfa.backupWarning': 'Uložte si je hned. Každý kód lze použít pouze jednou.',
'settings.mfa.backupCopy': 'Kopírovat kódy',
'settings.mfa.backupDownload': 'Stáhnout TXT',
'settings.mfa.backupPrint': 'Tisk / PDF',
'settings.mfa.backupCopied': 'Záložní kódy zkopírovány',
'settings.mfa.enabled': '2FA je pro váš účet aktivní.',
'settings.mfa.disabled': '2FA není aktivní.',
'settings.mfa.setup': 'Nastavit autentizační aplikaci',
'settings.mfa.scanQr': 'Naskenujte tento QR kód ve vaší aplikaci nebo zadejte kód ručně.',
'settings.mfa.secretLabel': 'Tajný klíč (pro ruční zadání)',
'settings.mfa.codePlaceholder': '6místný kód',
'settings.mfa.enable': 'Zapnout 2FA',
'settings.mfa.cancelSetup': 'Zrušit',
'settings.mfa.disableTitle': 'Vypnout 2FA',
'settings.mfa.disableHint': 'Zadejte své heslo k účtu a aktuální kód z aplikace.',
'settings.mfa.disable': 'Vypnout 2FA',
'settings.mfa.toastEnabled': 'Dvoufaktorové ověření bylo zapnuto',
'settings.mfa.toastDisabled': 'Dvoufaktorové ověření bylo vypnuto',
'settings.mfa.demoBlocked': 'Není k dispozici v demo režimu',
'settings.bookingLabels': 'Popisky tras rezervací',
'settings.bookingLabelsHint': 'Zobrazuje názvy stanic / letišť na mapě. Pokud je vypnuto, zobrazí se pouze ikona.',
'settings.mustChangePassword': 'Před pokračováním musíte změnit heslo.',
'settings.notifyVersionAvailable': 'Nová verze k dispozici',
'settings.notifyReplicaFailure': 'Selhání repliky úložiště',
'settings.notificationPreferences.noChannels':
'Nejsou nakonfigurovány žádné kanály oznámení. Požádejte správce o nastavení e-mailových nebo webhook oznámení.',
'settings.webhookUrl.label': 'URL webhooku',
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
'settings.webhookUrl.hint': 'Zadejte URL vašeho Discord, Slack nebo vlastního webhooku pro příjem oznámení.',
'settings.webhookUrl.saved': 'URL webhooku uložena',
'settings.webhookUrl.test': 'Otestovat',
'settings.webhookUrl.testSuccess': 'Testovací webhook byl úspěšně odeslán',
'settings.webhookUrl.testFailed': 'Testovací webhook selhal',
'settings.ntfyUrl.topicLabel': 'Téma Ntfy',
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
'settings.ntfyUrl.serverLabel': 'URL serveru Ntfy (volitelné)',
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
'settings.ntfyUrl.hint':
'Zadejte své téma Ntfy pro příjem push notifikací. Pole serveru ponechte prázdné pro použití výchozího nastavení správce.',
'settings.ntfyUrl.tokenLabel': 'Přístupový token (volitelné)',
'settings.ntfyUrl.tokenHint': 'Vyžadováno pro témata chráněná heslem.',
'settings.ntfyUrl.saved': 'Nastavení Ntfy uloženo',
'settings.ntfyUrl.test': 'Otestovat',
'settings.ntfyUrl.testSuccess': 'Testovací notifikace Ntfy byla úspěšně odeslána',
'settings.ntfyUrl.testFailed': 'Testovací notifikace Ntfy selhala',
'settings.ntfyUrl.tokenCleared': 'Přístupový token byl vymazán',
'settings.notificationPreferences.inapp': 'In-App',
'settings.notificationPreferences.notConfigured': 'Zatím nenastaveno — nastavte to v nastavení pluginu',
'settings.plugins.actions': 'Akce',
'settings.plugins.actions.confirm': 'Spustit tuto akci?',
'settings.notificationPreferences.sendTest': 'Odeslat test',
'settings.notificationPreferences.configure': 'Nastavit',
'settings.notificationPreferences.testSuccess': 'Testovací oznámení odesláno.',
'settings.notificationPreferences.testFailed': 'Test selhal.',
'settings.notificationPreferences.pluginConfigured': 'Nastaveno. Přihlašovací údaje spravuj v nastavení pluginu.',
'settings.notificationPreferences.webhook': 'Webhook',
'settings.notificationPreferences.email': 'Email',
'settings.notificationPreferences.ntfy': 'Ntfy',
'settings.currency': 'Zobrazovaná měna',
'settings.currencyHint':
'Částky v Nákladech se do této měny přepočítávají pouze pro zobrazení – původní částky zůstávají beze změny.',
'settings.currencyTrip': 'Měna cesty',
'settings.passkey.title': 'Přístupové klíče',
'settings.passkey.description':
'Přihlašujte se rychleji a s ochranou proti phishingu pomocí přístupového klíče — otiskem prstu, obličejem, PINem nebo hardwarovým klíčem. Vaše heslo zůstává jako záloha.',
'settings.passkey.notConfigured':
'Přístupové klíče jsou povoleny, ale na tomto serveru zatím nejsou plně nastaveny. Požádejte správce o nastavení domény WebAuthn.',
'settings.passkey.add': 'Přidat přístupový klíč',
'settings.passkey.addTitle': 'Přidat přístupový klíč',
'settings.passkey.passwordPrompt': 'Potvrďte své současné heslo a poté postupujte podle pokynů svého zařízení.',
'settings.passkey.passwordRequired': 'Vaše současné heslo je vyžadováno.',
'settings.passkey.namePlaceholder': 'Název (volitelné, např. „iPhone“)',
'settings.passkey.addedToast': 'Přístupový klíč přidán',
'settings.passkey.added': 'Přidáno',
'settings.passkey.addError': 'Přístupový klíč se nepodařilo přidat',
'settings.passkey.cancelled': 'Nastavení přístupového klíče zrušeno',
'settings.passkey.deleted': 'Přístupový klíč odebrán',
'settings.passkey.deleteConfirm': 'Odebrat tento přístupový klíč? Potvrďte svým heslem.',
'settings.passkey.rename': 'Přejmenovat',
'settings.passkey.defaultName': 'Přístupový klíč',
'settings.passkey.synced': 'Synchronizováno',
'settings.passkey.deviceBound': 'Toto zařízení',
'settings.passkey.lastUsed': 'Naposledy použito',
'settings.passkey.neverUsed': 'Nikdy nepoužito',
'settings.mapPoiPill': 'Objevovat místa na mapě',
'settings.mapPoiPillHint':
'Zobrazit na mapě výletu kategorie pro hledání restaurací, hotelů a dalšího v okolí z OpenStreetMap.',
'settings.airtrail.title': 'AirTrail',
'settings.airtrail.hint':
'Připojte svou vlastní instanci AirTrail pro import a synchronizaci letů. Vytvořte API klíč v AirTrail v Nastavení → Zabezpečení.',
'settings.airtrail.url': 'URL instance',
'settings.airtrail.apiKey': 'API klíč',
'settings.airtrail.apiKeyPlaceholder': 'API klíč Bearer',
'settings.airtrail.apiKeyHint': 'Vygenerován v AirTrail v Nastavení → Zabezpečení. Uložen šifrovaně.',
'settings.airtrail.allowInsecureTls': 'Povolit certifikáty podepsané sebou samým',
'settings.airtrail.allowInsecureTlsHint': 'Povolte pouze pro důvěryhodnou instanci ve vlastní síti.',
'settings.airtrail.writeBack': 'Zapisovat změny zpět do AirTrail',
'settings.airtrail.writeBackHint':
'Ve výchozím stavu vypnuto: AirTrail je zdrojem pravdy a TREK z něj pouze čte. Zapněte, chcete-li odesílat úpravy provedené v TREK zpět do AirTrail.',
'settings.airtrail.connected': 'Připojeno',
'settings.airtrail.notConnected': 'Nepřipojeno',
'settings.airtrail.toast.saved': 'Připojení k AirTrail uloženo',
'settings.airtrail.toast.saveError': 'Připojení se nepodařilo uložit',
'settings.airtrail.test.button': 'Otestovat připojení',
'settings.airtrail.test.success': 'Připojeno – nalezeno letů: {count}',
'settings.airtrail.test.failed': 'Připojení selhalo',
'settings.aiParsing.title': 'Zpracování pomocí AI',
'settings.aiParsing.hint':
'Vyberte model AI pro získání rezervací z nahraných souborů. Platí pouze tehdy, když správce nenastavil model pro celou instanci.',
'settings.aiParsing.provider': 'Poskytovatel',
'settings.aiParsing.providerLocal': 'Místní (Ollama)',
'settings.aiParsing.providerOpenai': 'OpenAI',
'settings.aiParsing.providerAnthropic': 'Anthropic',
'settings.aiParsing.localAdminOnly':
'Místní koncový bod (Ollama) se nastavuje jednou pro celou instanci ve správcovském nastavení. Vlastní klíč OpenAI nebo Anthropic tu můžete používat i nadále.',
'settings.aiParsing.model': 'Model',
'settings.aiParsing.baseUrl': 'Základní URL',
'settings.aiParsing.baseUrlHint': 'Kde model běží — místní server Ollama nebo koncový bod kompatibilní s OpenAI.',
'settings.aiParsing.apiKey': 'Klíč API',
'settings.aiParsing.apiKeyHint': 'Ukládá se šifrovaně. Ponechte prázdné pro zachování aktuálního klíče.',
'settings.aiParsing.multimodal': 'Odesílat dokumenty jako obrázky',
'settings.aiParsing.multimodalHint':
'Pro modely se schopností zpracovat obraz — odešle původní PDF místo extrahovaného textu.',
'settings.aiParsing.toast.saved': 'Nastavení AI uloženo',
'settings.aiParsing.toast.saveError': 'Nastavení AI se nepodařilo uložit',
'settings.tabs.appearance': 'Appearance',
'settings.appearance.theme': 'Theme',
'settings.appearance.scheme': 'Color scheme',
'settings.appearance.scheme.default': 'Default',
'settings.appearance.scheme.highContrast': 'High contrast',
'settings.appearance.scheme.indigo': 'Indigo',
'settings.appearance.scheme.teal': 'Teal',
'settings.appearance.scheme.rose': 'Rose',
'settings.appearance.scheme.amber': 'Amber',
'settings.appearance.scheme.violet': 'Violet',
'settings.appearance.scheme.custom': 'Custom',
'settings.appearance.customAccent': 'Custom accent',
'settings.appearance.contrastOk': 'Good contrast',
'settings.appearance.contrastLow': 'Low contrast',
'settings.appearance.readability': 'Readability',
'settings.appearance.transparency': 'Transparency',
'settings.appearance.transparencyHint':
'Glassy translucent surfaces. Turn off for solid, higher-contrast backgrounds.',
'settings.appearance.reduceMotion': 'Reduce motion',
'settings.appearance.reduceMotionHint': 'Minimize animations and transitions.',
'settings.appearance.density': 'Density',
'settings.appearance.comfortable': 'Comfortable',
'settings.appearance.compact': 'Compact',
'settings.appearance.textSize': 'Text size',
'settings.appearance.advancedTextSizes': 'Advanced text sizes',
'settings.appearance.hideAdvanced': 'Hide advanced',
'settings.appearance.tier.title': 'Titles',
'settings.appearance.tier.subtitle': 'Subtitles',
'settings.appearance.tier.body': 'Body',
'settings.appearance.tier.caption': 'Captions',
'settings.appearance.dashboardWidgets': 'Dashboard widgets',
'settings.appearance.dashboardWidgetsHint': 'Show or hide dashboard widgets independently on desktop and mobile.',
'settings.appearance.desktop': 'Desktop',
'settings.appearance.mobile': 'Mobile',
'settings.appearance.widget.sidebar': 'Right sidebar',
'settings.appearance.widget.currency': 'Currency',
'settings.appearance.widget.collections': 'Sbírky',
'settings.appearance.widget.timezones': 'Timezones',
'settings.appearance.widget.upcomingReservations': 'Upcoming reservations',
'settings.appearance.widget.atlas': 'Atlas / countries',
'settings.appearance.widget.tripsTotal': 'Trips total',
'settings.appearance.widget.daysTraveled': 'Days traveled',
'settings.appearance.widget.distanceFlown': 'Distance flown',
'settings.appearance.reset': 'Reset to defaults',
'settings.appearance.group.belowHero': 'Below the hero',
'settings.appearance.group.bottomOfPage': 'Bottom of page',
'settings.appearance.sidebarHint': 'The whole right column. Turn off and the dashboard centers.',
'settings.appearance.densityHint':
'Compact tightens spacing and padding for a denser layout that fits more on screen.',
'settings.appearance.textSizeAll': 'Everything',
'settings.appearance.perSize': 'Adjust each size separately',
'settings.appearance.size.large': 'Large',
'settings.appearance.size.medium': 'Medium',
'settings.appearance.size.normal': 'Normal',
'settings.appearance.size.small': 'Small',
'settings.appearance.preview.large': 'Large heading',
'settings.appearance.preview.medium': 'Medium subtitle',
'settings.appearance.preview.normal': 'Normal body text',
'settings.appearance.preview.small': 'Small caption / address',
'settings.appearance.example.large': 'Headings, big numbers',
'settings.appearance.example.medium': 'Sub-headings',
'settings.appearance.example.normal': 'Place names, descriptions',
'settings.appearance.example.small': 'Addresses, labels',
'settings.appearance.experimental': 'Experimental',
'settings.appearance.mobileNav': 'Dolní navigační lišta',
'settings.appearance.mobileNav.hint':
'Vyberte, které položky se zobrazí v liště a které budou v nabídce „Více“. Dashboard zůstává vždy na prvním místě.',
'settings.appearance.mobileNav.inBar': 'V liště',
'settings.appearance.mobileNav.underMore': 'V nabídce „Více“',
'settings.appearance.mobileNav.moreEmpty': 'Zatím tu nic není — vše se vejde do lišty.',
'settings.appearance.mobileNav.pinned': 'Připnuto',
'settings.appearance.mobileNav.toMore': 'Přesunout do nabídky „Více“',
'settings.appearance.mobileNav.toBar': 'Přesunout do lišty',
'settings.appearance.dashOrder': 'Pořadí na nástěnce',
'settings.appearance.dashOrder.hint':
'Změňte pořadí, ve kterém se na nástěnce v telefonu řadí seznam cest a widgety. Vybraná cesta zůstává vždy nahoře.',
'settings.appearance.dashOrder.trips': 'Cesty',
'settings.appearance.dashOrder.hidden': 'Skryto',
'settings.general.languageRegion': 'Language & region',
'settings.general.travelMap': 'Travel & map',
'settings.general.startup': 'Spuštění',
'settings.startPage': 'Úvodní stránka',
'settings.startPageDashboard': 'Přehled',
'settings.startPageActiveTrip': 'Aktivní cesta',
'settings.startPageHint':
'TREK se otevře rovnou na cestě, která právě probíhá, jinak na nejbližší nadcházející. Je to táž cesta, kterou zvýrazňuje přehled.',
'settings.startTripTab': 'Úvodní karta',
'settings.startTripTabHint':
'Karta, kterou se cesta otevře. Pokud patří k vypnutému doplňku, otevře se místo ní plán.',
// ── Offline (#1135)
'settings.offline.cache.title': 'Offline mezipaměť',
'settings.offline.mode.title': 'Offline režim',
'settings.offline.mode.force': 'Vynutit offline režim',
'settings.offline.mode.forceHint':
'Pracujte pouze s daty z mezipaměti a změny se zařadí do fronty. Vypnutím se znovu připojíte a synchronizujete.',
'settings.offline.mode.active':
'Offline režim je zapnutý — vaše změny jsou ve frontě a synchronizují se, jakmile jej vypnete.',
'settings.offline.prepare.title': 'Příprava na offline',
'settings.offline.prepare.hint':
'Stáhněte si vše potřebné — data cest, dokumenty a mapové dlaždice — než ztratíte připojení.',
'settings.offline.prepare.button': 'Stáhnout pro offline použití',
'settings.offline.prepare.running': 'Stahování…',
'settings.offline.prepare.done': 'Připraveno pro offline použití',
'settings.offline.prepare.phase.trips': 'Data cest',
'settings.offline.prepare.phase.files': 'Dokumenty',
'settings.offline.prepare.phase.tiles': 'Mapové dlaždice',
'settings.offline.resync': 'Synchronizovat znovu',
'settings.offline.resyncing': 'Synchronizace…',
'settings.offline.storage.title': 'Co ukládat offline',
'settings.offline.storage.tiles': 'Ukládat mapové dlaždice offline',
'settings.offline.storage.tilesHint':
'Mapové dlaždice zabírají nejvíce místa. Vypnutím ponecháte offline pouze data cest a dokumenty.',
'settings.offline.storage.tripsTitle': 'Cesty',
'settings.offline.storage.tripOn': 'Uloženo offline',
'settings.offline.storage.tripOff': 'Neuloženo',
'settings.offline.storage.tripFinished': 'Ukončeno. Uloží se, jen když to zapnete.',
'settings.offline.notice.stored': 'Uloženo {count} cest v tomto zařízení',
'settings.offline.notice.nothing': 'Není co ukládat. Zapněte cesty, které si chcete ponechat.',
'settings.offline.notice.busy': 'Synchronizace už probíhá. Zkuste to za chvíli znovu.',
'settings.offline.notice.offline': 'Bez připojení. Připojte se, abyste mohli ukládat cesty offline.',
'settings.offline.notice.signedOut': 'Vaše relace vypršela. Pro synchronizaci se znovu přihlaste.',
'settings.offline.notice.failed': 'Stahování se nepodařilo dokončit. Zkontrolujte připojení a zkuste to znovu.',
'settings.offline.notice.loadFailed': 'Offline úložiště tohoto zařízení se nepodařilo načíst. Obvykle pomůže vymazání mezipaměti.',
'settings.offline.clear': 'Vymazat mezipaměť',
'settings.offline.clearConfirm': 'Vymazat všechna offline data cest? Kdykoli online je můžete znovu synchronizovat.',
'settings.offline.stats.trips': 'Cesty v mezipaměti',
'settings.offline.stats.pending': 'Čekající změny',
'settings.offline.stats.failed': 'Neúspěšné změny',
'settings.offline.stats.conflicts': 'Konflikty',
'settings.offline.empty': 'Zatím žádné cesty v mezipaměti. Pro synchronizaci se připojte k internetu.',
'settings.offline.loading': 'Načítání…',
'settings.offline.conflicts.title': 'Konflikty synchronizace',
'settings.offline.conflicts.hint':
'Změny, které jste provedli offline, se střetávají s novějšími změnami na serveru. Vyberte, kterou verzi zachovat.',
'settings.offline.conflicts.keepMine': 'Zachovat moji',
'settings.offline.conflicts.keepServer': 'Zachovat serverovou',
'settings.offline.conflicts.mine': 'Vaše verze',
'settings.offline.conflicts.server': 'Verze ze serveru',
'settings.offline.conflicts.item': 'Změna v “{name}”',
'settings.offline.conflicts.strategyTitle': 'Když dojde ke konfliktu',
'settings.offline.conflicts.strategy.ask': 'Vždy se mě zeptat',
'settings.offline.conflicts.strategy.mine': 'Vždy zachovat moji verzi',
'settings.offline.conflicts.strategy.server': 'Vždy zachovat verzi ze serveru',
'settings.offline.banner.offline': 'Offline',
'settings.offline.banner.forced': 'Offline režim',
'settings.offline.banner.queued': 'Offline · {count} ve frontě',
'settings.offline.banner.syncing': 'Synchronizace {count}…',
'settings.offline.banner.failed': 'Synchronizace selhala: {count}',
'settings.offline.banner.conflicts': 'Konflikty: {count}',
'settings.pluginActivity.title': 'Aktivita pluginů',
'settings.pluginActivity.description': 'Každá akce, kterou plugin provedl vaším jménem, od nejnovějších.',
'settings.pluginActivity.empty': 'Zatím žádná aktivita pluginů.',
'settings.pluginActivity.refresh': 'Obnovit',
'settings.pluginActivity.columns.plugin': 'Plugin',
'settings.pluginActivity.columns.action': 'Akce',
'settings.pluginActivity.columns.resource': 'Zdroj',
'settings.pluginActivity.columns.when': 'Kdy',
'settings.pluginActivity.columns.status': 'Výsledek',
'settings.alwaysShowRoutes': 'Vždy zobrazovat trasy rezervací',
'settings.alwaysShowRoutesHint':
'Automaticky zobrazí na mapě trasu každého letu, vlaku a jiné rezervace, aniž byste ji museli zapínat jednotlivě.',
// Public API keys (Settings -> Integrations)
'settings.apiKeys.title': 'Klíče API',
'settings.apiKeys.description': 'Klíče pro veřejné API, aby jiný software mohl číst tvoje cesty. Jen pro čtení: klíč nemůže nic měnit ani mazat.',
'settings.apiKeys.create': 'Vytvořit klíč',
'settings.apiKeys.empty': 'Zatím žádné klíče. Vytvoř jeden a připoj další software.',
'settings.apiKeys.createdAt': 'vytvořen',
'settings.apiKeys.usedAt': 'naposledy použit',
'settings.apiKeys.deleteTitle': 'Smazat klíč',
'settings.apiKeys.deleteMessage': 'Vše, co tento klíč používá, okamžitě přestane fungovat. Akci nelze vrátit zpět.',
'settings.apiKeys.deleted': 'Klíč smazán',
'settings.apiKeys.deleteFailed': 'Klíč se nepodařilo smazat',
'settings.apiKeys.createFailed': 'Klíč se nepodařilo vytvořit',
'settings.apiKeys.copy': 'Kopírovat',
'settings.apiKeys.docsHint': 'Pošli klíč jako "Authorization: Bearer ..." nebo "X-API-Key: ..." na /api/v1.',
'settings.apiKeys.modal.createTitle': 'Vytvořit klíč API',
'settings.apiKeys.modal.name': 'Název',
'settings.apiKeys.modal.namePlaceholder': 'např. Dawarich',
'settings.apiKeys.modal.nameHint': 'Jen pro tebe, abys klíč později poznal.',
'settings.apiKeys.modal.creating': 'Vytváří se...',
'settings.apiKeys.modal.create': 'Vytvořit',
'settings.apiKeys.modal.createdTitle': 'Klíč API vytvořen',
'settings.apiKeys.modal.createdWarning': 'Zkopíruj klíč hned teď. Zobrazí se jen jednou a později ho už nelze získat.',
'settings.apiKeys.modal.done': 'Hotovo',
};
export default settings;