From 80502dcc9dd68c8f422936df0c5af22965bca4f7 Mon Sep 17 00:00:00 2001 From: Peter Gonda Date: Thu, 24 Sep 2026 16:34:13 +0200 Subject: [PATCH] feat(i18n): add Slovak (sk) translation --- client/src/i18n/TranslationContext.tsx | 1 + shared/src/i18n/i18n-placeholders.spec.ts | 2 + shared/src/i18n/languages.ts | 1 + shared/src/i18n/sk/admin.ts | 801 ++++++++++++++++++++ shared/src/i18n/sk/airport.ts | 6 + shared/src/i18n/sk/atlas.ts | 65 ++ shared/src/i18n/sk/backup.ts | 72 ++ shared/src/i18n/sk/budget.ts | 164 ++++ shared/src/i18n/sk/categories.ts | 25 + shared/src/i18n/sk/collab.ts | 102 +++ shared/src/i18n/sk/collection.ts | 233 ++++++ shared/src/i18n/sk/common.ts | 78 ++ shared/src/i18n/sk/dashboard.ts | 190 +++++ shared/src/i18n/sk/dawarich.ts | 182 +++++ shared/src/i18n/sk/day.ts | 26 + shared/src/i18n/sk/dayplan.ts | 93 +++ shared/src/i18n/sk/docsync.ts | 182 +++++ shared/src/i18n/sk/externalNotifications.ts | 77 ++ shared/src/i18n/sk/files.ts | 66 ++ shared/src/i18n/sk/help.ts | 12 + shared/src/i18n/sk/index.ts | 114 +++ shared/src/i18n/sk/inspector.ts | 30 + shared/src/i18n/sk/journey.ts | 650 ++++++++++++++++ shared/src/i18n/sk/login.ts | 76 ++ shared/src/i18n/sk/map.ts | 33 + shared/src/i18n/sk/members.ts | 37 + shared/src/i18n/sk/memories.ts | 76 ++ shared/src/i18n/sk/mobileAdmin.ts | 9 + shared/src/i18n/sk/mobileAtlas.ts | 8 + shared/src/i18n/sk/mobileCollections.ts | 7 + shared/src/i18n/sk/mobileJourney.ts | 17 + shared/src/i18n/sk/mobileNav.ts | 9 + shared/src/i18n/sk/mobileSettings.ts | 7 + shared/src/i18n/sk/mobileTrip.ts | 76 ++ shared/src/i18n/sk/mobileVacay.ts | 19 + shared/src/i18n/sk/nav.ts | 21 + shared/src/i18n/sk/notif.ts | 51 ++ shared/src/i18n/sk/notifications.ts | 36 + shared/src/i18n/sk/oauth.ts | 118 +++ shared/src/i18n/sk/packing.ts | 213 ++++++ shared/src/i18n/sk/pdf.ts | 14 + shared/src/i18n/sk/perm.ts | 51 ++ shared/src/i18n/sk/photos.ts | 25 + shared/src/i18n/sk/places.ts | 137 ++++ shared/src/i18n/sk/planner.ts | 67 ++ shared/src/i18n/sk/register.ts | 25 + shared/src/i18n/sk/reservations.ts | 182 +++++ shared/src/i18n/sk/roadtrip.ts | 271 +++++++ shared/src/i18n/sk/settings.ts | 602 +++++++++++++++ shared/src/i18n/sk/share.ts | 16 + shared/src/i18n/sk/shared.ts | 21 + shared/src/i18n/sk/stats.ts | 13 + shared/src/i18n/sk/storage.ts | 153 ++++ shared/src/i18n/sk/system_notice.ts | 97 +++ shared/src/i18n/sk/todo.ts | 41 + shared/src/i18n/sk/transport.ts | 10 + shared/src/i18n/sk/trip.ts | 95 +++ shared/src/i18n/sk/trips.ts | 16 + shared/src/i18n/sk/undo.ts | 24 + shared/src/i18n/sk/vacay.ts | 151 ++++ 60 files changed, 5996 insertions(+) create mode 100644 shared/src/i18n/sk/admin.ts create mode 100644 shared/src/i18n/sk/airport.ts create mode 100644 shared/src/i18n/sk/atlas.ts create mode 100644 shared/src/i18n/sk/backup.ts create mode 100644 shared/src/i18n/sk/budget.ts create mode 100644 shared/src/i18n/sk/categories.ts create mode 100644 shared/src/i18n/sk/collab.ts create mode 100644 shared/src/i18n/sk/collection.ts create mode 100644 shared/src/i18n/sk/common.ts create mode 100644 shared/src/i18n/sk/dashboard.ts create mode 100644 shared/src/i18n/sk/dawarich.ts create mode 100644 shared/src/i18n/sk/day.ts create mode 100644 shared/src/i18n/sk/dayplan.ts create mode 100644 shared/src/i18n/sk/docsync.ts create mode 100644 shared/src/i18n/sk/externalNotifications.ts create mode 100644 shared/src/i18n/sk/files.ts create mode 100644 shared/src/i18n/sk/help.ts create mode 100644 shared/src/i18n/sk/index.ts create mode 100644 shared/src/i18n/sk/inspector.ts create mode 100644 shared/src/i18n/sk/journey.ts create mode 100644 shared/src/i18n/sk/login.ts create mode 100644 shared/src/i18n/sk/map.ts create mode 100644 shared/src/i18n/sk/members.ts create mode 100644 shared/src/i18n/sk/memories.ts create mode 100644 shared/src/i18n/sk/mobileAdmin.ts create mode 100644 shared/src/i18n/sk/mobileAtlas.ts create mode 100644 shared/src/i18n/sk/mobileCollections.ts create mode 100644 shared/src/i18n/sk/mobileJourney.ts create mode 100644 shared/src/i18n/sk/mobileNav.ts create mode 100644 shared/src/i18n/sk/mobileSettings.ts create mode 100644 shared/src/i18n/sk/mobileTrip.ts create mode 100644 shared/src/i18n/sk/mobileVacay.ts create mode 100644 shared/src/i18n/sk/nav.ts create mode 100644 shared/src/i18n/sk/notif.ts create mode 100644 shared/src/i18n/sk/notifications.ts create mode 100644 shared/src/i18n/sk/oauth.ts create mode 100644 shared/src/i18n/sk/packing.ts create mode 100644 shared/src/i18n/sk/pdf.ts create mode 100644 shared/src/i18n/sk/perm.ts create mode 100644 shared/src/i18n/sk/photos.ts create mode 100644 shared/src/i18n/sk/places.ts create mode 100644 shared/src/i18n/sk/planner.ts create mode 100644 shared/src/i18n/sk/register.ts create mode 100644 shared/src/i18n/sk/reservations.ts create mode 100644 shared/src/i18n/sk/roadtrip.ts create mode 100644 shared/src/i18n/sk/settings.ts create mode 100644 shared/src/i18n/sk/share.ts create mode 100644 shared/src/i18n/sk/shared.ts create mode 100644 shared/src/i18n/sk/stats.ts create mode 100644 shared/src/i18n/sk/storage.ts create mode 100644 shared/src/i18n/sk/system_notice.ts create mode 100644 shared/src/i18n/sk/todo.ts create mode 100644 shared/src/i18n/sk/transport.ts create mode 100644 shared/src/i18n/sk/trip.ts create mode 100644 shared/src/i18n/sk/trips.ts create mode 100644 shared/src/i18n/sk/undo.ts create mode 100644 shared/src/i18n/sk/vacay.ts diff --git a/client/src/i18n/TranslationContext.tsx b/client/src/i18n/TranslationContext.tsx index bed3d1ac0..f6dc29365 100644 --- a/client/src/i18n/TranslationContext.tsx +++ b/client/src/i18n/TranslationContext.tsx @@ -34,6 +34,7 @@ const localeLoaders: Record Promise<{ default: Tran az: () => import('@trek/shared/i18n/az'), br: () => import('@trek/shared/i18n/br'), cs: () => import('@trek/shared/i18n/cs'), + sk: () => import('@trek/shared/i18n/sk'), pl: () => import('@trek/shared/i18n/pl'), ja: () => import('@trek/shared/i18n/ja'), ko: () => import('@trek/shared/i18n/ko'), diff --git a/shared/src/i18n/i18n-placeholders.spec.ts b/shared/src/i18n/i18n-placeholders.spec.ts index f06063a77..4c8579064 100644 --- a/shared/src/i18n/i18n-placeholders.spec.ts +++ b/shared/src/i18n/i18n-placeholders.spec.ts @@ -17,6 +17,7 @@ import ko from './ko'; import nl from './nl'; import pl from './pl'; import ru from './ru'; +import sk from './sk'; import sv from './sv'; import tr from './tr'; import type { TranslationStrings } from './types'; @@ -58,6 +59,7 @@ const LOCALES: Record = { nl, pl, ru, + sk, sv, tr, uk, diff --git a/shared/src/i18n/languages.ts b/shared/src/i18n/languages.ts index 27edbc2aa..e1b65dcea 100644 --- a/shared/src/i18n/languages.ts +++ b/shared/src/i18n/languages.ts @@ -8,6 +8,7 @@ export const SUPPORTED_LANGUAGES = [ { value: 'nl', label: 'Nederlands', locale: 'nl-NL' }, { value: 'br', label: 'Português (Brasil)', locale: 'pt-BR' }, { value: 'cs', label: 'Česky', locale: 'cs-CZ' }, + { value: 'sk', label: 'Slovenčina', locale: 'sk-SK' }, { value: 'pl', label: 'Polski', locale: 'pl-PL' }, { value: 'ru', label: 'Русский', locale: 'ru-RU' }, { value: 'zh', label: '简体中文', locale: 'zh-CN' }, diff --git a/shared/src/i18n/sk/admin.ts b/shared/src/i18n/sk/admin.ts new file mode 100644 index 000000000..a90df6ef2 --- /dev/null +++ b/shared/src/i18n/sk/admin.ts @@ -0,0 +1,801 @@ +import type { TranslationStrings } from '../types'; + +const admin: TranslationStrings = { + 'admin.notifications.title': 'Oznámenia', + 'admin.notifications.hint': 'Vyberte jeden kanál oznámení. Súčasne môže byť aktívny len jeden.', + 'admin.notifications.none': 'Vypnuté', + 'admin.notifications.email': 'E-mail (SMTP)', + 'admin.notifications.webhook': 'Webhook', + 'admin.notifications.ntfy': 'Ntfy', + 'admin.ntfy.hint': + 'Umožnite používateľom nastaviť si vlastné témy ntfy pre push oznámenia. Nastavte nižšie predvolený server na predvyplnenie nastavení používateľov.', + 'admin.notifications.save': 'Uložiť nastavenia oznámení', + 'admin.notifications.saved': 'Nastavenia oznámení uložené', + 'admin.notifications.testWebhook': 'Odoslať testovací webhook', + 'admin.notifications.testWebhookSuccess': 'Testovací webhook úspešne odoslaný', + 'admin.notifications.testWebhookFailed': 'Odoslanie testovacieho webhooku zlyhalo', + 'admin.notifications.testNtfy': 'Odoslať testovacie ntfy', + 'admin.notifications.testNtfySuccess': 'Testovacie ntfy úspešne odoslané', + 'admin.notifications.testNtfyFailed': 'Odoslanie testovacieho ntfy zlyhalo', + 'admin.notifications.emailPanel.title': 'E-mail (SMTP)', + 'admin.notifications.webhookPanel.title': 'Webhook', + 'admin.notifications.inappPanel.title': 'V aplikácii', + 'admin.notifications.inappPanel.hint': 'Oznámenia v aplikácii sú vždy aktívne a nedajú sa globálne vypnúť.', + 'admin.notifications.adminWebhookPanel.title': 'Admin webhook', + 'admin.notifications.adminWebhookPanel.hint': + 'Tento webhook sa používa výhradne pre admin oznámenia (napr. upozornenia na verzie). Je nezávislý od webhookov jednotlivých používateľov a pri nastavení sa spustí vždy.', + 'admin.notifications.adminWebhookPanel.saved': 'URL admin webhooku uložená', + 'admin.notifications.adminWebhookPanel.testSuccess': 'Testovací webhook úspešne odoslaný', + 'admin.notifications.adminWebhookPanel.testFailed': 'Testovací webhook zlyhal', + 'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Admin webhook sa spustí vždy, keď je nastavená URL', + 'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy', + 'admin.notifications.adminNtfyPanel.hint': + 'Táto téma ntfy sa používa výhradne pre admin oznámenia (napr. upozornenia na verzie). Je nezávislá od tém jednotlivých používateľov a pri nastavení sa spustí vždy.', + 'admin.notifications.adminNtfyPanel.serverLabel': 'URL servera Ntfy', + 'admin.notifications.adminNtfyPanel.serverHint': + 'Slúži aj ako predvolený server pre ntfy oznámenia používateľov. Ponechajte prázdne pre použitie ntfy.sh. Používatelia si to môžu zmeniť vo vlastnom nastavení.', + 'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh', + 'admin.notifications.adminNtfyPanel.topicLabel': 'Admin téma', + 'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts', + 'admin.notifications.adminNtfyPanel.tokenLabel': 'Prístupový token (voliteľné)', + 'admin.notifications.adminNtfyPanel.tokenCleared': 'Admin prístupový token vymazaný', + 'admin.notifications.adminNtfyPanel.saved': 'Nastavenia admin ntfy uložené', + 'admin.notifications.adminNtfyPanel.test': 'Odoslať testovacie ntfy', + 'admin.notifications.adminNtfyPanel.testSuccess': 'Testovacie ntfy úspešne odoslané', + 'admin.notifications.adminNtfyPanel.testFailed': 'Testovacie ntfy zlyhalo', + 'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Admin ntfy sa spustí vždy, keď je nastavená téma', + 'admin.notifications.adminNotificationsHint': + 'Nastavte, ktoré kanály doručujú oznámenia len pre administrátorov (napr. upozornenia na verzie).', + 'admin.notifications.tripReminders.title': 'Pripomienky ciest', + 'admin.notifications.tripReminders.hint': + 'Odoslať pripomienkové oznámenie pred začiatkom cesty (vyžaduje nastavené dni pripomienky na ceste).', + 'admin.notifications.tripReminders.enabled': 'Pripomienky ciest zapnuté', + 'admin.notifications.tripReminders.disabled': 'Pripomienky ciest vypnuté', + 'admin.smtp.title': 'E-mail a oznámenia', + 'admin.smtp.hint': 'Konfigurácia SMTP na odosielanie e-mailových oznámení.', + 'admin.smtp.testButton': 'Odoslať testovací e-mail', + 'admin.webhook.hint': 'Umožnite používateľom nastaviť si vlastné webhook URL pre oznámenia (Discord, Slack atď.).', + 'admin.smtp.testSuccess': 'Testovací e-mail úspešne odoslaný', + 'admin.smtp.testFailed': 'Odoslanie testovacieho e-mailu zlyhalo', + 'admin.title': 'Administrácia', + 'admin.subtitle': 'Správa používateľov a nastavenia systému', + 'admin.tabs.users': 'Používatelia', + 'admin.tabs.categories': 'Kategórie', + 'admin.tabs.backup': 'Zálohovanie', + 'admin.tabs.notifications': 'Oznámenia', + 'admin.tabs.audit': 'Audit', + 'admin.stats.users': 'Používatelia', + 'admin.stats.trips': 'Cesty', + 'admin.stats.places': 'Miesta', + 'admin.stats.photos': 'Fotky', + 'admin.stats.files': 'Súbory', + 'admin.table.user': 'Používateľ', + 'admin.table.email': 'E-mail', + 'admin.table.role': 'Rola', + 'admin.table.created': 'Vytvorené', + 'admin.table.lastLogin': 'Posledné prihlásenie', + 'admin.table.actions': 'Akcie', + 'admin.you': '(Vy)', + 'admin.editUser': 'Upraviť používateľa', + 'admin.newPassword': 'Nové heslo', + 'admin.newPasswordHint': 'Ponechajte prázdne pre zachovanie súčasného hesla', + 'admin.deleteUser': 'Odstrániť používateľa „{name}“? Všetky cesty budú natrvalo odstránené.', + 'admin.deleteUserTitle': 'Odstrániť používateľa', + 'admin.newPasswordPlaceholder': 'Zadajte nové heslo…', + 'admin.toast.loadError': 'Nepodarilo sa načítať dáta administrácie', + 'admin.toast.userUpdated': 'Používateľ aktualizovaný', + 'admin.toast.updateError': 'Aktualizácia zlyhala', + 'admin.toast.userDeleted': 'Používateľ odstránený', + 'admin.toast.deleteError': 'Odstránenie zlyhalo', + 'admin.toast.cannotDeleteSelf': 'Nemôžete odstrániť svoj vlastný účet', + 'admin.toast.userCreated': 'Používateľ vytvorený', + 'admin.toast.createError': 'Nepodarilo sa vytvoriť používateľa', + 'admin.toast.fieldsRequired': 'Používateľské meno, e-mail a heslo sú povinné', + 'admin.createUser': 'Vytvoriť používateľa', + 'admin.invite.title': 'Pozývacie odkazy', + 'admin.invite.subtitle': 'Vytvárajte jednorazové registračné odkazy', + 'admin.invite.create': 'Vytvoriť odkaz', + 'admin.invite.createAndCopy': 'Vytvoriť a skopírovať', + 'admin.invite.empty': 'Zatiaľ neboli vytvorené žiadne pozývacie odkazy', + 'admin.invite.maxUses': 'Max. použití', + 'admin.invite.expiry': 'Vyprší po', + 'admin.invite.uses': 'použité', + 'admin.invite.expiresAt': 'vyprší', + 'admin.invite.createdBy': 'vytvoril', + 'admin.invite.active': 'Aktívny', + 'admin.invite.expired': 'Vypršaný', + 'admin.invite.usedUp': 'Vyčerpaný', + 'admin.invite.copied': 'Pozývací odkaz skopírovaný do schránky', + 'admin.invite.copyLink': 'Kopírovať odkaz', + 'admin.invite.deleted': 'Pozývací odkaz odstránený', + 'admin.invite.createError': 'Nepodarilo sa vytvoriť pozývací odkaz', + 'admin.invite.deleteError': 'Nepodarilo sa odstrániť pozývací odkaz', + 'admin.tabs.settings': 'Nastavenia', + 'admin.allowRegistration': 'Povoliť registráciu', + 'admin.allowRegistrationHint': 'Noví používatelia sa môžu sami registrovať', + 'admin.authMethods': 'Metódy overenia', + 'admin.passwordLogin': 'Prihlásenie heslom', + 'admin.passwordLoginHint': 'Umožniť používateľom prihlásiť sa e-mailom a heslom', + 'admin.passwordRegistration': 'Registrácia heslom', + 'admin.passwordRegistrationHint': 'Umožniť novým používateľom registrovať sa e-mailom a heslom', + 'admin.oidcLogin': 'Prihlásenie cez SSO', + 'admin.oidcLoginHint': 'Umožniť používateľom prihlásiť sa cez SSO', + 'admin.oidcRegistration': 'Automatické vytváranie účtov SSO', + 'admin.oidcRegistrationHint': 'Automaticky vytvárať účty pre nových používateľov SSO', + 'admin.envOverrideHint': 'Nastavenia prihlásenia heslom riadi premenná prostredia OIDC_ONLY a nedajú sa tu zmeniť.', + 'admin.lockoutWarning': 'Aspoň jedna metóda prihlásenia musí zostať zapnutá', + 'admin.requireMfa': 'Vyžadovať dvojfaktorové overenie (2FA)', + 'admin.requireMfaHint': 'Používatelia bez 2FA musia pred použitím aplikácie dokončiť nastavenie v Nastaveniach.', + 'admin.apiKeys': 'API kľúče', + 'admin.apiKeysHint': + 'Odkiaľ pochádzajú dáta miest. Index TREK nepotrebuje kľúč; dvaja poskytovatelia nižšie sú voliteľní.', + 'admin.trekApi.badgeDefault': 'Odporúčaný predvolený zdroj', + 'admin.googleCaveat.badge': 'Neodporúčané', + 'admin.googleCaveat.body': + 'TREK je otvorený softvér a nie sme v tomto neutrálni. V takomto rozsahu existujú hodnotenia a fotografie bežných podnikov len u Googlu, a to je monopol. Toto pole tu je preto, že nie je alternatíva, nie preto, že by sme ho odporúčali. Každý dotaz potom ide do Googlu.', + 'admin.trekApi.tagline': + 'Vlastný register miest TREKu. Vyhľadávanie bez kľúča od Googlu, bez kvóty a bez toho, aby niekto počítal vaše dotazy.', + 'admin.trekApi.factPlaces': '73,6 milióna miest na celom svete', + 'admin.trekApi.factNoKey': 'Bez kľúča, bez kvóty', + 'admin.trekApi.factOffline': 'Balíčky krajín fungujú offline', + 'admin.trekApi.factPrivacy': 'Vyhľadávania sa nikdy nezaznamenávajú', + 'admin.trekApi.more': 'Čo v tom je', + 'admin.trekApi.fieldPhone': 'Telefón', + 'admin.trekApi.fieldStableId': 'Stály identifikátor', + 'admin.trekApi.includedNote': + 'Popisy pochádzajú z vlastného webu daného miesta; otváracie hodiny z OpenStreetMap tam, kde sú vyplnené.', + 'admin.trekApi.notRatings': 'Hodnotenia', + 'admin.trekApi.notPhotos': 'Fotografie bežných podnikov', + 'admin.trekApi.notIncludedNote': + 'Ani jedno nemá žiadny otvorený dataset, za žiadnu cenu. Kľúč od Googlu zostáva jedinou cestou k týmto dvom.', + 'admin.trekApi.sourcesLabel': 'Zdroje', + 'admin.trekApi.sourcesNote': 'Každé pole v odpovedi uvádza, z ktorého z nich pochádza.', + 'admin.trekApi.included': 'Obsahuje', + 'admin.trekApi.notIncluded': 'Neobsahuje', + 'admin.mapsKey': 'Google Maps API kľúč', + 'admin.mapsKeyHint': 'Potrebné na vyhľadávanie miest. Získate na console.cloud.google.com', + 'admin.mapsKeyHintLong': + 'Bez kľúča Google API sa používa odporúčané API TREK. S kľúčom možno navyše načítať fotografie, hodnotenia a otváracie hodiny. Kľúč vytvoríte na console.cloud.google.com.', + 'admin.recommended': 'Odporúčané', + 'admin.weatherKey': 'OpenWeatherMap API kľúč', + 'admin.weatherKeyHint': 'Pre dáta o počasí. Zdarma na openweathermap.org', + 'admin.unsplashKey': 'Unsplash API kľúč', + 'admin.unsplashKeyHint': 'Na vyhľadávanie obrázkov. Zdarma na unsplash.com/developers', + 'admin.amapKey': 'Amap (高德地图) API kľúč', + 'admin.amapKeyHint': + 'Na vyhľadávanie miest v kontinentálnej Číne, kde Google nie je dostupný a OpenStreetMap má málo dát. Vyžaduje kľúč typu „Web 服务" (webová služba), nie kľúč JS API. Získate na console.amap.com.', + 'admin.placesProvider.title': 'Poskytovateľ vyhľadávania miest', + 'admin.placesProvider.subtitle': + 'Vlastný index TREKu a OpenStreetMap odpovedajú na každé vyhľadávanie. Tu sa volí, koho sa spýtať navyše, keď nič nenájdu: Automaticky uprednostní Google, ak existuje kľúč, potom Amap.', + 'admin.placesProvider.auto': 'Automaticky', + 'admin.placesProvider.google': 'Google Places', + 'admin.placesProvider.amap': 'Amap (高德地图)', + 'admin.placesProvider.openstreetmap': 'OpenStreetMap', + 'admin.placesProvider.missingKey': + 'Zvolený poskytovateľ nemá nastavený API kľúč, takže na vyhľadávanie miest odpovedá len index TREK a OpenStreetMap.', + 'admin.placesProvider.saved': 'Poskytovateľ vyhľadávania miest uložený', + 'admin.validateKey': 'Testovať', + 'admin.keyValid': 'Pripojené', + 'admin.keyInvalid': 'Neplatný', + 'admin.keySaved': 'API kľúče uložené', + 'admin.oidcTitle': 'Jednotné prihlásenie (OIDC)', + 'admin.oidcSubtitle': 'Povoliť prihlásenie cez externých poskytovateľov ako Google, Apple, Authentik alebo Keycloak.', + 'admin.oidcDisplayName': 'Zobrazované meno', + 'admin.oidcIssuer': 'URL vydavateľa (Issuer)', + 'admin.oidcIssuerHint': 'OpenID Connect Issuer URL poskytovateľa, napr. https://accounts.google.com', + 'admin.oidcSaved': 'Konfigurácia OIDC uložená', + 'admin.oidcOnlyMode': 'Zakázať overovanie heslom', + 'admin.oidcOnlyModeHint': + 'Keď je zapnuté, je povolené len prihlásenie cez SSO. Prihlásenie a registrácia heslom sú zablokované.', + 'admin.fileTypes': 'Povolené typy súborov', + 'admin.fileTypesHint': 'Nastavte, ktoré typy súborov môžu používatelia nahrávať.', + 'admin.fileTypesFormat': 'Prípony oddelené čiarkou (napr. jpg,png,pdf,doc). Použite * na povolenie všetkých typov.', + 'admin.fileTypesSaved': 'Nastavenia typov súborov uložené', + 'admin.googleOptions': 'Na čo sa kľúč môže používať', + 'admin.googleOptionsSummary': '{on} z {total} zapnuté', + 'admin.placesPhotos.title': 'Fotografie miest', + 'admin.placesPhotos.subtitle': + 'Načítať fotografie z Google Places API. Vypnutím ušetríte kvótu API. Fotografie z Wikimedia to neovplyvní.', + 'admin.placesAutocomplete.title': 'Automatické dopĺňanie miest', + 'admin.placesAutocomplete.subtitle': 'Použiť Google Places API na návrhy vyhľadávania. Vypnutím ušetríte kvótu API.', + 'admin.placesDetails.title': 'Podrobnosti o mieste', + 'admin.placesDetails.subtitle': + 'Načítať podrobné informácie o mieste (hodiny, hodnotenie, web) z Google Places API. Vypnutím ušetríte kvótu API.', + 'admin.placesEnrich.title': 'Obohatenie miest', + 'admin.placesEnrich.subtitle': + 'Zobraziť obrázky a popis pri pridávaní miesta. Wikipédia a OpenStreetMap sa používajú vždy; Google sa pridá navyše, keď sú zapnuté Fotografie miest alebo Podrobnosti o mieste.', + 'admin.transitProvider.title': 'Poskytovateľ verejnej dopravy', + 'admin.transitProvider.subtitle': 'Ktorá služba odpovedá na vyhľadávanie verejnej dopravy.', + 'admin.transitProvider.transitous': 'Transitous (zdarma)', + 'admin.transitProvider.google': 'Google', + 'admin.transitProvider.transitousHint': 'Komunitné GTFS zdroje. Zdarma a bez kľúča, s najlepším pokrytím v Európe.', + 'admin.transitProvider.googleHint': + 'Používa kľúč Google uvedený vyššie, pre regióny, pre ktoré Transitous nemá dáta. Účtuje sa za každé vyhľadávanie — kým nie je nastavený kľúč, používa sa Transitous.', + 'admin.transitProvider.noKeyWarning': + 'Je vybraný Google, ale nie je nastavený žiadny kľúč Google — vyhľadávanie dopravy stále používa Transitous. Pridajte kľúč v sekcii API kľúče vyššie.', + 'admin.transitProvider.personalKeyWarning': + 'Je nastavený len váš vlastný kľúč Google, takže ostatným členom sa vyhľadávanie dopravy stále vracia k Transitous. Uložte kľúč vyššie ako správca, aby platil pre celú inštanciu.', + 'admin.placeShadow.title': 'Záznam vyhľadávania miest', + 'admin.placeShadow.subtitle': + 'Zaznamenávať, ktorý výsledok vyhľadávania bol vybraný, aby bolo možné neskôr porovnať iný index miest so skutočnými vyhľadávaniami. Nič neopúšťa túto inštanciu a správca môže záznam kedykoľvek exportovať alebo odstrániť.', + 'admin.bagTracking.title': 'Sledovanie batožiny', + 'admin.bagTracking.subtitle': 'Povoliť hmotnosť a priradenie k batožine pre položky balenia', + 'admin.collab.chat.title': 'Chat', + 'admin.collab.chat.subtitle': 'Zasielanie správ v reálnom čase pri spolupráci na ceste', + 'admin.collab.notes.title': 'Poznámky', + 'admin.collab.notes.subtitle': 'Zdieľané poznámky a dokumenty', + 'admin.collab.polls.title': 'Ankety', + 'admin.collab.polls.subtitle': 'Skupinové ankety a hlasovanie', + 'admin.collab.whatsnext.title': 'Čo ďalej', + 'admin.collab.whatsnext.subtitle': 'Návrhy aktivít a ďalšie kroky', + 'admin.tabs.config': 'Personalizácia', + 'admin.tabs.defaults': 'Predvolené nastavenia používateľa', + 'admin.defaultSettings.title': 'Predvolené nastavenia používateľa', + 'admin.defaultSettings.description': + 'Nastavte predvolené hodnoty pre celú inštanciu. Používatelia, ktorí nastavenie nezmenili, uvidia tieto hodnoty. Ich vlastné zmeny majú vždy prednosť.', + 'admin.defaultSettings.saved': 'Predvolené nastavenie uložené', + 'admin.defaultSettings.reset': 'Obnoviť na vstavanú predvolenú hodnotu', + 'admin.defaultSettings.resetToBuiltIn': 'obnoviť', + 'admin.defaultSettings.mapProvider': 'Mapový engine', + 'admin.defaultSettings.mapProviderHint': + 'Predvolená mapa pre všetkých na tejto inštancii. Každý používateľ ju môže i naďalej zmeniť vo svojom vlastnom nastavení.', + 'admin.defaultSettings.providerLeaflet': 'Štandardná (zdarma)', + 'admin.defaultSettings.providerMapbox': 'Mapbox (3D)', + 'admin.defaultSettings.providerMapLibre': 'MapLibre (OpenFreeMap)', + 'admin.defaultSettings.mapboxToken': 'Zdieľaný token Mapbox', + 'admin.defaultSettings.mapboxTokenHint': + 'Použije sa pre každého používateľa, ktorý nezadal vlastný token — takže celá inštancia získa Mapbox bez zdieľania kľúča s každým zvlášť. Ukladá sa šifrovane.', + 'admin.defaultSettings.mapboxStyle': 'Štýl mapy', + 'admin.defaultSettings.mapboxStylePlaceholder': 'Vyberte štýl…', + 'admin.defaultSettings.mapbox3d': '3D budovy a terén', + 'admin.defaultSettings.mapboxQuality': 'Režim vysokej kvality', + 'admin.defaultSettings.cartoKey': 'Zdieľaný kľúč CARTO', + 'admin.defaultSettings.cartoKeyHint': + 'Použije sa pre každého používateľa, ktorý nezadal vlastný kľúč, takže celá inštancia získa dlaždice CARTO bez vodoznaku. Ukladá sa šifrovane.', + 'admin.tabs.templates': 'Šablóny balenia', + 'admin.packingTemplates.title': 'Šablóny balenia', + 'admin.packingTemplates.subtitle': 'Vytvárajte opakovane použiteľné baliace zoznamy pre svoje cesty', + 'admin.packingTemplates.create': 'Nová šablóna', + 'admin.packingTemplates.namePlaceholder': 'Názov šablóny (napr. Dovolenka pri mori)', + 'admin.packingTemplates.empty': 'Zatiaľ nie sú vytvorené žiadne šablóny', + 'admin.packingTemplates.items': 'položiek', + 'admin.packingTemplates.categories': 'kategórií', + 'admin.packingTemplates.itemName': 'Názov položky', + 'admin.packingTemplates.itemCategory': 'Kategória', + 'admin.packingTemplates.categoryName': 'Názov kategórie (napr. Oblečenie)', + 'admin.packingTemplates.addCategory': 'Pridať kategóriu', + 'admin.packingTemplates.created': 'Šablóna vytvorená', + 'admin.packingTemplates.deleted': 'Šablóna odstránená', + 'admin.packingTemplates.loadError': 'Nepodarilo sa načítať šablóny', + 'admin.packingTemplates.createError': 'Nepodarilo sa vytvoriť šablónu', + 'admin.packingTemplates.deleteError': 'Nepodarilo sa odstrániť šablónu', + 'admin.packingTemplates.deleteCategoryError': 'Nepodarilo sa odstrániť kategóriu', + 'admin.packingTemplates.deleteItemError': 'Nepodarilo sa odstrániť položku', + 'admin.packingTemplates.saveError': 'Uloženie zlyhalo', + 'admin.tabs.addons': 'Doplnky', + 'admin.tabs.plugins': 'Pluginy', + 'admin.tabs.storage': 'Úložisko', + 'admin.plugins.rescan': 'Znovu prehľadať', + 'admin.plugins.rescanned': 'Priečinok pluginov bol znovu prehľadaný', + 'admin.plugins.upload': 'Nahrať plugin', + 'admin.plugins.dropToUpload': 'Presuňte sem .zip pluginu na inštaláciu', + 'admin.plugins.uploaded': 'Plugin „{name}“ nahraný — aktivujte ho na spustenie', + 'admin.plugins.sideloaded': 'Načítané ručne', + 'admin.plugins.devLinkBadge': 'Dev-Link', + 'admin.plugins.devLinkHint': + 'Načítané z lokálneho adresára zostavenia a za behu znovu načítané s reálnymi dátami — len pre vývoj', + 'admin.plugins.devLinkTitle': 'Pripojiť lokálny plugin', + 'admin.plugins.devLinkPathPlaceholder': '/absolute/path/to/your/plugin', + 'admin.plugins.devLinkButton': 'Pripojiť', + 'admin.plugins.devLinkLinked': 'Pripojené {id} — aktivujte ho na spustenie', + 'admin.plugins.sideloadedHint': 'Nahrané ručne — nie z registra, nepodpísané a neskontrolované', + 'admin.plugins.browse': 'Prehľadávať pluginy', + 'admin.plugins.installed': 'Nainštalované', + 'admin.plugins.install': 'Inštalovať', + 'admin.plugins.registryEmpty': 'V registri zatiaľ nie sú dostupné žiadne pluginy.', + 'admin.plugins.actionError': 'Akcia zlyhala', + 'admin.plugins.activate': 'Aktivovať', + 'admin.plugins.activated': 'Plugin aktivovaný', + 'admin.plugins.deactivate': 'Deaktivovať', + 'admin.plugins.deactivated': 'Plugin deaktivovaný', + 'admin.plugins.viewErrors': 'Zobraziť protokol chýb', + 'admin.plugins.errorLog': 'Protokol chýb', + 'admin.plugins.allowedHosts': 'Povolení hostitelia', + 'admin.plugins.allowedHosts.hint': + 'Tento plugin komunikuje so službou, ktorú viete pomenovať len vy. Pridajte hostiteľov, na ktorých smie — na iných sa nedostane.', + 'admin.plugins.allowedHosts.none': 'Zatiaľ neboli pridaní žiadni hostitelia.', + 'admin.plugins.allowedHosts.unsupported': + 'Tento plugin nepoužíva hostiteľov zadaných prevádzkovateľom. Jeho povolení hostitelia sú pevne daní v manifeste.', + 'admin.plugins.allowedHosts.restartNote': 'Uloženie reštartuje plugin, aby načítal nový zoznam.', + 'admin.plugins.allowedHosts.add': 'Pridať povoleného hostiteľa', + 'admin.plugins.allowedHosts.count': '{n} povolených hostiteľov', + 'admin.plugins.operatorEgressPill': '+ hostitelia, ktorých pridáte', + 'admin.plugins.operatorEgressHint': + 'Tento plugin komunikuje so službou, ktorú viete pomenovať len vy. Po inštalácii pridajte hostiteľov, na ktorých smie, v ⋯ → Povolení hostitelia. Na iných sa nedostane.', + 'admin.plugins.noErrors': 'Žiadne zaznamenané chyby.', + 'admin.plugins.uninstalled': 'Plugin odinštalovaný', + 'admin.plugins.uninstallTitle': 'Odinštalovať plugin?', + 'admin.plugins.uninstallBody': + 'Tým sa plugin zastaví, odstráni sa jeho kód a odstránia sa všetky jeho dáta. Túto akciu nie je možné vrátiť späť.', + 'admin.plugins.status.starting': 'Spúšťa sa…', + 'admin.plugins.type.widget': 'Widget', + 'admin.plugins.type.page': 'Stránka', + 'admin.plugins.type.integration': 'Integrácia', + 'admin.plugins.type.trip-page': 'Stránka cesty', + 'admin.plugins.reviewed': 'Skontrolované', + 'admin.plugins.unreviewed': 'Neskontrolované', + 'admin.plugins.updated': 'Plugin aktualizovaný', + 'admin.plugins.updateTo': 'Aktualizovať → v{version}', + 'admin.plugins.enabledToggle': 'Povoliť plugin', + 'plugins.notFound': 'Plugin sa nenašiel', + 'plugins.frameLoadFailed': 'Tento plugin sa nepodarilo načítať.', + 'admin.plugins.title': 'Pluginy', + 'admin.plugins.subtitle': 'Inštalujte a spravujte pluginy tretích strán na svojej inštancii.', + 'admin.plugins.disabledTitle': 'Pluginy sú zakázané', + 'admin.plugins.disabledBody': + 'Behové prostredie pluginov je vypnuté (TREK_PLUGINS_ENABLED). Kým ho administrátor nepovolí v konfigurácii servera, nemôže bežať žiadny plugin.', + 'admin.plugins.empty': 'Zatiaľ nie sú nainštalované žiadne pluginy.', + 'admin.plugins.loadError': 'Nepodarilo sa načítať pluginy.', + 'admin.plugins.scaffoldNote': + 'Inštalácia a aktivácia pluginov prídu v neskoršej aktualizácii. Tento panel zatiaľ iba zobrazuje nainštalované pluginy.', + 'admin.plugins.status.active': 'Aktívny', + 'admin.plugins.status.inactive': 'Neaktívny', + 'admin.plugins.status.disabled': 'Zakázaný', + 'admin.plugins.status.error': 'Chyba', + 'admin.plugins.status.incompatible': 'Nekompatibilný', + 'admin.plugins.details': 'Podrobnosti', + 'admin.plugins.detailError': 'Nepodarilo sa načítať podrobnosti pluginu.', + 'admin.plugins.permissionsTitle': 'Oprávnenia', + 'admin.plugins.noPermissions': 'Tento plugin nevyžaduje žiadne zvláštne oprávnenia.', + 'admin.plugins.egressNote': 'Môže sa pripájať k: {hosts}', + 'admin.plugins.setupTitle': 'Nastavenie', + 'admin.plugins.noSetup': 'Funguje ihneď po inštalácii — nie je potrebné nič nastavovať.', + 'admin.plugins.scope.instance': 'Pre celú inštanciu', + 'admin.plugins.scope.user': 'Pre jednotlivých používateľov', + 'admin.plugins.fieldRequired': 'Povinné', + 'admin.plugins.sourceRepo': 'Zdrojový repozitár', + 'admin.plugins.reportIssue': 'Nahlásiť problém', + 'admin.plugins.homepage': 'Domovská stránka', + 'admin.plugins.requiresTrek': 'Vyžaduje TREK {version}+', + 'admin.plugins.reviewedOn': 'Skontrolované {date}', + 'admin.plugins.perm.db:own': 'Ukladať vlastné dáta v izolovanej databáze', + 'admin.plugins.perm.db:read:trips': 'Čítať cesty, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:read:users': 'Čítať základné údaje profilu (meno, avatar — nikdy prihlasovacie údaje)', + 'admin.plugins.perm.db:read:costs': 'Čítať výdavky (položky rozpočtu), ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:read:packing': 'Čítať baliace zoznamy ciest, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:write:packing': + 'Vytvárať, upravovať a odstraňovať položky balenia na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.weather:read': 'Čítať hostiteľom uloženú predpoveď počasia (podľa súradníc)', + 'admin.plugins.perm.db:read:categories': 'Čítať globálny zoznam kategórií miest', + 'admin.plugins.perm.db:read:tags': 'Čítať vlastné štítky aktuálneho používateľa', + 'admin.plugins.perm.db:write:tags': 'Vytvárať, upravovať a odstraňovať vlastné štítky aktuálneho používateľa', + 'admin.plugins.perm.db:read:todos': 'Čítať úlohy ciest, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:write:todos': + 'Vytvárať, upravovať a odstraňovať úlohy na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:atlas': + 'Označovať krajiny a regióny ako navštívené a spravovať bucket list aktuálneho používateľa (vyžaduje doplnok Atlas)', + 'admin.plugins.perm.db:write:vacay': + 'Prepínať dni dovolenky a firemné sviatky v aktívnom pláne aktuálneho používateľa (vyžaduje doplnok Vacay)', + 'admin.plugins.perm.db:write:journal': + 'Vytvárať, upravovať a odstraňovať záznamy denníka a prikladať k nim fotky na cestách, ktoré môže aktuálny používateľ upravovať (vyžaduje doplnok Journey)', + 'admin.plugins.perm.db:write:collections': + 'Vytvárať a upravovať zbierky a ukladať do nich miesta s rolou aktuálneho používateľa v zbierke (vyžaduje doplnok Collections)', + 'admin.plugins.perm.db:write:files': + 'Prikladať súbory k cestám, ktoré môže aktuálny používateľ upravovať (limit 10 MB, blokované prípony odmietnuté), a spravovať ich prepojenia', + 'admin.plugins.perm.db:write:collab': + 'Publikovať poznámky, ankety a správy chatu na cestách, ktoré môže aktuálny používateľ upravovať (vyžaduje doplnok Collab)', + 'admin.plugins.perm.db:write:members': + 'Pridávať používateľov do ciest — udeľuje prístup k ceste; chránené právom správy členov aktuálneho používateľa', + 'admin.plugins.perm.notify:send': + 'Odoslať oznámenie (schránka zvončeka + e-mail/ntfy) aktuálnemu používateľovi alebo ceste, ku ktorej patrí — nikdy ľubovoľnému príjemcovi', + 'admin.plugins.perm.ai:invoke': + 'Spustiť poskytovateľa AI nakonfigurovaného správcom (dokončenie textu + extrakcia z dokumentov) v mene aktuálneho používateľa — plugin nikdy nedrží kľúč', + 'admin.plugins.perm.oauth:client': + 'Pripojiť sa k službe tretej strany vo vašom mene cez OAuth sprostredkované hostiteľom (hostiteľ drží tokeny, plugin ich nikdy nevidí)', + 'admin.plugins.perm.db:read:files': 'Čítať súbory ciest, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:read:journal': 'Čítať cestovné denníky aktuálneho používateľa (vyžaduje doplnok Journey)', + 'admin.plugins.perm.db:read:atlas': + 'Čítať navštívené krajiny a regióny aktuálneho používateľa (vyžaduje doplnok Atlas)', + 'admin.plugins.perm.db:read:vacay': 'Čítať plán dovolenky aktuálneho používateľa (vyžaduje doplnok Vacay)', + 'admin.plugins.perm.db:read:daynotes': 'Čítať denné poznámky ciest, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:read:collections': + 'Čítať zbierky uložených miest aktuálneho používateľa (vyžaduje doplnok Collections)', + 'admin.plugins.perm.db:write:costs': + 'Vytvárať výdavky (položky rozpočtu) na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:places': + 'Pridávať, upravovať a odstraňovať miesta na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:days': + 'Pridávať, upravovať a odstraňovať dni na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:itinerary': + 'Priraďovať a odoberať miesta ku dňom ciest, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:trips': + 'Upravovať podrobnosti cesty (názov, dátumy, menu…) na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:reservations': + 'Vytvárať, upravovať a odstraňovať rezervácie na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:accommodations': + 'Vytvárať, upravovať a odstraňovať ubytovania (bloky ubytovania) na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:write:daynotes': + 'Vytvárať, upravovať a odstraňovať denné poznámky na cestách, ktoré môže aktuálny používateľ upravovať', + 'admin.plugins.perm.db:meta': + 'Pripájať vlastné súkromné dáta k cestám, miestam a dňom, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.ws:broadcast:trip': 'Odosielať aktualizácie v reálnom čase členom cesty', + 'admin.plugins.perm.ws:broadcast:user': 'Odosielať aktualizácie v reálnom čase jednotlivým používateľom', + 'admin.plugins.perm.hook:photo-provider': 'Poskytovať fotky do sekcie Spomienky', + 'admin.plugins.perm.hook:calendar-source': 'Poskytovať udalosti do kalendára', + 'admin.plugins.perm.hook:place-detail-provider': + 'Prispievať ďalšími podrobnosťami (recenzie, hodnotenia, odkazy) k miestu', + 'admin.plugins.perm.hook:search-provider': + 'Odpovedať na vyhľadávania miest z vlastného indexu, popri vlastných výsledkoch TREK', + 'admin.plugins.perm.hook:trip-warning-provider': 'Vyvolávať overovacie upozornenia na ceste (zobrazené v plánovači)', + 'admin.plugins.perm.hook:table-contributor': 'Pridávať stĺpce a akcie do zobrazení ciest (rezervácie, miesta, dni)', + 'admin.plugins.perm.hook:map-marker-provider': 'Pridávať značky na mapu cesty (napr. zobraziť rezervácie alebo POI)', + 'admin.plugins.perm.hook:map-layer-provider': 'Kresliť trasy, koridory a zóny na mapu cesty', + 'admin.plugins.perm.hook:route-provider': + 'Ponúkať trasovacie profily, podľa ktorých môže plánovač počítať trasy dní (napr. trasovanie pre elektromobily so zastávkami na nabíjanie)', + 'admin.plugins.perm.hook:day-schedule-provider': + 'Pripájať časové položky k dennému plánu (zastávky na nabíjanie, časové rezervy)', + 'admin.plugins.perm.hook:day-tint-provider': + 'Farebne odlišovať dni v dennom pláne (napr. ku ktorej časti cesty deň patrí)', + 'admin.plugins.cap.mcpTools': 'Zverejňuje AI nástroje', + 'admin.plugins.mcpToolsTitle': 'AI nástroje, ktoré zverejňuje', + 'admin.plugins.mcpToolsHint': 'Asistent ich môže spustiť v mene používateľa. Každý koná s prístupom udeleným vyššie.', + 'admin.plugins.perm.mcp:tools': + 'Zverejňovať nástroje, ktoré môže AI asistent spustiť vo vašom mene (koná s prístupom, ktorý tu pluginu udelíte, nie s vlastným prístupom asistenta)', + 'admin.plugins.perm.geolocation:read': + 'Žiadať o vašu aktuálnu polohu, kým je otvorené niektoré z jeho zobrazení (TREK ju číta pod oprávnením na polohu pre túto stránku, nie pod vlastným oprávnením pluginu)', + 'admin.plugins.perm.hook:pdf-section-provider': 'Pripájať textové sekcie k PDF exportu cesty', + 'admin.plugins.perm.hook:atlas-layer-provider': + 'Zvýrazňovať krajiny na mape sveta v Atlase (napr. zoznamy prianí alebo cestovné upozornenia)', + 'admin.plugins.perm.hook:journal-entry-provider': + 'Prispievať ďalšími riadkami (odkazy, štatistiky) k záznamom denníka', + 'admin.plugins.perm.hook:trip-card-provider': 'Pridávať malé odznaky (stav, počty) na karty ciest na vašej nástenke', + 'admin.plugins.perm.hook:notification-channel': 'Doručovať vaše oznámenia ďalším kanálom', + 'admin.plugins.perm.hook:user-data': + 'Vymazať alebo exportovať dáta, ktoré o používateľovi uchováva (GDPR: zmazanie účtu a žiadosti o dáta)', + 'admin.plugins.perm.events:subscribe': + 'Reagovať na základné udalosti aktivity (len názov udalosti a cesta, nikdy obsah)', + 'admin.plugins.perm.jobs:run': + 'Spúšťať deklarované úlohy na pozadí podľa plánu (bez kontextu používateľa — nemôže čítať používateľské dáta)', + 'admin.plugins.perm.http:outbound': 'Odosielať odchádzajúce požiadavky na deklarovaných hostiteľov', + 'admin.plugins.perm.db:read:collab': + 'Čítať poznámky, ankety a správy chatu ciest, ku ktorým má aktuálny používateľ prístup (vyžaduje doplnok Collab)', + 'admin.plugins.perm.db:read:files:content': + 'Čítať obsah (bajty) súborov ciest, ku ktorým má aktuálny používateľ prístup', + 'admin.plugins.perm.db:create:trips': 'Vytvárať nové cesty vlastnené aktuálnym používateľom', + 'admin.plugins.perm.rates:read': 'Čítať hostiteľom uložené menové výmenné kurzy', + 'admin.plugins.updateConsentTitle': 'Táto aktualizácia vyžaduje nové oprávnenia', + 'admin.plugins.updateConsentBody': + '{name} v{version} žiada o práva, ktoré ste zatiaľ neudelili. Nová verzia je nainštalovaná, ale zostáva vypnutá, kým ju neschválite.', + 'admin.plugins.updateNewPermissions': 'Novo požadované oprávnenia', + 'admin.plugins.updateNewEgress': 'Nové odchádzajúce pripojenia', + 'admin.plugins.updateApprove': 'Schváliť a zapnúť', + 'admin.plugins.updateLater': 'Zatiaľ ponechať vypnuté', + 'admin.plugins.updateKeptOff': 'Aktualizácia nainštalovaná — ponechaná vypnutá, kým neschválite nové oprávnenia', + 'admin.plugins.reviewedMeaning': + '„Skontrolované“ znamená, že správca TREK preveril tento plugin na malvér pri každej verzii — nie jeho kvalitu ani to, či funguje. Nie je to záruka, že je plugin neškodný.', + 'admin.plugins.security.title': 'Ako sú pluginy izolované — a kde sú hranice', + 'admin.plugins.security.isolationTitle': 'Každý plugin beží v izolácii', + 'admin.plugins.security.isolationBody': + 'Plugin beží ako vlastný uzamknutý proces, ktorý môže čítať iba svoje vlastné súbory. Nemôže čítať vašu databázu, váš prihlasovací tajný kľúč ani váš šifrovací kľúč, nemôže spúšťať iné programy a nemôže nikam zapisovať súbory. Jeho rozhranie beží v uzavretom rámci prehliadača, ktorý nemôže čítať vašu session cookie ani zasahovať do okolitej stránky TREK.', + 'admin.plugins.security.permsTitle': 'Čo oprávnenia znamenajú', + 'admin.plugins.security.permsBody': + 'Oprávnenia zobrazené pred inštaláciou sú pevný limit, ktorý TREK vynucuje po celý čas behu pluginu — plugin doslova nemôže urobiť nič, čo nie je na zozname. Hovoria vám však, čo plugin môže robiť, nie čo skutočne robí. Plugin, ktorý smie čítať vaše cesty a spojiť sa so serverom, môže vaše cesty tomuto serveru odoslať, preto si prečítajte oprávnenia aj odchádzajúcich hostiteľov, nielen popis.', + 'admin.plugins.security.limitsTitle': 'Čo nemôžeme sľúbiť', + 'admin.plugins.security.limitsBody': + 'Izolácia je silná softvérová hranica, nie absolútna. Plugin koná presne s tými právami, ktoré schválite, takže v ich rámci sa môže správať inak, než naznačuje jeho popis, a môže odoslať dáta, ktoré oprávnene drží, hostiteľom, ktorých deklaroval. TREK nečíta ani neposudzuje, čo kód pluginu v skutočnosti robí.', + 'admin.plugins.security.worstTitle': 'Najhorší prípad', + 'admin.plugins.security.worstBody': + 'Škodlivý plugin, ktorý zapnete, môže zneužiť dáta a pripojenia, ktoré ste mu udelili — napríklad vyniesť cesty, ktoré smie čítať. Nemôže kradnúť heslá, sfalšovať prihlásenie administrátora, spúšťať príkazy na vašom serveri ani sa dostať k dátam, ktoré ste neudelili. Škoda zostáva v rámci toho, čo ste schválili, a vypnutie pluginu ju zastaví.', + 'admin.plugins.security.reviewedTitle': 'Čo znamená „Skontrolované“', + 'admin.plugins.security.reviewedBody': + 'Skontrolovaný plugin správca TREK ručne preveril na malvér pri každej verzii — kontroloval nepriateľský kód, nie to, či dobre funguje. Nie je to sľub, že je plugin neškodný.', + 'admin.plugins.security.signedTitle': 'Čo znamená „Podpísané“', + 'admin.plugins.security.signedBody': + 'Kontrolný súčet, ktorý TREK overuje pri každej inštalácii, dokazuje, že súbory sú presne tým, za čo sa register zaručuje. Podpis dokazuje niečo iné: že pochádzajú od autora a sú podpísané kľúčom, ktorý drží len on. Podpísaný plugin má oboje. Nepodpísaný nie je nebezpečný — nesie len o jednu záruku menej a väčšina pluginov v registri dnes podpísaná nie je.', + 'admin.plugins.signed': 'Podpísané', + 'admin.plugins.signedHint': 'Pri inštalácii overené voči podpisovému kľúču autora', + 'admin.plugins.unsigned': 'Nepodpísané', + 'admin.plugins.unsignedHint': + 'Súbory zodpovedajú tomu, za čo sa register zaručuje, ale nič ich nespája s autorom. O jednu záruku menej — nie nebezpečné.', + 'admin.plugins.updateBlocked': 'Aktualizácia zablokovaná — {reason}', + 'admin.plugins.reviewBlock': 'Skontrolovať', + 'admin.plugins.retrusted': 'Nový podpisový kľúč je dôveryhodný — plugin je aktualizovaný', + 'admin.plugins.sig.title': 'Podpis pluginu {name} sa nepodarilo overiť', + 'admin.plugins.sig.keyChangedBody': + 'Podpisový kľúč autora nie je ten, s ktorým bol tento plugin nainštalovaný. Autori kľúče skutočne menia — ale útočník, ktorý plugin prevzal, by vyzeral presne takto.', + 'admin.plugins.sig.invalidBody': + 'Súbory nezodpovedajú podpisu autora. Nie sú tým, čo autor podpísal — buď sa poškodili, alebo do nich niekto zasiahol. Toto nie je možné obísť.', + 'admin.plugins.sig.missingBody': + 'Tento plugin bol pri inštalácii podpísaný, ale nová verzia neprináša žiadny podpis. TREK takéto zhoršenie ticho neprijme. Toto nie je možné obísť.', + 'admin.plugins.sig.incompleteBody': + 'Záznam v registri je podpísaný len napoly: uvádza kľúč autora, ale verzia nenesie žiadny podpis (alebo naopak). To je chyba na strane pluginu. Toto nie je možné obísť.', + 'admin.plugins.sig.pinnedKey': 'Kľúč, s ktorým bol nainštalovaný', + 'admin.plugins.sig.newKey': 'Kľúč, ktorý ponúka teraz', + 'admin.plugins.sig.confirmOutOfBand': + 'TREK nedokáže odlíšiť legitímnu výmenu kľúča od prevzatia — obe odtiaľto vyzerajú rovnako. Skôr než nový kľúč prijmete, overte si ho u autora kanálom, ktorému už dôverujete. Keď to urobíte, plugin sa aktualizuje a nový kľúč si TREK zapamätá.', + 'admin.plugins.sig.retrustConfirm': 'Dôverovať novému kľúču a aktualizovať', + 'admin.plugins.sig.cancel': 'Nedôverovať', + 'admin.plugins.sig.consentUnsigned': + 'Túto verziu nič nespája s jej autorom — súbory zodpovedajú registru, ale nenesú podpis autora.', + 'admin.plugins.security.trustTitle': 'Záverom', + 'admin.plugins.security.trustBody': + 'Inštalácia pluginu je ako inštalácia akejkoľvek aplikácie tretej strany: pridávajte len kód od autorov, ktorým dôverujete, a v prípade pochybností si ho najprv sami prezrite. TREK nenesie žiadnu zodpovednosť za pluginy tretích strán.', + 'admin.plugins.runtimeOn': 'Behové prostredie beží', + 'admin.plugins.tabDiscover': 'Objaviť', + 'admin.plugins.searchPlaceholder': 'Hľadať pluginy…', + 'admin.plugins.filterType': 'Typ', + 'admin.plugins.filterStatus': 'Stav', + 'admin.plugins.sortBy': 'Zoradiť', + 'admin.plugins.allTypes': 'Všetky typy', + 'admin.plugins.allStatuses': 'Všetky', + 'admin.plugins.stateOff': 'Vypnuté', + 'admin.plugins.filterUpdate': 'Dostupná aktualizácia', + 'admin.plugins.sortName': 'Názov', + 'admin.plugins.sortRecent': 'Naposledy aktualizované', + 'admin.plugins.sortUpdates': 'Najprv aktualizácie', + 'admin.plugins.sortDownloads': 'Najviac stiahnutí', + 'admin.plugins.updatesAvailable': 'Pre vaše pluginy je dostupných {count} aktualizácií.', + 'admin.plugins.newerNeedsTrek': 'v{version} dostupné — vyžaduje TREK {range}', + 'admin.plugins.updateAll': 'Aktualizovať všetko', + 'admin.plugins.versionsTitle': 'Verzie', + 'admin.plugins.versionPickerTitle': 'Zmeniť verziu — {name}', + 'admin.plugins.versionSwitch': 'Prepnúť na {version}', + 'admin.plugins.versionNeedsTrek': 'vyžaduje TREK {range}', + 'admin.plugins.changeVersion': 'Zmeniť verziu…', + 'admin.plugins.noVersions': 'V registri sa nenašli žiadne publikované verzie.', + 'admin.plugins.downgradeTitle': 'Vrátiť tento plugin na staršiu verziu?', + 'admin.plugins.downgradeBody': + 'Prechod z v{from} na v{to}: dáta zapísané novšou verziou zostanú na mieste a staršia verzia im nemusí rozumieť.', + 'admin.plugins.downgradeConfirm': 'Vrátiť späť', + 'admin.plugins.updatesHeld': 'Aktualizácie pozastavené na v{version}', + 'admin.plugins.resumeUpdates': 'Obnoviť aktualizácie', + 'admin.plugins.updatesResumed': 'Aktualizácie obnovené', + 'admin.plugins.noMatchInstalled': 'Žiadne nainštalované pluginy nezodpovedajú vášmu hľadaniu.', + 'admin.plugins.noMatchRegistry': 'Žiadne pluginy v registri nezodpovedajú vášmu hľadaniu.', + 'admin.plugins.restart': 'Reštartovať', + 'admin.plugins.restarted': 'Plugin reštartovaný', + 'admin.plugins.instanceSettings': 'Nastavenia inštancie', + 'admin.plugins.settingsSaved': 'Nastavenia uložené', + 'admin.plugins.settingsSavedRestarted': 'Nastavenia uložené — plugin reštartovaný', + 'admin.plugins.actions': 'Akcie', + 'admin.plugins.actions.confirm': 'Spustiť túto akciu?', + 'admin.plugins.actions.inactive': 'Aktivujte plugin, aby ste mohli spúšťať jeho akcie', + 'admin.plugins.requiredMissing': '„{field}" je povinné', + 'admin.plugins.cap.readsTrips': 'Číta vaše cesty', + 'admin.plugins.cap.readsUsers': 'Číta základné profily', + 'admin.plugins.cap.readsCosts': 'Číta vaše výdavky', + 'admin.plugins.cap.readsPacking': 'Číta baliace zoznamy', + 'admin.plugins.cap.readsFiles': 'Číta súbory ciest', + 'admin.plugins.cap.writesCosts': 'Pridáva výdavky', + 'admin.plugins.cap.writesPlaces': 'Upravuje miesta', + 'admin.plugins.cap.writesDays': 'Upravuje dni', + 'admin.plugins.cap.writesItinerary': 'Upravuje itinerár', + 'admin.plugins.cap.writesTrips': 'Upravuje cesty', + 'admin.plugins.cap.metadata': 'Pridáva metadáta', + 'admin.plugins.cap.widget': 'Widget na nástenke', + 'admin.plugins.cap.heroWidget': 'Widget palubnej vstupenky', + 'admin.plugins.cap.placeSlot': 'Detail miesta', + 'admin.plugins.cap.daySlot': 'Detail dňa', + 'admin.plugins.cap.reservationSlot': 'Detail rezervácie', + 'admin.plugins.cap.replacesTabs': 'Nahrádza karty plánovača', + 'admin.plugins.cap.realtime': 'Aktualizácie v reálnom čase', + 'admin.plugins.cap.notificationChannel': 'Kanál oznámení', + 'admin.plugins.cap.photos': 'Poskytuje fotky', + 'admin.plugins.cap.calendar': 'Poskytuje udalosti kalendára', + 'admin.plugins.cap.placeDetails': 'Obohacuje miesta', + 'admin.plugins.cap.search': 'Odpovedá na vyhľadávania', + 'admin.plugins.cap.warnings': 'Označuje problémy', + 'admin.plugins.cap.mapLayers': 'Kreslí na mape', + 'admin.plugins.cap.routing': 'Ponúka trasovanie', + 'admin.plugins.cap.daySchedule': 'Dopĺňa časy plánu', + 'admin.plugins.cap.dayTint': 'Farbí dni', + 'admin.plugins.cap.geolocation': 'Číta vašu polohu', + 'admin.plugins.cap.events': 'Reaguje na aktivitu', + 'admin.plugins.cap.requiresAddon': 'Vyžaduje {addon}', + 'admin.plugins.cap.dependsOn': 'Vyžaduje {id} {version}', + 'admin.plugins.dep.addonDisabledToast': 'Najprv povoľte potrebné doplnky: {addons}', + 'admin.plugins.dep.autoEnabled': 'Najprv povolené potrebné pluginy: {plugins}', + 'admin.plugins.dep.downloaded': 'Stiahnuté {id}', + 'admin.plugins.dep.resolveTitle': 'Chýbajúce závislosti', + 'admin.plugins.dep.resolveBody': '„{name}“ pred povolením potrebuje nainštalovať tieto pluginy.', + 'admin.plugins.dep.requires': 'Vyžaduje {version}', + 'admin.plugins.dep.mismatch': 'Vyžaduje {wanted} — nainštalované je {installed}', + 'admin.plugins.dep.download': 'Stiahnuť', + 'admin.plugins.dep.update': 'Aktualizovať', + 'admin.plugins.dep.resolveHint': 'Stiahne najnovšiu kompatibilnú verziu vrátane jej vlastných závislostí.', + 'admin.plugins.dep.trekIncompatible': 'Vyžaduje TREK {range} — tento server beží na {host}', + 'admin.plugins.dep.trekUnknown': 'Neuvádza, ktoré verzie TREK podporuje', + 'admin.plugins.installCompatible': 'Nainštalovať {version}', + 'admin.plugins.installAnyway': 'Napriek tomu nainštalovať', + 'admin.plugins.rangeBypass.pill': 'Kontroly verzií vypnuté', + 'admin.plugins.rangeBypass.pillHint': + 'Je nastavené TREK_PLUGINS_IGNORE_TREK_RANGE — pluginy sa môžu inštalovať a spúšťať mimo verzií TREKu, ktoré ich autori deklarovali', + 'admin.plugins.rangeBypass.title': 'Mimo podporovaných verzií TREKu', + 'admin.plugins.rangeBypass.noticeTitle': 'Nainštalované mimo podporovaných verzií TREKu', + 'admin.plugins.rangeBypass.body': + '„{name}“ deklaruje podporu TREKu {range} a tento server beží na {host}. TREK ho prepúšťa len preto, že je nastavené TREK_PLUGINS_IGNORE_TREK_RANGE. Jeho autor neaktualizoval rozsah verzií pluginu pre tento TREK, takže nie je zaručené, že bude fungovať — a v zriedkavých prípadoch môže nekompatibilný plugin poškodiť dáta TREKu. Pokračujte len vtedy, ak toto riziko prijímate.', + 'admin.plugins.rangeBypass.bodyUnknown': + '„{name}“ neuvádza, ktoré verzie TREKu podporuje; tento server beží na {host}. TREK ho prepúšťa len preto, že je nastavené TREK_PLUGINS_IGNORE_TREK_RANGE. Nič nenasvedčuje tomu, že ho autor na tomto TREKu testoval, takže nie je zaručené, že bude fungovať — a v zriedkavých prípadoch môže nekompatibilný plugin poškodiť dáta TREKu. Pokračujte len vtedy, ak toto riziko prijímate.', + 'admin.plugins.dep.trekBypassed': 'Mimo svojho rozsahu TREKu ({range}) — kontroly verzií vypnuté', + 'admin.plugins.dep.trekBypassedUnknown': 'Neuvádza žiadny rozsah TREKu — kontroly verzií vypnuté', + 'admin.plugins.incompatible': 'Nekompatibilný', + 'admin.plugins.accessTitle': 'K čomu má prístup', + 'admin.plugins.connectsTitle': 'Pripája sa k', + 'admin.plugins.detailsTitle': 'Podrobnosti', + 'admin.plugins.noAccess': 'Nevyžaduje žiadny zvláštny prístup.', + 'admin.plugins.metaVersion': 'Verzia', + 'admin.plugins.metaSize': 'Veľkosť', + 'admin.plugins.metaRequires': 'Vyžaduje', + 'admin.plugins.metaReviewed': 'Skontrolované dňa', + 'admin.plugins.downloads': 'Stiahnutia', + 'admin.addons.title': 'Doplnky', + 'admin.addons.subtitle': 'Zapnite alebo vypnite funkcie a prispôsobte si zážitok z TREKu.', + 'admin.addons.catalog.packing.name': 'Zoznamy', + 'admin.addons.catalog.packing.description': 'Baliace zoznamy a úlohy pre vaše cesty', + 'admin.addons.catalog.budget.name': 'Náklady', + 'admin.addons.catalog.budget.description': 'Sledujte výdavky na cestu a rozdeľte ich medzi cestujúcich', + 'admin.addons.catalog.documents.name': 'Dokumenty', + 'admin.addons.catalog.documents.description': 'Ukladajte a spravujte cestovné dokumenty', + 'admin.addons.catalog.vacay.name': 'Dovolenka (Vacay)', + 'admin.addons.catalog.vacay.description': 'Osobný plánovač dovolenky s kalendárom', + 'admin.addons.catalog.atlas.name': 'Atlas', + 'admin.addons.catalog.atlas.description': 'Mapa sveta s navštívenými krajinami a cestovnými štatistikami', + 'admin.addons.catalog.collab.name': 'Spolupráca', + 'admin.addons.catalog.collab.description': 'Poznámky, ankety, chat a návrhy pre spoločné plánovanie', + 'admin.addons.catalog.roadtrip.name': 'Cesta autom', + 'admin.addons.catalog.roadtrip.description': + 'Plánujte jazdy so zastávkami na trase, časmi jazdy a časmi príchodu, ktoré sa aktualizujú samy', + 'admin.addons.catalog.memories.name': 'Fotky (Immich)', + 'admin.addons.catalog.memories.description': 'Zdieľajte cestovné fotky cez svoju inštanciu Immich', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Model Context Protocol pre integráciu AI asistenta', + 'admin.addons.subtitleBefore': 'Zapnite alebo vypnite funkcie a prispôsobte si zážitok z ', + 'admin.addons.subtitleAfter': '.', + 'admin.addons.catalog.naver_list_import.name': 'Naver List Import', + 'admin.addons.catalog.naver_list_import.description': 'Importujte miesta zo zdieľaného zoznamu Naver Maps', + 'admin.addons.catalog.airtrail.name': 'AirTrail', + 'admin.addons.catalog.airtrail.description': 'Synchronizujte lety zo svojej inštancie AirTrail', + 'admin.addons.catalog.dawarich.name': 'Dawarich', + 'admin.addons.catalog.dawarich.description': + 'Načítajte návštevy a zaznamenané trasy z inštancie Dawarich, ktorú si každý čitateľ pripojí sám', + 'admin.addons.catalog.llm_parsing.name': 'Analýza pomocou AI', + 'admin.addons.catalog.llm_parsing.description': + 'Prečíta rezervácie, ktoré vstavaný analyzátor nezvládne, pomocou zvoleného modelu AI', + 'admin.addons.enabled': 'Povolené', + 'admin.addons.disabled': 'Zakázané', + 'admin.addons.type.trip': 'Cesta', + 'admin.addons.type.global': 'Globálne', + 'admin.addons.type.integration': 'Integrácia', + 'admin.addons.tripHint': 'Dostupné ako karta v rámci každej cesty', + 'admin.addons.globalHint': 'Dostupné ako samostatná sekcia v hlavnej navigácii', + 'admin.addons.integrationHint': 'Backendové služby a API integrácie bez vlastnej stránky', + 'admin.addons.toast.updated': 'Doplnok aktualizovaný', + 'admin.addons.toast.error': 'Aktualizácia doplnku zlyhala', + 'admin.addons.group.count': '{enabled} z {total} zapnuté', + 'admin.addons.noAddons': 'Žiadne doplnky nie sú dostupné', + 'admin.weather.title': 'Dáta o počasí', + 'admin.weather.badge': 'Od 24. marca 2026', + 'admin.weather.description': + 'TREK používa Open-Meteo ako svoj zdroj dát o počasí. Open-Meteo je bezplatná open-source služba počasia — nie je potrebný žiadny API kľúč.', + 'admin.weather.forecast': '16-dňová predpoveď', + 'admin.weather.forecastDesc': 'Predtým 5 dní (OpenWeatherMap)', + 'admin.weather.climate': 'Historické klimatické dáta', + 'admin.weather.climateDesc': 'Priemery za posledných 85 rokov pre dni mimo 16-dňovej predpovede', + 'admin.weather.requests': '10 000 požiadaviek / deň', + 'admin.weather.requestsDesc': 'Zdarma, bez nutnosti API kľúča', + 'admin.weather.locationHint': + 'Počasie sa určuje podľa prvého miesta so súradnicami v danom dni. Ak k dňu nie je priradené žiadne miesto, ako referencia sa použije ľubovoľné miesto zo zoznamu miest.', + 'admin.tabs.mcpTokens': 'MCP prístup', + 'admin.mcpTokens.title': 'MCP prístup', + 'admin.mcpTokens.subtitle': 'Spravujte OAuth relácie a API tokeny naprieč všetkými používateľmi', + 'admin.mcpTokens.sectionTitle': 'API tokeny', + 'admin.mcpTokens.owner': 'Vlastník', + 'admin.mcpTokens.tokenName': 'Názov tokenu', + 'admin.mcpTokens.created': 'Vytvorené', + 'admin.mcpTokens.lastUsed': 'Naposledy použité', + 'admin.mcpTokens.never': 'Nikdy', + 'admin.mcpTokens.empty': 'Zatiaľ neboli vytvorené žiadne MCP tokeny', + 'admin.mcpTokens.deleteTitle': 'Odstrániť token', + 'admin.mcpTokens.deleteMessage': + 'Tento token bude okamžite zneplatnený. Používateľ stratí MCP prístup cez tento token.', + 'admin.mcpTokens.deleteSuccess': 'Token odstránený', + 'admin.mcpTokens.deleteError': 'Nepodarilo sa odstrániť token', + 'admin.mcpTokens.loadError': 'Nepodarilo sa načítať tokeny', + 'admin.oauthSessions.sectionTitle': 'OAuth relácie', + 'admin.oauthSessions.clientName': 'Klient', + 'admin.oauthSessions.owner': 'Vlastník', + 'admin.oauthSessions.scopes': 'Oprávnenia', + 'admin.oauthSessions.created': 'Vytvorené', + 'admin.oauthSessions.empty': 'Žiadne aktívne OAuth relácie', + 'admin.oauthSessions.revokeTitle': 'Zrušiť reláciu', + 'admin.oauthSessions.revokeMessage': 'Táto OAuth relácia bude okamžite zrušená. Klient stratí MCP prístup.', + 'admin.oauthSessions.revokeSuccess': 'Relácia zrušená', + 'admin.oauthSessions.revokeError': 'Nepodarilo sa zrušiť reláciu', + 'admin.oauthSessions.loadError': 'Nepodarilo sa načítať OAuth relácie', + 'admin.tabs.github': 'GitHub', + 'admin.audit.subtitle': 'Bezpečnostne citlivé a administratívne udalosti (zálohy, používatelia, 2FA, nastavenia).', + 'admin.audit.empty': 'Zatiaľ žiadne záznamy auditu.', + 'admin.audit.refresh': 'Obnoviť', + 'admin.audit.loadMore': 'Načítať ďalšie', + 'admin.audit.showing': '{count} načítaných · {total} celkom', + 'admin.audit.col.time': 'Čas', + 'admin.audit.col.user': 'Používateľ', + 'admin.audit.col.action': 'Akcia', + 'admin.audit.col.resource': 'Zdroj', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Podrobnosti', + 'admin.github.title': 'História verzií', + 'admin.github.subtitle': 'Najnovšie aktualizácie z {repo}', + 'admin.github.latest': 'Najnovšia', + 'admin.github.prerelease': 'Predbežná verzia', + 'admin.github.showDetails': 'Zobraziť podrobnosti', + 'admin.github.hideDetails': 'Skryť podrobnosti', + 'admin.github.loadMore': 'Načítať ďalšie', + 'admin.github.loading': 'Načítava sa...', + 'admin.github.error': 'Nepodarilo sa načítať verzie', + 'admin.github.by': 'od', + 'admin.github.support': 'Pomáha mi ďalej rozvíjať TREK', + 'admin.update.available': 'Dostupná aktualizácia', + 'admin.update.text': 'TREK {version} je k dispozícii. Aktuálne používate {current}.', + 'admin.update.button': 'Zobraziť na GitHube', + 'admin.update.install': 'Inštalovať aktualizáciu', + 'admin.update.confirmTitle': 'Inštalovať aktualizáciu?', + 'admin.update.confirmText': + 'TREK bude aktualizovaný z {current} na {version}. Server sa potom automaticky reštartuje.', + 'admin.update.dataInfo': + 'Všetky vaše dáta (cesty, používatelia, API kľúče, súbory, Vacay, Atlas, rozpočty) budú zachované.', + 'admin.update.warning': 'Aplikácia bude počas reštartu krátko nedostupná.', + 'admin.update.confirm': 'Aktualizovať teraz', + 'admin.update.installing': 'Aktualizuje sa…', + 'admin.update.success': 'Aktualizácia nainštalovaná! Server sa reštartuje…', + 'admin.update.failed': 'Aktualizácia zlyhala', + 'admin.update.backupHint': 'Pred aktualizáciou odporúčame vytvoriť zálohu.', + 'admin.update.backupLink': 'Prejsť na zálohovanie', + 'admin.update.howTo': 'Ako aktualizovať', + 'admin.update.dockerText': + 'Vaša inštancia TREK beží v Dockeri. Na aktualizáciu na {version} spustite na svojom serveri tieto príkazy:', + 'admin.update.nonDockerText': + 'Táto inštancia TREK nebeží v Dockeri. Na aktualizáciu na {version} znovu spustite inštalačnú alebo aktualizačnú metódu, ktorú ste použili — napríklad pri Proxmox Community Scripts spustite aktualizáciu z konzoly LXC:', + 'admin.update.wikiLink': 'Otvoriť sprievodcu aktualizáciou', + 'admin.update.reloadHint': 'Prosím obnovte stránku o niekoľko sekúnd.', + 'admin.tabs.permissions': 'Oprávnenia', + 'admin.addons.catalog.journey.name': 'Cestovný denník', + 'admin.addons.catalog.journey.description': + 'Sledovanie cesty a cestovný denník s odbaveniami, fotkami a dennými príbehmi', + 'admin.addons.catalog.collections.name': 'Zbierky', + 'admin.addons.catalog.collections.description': + 'Zbierajte miesta z ľubovoľnej cesty do pomenovaných zoznamov a znovu ich používajte', + 'admin.passkey.title': 'Prihlásenie prístupovým kľúčom', + 'admin.passkey.cardHint': + 'Umožnite používateľom prihlásiť sa pomocou prístupových kľúčov (WebAuthn). V predvolenom nastavení vypnuté.', + 'admin.passkey.login': 'Povoliť prihlásenie prístupovým kľúčom', + 'admin.passkey.loginHint': + 'Zobrazí možnosť „Prihlásiť sa pomocou prístupového kľúča“ a umožní používateľom zaregistrovať prístupové kľúče v nastaveniach.', + 'admin.passkey.notConfigured': + 'Pre toto nasadenie sa zatiaľ nedá určiť žiadna doména WebAuthn. Nastavte nižšie APP_URL alebo Relying Party ID — dovtedy zostanú prístupové kľúče skryté.', + 'admin.passkey.rpId': 'Relying Party ID (doména)', + 'admin.passkey.rpIdHint': + 'Holá doména, ku ktorej sú prístupové kľúče viazané, napr. trek.example.org. Ponechajte prázdne, aby sa odvodila z APP_URL. Neskoršia zmena zneplatní existujúce prístupové kľúče.', + 'admin.passkey.origins': 'Povolené origins', + 'admin.passkey.originsHint': + 'Úplné origins oddelené čiarkou, napr. https://trek.example.org. Ponechajte prázdne pre použitie APP_URL.', + 'admin.passkey.reset': 'Resetovať prístupové kľúče', + 'admin.passkey.resetHint': + 'Odstráni všetky prístupové kľúče tohto používateľa (napr. pri strate zariadenia). Stále sa môže prihlásiť svojím heslom.', + 'admin.passkey.resetConfirm': 'Odstrániť všetky prístupové kľúče používateľa {name}?', + 'admin.passkey.resetDone': 'Odstránených {count} prístupových kľúčov', + 'admin.group.users': 'Používatelia', + 'admin.group.config': 'Konfigurácia', + 'admin.group.integration': 'Integrácie', + 'admin.group.maintenance': 'Údržba', + 'admin.invite.tripLabel': 'Pridať k ceste (voliteľné)', + 'admin.invite.tripNone': 'Žiadna cesta', + 'admin.invite.tripHint': 'Nový používateľ sa po registrácii cez odkaz automaticky pridá k tejto ceste.', + 'admin.invite.boundTo': 'pridá k {trip}', + 'admin.placesUsageTitle': 'Na čo sa kľúč používa', + 'admin.mapsKeyHintShort': 'Pridá fotky, hodnotenia a otváracie hodiny. Každý dotaz potom ide do Googlu.', + 'admin.amapKeyHintShort': + 'Na vyhľadávanie miest v kontinentálnej Číne. Potrebuje kľúč webovej služby, nie kľúč JS API.', + 'admin.collab.links.subtitle': 'Zdieľané odkazy a záložky', +}; +export default admin; diff --git a/shared/src/i18n/sk/airport.ts b/shared/src/i18n/sk/airport.ts new file mode 100644 index 000000000..536f51fe8 --- /dev/null +++ b/shared/src/i18n/sk/airport.ts @@ -0,0 +1,6 @@ +import type { TranslationStrings } from '../types'; + +const airport: TranslationStrings = { + 'airport.searchPlaceholder': 'Kód letiska alebo mesto (napr. FRA)', +}; +export default airport; diff --git a/shared/src/i18n/sk/atlas.ts b/shared/src/i18n/sk/atlas.ts new file mode 100644 index 000000000..195537e93 --- /dev/null +++ b/shared/src/i18n/sk/atlas.ts @@ -0,0 +1,65 @@ +import type { TranslationStrings } from '../types'; + +const atlas: TranslationStrings = { + 'atlas.subtitle': 'Vaša cestovateľská stopa po celom svete', + 'atlas.countries': 'Krajiny', + 'atlas.trips': 'Cesty', + 'atlas.places': 'Miesta', + 'atlas.unmark': 'Odobrať', + 'atlas.confirmMark': 'Označiť túto krajinu ako navštívenú?', + 'atlas.confirmUnmark': 'Odobrať túto krajinu zo zoznamu navštívených?', + 'atlas.confirmUnmarkRegion': 'Odobrať tento región zo zoznamu navštívených?', + 'atlas.markVisited': 'Označiť ako navštívené', + 'atlas.markVisitedHint': 'Pridať túto krajinu do zoznamu navštívených', + 'atlas.markRegionVisitedHint': 'Pridať tento región do zoznamu navštívených', + 'atlas.addToBucket': 'Pridať do zoznamu prianí (Bucket list)', + 'atlas.addPoi': 'Pridať miesto', + 'atlas.searchCountry': 'Hľadať krajinu...', + 'atlas.searchPlaces': 'Miesta', + 'atlas.bucketNamePlaceholder': 'Názov (krajina, mesto, miesto...)', + 'atlas.month': 'Mesiac', + 'atlas.year': 'Rok', + 'atlas.addToBucketHint': 'Uložiť ako miesto, ktoré chcete navštíviť', + 'atlas.removeFromBucket': 'Odobrať zo zoznamu prianí', + 'atlas.removeFromBucketHint': 'Odobrať túto krajinu z vášho bucket listu', + 'atlas.bucketWhen': 'Kedy plánujete návštevu?', + 'atlas.bucketDuplicate': 'Už je na vašom zozname prianí', + 'atlas.statsTab': 'Štatistiky', + 'atlas.bucketTab': 'Bucket List', + 'atlas.addBucket': 'Pridať na Bucket List', + 'atlas.bucketNotesPlaceholder': 'Poznámky (voliteľné)', + 'atlas.bucketEmpty': 'Váš zoznam prianí je prázdny', + 'atlas.bucketEmptyHint': 'Pridajte miesta, ktoré snívate navštíviť', + 'atlas.days': 'Dni', + 'atlas.visitedCountries': 'Navštívené krajiny', + 'atlas.cities': 'Mestá', + 'atlas.noData': 'Zatiaľ žiadne cestovateľské dáta', + 'atlas.noDataHint': 'Vytvorte cestu a pridajte miesta, aby ste videli svoju mapu sveta', + 'atlas.nextTrip': 'Ďalšia cesta', + 'atlas.daysLeft': 'dní zostáva', + 'atlas.streak': 'Séria', + 'atlas.years': 'rokov', + 'atlas.yearInRow': 'rok po sebe', + 'atlas.yearsInRow': 'rokov po sebe', + 'atlas.tripIn': 'cesta v roku', + 'atlas.tripsIn': 'ciest v roku', + 'atlas.since': 'od', + 'atlas.europe': 'Európa', + 'atlas.asia': 'Ázia', + 'atlas.northAmerica': 'S. Amerika', + 'atlas.southAmerica': 'J. Amerika', + 'atlas.africa': 'Afrika', + 'atlas.oceania': 'Oceánia', + 'atlas.other': 'Ostatné', + 'atlas.firstVisit': 'Prvá cesta', + 'atlas.lastVisitLabel': 'Posledná cesta', + 'atlas.tripSingular': 'Cesta', + 'atlas.tripPlural': 'Cesty', + 'atlas.placeVisited': 'Navštívené miesto', + 'atlas.placesVisited': 'Navštívené miesta', + 'atlas.planned': 'Plánované', + 'atlas.showPlanned': 'Zobraziť plánované krajiny', + 'atlas.plannedFor': 'Plánované na', + 'atlas.antarctica': 'Antarktída', +}; +export default atlas; diff --git a/shared/src/i18n/sk/backup.ts b/shared/src/i18n/sk/backup.ts new file mode 100644 index 000000000..cfb671521 --- /dev/null +++ b/shared/src/i18n/sk/backup.ts @@ -0,0 +1,72 @@ +import type { TranslationStrings } from '../types'; + +const backup: TranslationStrings = { + 'backup.title': 'Záloha dát', + 'backup.subtitle': 'Databáza a všetky nahrané súbory', + 'backup.refresh': 'Obnoviť', + 'backup.upload': 'Nahrať zálohu', + 'backup.uploading': 'Nahráva sa…', + 'backup.create': 'Vytvoriť zálohu', + 'backup.creating': 'Vytvára sa…', + 'backup.empty': 'Zatiaľ žiadne zálohy', + 'backup.createFirst': 'Vytvoriť prvú zálohu', + 'backup.download': 'Stiahnuť', + 'backup.restore': 'Obnoviť', + 'backup.confirm.restore': 'Obnoviť zálohu „{name}“?\n\nVšetky aktuálne dáta budú nahradené zálohou.', + 'backup.confirm.uploadRestore': 'Nahrať a obnoviť súbor zálohy „{name}“?\n\nVšetky aktuálne dáta budú prepísané.', + 'backup.confirm.delete': 'Odstrániť zálohu „{name}“?', + 'backup.toast.loadError': 'Nepodarilo sa načítať zálohy', + 'backup.toast.created': 'Záloha bola úspešne vytvorená', + 'backup.toast.createError': 'Nepodarilo sa vytvoriť zálohu', + 'backup.toast.restored': 'Záloha obnovená. Stránka sa znova načíta…', + 'backup.toast.restoreError': 'Obnovenie zlyhalo', + 'backup.toast.uploadError': 'Nahrávanie zlyhalo', + 'backup.toast.deleted': 'Záloha odstránená', + 'backup.toast.deleteError': 'Odstránenie zlyhalo', + 'backup.toast.downloadError': 'Sťahovanie zlyhalo', + 'backup.toast.settingsSaved': 'Nastavenia automatického zálohovania uložené', + 'backup.toast.settingsError': 'Nepodarilo sa uložiť nastavenia', + 'backup.auto.title': 'Automatické zálohovanie', + 'backup.auto.subtitle': 'Automatické zálohovanie podľa plánu', + 'backup.auto.enable': 'Povoliť automatické zálohovanie', + 'backup.auto.enableHint': 'Zálohy sa budú vytvárať automaticky podľa zvoleného plánu', + 'backup.auto.interval': 'Interval', + 'backup.auto.hour': 'Spustiť o hodine', + 'backup.auto.hourHint': 'Miestny čas servera (formát {format})', + 'backup.auto.dayOfWeek': 'Deň v týždni', + 'backup.auto.dayOfMonth': 'Deň v mesiaci', + 'backup.auto.dayOfMonthHint': 'Obmedzené na 1 – 28 pre kompatibilitu so všetkými mesiacmi', + 'backup.auto.scheduleSummary': 'Plán', + 'backup.auto.summaryDaily': 'Každý deň o {hour}:00', + 'backup.auto.summaryWeekly': 'Každý {day} o {hour}:00', + 'backup.auto.summaryMonthly': '{day}. deň každého mesiaca o {hour}:00', + 'backup.auto.envLocked': 'Docker', + 'backup.auto.envLockedHint': + 'Automatické zálohovanie je konfigurované cez premenné prostredia Docker. Ak chcete tieto nastavenia zmeniť, aktualizujte svoj docker-compose.yml a reštartujte kontajner.', + 'backup.auto.copyEnv': 'Skopírovať premenné prostredia Docker', + 'backup.auto.envCopied': 'Premenné prostredia Docker skopírované do schránky', + 'backup.auto.keepLabel': 'Odstrániť staré zálohy po', + 'backup.dow.sunday': 'Ne', + 'backup.dow.monday': 'Po', + 'backup.dow.tuesday': 'Ut', + 'backup.dow.wednesday': 'St', + 'backup.dow.thursday': 'Št', + 'backup.dow.friday': 'Pi', + 'backup.dow.saturday': 'So', + 'backup.interval.hourly': 'Každú hodinu', + 'backup.interval.daily': 'Denne', + 'backup.interval.weekly': 'Týždenne', + 'backup.interval.monthly': 'Mesačne', + 'backup.keep.1day': '1 deň', + 'backup.keep.3days': '3 dni', + 'backup.keep.7days': '7 dní', + 'backup.keep.14days': '14 dní', + 'backup.keep.30days': '30 dní', + 'backup.keep.forever': 'Uchovávať navždy', + 'backup.restoreConfirmTitle': 'Obnoviť zálohu?', + 'backup.restoreWarning': + 'Všetky aktuálne dáta (cesty, miesta, používatelia, nahrané súbory) budú natrvalo nahradené zálohou. Túto akciu nie je možné vrátiť späť.', + 'backup.restoreTip': 'Tip: Pred obnovením vytvorte zálohu aktuálneho stavu.', + 'backup.restoreConfirm': 'Áno, obnoviť', +}; +export default backup; diff --git a/shared/src/i18n/sk/budget.ts b/shared/src/i18n/sk/budget.ts new file mode 100644 index 000000000..daa83260b --- /dev/null +++ b/shared/src/i18n/sk/budget.ts @@ -0,0 +1,164 @@ +import type { TranslationStrings } from '../types'; + +const budget: TranslationStrings = { + 'costs.confirm.deleteTitle': 'Vymazať výdavok?', + 'costs.confirm.deleteBody': '„{name}“ bude natrvalo vymazané.', + 'budget.title': 'Rozpočet', + 'budget.exportCsv': 'Exportovať CSV', + 'budget.emptyTitle': 'Zatiaľ nebol vytvorený žiadny rozpočet', + 'budget.emptyText': 'Vytvorte kategórie a položky na plánovanie cestovného rozpočtu', + 'budget.emptyPlaceholder': 'Zadajte názov kategórie...', + 'budget.createCategory': 'Vytvoriť kategóriu', + 'budget.category': 'Kategória', + 'budget.categoryName': 'Názov kategórie', + 'budget.table.name': 'Názov', + 'budget.table.total': 'Spolu', + 'budget.table.persons': 'Osoby', + 'budget.table.days': 'Dní', + 'budget.table.perPerson': 'Na osobu', + 'budget.table.perDay': 'Za deň', + 'budget.table.perPersonDay': 'Os. / deň', + 'budget.table.note': 'Poznámka', + 'budget.table.date': 'Dátum', + 'budget.newEntry': 'Nová položka', + 'budget.defaultEntry': 'Nová položka', + 'budget.defaultCategory': 'Nová kategória', + 'budget.total': 'Spolu', + 'budget.totalBudget': 'Celkový rozpočet', + 'budget.byCategory': 'Podľa kategórie', + 'budget.editTooltip': 'Kliknutím upravíte', + 'budget.linkedToReservation': 'Prepojené s rezerváciou — názov upravte tam', + 'budget.confirm.deleteCategory': 'Naozaj chcete vymazať kategóriu „{name}“ s {count} položkami?', + 'budget.deleteCategory': 'Vymazať kategóriu', + 'budget.perPerson': 'Na osobu', + 'budget.paid': 'Zaplatené', + 'budget.open': 'Nezaplatené', + 'budget.noMembers': 'Žiadni členovia neboli priradení', + 'budget.settlement': 'Vyúčtovanie', + 'budget.settlementInfo': + 'Kliknite na avatar člena pri rozpočtovej položke, aby ste ho označili zeleno — znamená to, že zaplatil. Vyúčtovanie potom ukazuje, kto komu a koľko dlhuje.', + 'budget.netBalances': 'Čisté zostatky', + 'budget.categoriesLabel': 'kategórie', + 'costs.you': 'Vy', + 'costs.youShort': 'Vy', + 'costs.youLower': 'vy', + 'costs.youOwe': 'Dlhujete', + 'costs.youOweSub': 'Mali by ste zaplatiť ostatným', + 'costs.youreOwed': 'Dlhujú vám', + 'costs.youreOwedSub': 'Ostatní by mali zaplatiť vám', + 'costs.totalSpend': 'Celkové výdavky na cestu', + 'costs.totalSpendSub': 'Za všetkých cestovateľov', + 'costs.to': 'Komu', + 'costs.from': 'Od', + 'costs.allSettled': 'Máte všetko vyrovnané', + 'costs.nothingOwed': 'Nikto vám nič nedlhuje', + 'costs.yourShare': 'Váš podiel', + 'costs.youPaid': 'Zaplatili ste', + 'costs.outstanding': 'Nevyriešená suma', + 'costs.outstandingSub': 'Výdavky zatiaľ bez platcu', + 'costs.outstandingItems': 'výdavkov potrebuje platcu', + 'costs.expenses': 'Výdavky', + 'costs.entries': '{count} položiek', + 'costs.searchPlaceholder': 'Hľadať výdavky…', + 'costs.filter.all': 'Všetko', + 'costs.filter.mine': 'Zaplatené mnou', + 'costs.filter.owed': 'Dlhujú mi', + 'costs.filter.allCategories': 'Všetky kategórie', + 'costs.filter.allDays': 'Všetky dni', + 'costs.expensesCount': '{count} výdavkov', + 'costs.addExpense': 'Pridať výdavok', + 'costs.editExpense': 'Upraviť výdavok', + 'costs.noMatch': 'Žiadne výdavky nezodpovedajú vášmu hľadaniu.', + 'costs.emptyText': 'Zatiaľ žiadne výdavky. Pridajte prvý.', + 'costs.spent': 'Minuté {amount}', + 'costs.noDate': 'Bez dátumu', + 'costs.noOnePaid': 'Zatiaľ nikto nezaplatil', + 'costs.youLent': 'požičali ste {amount}', + 'costs.youBorrowed': 'požičali ste si {amount}', + 'costs.settleUp': 'Vyrovnať', + 'costs.history': 'História', + 'costs.everyoneSquare': 'Všetci sú vyrovnaní', + 'costs.nothingOutstanding': 'Momentálne žiadne nevyrovnané platby.', + 'costs.pay': 'zaplatí', + 'costs.pays': 'zaplatí', + 'costs.settle': 'Vyrovnať', + 'costs.balances': 'Zostatky', + 'costs.finalBudget': 'Konečný rozpočet', + 'costs.finalExpenses': 'Zaplatené výdavky', + 'costs.finalReimbursed': 'Náhrady netto', + 'costs.finalPending': 'Nevyriešené náhrady', + 'costs.byCategory': 'Podľa kategórie', + 'costs.noCategories': 'Zatiaľ žiadne výdavky.', + 'costs.settleHistory': 'História vyrovnaní', + 'costs.noSettlements': 'Zatiaľ žiadne vyrovnané platby.', + 'costs.paymentsSettled': '{count} platieb vyrovnaných', + 'costs.paid': 'zaplatené', + 'costs.undo': 'Vrátiť späť', + 'costs.whatFor': 'Za čo to bolo?', + 'costs.namePlaceholder': 'napr. večera, suveníry, benzín…', + 'costs.note': 'Poznámka', + 'costs.notePlaceholder': 'Čo zahŕňalo, kto čo dlhuje…', + 'costs.addNote': 'Pridať poznámku', + 'costs.showNote': 'Zobraziť poznámku', + 'costs.hideNote': 'Skryť poznámku', + 'costs.totalAmount': 'Celková suma', + 'costs.currency': 'Mena', + 'costs.day': 'Deň', + 'costs.rateLabel': '1 {from} v {to}', + 'costs.category': 'Kategória', + 'costs.whoPaid': 'Kto zaplatil?', + 'costs.multiplePayers': 'Platilo viacero ľudí', + 'costs.singlePayer': 'Platil jeden človek', + 'costs.payersUnbalanced': 'Súčet súm platcov musí byť {amount}', + 'costs.splitBetween': 'Rozdeliť rovným dielom medzi', + 'costs.split': 'Rozdeliť', + 'costs.splitEqually': 'Rovnakým dielom', + 'costs.splitCustom': 'Vlastné', + 'costs.splitTicket': 'Účtenka', + 'costs.pickSomeone': 'Vyberte aspoň jednu osobu na rozdelenie.', + 'costs.splitSummary': 'Rozdelené na {count} dielov · {amount} každý', + 'costs.cat.accommodation': 'Ubytovanie', + 'costs.cat.food': 'Jedlo a pitie', + 'costs.cat.groceries': 'Potraviny', + 'costs.cat.transport': 'Doprava', + 'costs.cat.flights': 'Lety', + 'costs.cat.activities': 'Aktivity', + 'costs.cat.sightseeing': 'Prehliadka pamiatok', + 'costs.cat.shopping': 'Nákupy', + 'costs.cat.fees': 'Poplatky a vstupenky', + 'costs.cat.health': 'Zdravie', + 'costs.cat.tips': 'Prepitné', + 'costs.cat.fuel': 'Palivo', + 'costs.cat.parking': 'Parkovanie', + 'costs.cat.other': 'Ostatné', + 'costs.daysCount': '{count} dní', + 'costs.travelers': '{count} cestovateľov', + 'costs.liveRate': 'aktuálny kurz', + 'costs.settleAll': 'Vyrovnať všetko', + 'costs.payment': 'Platba', + 'costs.editPayment': 'Upraviť platbu', + 'costs.addPayment': 'Pridať platbu', + 'costs.unfinished': 'Nedokončené', + 'costs.unfinishedHint': 'Len v súčte — zatiaľ nevyrovnané', + 'costs.tapToInclude': 'Klepnutím zahrniete', + 'costs.amount': 'Suma', + 'costs.ticketItemName': 'Názov položky', + 'costs.ticketSplitting': 'Delí sa medzi:', + 'costs.ticketAddItem': 'Pridať položku', + 'costs.ticketShares': 'Podiel každého', + 'costs.excluded': 'Nezahrnuté', + 'costs.splitBalanced': 'Rozdelenie sedí s celkom', + 'costs.splitSumUnder': 'Súčet podielov: {sum} z {total} (chýba {diff})', + 'costs.splitSumOver': 'Súčet podielov: {sum} z {total} (o {diff} viac)', + 'costs.toggleSign': 'Prepnúť medzi výdavkom a vratkou', + 'costs.receipts': 'Účtenky', + 'costs.receiptsTitle': 'Účtenky a faktúry', + 'costs.attachReceipt': 'Priložiť účtenku / faktúru', + 'costs.noReceipts': 'Žiadne priložené účtenky', + 'costs.deleteReceipt': 'Odobrať účtenku', + 'costs.viewReceipt': 'Zobraziť účtenku', + 'costs.receiptLeftBehind': + 'Uloženie zlyhalo a {count} nahraných účteniek tam stále je. Odstráňte ich v záložke Súbory.', +}; + +export default budget; diff --git a/shared/src/i18n/sk/categories.ts b/shared/src/i18n/sk/categories.ts new file mode 100644 index 000000000..7a7a0cd0f --- /dev/null +++ b/shared/src/i18n/sk/categories.ts @@ -0,0 +1,25 @@ +import type { TranslationStrings } from '../types'; + +const categories: TranslationStrings = { + 'categories.title': 'Kategórie', + 'categories.subtitle': 'Správa kategórií pre miesta', + 'categories.new': 'Nová kategória', + 'categories.empty': 'Zatiaľ žiadne kategórie', + 'categories.namePlaceholder': 'Názov kategórie', + 'categories.icon': 'Ikona', + 'categories.color': 'Farba', + 'categories.customColor': 'Vybrať vlastnú farbu', + 'categories.preview': 'Náhľad', + 'categories.defaultName': 'Kategória', + 'categories.update': 'Aktualizovať', + 'categories.create': 'Vytvoriť', + 'categories.confirm.delete': 'Zmazať kategóriu? Miesta v tejto kategórii nebudú zmazané.', + 'categories.toast.loadError': 'Nepodarilo sa načítať kategórie', + 'categories.toast.nameRequired': 'Zadajte prosím názov', + 'categories.toast.updated': 'Kategória aktualizovaná', + 'categories.toast.created': 'Kategória vytvorená', + 'categories.toast.saveError': 'Uloženie zlyhalo', + 'categories.toast.deleted': 'Kategória zmazaná', + 'categories.toast.deleteError': 'Zmazanie zlyhalo', +}; +export default categories; diff --git a/shared/src/i18n/sk/collab.ts b/shared/src/i18n/sk/collab.ts new file mode 100644 index 000000000..bbdf3c2e9 --- /dev/null +++ b/shared/src/i18n/sk/collab.ts @@ -0,0 +1,102 @@ +import type { TranslationStrings } from '../types'; + +const collab: TranslationStrings = { + 'collab.chat.readOnly': 'Prístup k tomuto chatu iba na čítanie', + 'collab.chat.messageOptions': 'Možnosti správy', + 'collab.polls.confirmDeleteTitle': 'Vymazať anketu?', + 'collab.polls.confirmDeleteBody': 'Táto anketa bude natrvalo vymazaná.', + 'collab.polls.countdownDaysHours': 'Zostáva {d} d {h} h', + 'collab.polls.countdownHoursMinutes': 'Zostáva {h} h {m} min', + 'collab.polls.countdownMinutes': 'Zostáva {m} min', + 'collab.polls.clearDeadline': 'Zrušiť termín', + 'collab.tabs.chat': 'Chat', + 'collab.tabs.notes': 'Poznámky', + 'collab.tabs.polls': 'Ankety', + 'collab.tabs.links': 'Odkazy', + 'collab.links.add': 'Pridať odkaz', + 'collab.chat.imageRejected': 'Povolené sú iba obrázky JPEG, PNG, GIF a WebP do 10 MB', + 'collab.links.cancel': 'Zrušiť', + 'collab.links.save': 'Uložiť odkaz', + 'collab.links.titlePlaceholder': 'Názov odkazu', + 'collab.links.urlPlaceholder': 'https://...', + 'collab.links.empty': 'Zatiaľ žiadne zdieľané odkazy', + 'collab.links.pin': 'Pripnúť odkaz', + 'collab.links.unpin': 'Odopnúť odkaz', + 'collab.links.delete': 'Vymazať odkaz', + 'collab.whatsNext.title': 'Čo nasleduje', + 'collab.whatsNext.today': 'Dnes', + 'collab.whatsNext.tomorrow': 'Zajtra', + 'collab.whatsNext.empty': 'Žiadne nadchádzajúce aktivity', + 'collab.whatsNext.until': 'do', + 'collab.whatsNext.emptyHint': 'Aktivity s časmi sa zobrazia tu', + 'collab.chat.send': 'Odoslať', + 'collab.chat.placeholder': 'Napíšte správu...', + 'collab.chat.empty': 'Začnite konverzáciu', + 'collab.chat.emptyHint': 'Správy sú zdieľané so všetkými členmi cesty', + 'collab.chat.emptyDesc': 'Zdieľajte nápady, plány a novinky so svojou cestovateľskou skupinou', + 'collab.chat.today': 'Dnes', + 'collab.chat.yesterday': 'Včera', + 'collab.chat.deletedMessage': 'vymazal správu', + 'collab.chat.reply': 'Odpovedať', + 'collab.chat.loadMore': 'Načítať staršie správy', + 'collab.chat.justNow': 'práve teraz', + 'collab.chat.minutesAgo': 'pred {n} min', + 'collab.chat.hoursAgo': 'pred {n} h', + 'collab.notes.title': 'Poznámky', + 'collab.notes.new': 'Nová poznámka', + 'collab.notes.empty': 'Zatiaľ žiadne poznámky', + 'collab.notes.emptyHint': 'Začnite zapisovať nápady a plány', + 'collab.notes.all': 'Všetko', + 'collab.notes.titlePlaceholder': 'Názov poznámky', + 'collab.notes.content': 'Obsah', + 'collab.notes.removeFile': 'Odobrať {name}', + 'collab.notes.contentPlaceholder': 'Napíšte niečo...', + 'collab.notes.categoryPlaceholder': 'Kategória', + 'collab.notes.newCategory': 'Nová kategória...', + 'collab.notes.category': 'Kategória', + 'collab.notes.noCategory': 'Bez kategórie', + 'collab.notes.color': 'Farba', + 'collab.notes.save': 'Uložiť', + 'collab.notes.cancel': 'Zrušiť', + 'collab.notes.edit': 'Upraviť', + 'collab.notes.delete': 'Vymazať', + 'collab.notes.confirmDeleteTitle': 'Vymazať poznámku?', + 'collab.notes.confirmDeleteBody': 'Táto poznámka bude natrvalo vymazaná.', + 'collab.notes.pin': 'Pripnúť', + 'collab.notes.unpin': 'Odopnúť', + 'collab.notes.daysAgo': 'pred {n} dňami', + 'collab.notes.categorySettings': 'Spravovať kategórie', + 'collab.notes.create': 'Vytvoriť', + 'collab.notes.website': 'Webová stránka', + 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.attachFiles': 'Priložiť súbory', + 'collab.notes.noCategoriesYet': 'Zatiaľ žiadne kategórie', + 'collab.notes.emptyDesc': 'Vytvorte poznámku a začnite', + 'collab.polls.title': 'Ankety', + 'collab.polls.new': 'Nová anketa', + 'collab.polls.empty': 'Zatiaľ žiadne ankety', + 'collab.polls.emptyHint': 'Opýtajte sa skupiny a hlasujte spoločne', + 'collab.polls.question': 'Otázka', + 'collab.polls.questionPlaceholder': 'Čo by sme mali robiť?', + 'collab.polls.markdownHint': 'Podporuje Markdown', + 'collab.polls.addOption': '+ Pridať možnosť', + 'collab.polls.optionPlaceholder': 'Možnosť {n}', + 'collab.polls.create': 'Vytvoriť anketu', + 'collab.polls.close': 'Uzavrieť', + 'collab.polls.closed': 'Uzavreté', + 'collab.polls.votes': '{n} hlasov', + 'collab.polls.vote': '{n} hlas', + 'collab.polls.multipleChoice': 'Viac možností', + 'collab.polls.multiChoice': 'Viac možností', + 'collab.polls.deadline': 'Termín', + 'collab.polls.option': 'Možnosť', + 'collab.polls.options': 'Možnosti', + 'collab.polls.delete': 'Vymazať', + 'collab.polls.closedSection': 'Uzavreté', + 'collab.chat.imageLimit': 'K jednej správe môžete priložiť najviac {max} obrázkov', + 'collab.chat.uploading': 'Nahráva sa {percent} %', + 'collab.chat.attachImages': 'Priložiť obrázky', + 'collab.chat.attachedImage': 'Priložený obrázok', + 'collab.chat.closeImage': 'Zavrieť obrázok', +}; +export default collab; diff --git a/shared/src/i18n/sk/collection.ts b/shared/src/i18n/sk/collection.ts new file mode 100644 index 000000000..bfc7f6dc5 --- /dev/null +++ b/shared/src/i18n/sk/collection.ts @@ -0,0 +1,233 @@ +import type { TranslationStrings } from '../types'; + +const collection: TranslationStrings = { + 'collections.saveNToList': 'Uložiť {count} do zoznamu', + 'collections.addedNToList': 'Uložených {count} do {name}', + 'collections.noOwnLists': 'Zatiaľ nemáte žiadne zoznamy', + 'collections.saveToListHint': 'Duplikáty sa automaticky preskočia', + 'collections.role.label': 'Rola', + 'collections.role.viewer': 'Divák', + 'collections.role.editor': 'Editor', + 'collections.role.admin': 'Správca', + 'collections.picker.allLists': 'Všetky zoznamy', + 'collections.select': 'Vybrať', + 'collections.selectAll': 'Vybrať všetko', + 'collections.deselectAll': 'Zrušiť výber', + 'collections.moveToList': 'Presunúť do zoznamu', + 'collections.duplicateToList': 'Duplikovať do zoznamu', + 'collections.moveToListTitle': 'Presunúť {count} do iného zoznamu', + 'collections.duplicateToListTitle': 'Duplikovať {count} do iného zoznamu', + 'collections.noOtherLists': 'Zatiaľ žiadne ďalšie zoznamy', + 'collections.movedCount': 'Presunutých {count} miest', + 'collections.duplicatedCount': 'Duplikovaných {count} miest', + 'collections.placeCount': '{count} miest', + 'collections.category': 'Kategória', + 'collections.noCategory': 'Bez kategórie', + 'collections.editListTitle': 'Upraviť zoznam', + 'collections.coverImage': 'Obrázok na obálku', + 'collections.addCover': 'Pridať obálku', + 'collections.changeCover': 'Zmeniť obálku', + 'collections.description': 'Popis', + 'collections.descriptionPlaceholder': 'Pridajte popis…', + 'collections.links': 'Odkazy', + 'collections.linkLabel': 'Popisok', + 'collections.addLink': 'Pridať odkaz', + 'collections.addDetails': 'Pridať podrobnosti', + 'collections.addPlace': 'Pridať miesto', + 'collections.addPlaceSearch': 'Hľadať miesto…', + 'collections.addPlaceHint': 'Vyhľadaním pridajte miesto do tohto zoznamu', + 'collections.importFromTrip': 'Importovať z cesty', + 'collections.importTitle': 'Importovať z cesty', + 'collections.importDoneTitle': 'Import dokončený', + 'collections.importPickTripHint': 'Vyberte cestu a preneste jej miesta do {name}.', + 'collections.importNoTrips': 'Zatiaľ žiadne cesty', + 'collections.importPlacesCount': '{count} miest', + 'collections.importSearchPlaces': 'Hľadať miesta…', + 'collections.importOnlyNew': 'Len nové', + 'collections.importSelectAll': 'Vybrať všetko', + 'collections.importClearSelection': 'Zrušiť výber', + 'collections.importAlreadySaved': 'Už uložené', + 'collections.importUnscheduled': 'Bez dňa', + 'collections.importOnDay': 'Deň {count}', + 'collections.importSelectedCount': 'Vybraných: {count}', + 'collections.importAction': 'Importovať {count}', + 'collections.importEmptyTrip': 'Táto cesta zatiaľ nemá žiadne miesta', + 'collections.importNothingNew': 'Všetko z tejto cesty už na zozname je', + 'collections.importDone': 'Pridaných {count} miest', + 'collections.importDoneSkipped': '{count} už na zozname bolo a zostalo bez zmeny', + 'collections.importDoneClean': 'Teraz sú všetky v {name}', + 'collections.sort.default': 'Predvolené', + 'collections.sort.nameAsc': 'Názov (A–Z)', + 'collections.coordinates': 'Súradnice', + 'collections.showList': 'Zobraziť zoznam', + 'collections.expandMap': 'Zväčšiť mapu', + 'collections.hero.mine': 'Moja zbierka', + 'collections.hero.shared': 'Zdieľané s vami', + 'collections.hero.all': 'Vaša knižnica', + 'collections.title': 'Zbierky', + 'collections.subtitle': 'Vaše uložené miesta usporiadané do zoznamov', + + 'collections.newList': 'Nový zoznam', + 'collections.create': 'Vytvoriť', + 'collections.editList': 'Premenovať', + 'collections.listMenu': 'Možnosti zoznamu', + 'collections.deleteList': 'Odstrániť zoznam', + 'collections.deleteListConfirm': + 'Týmto sa natrvalo odstráni zoznam aj všetky jeho uložené miesta. Túto akciu nemožno vrátiť späť.', + 'collections.listName': 'Názov zoznamu', + 'collections.listNamePlaceholder': 'napr. Tokio 2025', + 'collections.listColor': 'Farba', + 'collections.allSaved': 'Všetko uložené', + 'collections.shared': 'Zdieľané', + + 'collections.empty.title': 'Zatiaľ žiadne miesta', + 'collections.empty.text': 'Ukladajte miesta z ľubovoľnej cesty a naplňte tak tento zoznam.', + 'collections.empty.noMatchTitle': 'Žiadne výsledky', + 'collections.empty.noMatchText': 'Žiadne uložené miesto nezodpovedá vášmu filtru alebo hľadaniu.', + 'collections.empty.firstTitle': 'Začnite svoju prvú zbierku', + 'collections.empty.firstText': 'Vytvorte zoznam a ukladajte miesta, ktoré si chcete zapamätať naprieč cestami.', + + 'collections.view.grid': 'Mriežka', + 'collections.view.list': 'Zoznam', + 'collections.view.map': 'Mapa', + + 'collections.status.idea': 'Nápad', + 'collections.status.want': 'Chcem navštíviť', + 'collections.status.visited': 'Navštívené', + 'collections.status.filterAll': 'Všetko', + 'collections.status.cycleHint': 'klepnutím zmeníte', + + 'collections.markVisited': 'Označiť ako navštívené', + 'collections.markVisitedAll': 'Navštívené všade', + 'collections.markVisitedSelection': 'Označiť ako navštívené vo vašich zoznamoch', + 'collections.markVisitedNone': 'Žiadne z týchto miest nie je uložené v zozname', + 'collections.markedVisited': 'Označené ako navštívené', + 'collections.markedVisitedTrip': '{count} miest označených ako navštívené', + + 'collections.copyToTrip': 'Kopírovať do cesty', + 'collections.copyToTripTitle': 'Kopírovať do cesty', + 'collections.copyN': 'Kopírovať {count} do cesty', + 'collections.copyToTripSearch': 'Hľadať cesty', + 'collections.searchLists': 'Hľadať zoznamy', + 'collections.copyToTripConfirm': 'Kopírovať', + 'collections.noTrips': 'Zatiaľ žiadne cesty', + 'collections.alreadyInTrip': 'Už v tejto ceste', + 'collections.copied': 'Skopírované do cesty', + 'collections.copiedCount': 'Skopírovaných {count} miest', + 'collections.skippedDuplicates': 'Preskočených {count} duplikátov', + 'collections.copyNothing': 'Nie je čo kopírovať', + 'collections.removeFromList': 'Odobrať zo zoznamu', + 'collections.removeFromListConfirm': 'Odobrať toto miesto zo zoznamu?', + 'collections.removeFromCollection': 'Odobrať zo zbierky', + + 'collections.saved': 'Uložené do {name}', + 'collections.savedUndo': 'Späť', + 'collections.viewInCollection': 'Zobraziť', + 'collections.duplicateWarning': 'Toto miesto už v zozname je', + + 'collections.search': 'Hľadať miesta', + 'collections.selectMode': 'Vybrať', + 'collections.selectedCount': 'Vybraných: {count}', + + 'collections.pickList': 'Uložiť do zoznamu', + 'collections.pickListPlaceholder': 'Vyberte zoznam', + 'collections.addedToList': 'Pridané do {name}', + 'collections.removedFromList': 'Odobrané z {name}', + 'collections.inLists': 'Vo vašich zoznamoch', + 'collections.otherLists': 'Pridať do zoznamu', + 'collections.noListsYet': 'Najprv vytvorte zoznam, aby ste mohli ukladať miesta.', + 'collections.removedFromAll': 'Odobrané zo zbierky', + 'collections.picker.title': 'Uložené miesta', + 'collections.picker.showMore': 'Zobraziť ďalších {count}', + 'collections.picker.search': 'Prehľadať vaše uložené miesta', + 'collections.picker.empty': 'Žiadne uložené miesta na pridanie', + 'collections.picker.hint': 'Vyberte miesto zo svojich zbierok', + 'collections.picker.use': 'Použiť', + + // Export / import a list as a file (#2198) + 'collections.file.export': 'Exportovať', + 'collections.file.exportTitle': 'Stiahnuť tento zoznam ako súbor', + 'collections.file.importButton': 'Importovať zoznam zo súboru', + 'collections.file.importTitle': 'Importovať zoznam', + 'collections.file.choose': 'Vyberte súbor so zoznamom', + 'collections.file.confirm': 'Importovať', + 'collections.file.targetNew': 'Nový zoznam', + 'collections.file.targetNewHint': 'Súbor ako samostatný zoznam', + 'collections.file.targetExisting': 'Pridať do zoznamu', + 'collections.file.targetExistingHint': 'Do zoznamu, ktorý už máte', + 'collections.file.searchLists': 'Hľadať zoznamy', + 'collections.file.intoHint': + 'Miesta, ktoré zoznam už má, zostanú bez zmeny, rovnako aj jeho názov a farba. Štítky zo súboru sa pridajú.', + 'collections.file.confirmInto': 'Pridať do zoznamu', + 'collections.file.doneInto': '{count} miest pridaných do {name}', + 'collections.file.doneIntoDuplicates': '{count} pridaných do {name}, {duplicates} už tam bolo', + 'collections.file.doneIntoNothing': 'Všetky miesta zo súboru už v {name} sú', + 'collections.file.change': 'Zmeniť', + 'collections.file.labelCount': '{count} štítkov', + 'collections.file.hint': + 'Miesta prídu ako váš nový samostatný zoznam. Hodnotenia, členovia a nahrané fotky zostanú tam, kde boli.', + 'collections.file.done': '{count} miest importovaných', + 'collections.file.doneSkipped': '{count} miest importovaných, {skipped} preskočených', + 'collections.file.errorTooLarge': 'Tento súbor je na zoznam príliš veľký.', + 'collections.file.errorUnreadable': 'Tento súbor sa nepodarilo prečítať.', + 'collections.file.errorNotACollection': 'Toto nie je súbor so zoznamom TREK.', + 'collections.file.formatTrek': 'Zoznam TREK', + 'collections.file.formatTrekHint': 'Pre iný TREK, so štítkami a stavom', + 'collections.file.formatGpxHint': 'Trasové body pre OsmAnd, Organic Maps, Garmin a ďalšie mapové aplikácie', + 'collections.file.gpxOmitted': '{count} miest nemá súradnice a boli vynechané zo súboru GPX', + 'collections.file.gpxNothing': 'Žiadne z týchto miest nemá súradnice, takže do súboru GPX nie je čo uložiť.', + 'collections.file.reading': 'Načítava sa súbor…', + 'collections.file.gpxSkipped': '{count} trasových bodov bez použiteľných súradníc je vynechaných.', + 'collections.file.gpxTrack': 'Tento súbor má aj {count} bodov stopy. Stopy sa neimportujú, len trasové body.', + 'collections.file.gpxEmpty': 'Tento súbor GPX nemá žiadne trasové body, takže nie je čo importovať.', + 'collections.file.errorNotGpx': 'Toto nie je súbor GPX.', + 'collections.file.errorTooManyPlaces': + 'Tento súbor má viac než {count} miest. Rozdeľte ho a importujte časti po jednej.', + + 'collections.share.title': 'Zdieľať zoznam', + 'collections.share.titleNamed': 'Zdieľať „{name}“', + 'collections.share.button': 'Zdieľať', + 'collections.share.members': 'Členovia', + 'collections.share.owner': 'Vlastník', + 'collections.share.you': 'vy', + 'collections.share.pending': 'čakajúca pozvánka', + 'collections.share.accepted': 'prijaté', + 'collections.share.invite': 'Pozvať niekoho', + 'collections.share.inviteUser': 'Vyberte používateľa', + 'collections.share.sendInvite': 'Odoslať pozvánku', + 'collections.share.inviteHint': 'Pozvaní ľudia môžu tento zoznam zobraziť a upravovať.', + 'collections.share.noUsers': 'Nie je k dispozícii žiadny používateľ na pozvanie.', + 'collections.share.memberHint': 'Pozvať alebo odobrať ľudí môže iba vlastník zoznamu.', + 'collections.share.cancel': 'Zrušiť', + 'collections.share.leave': 'Opustiť zoznam', + 'collections.share.leaveConfirm': 'Opustiť tento zdieľaný zoznam? Stratíte prístup, kým nebudete znova pozvaní.', + 'collections.share.left': 'Opustili ste zoznam', + 'collections.share.remove': 'Odobrať', + + 'collections.invites.title': 'Pozvánky', + 'collections.invites.from': 'od', + 'collections.invites.accept': 'Prijať', + 'collections.invites.decline': 'Odmietnuť', + 'collections.invites.received': 'Máte novú pozvánku do zoznamu', + 'collections.invite.sent': 'Pozvánka odoslaná', + 'collections.invite.error': 'Pozvánku sa nepodarilo odoslať', + 'collections.invite.accepted': 'Pozvánka prijatá', + 'collections.invite.declined': 'Pozvánka odmietnutá', + + 'collections.widget.title': 'Zbierky', + 'collections.widget.empty': 'Zatiaľ žiadne uložené miesta', + 'collections.widget.savedCount': '{count} uložených', + + 'collections.labels.title': 'Štítky', + 'collections.labels.manage': 'Spravovať štítky', + 'collections.labels.add': 'Pridať štítok', + 'collections.labels.name': 'Názov štítka', + 'collections.labels.namePlaceholder': 'napr. Berlín', + 'collections.labels.assign': 'Priradiť štítok', + 'collections.labels.assignN': 'Pridať štítky k {count} miestam', + 'collections.labels.assignedCount': 'Označených {count} miest', + 'collections.labels.empty': 'Zatiaľ žiadne štítky', + 'collections.labels.emptyHint': 'Najprv vytvorte štítok, aby ste mohli zoskupiť miesta v tomto zozname.', +}; + +export default collection; diff --git a/shared/src/i18n/sk/common.ts b/shared/src/i18n/sk/common.ts new file mode 100644 index 000000000..0bcf0d62c --- /dev/null +++ b/shared/src/i18n/sk/common.ts @@ -0,0 +1,78 @@ +import type { TranslationStrings } from '../types'; + +const common: TranslationStrings = { + 'common.save': 'Uložiť', + 'common.showMore': 'Zobraziť viac', + 'common.showLess': 'Zobraziť menej', + 'common.cancel': 'Zrušiť', + 'common.clear': 'Vymazať', + 'common.delete': 'Odstrániť', + 'common.preview': 'Náhľad', + 'common.edit': 'Upraviť', + 'common.add': 'Pridať', + 'common.loading': 'Načítava sa...', + 'common.import': 'Importovať', + 'common.select': 'Vybrať', + 'common.selectAll': 'Vybrať všetko', + 'common.deselectAll': 'Zrušiť výber', + 'common.error': 'Chyba', + 'common.success': 'Úspech', + 'common.unknownError': 'Neznáma chyba', + 'common.tooManyAttempts': 'Príliš veľa pokusov. Skúste to znova neskôr.', + 'common.back': 'Späť', + 'common.all': 'Všetko', + 'common.close': 'Zavrieť', + 'common.open': 'Otvoriť', + 'common.upload': 'Nahrať', + 'common.search': 'Hľadať', + 'common.confirm': 'Potvrdiť', + 'common.ok': 'OK', + 'common.yes': 'Áno', + 'common.no': 'Nie', + 'common.or': 'alebo', + 'common.none': 'Žiadne', + 'common.date': 'Dátum', + 'common.rename': 'Premenovať', + 'common.discardChanges': 'Zahodiť zmeny', + 'common.discard': 'Zahodiť', + 'common.name': 'Meno', + 'common.email': 'E-mail', + 'common.password': 'Heslo', + 'common.saving': 'Ukladá sa...', + 'common.justNow': 'práve teraz', + 'common.hoursAgo': 'pred {count} h', + 'common.daysAgo': 'pred {count} d', + 'common.saved': 'Uložené', + 'common.update': 'Aktualizovať', + 'common.change': 'Zmeniť', + 'common.uploading': 'Nahráva sa…', + 'common.backToPlanning': 'Späť k plánovaniu', + 'common.reset': 'Obnoviť', + 'common.expand': 'Rozbaliť', + 'common.collapse': 'Zbaliť', + 'common.copy': 'Kopírovať', + 'common.copied': 'Skopírované', + 'common.datepicker.prevMonth': 'Predchádzajúci mesiac', + 'common.datepicker.nextMonth': 'Nasledujúci mesiac', + 'common.datepicker.prevYear': 'Predchádzajúci rok', + 'common.datepicker.nextYear': 'Nasledujúci rok', + 'common.datepicker.prevYears': 'Predchádzajúce roky', + 'common.datepicker.nextYears': 'Nasledujúce roky', + 'common.datepicker.selectMonth': 'Vybrať mesiac', + 'common.datepicker.selectYear': 'Vybrať rok', + 'common.datepicker.enterManually': 'Zadať dátum ručne', + 'common.datepicker.typeDate': 'Napíšte dátum', + 'common.datepicker.dialog': 'Výber dátumu', + 'common.datepicker.clearDate': 'Vymazať dátum', + 'common.errorTitle': 'Niečo sa pokazilo', + 'common.errorBody': 'Táto časť aplikácie prestala fungovať. Vaše údaje sú v bezpečí.', + 'common.errorPanelTitle': 'Túto sekciu sa nepodarilo zobraziť', + 'common.errorPanelBody': 'Zvyšok stránky funguje ďalej.', + 'common.errorRetry': 'Skúsiť znova', + 'common.errorReload': 'Znova načítať stránku', + 'common.errorUpdateTitle': 'Je dostupná nová verzia', + 'common.errorUpdateBody': + 'TREK bol aktualizovaný, kým bola táto karta otvorená. Znova načítajte stránku pre novú verziu.', + 'common.errorPluginTitle': 'Tento plugin sa nepodarilo zobraziť', +}; +export default common; diff --git a/shared/src/i18n/sk/dashboard.ts b/shared/src/i18n/sk/dashboard.ts new file mode 100644 index 000000000..d0dcde72b --- /dev/null +++ b/shared/src/i18n/sk/dashboard.ts @@ -0,0 +1,190 @@ +import type { TranslationStrings } from '../types'; + +const dashboard: TranslationStrings = { + 'dashboard.title': 'Moje cesty', + 'dashboard.subtitle.loading': 'Načítavajú sa cesty...', + 'dashboard.subtitle.trips': '{count} ciest ({archived} archivovaných)', + 'dashboard.subtitle.empty': 'Začnite svoju prvú cestu', + 'dashboard.subtitle.activeOne': '{count} aktívna cesta', + 'dashboard.subtitle.activeMany': '{count} aktívnych ciest', + 'dashboard.subtitle.archivedSuffix': ' · {count} archivovaných', + 'dashboard.newTrip': 'Nová cesta', + 'dashboard.newTripSub': 'Naplánujte novú cestu od začiatku', + 'dashboard.subscribeAllTrips': 'Odoberať všetky cesty', + 'dashboard.subscribeAllTripsDesc': + 'Jeden kalendárový kanál pre všetky vaše aktívne cesty, automaticky udržiavaný v synchronizácii. Nezahŕňa archivované cesty a cesty, ktoré skončili pred viac ako 90 dňami.', + 'dashboard.gridView': 'Mriežka', + 'dashboard.listView': 'Zoznam', + 'dashboard.currency': 'Mena', + 'dashboard.timezone': 'Časové pásma', + 'dashboard.localTime': 'Miestny čas', + 'dashboard.timezoneCustomTitle': 'Vlastné pásmo', + 'dashboard.timezoneCustomLabelPlaceholder': 'Popis (voliteľné)', + 'dashboard.timezoneCustomTzPlaceholder': 'napr. America/New_York', + 'dashboard.timezoneCustomAdd': 'Pridať', + 'dashboard.timezoneCustomErrorEmpty': 'Zadajte identifikátor pásma', + 'dashboard.timezoneCustomErrorInvalid': 'Neplatné pásmo. Použite formát ako Europe/Berlin', + 'dashboard.timezoneCustomErrorDuplicate': 'Už bolo pridané', + 'dashboard.emptyTitle': 'Zatiaľ žiadne cesty', + 'dashboard.emptyText': 'Vytvorte svoju prvú cestu a začnite plánovať!', + 'dashboard.emptyButton': 'Vytvoriť prvú cestu', + 'dashboard.nextTrip': 'Ďalšia cesta', + 'dashboard.shared': 'Zdieľané', + 'dashboard.sharedBy': 'Zdieľa {name}', + 'dashboard.days': 'Dní', + 'dashboard.places': 'Miest', + 'dashboard.members': 'Cestovní parťáci', + 'dashboard.archive': 'Archivovať', + 'dashboard.copyTrip': 'Kopírovať', + 'dashboard.copySuffix': 'kópia', + 'dashboard.restore': 'Obnoviť', + 'dashboard.archived': 'Archivované', + 'dashboard.status.ongoing': 'Prebiehajúca', + 'dashboard.status.today': 'Dnes', + 'dashboard.status.tomorrow': 'Zajtra', + 'dashboard.status.past': 'Uplynulé', + 'dashboard.status.daysLeft': 'zostáva {count} dní', + 'dashboard.toast.loadError': 'Nepodarilo sa načítať cesty', + 'dashboard.loadErrorBanner': 'Server nebol dostupný. Vaše cesty sú v bezpečí — skúste to prosím znova.', + 'dashboard.retry': 'Skúsiť znova', + 'dashboard.toast.created': 'Cesta bola úspešne vytvorená!', + 'dashboard.toast.createError': 'Nepodarilo sa vytvoriť cestu', + 'dashboard.toast.updated': 'Cesta bola aktualizovaná!', + 'dashboard.toast.updateError': 'Nepodarilo sa aktualizovať cestu', + 'dashboard.toast.deleted': 'Cesta bola odstránená', + 'dashboard.toast.deleteError': 'Nepodarilo sa odstrániť cestu', + 'dashboard.toast.archived': 'Cesta bola archivovaná', + 'dashboard.toast.archiveError': 'Nepodarilo sa archivovať cestu', + 'dashboard.toast.restored': 'Cesta bola obnovená', + 'dashboard.toast.restoreError': 'Nepodarilo sa obnoviť cestu', + 'dashboard.toast.copied': 'Cesta bola skopírovaná!', + 'dashboard.toast.copyError': 'Nepodarilo sa skopírovať cestu', + 'dashboard.confirm.delete': 'Odstrániť cestu „{title}“? Všetky miesta a plány budú natrvalo odstránené.', + 'dashboard.confirm.copy.title': 'Skopírovať túto cestu?', + 'dashboard.confirm.copy.willCopy': 'Bude skopírované', + 'dashboard.confirm.copy.will1': 'Dni, miesta a priradenia k dňom', + 'dashboard.confirm.copy.will2': 'Ubytovania a rezervácie', + 'dashboard.confirm.copy.will3': 'Položky rozpočtu a poradie kategórií', + 'dashboard.confirm.copy.will4': 'Zoznamy vecí (neodškrtnuté)', + 'dashboard.confirm.copy.will5': 'Úlohy (nepriradené a neodškrtnuté)', + 'dashboard.confirm.copy.will6': 'Poznámky k dňu', + 'dashboard.confirm.copy.wontCopy': 'Nebude skopírované', + 'dashboard.confirm.copy.wont1': 'Spolupracovníci a priradenia členov', + 'dashboard.confirm.copy.wont2': 'Zdieľané poznámky, ankety a správy', + 'dashboard.confirm.copy.wont3': 'Súbory a fotky', + 'dashboard.confirm.copy.wont4': 'Zdieľacie tokeny', + 'dashboard.confirm.copy.confirm': 'Kopírovať cestu', + 'dashboard.editTrip': 'Upraviť cestu', + 'dashboard.createTrip': 'Vytvoriť novú cestu', + 'dashboard.tripTitle': 'Názov', + 'dashboard.tripTitlePlaceholder': 'napr. Leto v Japonsku', + 'dashboard.tripDescription': 'Popis', + 'dashboard.tripDescriptionPlaceholder': 'O čom je táto cesta?', + 'dashboard.startDate': 'Dátum začiatku', + 'dashboard.endDate': 'Dátum konca', + 'dashboard.dayCount': 'Počet dní', + 'dashboard.dayCountHint': 'Koľko dní naplánovať, keď nie sú nastavené dátumy cesty.', + 'dashboard.noDateHint': 'Dátum nezadaný – vytvorí sa 7 predvolených dní. Toto môžete kedykoľvek zmeniť.', + 'dashboard.coverImage': 'Úvodný obrázok', + 'dashboard.addCoverImage': 'Pridať úvodný obrázok (alebo presunúť sem)', + 'dashboard.addMembers': 'Spolucestujúci', + 'dashboard.addMember': 'Pridať člena', + 'dashboard.coverSaved': 'Úvodný obrázok uložený', + 'dashboard.coverUploadError': 'Nahrávanie zlyhalo', + 'dashboard.coverSaveError': 'Nepodarilo sa uložiť úvodný obrázok', + 'dashboard.coverRemoveError': 'Odstránenie zlyhalo', + 'dashboard.searchUnsplash': 'Hľadať na Unsplash', + 'dashboard.unsplashSearchPlaceholder': 'Hľadať fotky destinácie', + 'dashboard.unsplashQueryRequired': 'Zadajte hľadaný výraz', + 'dashboard.unsplashNoResults': 'Nenašli sa žiadne obrázky', + 'dashboard.coverSearchError': 'Nepodarilo sa vyhľadať na Unsplash', + 'dashboard.useUnsplashPhoto': 'Použiť fotku z Unsplash od {photographer}', + 'dashboard.titleRequired': 'Názov je povinný', + 'dashboard.endDateError': 'Dátum konca musí byť po dátume začiatku', + 'dashboard.tripTooLong': 'Cesta môže trvať najviac {days} dní', + 'dashboard.dateShiftTitle': 'Nový dátum začiatku', + 'dashboard.dateShiftIntro': 'Zmenili ste začiatok tejto cesty. Ako sa majú vaše plány prispôsobiť novým termínom?', + 'dashboard.dateShiftKeepBookings': 'Ponechať rezervácie v pôvodných termínoch', + 'dashboard.dateShiftKeepBookingsDesc': + 'Denné plány sa posunú podľa nových termínov, zatiaľ čo rezervácie a ubytovania zostanú v pôvodných termínoch, pokiaľ sú stále súčasťou cesty.', + 'dashboard.dateShiftAll': 'Posunúť všetko', + 'dashboard.dateShiftAllDesc': 'Celý itinerár sa posunie podľa nových termínov vrátane rezervácií a ubytovaní.', + 'dashboard.dateShiftHint': + 'Tip: ak chcete posunúť len časť itinerára, použite namiesto toho „Pridať deň“ v plánovači.', + 'dashboard.greeting.morning': 'Dobré ráno,', + 'dashboard.greeting.afternoon': 'Dobré popoludnie,', + 'dashboard.greeting.evening': 'Dobrý večer,', + 'dashboard.mobile.liveNow': 'Naživo', + 'dashboard.mobile.tripProgress': 'Priebeh cesty', + 'dashboard.mobile.daysLeft': 'Zostáva {count} dní', + 'dashboard.mobile.places': 'Miesta', + 'dashboard.mobile.buddies': 'Spolucestujúci', + 'dashboard.mobile.newTrip': 'Nová cesta', + 'dashboard.mobile.addCoverImage': 'Pridať úvodný obrázok', + 'dashboard.mobile.currency': 'Mena', + 'dashboard.mobile.timezone': 'Časové pásmo', + 'dashboard.mobile.upcomingTrips': 'Nadchádzajúce cesty', + 'dashboard.mobile.yourTrips': 'Vaše cesty', + 'dashboard.mobile.trips': 'cesty', + 'dashboard.mobile.starts': 'Začiatok', + 'dashboard.mobile.duration': 'Trvanie', + 'dashboard.mobile.day': 'deň', + 'dashboard.mobile.days': 'dní', + 'dashboard.mobile.ongoing': 'Prebiehajúca', + 'dashboard.mobile.startsToday': 'Začína dnes', + 'dashboard.mobile.tomorrow': 'Zajtra', + 'dashboard.mobile.inDays': 'O {count} dní', + 'dashboard.mobile.inMonths': 'O {count} mesiacov', + 'dashboard.mobile.spotlightDayOf': 'Deň {day} z {total}', + 'dashboard.mobile.spotlightDayOne': '{count} deň', + 'dashboard.mobile.spotlightDaysMany': '{count} dní', + 'dashboard.mobile.completed': 'Dokončené', + 'dashboard.mobile.currencyConverter': 'Prevodník mien', + 'dashboard.filter.planned': 'Plánované', + 'dashboard.hero.badgeLive': 'NAŽIVO', + 'dashboard.hero.badgeToday': 'ZAČÍNA DNES', + 'dashboard.hero.badgeTomorrow': 'ZAJTRA', + 'dashboard.hero.badgeNext': 'NASLEDUJE', + 'dashboard.hero.badgeRecent': 'NEDÁVNO', + 'dashboard.hero.tripDates': 'Termíny cesty', + 'dashboard.hero.noDates': 'Bez termínu', + 'dashboard.hero.travelerOne': '{count} cestovateľ', + 'dashboard.hero.travelerMany': '{count} cestovateľov', + 'dashboard.hero.destinationOne': '{count} cieľ', + 'dashboard.hero.destinationMany': '{count} cieľov', + 'dashboard.hero.dayUnitOne': 'deň', + 'dashboard.hero.dayUnitMany': 'dní', + 'dashboard.hero.dayLeft': 'Zostáva deň', + 'dashboard.hero.daysLeft': 'Zostáva dní', + 'dashboard.hero.lastDay': 'Posledný deň', + 'dashboard.hero.untilStart': 'Do začiatku', + 'dashboard.hero.startsIn': 'Začína o', + 'dashboard.atlas.countriesVisited': 'Atlas · Navštívené krajiny', + 'dashboard.atlas.ofTotal': 'z {total}', + 'dashboard.atlas.tripsTotal': 'Ciest celkom', + 'dashboard.atlas.placesMapped': '{count} miest na mape', + 'dashboard.atlas.daysTraveled': 'Dní na cestách', + 'dashboard.atlas.daysUnit': 'dní', + 'dashboard.atlas.acrossAllTrips': 'naprieč všetkými cestami', + 'dashboard.atlas.distanceFlown': 'Naletená vzdialenosť', + 'dashboard.atlas.kmUnit': 'km', + 'dashboard.atlas.aroundEquator': '≈ {count}× okolo rovníka', + 'dashboard.card.idea': 'Nápad', + 'dashboard.card.buddyOne': 'Parťák', + 'dashboard.fx.from': 'Z', + 'dashboard.fx.to': 'Na', + 'dashboard.fx.unavailable': 'Kurz nie je dostupný', + 'dashboard.tz.searchPlaceholder': 'Hľadať časové pásmo…', + 'dashboard.tz.empty': 'Zatiaľ žiadne ďalšie časové pásma — pridajte ho pomocou +', + 'dashboard.upcoming.title': 'Nadchádzajúce rezervácie', + 'dashboard.upcoming.empty': 'Zatiaľ nič rezervované.', + 'dashboard.aria.toggleView': 'Prepnúť zobrazenie', + 'dashboard.aria.filter': 'Filter', + 'dashboard.aria.duplicate': 'Duplikovať', + 'dashboard.aria.refreshRates': 'Obnoviť kurzy', + 'dashboard.aria.swapCurrencies': 'Prehodiť meny', + 'dashboard.aria.addTimezone': 'Pridať časové pásmo', + 'dashboard.aria.removeTimezone': 'Odstrániť {city}', + 'dashboard.dayCountRequired': 'Počet dní je povinný', +}; +export default dashboard; diff --git a/shared/src/i18n/sk/dawarich.ts b/shared/src/i18n/sk/dawarich.ts new file mode 100644 index 000000000..f1fa4ed13 --- /dev/null +++ b/shared/src/i18n/sk/dawarich.ts @@ -0,0 +1,182 @@ +import type { TranslationStrings } from '../types'; + +const dawarich: TranslationStrings = { + // ── Connection ───────────────────────────────────────────────────────────── + 'dawarich.title': 'Dawarich', + 'dawarich.intro': + 'Pripojte svoju vlastnú inštanciu Dawarich a uvidíte, kde ste skutočne boli. TREK ju prečíta a navrhne záznamy do denníka, miesta a krajiny — nič sa nepridá, kým to nepotvrdíte, a do Dawarichu sa nič nezapisuje.', + 'dawarich.url': 'Adresa inštancie', + 'dawarich.apiKey': 'API kľúč', + 'dawarich.apiKeyPlaceholder': 'Vložte svoj API kľúč Dawarich', + 'dawarich.apiKeyHint': 'Nájdete ho v Dawarichu pod Účet → API kľúč. Ukladá sa zašifrovane a znova sa nezobrazí.', + 'dawarich.allowInsecureTls': 'Povoliť vlastnoručne podpísaný certifikát', + 'dawarich.allowInsecureTlsHint': + 'Potrebné len vtedy, keď vaša inštancia používa certifikát, ktorému váš server nedôveruje.', + 'dawarich.syncEnabled': 'Automaticky hľadať nové pobyty', + 'dawarich.syncEnabledHint': 'Keď je vypnuté, TREK číta Dawarich len na vyžiadanie.', + 'dawarich.test.button': 'Otestovať pripojenie', + 'dawarich.test.success': 'Pripojené. Za posledných 30 dní nájdených {count} pobytov.', + 'dawarich.test.failed': 'Dawarich sa nepodarilo kontaktovať.', + 'dawarich.syncNow': 'Skontrolovať teraz', + 'dawarich.connected': 'Pripojené', + 'dawarich.notConnected': 'Nepripojené', + 'dawarich.disconnect': 'Odpojiť', + 'dawarich.lastSync': 'Naposledy skontrolované {when}', + 'dawarich.neverSynced': 'Zatiaľ neskontrolované', + 'dawarich.syncPartial': 'niektoré cesty sa nepodarilo načítať', + 'dawarich.serverVersion': 'Dawarich {version}', + + 'dawarich.toast.saved': 'Pripojenie k Dawarichu uložené', + 'dawarich.toast.saveError': 'Pripojenie sa nepodarilo uložiť', + 'dawarich.toast.disconnected': 'Dawarich odpojený', + 'dawarich.toast.synced': 'Nájdených {count} nových pobytov', + 'dawarich.toast.syncError': 'Dawarich sa nepodarilo načítať', + 'dawarich.toast.syncRunning': 'Kontrola už prebieha', + 'dawarich.toast.acceptError': 'Toto sa nepodarilo pridať', + 'dawarich.toast.updateError': 'Tento návrh sa nepodarilo aktualizovať', + 'dawarich.toast.accepted.place': 'Pridané do cesty', + 'dawarich.toast.accepted.journal': 'Pridané do denníka', + 'dawarich.toast.accepted.bucket_list': 'Odškrtnuté zo zoznamu prianí', + + // ── What the connected instance can do ───────────────────────────────────── + 'dawarich.capability.visits': 'pobyty', + 'dawarich.capability.track': 'zaznamenaná trasa', + 'dawarich.capability.locations': 'porovnanie so zoznamom prianí', + 'dawarich.capability.visitedCities': 'krajiny a mestá', + 'dawarich.capability.missing': 'Táto verzia Dawarichu neponúka: {features}.', + + // ── Failure reasons, as sentences the reader can act on ──────────────────── + 'dawarich.error.unreachable': 'TREK sa na túto adresu nedostal.', + 'dawarich.error.unauthorized': 'Dawarich odmietol API kľúč.', + 'dawarich.error.forbidden': 'Tento API kľúč nemá oprávnenie toto čítať.', + 'dawarich.error.not_found': 'Táto verzia Dawarichu tento koncový bod nemá.', + 'dawarich.error.rate_limited': 'Dawarich požiadal TREK o spomalenie. Skúste to prosím o chvíľu znova.', + 'dawarich.error.server_error': 'Dawarich odpovedal chybou.', + 'dawarich.error.invalid_response': 'Táto adresa odpovedala niečím, čo nie je Dawarich.', + 'dawarich.error.too_large': 'Dawarich poslal viac dát, než koľko TREK prečíta naraz.', + 'dawarich.error.not_connected': 'Zatiaľ nie je pripojená žiadna inštancia Dawarich.', + 'dawarich.error.addon_disabled': 'Doplnok Dawarich je v tejto inštancii vypnutý.', + 'dawarich.error.offline': 'To vyžaduje pripojenie — TREK je práve offline.', + 'dawarich.error.invalid_url': 'TREK túto adresu použiť nemôže.', + 'dawarich.warning.private_ip': + 'Táto adresa mieri na privátnu IP ({ip}). Overte, že to tak má byť — server k nej možno potrebuje ALLOW_INTERNAL_NETWORK=true.', + 'dawarich.error.unknown': 'Pri komunikácii s Dawarichom sa niečo pokazilo.', + + // ── The recorded route on the map ────────────────────────────────────────── + 'dawarich.trail.show': 'Zobraziť zaznamenanú trasu', + 'dawarich.trail.hide': 'Skryť zaznamenanú trasu', + 'dawarich.trail.loading': 'Načítava sa zaznamenaná trasa…', + 'dawarich.trail.empty': 'V týchto dňoch sa nič nezaznamenalo', + 'dawarich.trail.offline': 'Zaznamenaná trasa vyžaduje pripojenie', + 'dawarich.trail.unavailable': 'Zaznamenanú trasu sa nepodarilo načítať', + + // ── Suggestions ──────────────────────────────────────────────────────────── + 'dawarich.duration.minutes': '{minutes} min', + 'dawarich.duration.hours': '{hours} h', + 'dawarich.duration.hoursMinutes': '{hours} h {minutes} min', + 'dawarich.checkedAgo': 'skontrolované {ago}', + + 'dawarich.badge.lowConfidence': 'Neisté', + 'dawarich.badge.sourceChanged': 'Zmenené v Dawarichu', + 'dawarich.badge.sourceMissing': 'V Dawarichu už nie je', + + 'dawarich.suggestions.title': 'Z Dawarichu', + 'dawarich.suggestions.pending': '{count} čaká na vás', + 'dawarich.suggestions.loading': 'Načítava sa Dawarich…', + 'dawarich.suggestions.notConnected': 'Pripojte Dawarich v Nastaveniach a uvidíte tu svoje pobyty.', + 'dawarich.suggestions.unavailable': 'Dawarich sa nepodarilo načítať.', + 'dawarich.suggestions.allHandled': 'Všetko, čo je tu zaznamenané, už je vybavené.', + 'dawarich.suggestions.asJournal': 'Napísať záznam do denníka', + 'dawarich.suggestions.asPlace': 'Pridať ako miesto', + 'dawarich.suggestions.dismiss': 'Tu som nebol', + 'dawarich.suggestions.dismissed': 'Zamietnuté', + 'dawarich.suggestions.restore': 'Vrátiť späť', + 'dawarich.suggestions.showHandled': 'Zobraziť {count} už vybavených', + 'dawarich.suggestions.hideHandled': 'Skryť už vybavené', + 'dawarich.suggestions.matchesWish': 'Na vašom zozname prianí: {name}', + 'dawarich.suggestions.acceptedAs.place': 'Pridané ako miesto', + 'dawarich.suggestions.acceptedAs.journal': 'V denníku', + 'dawarich.suggestions.acceptedAs.bucket_list': 'Prianie odškrtnuté', + 'dawarich.suggestions.sourceChanged': + 'Tento pobyt sa od vášho použitia v Dawarichu zmenil. To, čo ste napísali v TREKu, zostáva bez zmeny.', + 'dawarich.suggestions.sourceMissing': + 'Tento pobyt už v Dawarichu neexistuje. To, čo ste napísali v TREKu, zostáva bez zmeny.', + 'dawarich.sourceStatus.suggested': 'Rozpoznané, nepotvrdené', + 'dawarich.confidence.high': 'Isté rozpoznanie', + 'dawarich.confidence.medium': 'Pomerne isté rozpoznanie', + 'dawarich.confidence.low': 'Neisté rozpoznanie', + + // ── The review step ──────────────────────────────────────────────────────── + 'dawarich.accept.title.place': 'Pridať tento pobyt ako miesto', + 'dawarich.accept.title.journal': 'Napísať záznam do denníka', + 'dawarich.accept.title.bucket_list': 'Odškrtnúť prianie', + 'dawarich.accept.confirm.place': 'Pridať miesto', + 'dawarich.accept.confirm.journal': 'Pridať záznam', + 'dawarich.accept.confirm.bucket_list': 'Odškrtnúť', + 'dawarich.accept.recorded': 'Zaznamenané od {from} do {to}', + 'dawarich.accept.duration': '{minutes} min', + 'dawarich.accept.name': 'Názov', + 'dawarich.accept.date': 'Dátum', + 'dawarich.accept.from': 'Príchod', + 'dawarich.accept.to': 'Odchod', + 'dawarich.accept.trip': 'Cesta', + 'dawarich.accept.thisTrip': 'Táto cesta', + 'dawarich.accept.pickTrip': 'Vyberte cestu', + 'dawarich.accept.day': 'Deň', + 'dawarich.accept.noDay': 'Zatiaľ bez dňa', + 'dawarich.accept.journal': 'Denník', + 'dawarich.accept.pickJournal': 'Vyberte denník', + 'dawarich.accept.notes': 'Poznámky', + 'dawarich.accept.story': 'Váš príbeh', + 'dawarich.accept.storyPlaceholder': 'Čo sa tu stalo?', + 'dawarich.accept.photosHint': 'Fotky pridáte k záznamu až po jeho vytvorení.', + + // ── A place that came out of a recording ────────────────────────────────── + 'dawarich.place.fromDawarich': 'Pridané z vašich záznamov Dawarich', + + // ── Wishlist ─────────────────────────────────────────────────────────────── + 'dawarich.bucket.title': 'Porovnať zoznam prianí s Dawarichom', + 'dawarich.bucket.description': + 'Prehľadá vaše záznamy a hľadá miesta, kam ste sa chceli dostať. Návšteva vyžaduje blízkosť aj strávený čas — prejsť okolo sa nepočíta.', + 'dawarich.bucket.scan': 'Skontrolovať zoznam prianí', + 'dawarich.bucket.scanning': 'Kontroluje sa…', + 'dawarich.bucket.noMatches': 'Vo vašich záznamoch sa neobjavilo nič z vášho zoznamu prianí.', + 'dawarich.bucket.alreadyVisited': 'Už odškrtnuté', + 'dawarich.bucket.confirm': 'Odškrtnúť {count}', + 'dawarich.bucket.confirmed': 'Odškrtnutých prianí: {count}', + 'dawarich.bucket.skipped': '{count} položiek nemá súradnice a nedali sa skontrolovať.', + 'dawarich.bucket.truncated': 'Skontrolované boli len prvé položky. Zvyšok skontrolujete ďalším spustením.', + 'dawarich.bucket.visitedFrom': 'Odškrtnuté podľa vašich záznamov v Dawarichu', + 'dawarich.bucket.clearVisit': 'Vrátiť späť', + + // ── Atlas ────────────────────────────────────────────────────────────────── + 'dawarich.atlas.title': 'Krajiny z Dawarichu', + 'dawarich.atlas.description': + 'Krajiny, v ktorých ste podľa svojich záznamov boli. Potvrďte tie, ktoré chcete mať v Atlase — nič sa nepridá samo a čo ste označili ručne, zostáva vaše.', + 'dawarich.atlas.load': 'Vyhľadať krajiny', + 'dawarich.atlas.loading': 'Načítavajú sa vaše záznamy…', + 'dawarich.atlas.empty': 'Vaše záznamy neukazujú žiadne krajiny, ktoré by TREK ešte nemal.', + 'dawarich.atlas.cities': '{count} miest', + 'dawarich.atlas.citiesOne': '1 mesto', + 'dawarich.atlas.accept': 'Pridať {count} krajín', + 'dawarich.atlas.accepted': '{count} krajín pridaných', + 'dawarich.atlas.unresolved': 'TREK nedokázal tieto priradiť ku krajine: {names}.', + 'dawarich.atlas.source': 'Z Dawarichu', + 'dawarich.atlas.range': 'Prehliadnuté od {from} do {to}', + + 'dawarich.atlas.trigger': 'Priania a krajiny z vašich záznamov', + 'dawarich.atlas.dialogSubtitle': 'Čo vaše záznamy hovoria o vašom Atlase', + 'dawarich.atlas.tab.wishes': 'Zoznam prianí', + 'dawarich.atlas.tab.countries': 'Krajiny', + 'dawarich.atlas.window': 'Prehľadaných bolo posledných 12 mesiacov.', + 'dawarich.selected': 'Vybraných: {count}', + 'dawarich.again': 'Skontrolovať znova', + 'dawarich.bucket.metersAway': '{meters} m ďaleko', + 'dawarich.bucket.kilometersAway': '{km} km ďaleko', + 'dawarich.bucket.rule': 'Prianie sa počíta ako splnené do {meters} m a po {minutes} minútach na mieste.', + + 'dawarich.journey.dayStays.one': '1 pobyt z Dawarichu', + 'dawarich.journey.dayStays.other': '{count} pobytov z Dawarichu', +}; + +export default dawarich; diff --git a/shared/src/i18n/sk/day.ts b/shared/src/i18n/sk/day.ts new file mode 100644 index 000000000..4b692b7fe --- /dev/null +++ b/shared/src/i18n/sk/day.ts @@ -0,0 +1,26 @@ +import type { TranslationStrings } from '../types'; + +const day: TranslationStrings = { + 'day.precipProb': 'Pravdepodobnosť zrážok', + 'day.precipitation': 'Zrážky', + 'day.wind': 'Vietor', + 'day.sunrise': 'Východ slnka', + 'day.sunset': 'Západ slnka', + 'day.hourlyForecast': 'Hodinová predpoveď', + 'day.climateHint': 'Historické priemery — reálna predpoveď je k dispozícii do 16 dní od tohto dátumu.', + 'day.noWeather': 'Nie sú k dispozícii žiadne údaje o počasí. Pridajte miesto so súradnicami.', + 'day.weatherFor': 'Predpoveď pre {name}', + 'day.overview': 'Denný prehľad', + 'day.accommodation': 'Ubytovanie', + 'day.addAccommodation': 'Pridať ubytovanie', + 'day.hotelDayRange': 'Použiť na dni', + 'day.noPlacesForHotel': 'Najprv pridajte miesta k svojej ceste', + 'day.allDays': 'Všetko', + 'day.checkIn': 'Check-in', + 'day.checkInUntil': 'Do', + 'day.checkOut': 'Check-out', + 'day.confirmation': 'Potvrdenie', + 'day.editAccommodation': 'Upraviť ubytovanie', + 'day.reservations': 'Rezervácie', +}; +export default day; diff --git a/shared/src/i18n/sk/dayplan.ts b/shared/src/i18n/sk/dayplan.ts new file mode 100644 index 000000000..311639c96 --- /dev/null +++ b/shared/src/i18n/sk/dayplan.ts @@ -0,0 +1,93 @@ +import type { TranslationStrings } from '../types'; + +const dayplan: TranslationStrings = { + 'dayplan.icsTooltip': 'Exportovať kalendár (ICS)', + 'dayplan.emptyDay': 'Na tento deň nie sú naplánované žiadne miesta', + 'dayplan.addPlaceHere': 'Pridať miesto k tomuto dňu', + 'dayplan.cannotReorderTransport': 'Rezervácie s pevným časom nie je možné preusporiadať', + 'dayplan.confirmRemoveTimeTitle': 'Odobrať čas?', + 'dayplan.confirmRemoveTimeBody': + 'Toto miesto má pevný čas ({time}). Presunutím sa čas odoberie a povolí sa voľné zoraďovanie.', + 'dayplan.confirmRemoveTimeAction': 'Odobrať čas a presunúť', + 'dayplan.confirmDeleteNoteTitle': 'Odstrániť poznámku?', + 'dayplan.confirmDeleteNoteBody': 'Táto poznámka bude natrvalo odstránená.', + 'dayplan.cannotDropOnTimed': 'Položky nie je možné umiestniť medzi záznamy s pevným časom', + 'dayplan.cannotBreakChronology': 'Toto by narušilo chronologické poradie naplánovaných položiek a rezervácií', + 'dayplan.addNote': 'Pridať poznámku', + 'dayplan.expandAll': 'Rozbaliť všetky dni', + 'dayplan.collapseAll': 'Zbaliť všetky dni', + 'dayplan.editNote': 'Upraviť poznámku', + 'dayplan.noteAdd': 'Pridať poznámku', + 'dayplan.noteEdit': 'Upraviť poznámku', + 'dayplan.noteDelete': 'Odstrániť poznámku', + 'dayplan.noteTitle': 'Poznámka', + 'dayplan.noteSubtitle': 'Poznámka ku dňu', + 'dayplan.noteIcon': 'Ikona', + 'notes.appearance': 'Vzhľad', + 'notes.preview': 'Náhľad', + 'notes.bodyPlaceholder': 'Podrobnosti, odkazy, pripomienky…', + 'notes.markdownHint': 'Podporuje Markdown', + 'notes.format.toolbar': 'Formátovanie', + 'notes.format.bold': 'Tučné', + 'notes.format.italic': 'Kurzíva', + 'notes.format.strike': 'Prečiarknuté', + 'notes.format.code': 'Kód', + 'notes.format.link': 'Odkaz', + 'notes.format.list': 'Zoznam s odrážkami', + 'notes.format.orderedList': 'Číslovaný zoznam', + 'notes.format.quote': 'Citácia', + 'notes.color.label': 'Farba', + 'notes.color.none': 'Bez farby', + 'notes.color.red': 'Červená', + 'notes.color.orange': 'Oranžová', + 'notes.color.amber': 'Jantárová', + 'notes.color.green': 'Zelená', + 'notes.color.cyan': 'Azúrová', + 'notes.color.blue': 'Modrá', + 'notes.color.purple': 'Fialová', + 'dayplan.totalCost': 'Celkové náklady', + 'dayplan.days': 'Dni', + 'dayplan.dayN': 'Deň {n}', + 'dayplan.calculating': 'Počíta sa...', + 'dayplan.route': 'Trasa', + 'dayplan.optimize': 'Optimalizovať', + 'dayplan.transportMode.change': 'Zmeniť spôsob dopravy', + 'dayplan.transportMode.useDefault': 'Použiť predvolené pre deň', + 'dayplan.optimized': 'Trasa optimalizovaná', + 'dayplan.routeError': 'Nepodarilo sa vypočítať trasu', + 'dayplan.toast.needTwoPlaces': 'Na optimalizáciu trasy sú potrebné aspoň dve miesta', + 'dayplan.toast.routeOptimized': 'Trasa bola optimalizovaná', + 'dayplan.toast.routeOptimizedFromHotel': 'Trasa bola optimalizovaná od vášho ubytovania', + 'dayplan.toast.noGeoPlaces': 'Nenašli sa žiadne miesta so súradnicami na výpočet trasy', + 'dayplan.confirmed': 'Potvrdené', + 'dayplan.pendingRes': 'Čaká na potvrdenie', + 'dayplan.export': 'Exportovať', + 'dayplan.exportIntro': 'Vezmite si plán so sebou: ako dokument, do kalendára alebo do GPS.', + 'dayplan.exportDocument': 'Dokument', + 'dayplan.exportCalendar': 'Kalendár', + 'dayplan.exportMaps': 'Mapy a GPS', + 'dayplan.pdf': 'PDF', + 'dayplan.pdfTooltip': 'Exportovať denný plán do PDF', + 'dayplan.gpxTooltip': 'Exportovať ako GPX pre offline mapy a GPS zariadenia', + 'dayplan.gpxAll': 'Celá cesta', + 'dayplan.gpxPlaces': 'Len miesta', + 'dayplan.gpxDays': 'Dni ako trasy', + 'dayplan.gpxEmpty': 'Zatiaľ nie je čo exportovať', + 'dayplan.gpxFailed': 'Export GPX zlyhal', + 'dayplan.pdfError': 'Export do PDF sa nepodaril', + 'dayplan.mobile.addPlace': 'Pridať miesto', + 'dayplan.mobile.searchPlaces': 'Hľadať miesta...', + 'dayplan.mobile.allAssigned': 'Všetky miesta priradené', + 'dayplan.mobile.noMatch': 'Žiadna zhoda', + 'dayplan.mobile.createNew': 'Vytvoriť nové miesto', + 'dayplan.reorderDays': 'Zmeniť poradie dní', + 'dayplan.reorderTitle': 'Zmeniť poradie dní', + 'dayplan.reorderHint': 'Miesta, poznámky a rezervácie daného dňa sa presunú spolu s ním.', + 'dayplan.addDay': 'Pridať deň', + 'dayplan.moveUp': 'Posunúť nahor', + 'dayplan.moveDown': 'Posunúť nadol', + 'dayplan.reorderUndo': 'Zmeniť poradie dní', + 'dayplan.reorderError': 'Nepodarilo sa zmeniť poradie dní', + 'dayplan.addDayError': 'Nepodarilo sa pridať deň', +}; +export default dayplan; diff --git a/shared/src/i18n/sk/docsync.ts b/shared/src/i18n/sk/docsync.ts new file mode 100644 index 000000000..84e6bebc1 --- /dev/null +++ b/shared/src/i18n/sk/docsync.ts @@ -0,0 +1,182 @@ +import type { TranslationStrings } from '../types'; + +const docsync: TranslationStrings = { + 'docsync.title': 'Synchronizácia dokumentov', + 'docsync.noProviders': 'Nie sú dostupní žiadni poskytovatelia dokumentov', + 'docsync.noProvidersHint': 'Správca inštancie ich zapína v časti Administrácia, Doplnky, Dokumenty.', + 'docsync.addProvider': 'Pripojiť poskytovateľa', + 'docsync.test': 'Otestovať pripojenie', + 'docsync.connect.optional': 'Voliteľné', + 'docsync.connected': 'Pripojené', + 'docsync.chooseFolder': 'Vybrať priečinok', + 'docsync.noFolders': 'Na tejto inštancii sa zatiaľ nič nenašlo.', + 'docsync.newFolderPlaceholder': 'Názov nového priečinka', + 'docsync.syncNow': 'Synchronizovať teraz', + 'docsync.unlink': 'Odpojiť', + 'docsync.confirmUnlink': 'Dokumenty zostanú v TREKu aj v úložisku. Zruší sa len ich prepojenie.', + 'docsync.syncEnabled': 'Synchronizovať automaticky', + 'docsync.deletePolicy': 'Keď sa dokument odstráni', + 'docsync.deleteUnlink': 'Zachovať obe kópie', + 'docsync.deleteTrash': 'Presunúť do koša', + 'docsync.conflictPolicy': 'Keď sa zmenili obe strany', + 'docsync.onConflict.manual': 'Opýtať sa', + 'docsync.onConflict.trek_wins': 'Ponechať kópiu z TREKu', + 'docsync.onConflict.provider_wins': 'Ponechať kópiu z úložiska', + 'docsync.webhookHint': + 'Vložte túto URL k svojmu poskytovateľovi, aby zmeny prichádzali okamžite. Bez toho TREK kontroluje v pravidelných intervaloch.', + + // Polia formulára pripojenia. Kľúče zodpovedajú stĺpcu `label` v tabuľke + // document_provider_fields, ktorá ukladá príponu kľúča, nie text. + 'docsync.providerUrl': 'Adresa', + 'docsync.providerApiToken': 'API token', + 'docsync.providerApiKey': 'API kľúč', + 'docsync.providerAppPassword': 'Heslo aplikácie', + 'docsync.providerAppToken': 'Token aplikácie', + 'docsync.providerUsername': 'Používateľské meno', + 'docsync.providerPassword': 'Heslo', + 'docsync.providerOrganization': 'ID organizácie', + 'docsync.providerBasePath': 'Základný priečinok', + 'docsync.providerOTP': 'Dvojfaktorový kód', + 'docsync.allowInsecureTls': 'Prijať vlastnoručne podpísaný certifikát', + + 'docsync.hintPaperlessToken': 'Vytvorte ho v Paperless pod My Profile. Nesie plné práva daného účtu.', + 'docsync.hintPapraKey': + 'Vytvorte ho v Papra pod API keys. Kľúče Papra vždy dosiahnu na každú organizáciu, do ktorej patríte.', + 'docsync.hintPapraOrg': 'ID v tvare org_… z adresného riadka aplikácie Papra.', + 'docsync.hintNextcloudLogin': 'Vaše prihlasovacie meno v Nextcloude, nie e-mailová adresa.', + 'docsync.hintNextcloudAppPassword': 'Nastavenia, Zabezpečenie, Vytvoriť nové heslo aplikácie. Nikdy heslo k účtu.', + 'docsync.hintOpenCloudToken': 'Vytvára sa v OpenCloude pod tokenmi aplikácií.', + 'docsync.hintBasePath': 'Kde TREK hľadá priečinky ciest. Predvolene /TREK.', + 'docsync.hintSynologyUrl': 'Uveďte aj port, napríklad https://nas.example.com:5001', + 'docsync.hintSynologyUser': 'Najlepšie vyhradený účet DSM s prístupom len k tomuto zdieľanému priečinku.', + 'docsync.hintSynologyOtp': 'Potrebné len raz, ak účet používa dvojfaktorové overenie.', + + 'docsync.linkState.never': 'Zatiaľ nesynchronizované', + 'docsync.linkState.ok': 'Aktuálne', + 'docsync.linkState.partial': 'Čiastočne synchronizované', + 'docsync.linkState.failed': 'Zlyhalo', + 'docsync.linkState.needs_reauth': 'Prihláste sa znova', + 'docsync.linkState.scope_lost': 'Priečinok zmizol', + 'docsync.linkState.orphaned': 'Vlastník opustil cestu', + + 'docsync.state.pending': 'Čaká', + 'docsync.state.synced': 'Synchronizované', + 'docsync.state.conflict': 'Konflikt', + 'docsync.state.rejected_type': 'Nepovolený typ', + 'docsync.state.too_large': 'Príliš veľké', + 'docsync.state.error': 'Chyba', + 'docsync.state.remote_missing': 'Chýba u poskytovateľa', + 'docsync.state.local_deleted': 'Odstránené v TREKu', + 'docsync.state.scope_drift': 'Presunuté mimo priečinka', + + 'docsync.conflict.resolve': 'Vyriešiť {count}', + + 'docsync.conflict.title': 'Zmenili sa obe kópie', + 'docsync.conflict.keepTrek': 'Ponechať verziu z TREKu', + 'docsync.conflict.keepProvider': 'Ponechať verziu poskytovateľa', + 'docsync.conflict.keepBoth': 'Ponechať obe', + + // Dôvody zlyhania sa prenášajú ako kódy, nikdy ako text od poskytovateľa: ten + // odpovedá anglicky alebo HTML prihlasovacou stránkou proxy a ani jedno sem nepatrí. + 'docsync.error.unreachable': 'Poskytovateľa sa nepodarilo kontaktovať.', + 'docsync.error.tls_untrusted': + 'Certifikát bol odmietnutý. Ak tejto inštancii dôverujete, povoľte vlastnoručne podpísané certifikáty.', + 'docsync.error.unauthorized': 'Prihlasovacie údaje boli odmietnuté.', + 'docsync.error.forbidden': 'Tento účet na to nemá oprávnenie.', + 'docsync.error.not_found': 'U poskytovateľa sa nenašlo.', + 'docsync.error.scope_missing': 'Pripojený priečinok už neexistuje.', + 'docsync.error.rate_limited': 'Poskytovateľ obmedzuje počet požiadaviek. TREK to skúsi znova neskôr.', + 'docsync.error.too_large': 'Súbor je väčší, než poskytovateľ prijíma.', + 'docsync.error.unsupported_type': 'Poskytovateľ tento typ súboru neprijíma.', + 'docsync.error.quota_exceeded': 'Poskytovateľovi došlo miesto.', + 'docsync.error.conflict': 'Dokument sa zmenil na oboch stranách.', + 'docsync.error.checksum_mismatch': 'Prenos nedorazil neporušený.', + 'docsync.error.provider_error': 'Poskytovateľ ohlásil chybu.', + 'docsync.error.timeout': 'Poskytovateľ odpovedal príliš dlho.', + 'docsync.error.ssrf_blocked': 'Táto adresa nie je povolená.', + 'docsync.error.mass_delete_guard': + 'Naraz zmizla väčšina dokumentov, preto sa nič nezmenilo. Skontrolujte, či je priečinok stále pripojený.', + 'docsync.error.unknown': 'Niečo sa pokazilo.', + + // ── Dialóg ───────────────────────────────────────────────────────────────── + 'docsync.sidebar.connected': 'Táto cesta', + 'docsync.addAnother': 'Pridať ďalší', + 'docsync.syncing': 'Synchronizuje sa', + 'docsync.card.pickFolder': 'Pripojené, vyberte priečinok', + + 'docsync.empty.title': 'Zatiaľ nič nepripojené', + 'docsync.empty.hintOwner': + 'Vyberte úložisko vľavo. TREK si vždy ponecháva vlastnú kópiu všetkého, takže sa nič nestratí, ani keď úložisko zmizne.', + 'docsync.empty.hintMember': 'Nastavuje to vlastník cesty. Dokumenty tak či tak zostávajú v TREKu.', + + // Ako každý produkt veci ukladá. Zobrazuje sa ešte pred pripojením, pretože + // práve na to sa spýta ďalšia obrazovka. + 'docsync.model.paperless': 'Ukladá podľa štítkov', + 'docsync.model.papra': 'Ukladá podľa štítkov v rámci organizácie', + 'docsync.model.nextcloud': 'Ukladá do priečinka', + 'docsync.model.opencloud': 'Ukladá do priestoru', + 'docsync.model.synologydrive': 'Ukladá do priečinka na NAS', + + // ── Pruh toku ────────────────────────────────────────────────────────────── + 'docsync.flow.trek': 'TREK', + 'docsync.flow.toProvider': 'Do úložiska', + 'docsync.flow.toTrek': 'Z úložiska', + 'docsync.flow.documents': 'dokumentov', + 'docsync.flow.summary.both': 'Dokumenty putujú oboma smermi.', + 'docsync.flow.summary.pull': 'Dokumenty len prichádzajú.', + 'docsync.flow.summary.push': 'Dokumenty len odchádzajú.', + 'docsync.flow.summaryEditable.both': 'Oboma smermi. Klepnutím na pruh jeden smer vypnete.', + 'docsync.flow.summaryEditable.pull': 'Len dnu. Klepnutím na druhý pruh zapnete aj odosielanie.', + 'docsync.flow.summaryEditable.push': 'Len von. Klepnutím na druhý pruh zapnete aj príjem.', + + // ── Jedno prepojenie ─────────────────────────────────────────────────────── + 'docsync.binding.settings': 'Nastavenia', + 'docsync.binding.folder': 'Priečinok', + 'docsync.binding.lastRun': 'Posledný beh', + 'docsync.binding.autoOff': 'Pozastavené', + 'docsync.binding.neverRun': 'zatiaľ neprebehlo', + 'docsync.binding.deleteHint': 'Čo sa stane s kópiou na druhej strane.', + 'docsync.binding.conflictHint': 'Ktorá kópia zostane, keď bol dokument upravený na oboch miestach.', + 'docsync.binding.autoHint': 'Kontrolovať zmeny na pozadí.', + 'docsync.binding.webhookTitle': 'Okamžité aktualizácie', + 'docsync.binding.copy': 'Kopírovať', + 'docsync.binding.copied': 'Skopírované', + + // ── Pripájanie ───────────────────────────────────────────────────────────── + 'docsync.connect.submit': 'Pripojiť', + 'docsync.connect.testing': 'Nadväzuje sa spojenie', + 'docsync.connect.okAs': 'Spojenie nadviazané, prihlásené ako {account}', + 'docsync.connect.insecureHint': 'Pre inštanciu vo vlastnej sieti s vlastnoručne podpísaným certifikátom.', + 'docsync.connect.about.paperless': 'TREK ukladá túto cestu pod vlastným štítkom a zvyšku vášho archívu sa nedotkne.', + 'docsync.connect.about.papra': + 'Vyberte organizáciu, do ktorej cesta patrí. TREK ju v nej uloží pod vlastným štítkom.', + 'docsync.connect.about.nextcloud': + 'Použite heslo aplikácie, nie heslo k účtu: funguje aj s dvojfaktorovým overením a dá sa zrušiť samostatne.', + 'docsync.connect.about.opencloud': 'TREK dostane pre túto cestu vlastný priestor, oddelený od všetkého ostatného.', + 'docsync.connect.about.synologydrive': + 'Najlepšie účet DSM, ktorý dosiahne len na zdieľaný priečinok určený pre túto cestu.', + + // ── Výber umiestnenia ────────────────────────────────────────────────────── + 'docsync.scope.title': 'Kam v {provider} túto cestu uložiť?', + 'docsync.scope.intro': 'Synchronizuje sa len to, čo je vnútri. Zvyšok vášho úložiska zostane mimo TREK.', + 'docsync.scope.createTitle': 'Vytvoriť nové', + 'docsync.scope.createAction': 'Vytvoriť', + 'docsync.scope.pickTitle': 'Alebo použite existujúce', + 'docsync.scope.search': 'Hľadať', + 'docsync.scope.noMatch': 'Nič nezodpovedá.', + + // ── Čo musí rozhodnúť človek ─────────────────────────────────────────────── + 'docsync.issues.title': 'Vyžaduje pozornosť', + 'docsync.issues.conflict': 'Zmenené na oboch stranách. Vyberte, ktorú verziu ponechať.', + 'docsync.issues.remote_missing': 'V úložisku už nie je. Kópia v TREKu tu zostáva.', + 'docsync.issues.rejected_type': 'Tento typ súboru tu nie je povolený.', + 'docsync.issues.too_large': 'Väčšie než limit.', + 'docsync.issues.error': 'Prenos neprebehol.', + + 'docsync.error.unknown_provider': 'Tento poskytovateľ nie je na tejto inštancii dostupný.', + 'docsync.error.provider_disabled': + 'Pozastavené: správca tohto poskytovateľa vypol. Synchronizácia bude pokračovať, hneď ako ho znova zapne.', + 'docsync.binding.reconnect': 'Znova pripojiť', +}; + +export default docsync; diff --git a/shared/src/i18n/sk/externalNotifications.ts b/shared/src/i18n/sk/externalNotifications.ts new file mode 100644 index 000000000..c9c949a40 --- /dev/null +++ b/shared/src/i18n/sk/externalNotifications.ts @@ -0,0 +1,77 @@ +import type { NotificationLocale } from '../externalNotifications/types'; + +const sk: NotificationLocale = { + email: { + footer: 'Toto ste dostali, pretože máte v TREK povolené upozornenia.', + manage: 'Spravovať predvoľby v Nastaveniach', + madeWith: 'Made with', + openTrek: 'Otvoriť TREK', + }, + events: { + trip_invite: (p) => ({ + title: `Pozvánka na cestu: "${p.trip}"`, + body: `${p.actor} pozval(a) ${p.invitee || 'člena'} na cestu "${p.trip}".`, + }), + booking_change: (p) => ({ + title: `Nová rezervácia: ${p.booking}`, + body: `${p.actor} pridal(a) novú rezerváciu ${p.type} "${p.booking}" do "${p.trip}".`, + }), + trip_reminder: (p) => ({ + title: `Pripomienka cesty: ${p.trip}`, + body: `Vaša cesta "${p.trip}" sa čoskoro blíži!`, + }), + todo_due: (p) => ({ + title: `Termín úlohy: ${p.todo}`, + body: `"${p.todo}" v "${p.trip}" má termín ${p.due}.`, + }), + vacay_invite: (p) => ({ + title: 'Pozvánka Vacay Fusion', + body: `${p.actor} vás pozval(a) na spojenie plánov dovolenky. Otvorte TREK na prijatie alebo odmietnutie.`, + }), + vacay_share: (p) => ({ + title: 'Kalendár Vacay zdieľaný', + body: `${p.actor} s vami zdieľal(a) svoj kalendár dovoleniek. Otvorte TREK na jeho zobrazenie.`, + }), + collection_invite: (p) => ({ + title: 'Pozvánka do zbierky', + body: `${p.actor} vás pozval(a) na zdieľanie zbierky. Otvorte TREK na prijatie alebo odmietnutie.`, + }), + photos_shared: (p) => ({ + title: `${p.count} zdieľaných fotiek`, + body: `${p.actor} zdieľal(a) ${p.count} fotku/fotiek v "${p.trip}".`, + }), + collab_message: (p) => ({ + title: `Nová správa v "${p.trip}"`, + body: `${p.actor}: ${p.preview}`, + }), + packing_tagged: (p) => ({ + title: `Balenie: ${p.category}`, + body: `${p.actor} vás priradil(a) do kategórie balenia "${p.category}" v "${p.trip}".`, + }), + version_available: (p) => ({ + title: 'Dostupná nová verzia TREK', + body: `TREK ${p.version} je teraz dostupný. Navštívte panel správcu na aktualizáciu.`, + }), + replica_failure: (p) => ({ + title: 'Zlyhanie repliky úložiska', + body: + `Zápis do repliky zlyhal na '${p.backend}': ${p.op} ${p.key} — ${p.error}.` + + (p.suppressed !== '0' ? ` Od posledného upozornenia bolo potlačených ${p.suppressed} ďalších zlyhaní.` : ''), + }), + synology_session_cleared: () => ({ + title: 'Relácia Synology bola zrušená', + body: 'Váš účet alebo URL Synology sa zmenili. Boli ste odhlásení zo Synology Photos.', + }), + plugin_notification: (p) => ({ title: p.title ?? '', body: p.body ?? '' }), + }, + passwordReset: { + subject: 'Obnovte si heslo', + greeting: 'Ahoj', + body: 'Dostali sme žiadosť o obnovenie hesla k vášmu účtu TREK. Kliknite na tlačidlo nižšie a nastavte si nové heslo.', + ctaIntro: 'Obnoviť heslo', + expiry: 'Tento odkaz vyprší za 60 minút.', + ignore: 'Ak ste o to nežiadali, tento e-mail môžete pokojne ignorovať — vaše heslo sa nezmení.', + }, +}; + +export default sk; diff --git a/shared/src/i18n/sk/files.ts b/shared/src/i18n/sk/files.ts new file mode 100644 index 000000000..360056f29 --- /dev/null +++ b/shared/src/i18n/sk/files.ts @@ -0,0 +1,66 @@ +import type { TranslationStrings } from '../types'; + +const files: TranslationStrings = { + 'files.filterStarred': 'Označené', + 'files.link': 'Prepojiť', + 'files.linkTitle': 'Prepojiť súbor', + 'files.linkEmpty': 'Zatiaľ nie sú žiadne miesta ani rezervácie na prepojenie', + 'files.menu': 'Ďalšie možnosti', + 'files.uploadErrorSize': 'Súbor je príliš veľký (max. 50 MB)', + 'files.title': 'Súbory', + 'files.pageTitle': 'Súbory a dokumenty', + 'files.subtitle': '{count} súborov pre {trip}', + 'files.download': 'Stiahnuť', + 'files.openError': 'Súbor sa nedá otvoriť', + 'files.downloadPdf': 'Stiahnuť PDF', + 'files.count': '{count} súborov', + 'files.countSingular': '1 súbor', + 'files.uploaded': '{count} nahraných', + 'files.uploadError': 'Nahrávanie zlyhalo', + 'files.uploadErrorType': 'Tento typ súboru nie je podporovaný', + 'files.dropzone': 'Presuňte súbory sem', + 'files.dropzoneHint': 'alebo kliknite pre výber', + 'files.allowedTypes': 'Obrázky, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Max 50 MB', + 'files.uploading': 'Nahráva sa...', + 'files.filterAll': 'Všetko', + 'files.filterPdf': 'PDF', + 'files.filterImages': 'Obrázky', + 'files.filterDocs': 'Dokumenty', + 'files.filterCollab': 'Poznámky spolupráce', + 'files.sourceCollab': 'Z poznámok spolupráce', + 'files.empty': 'Zatiaľ žiadne súbory', + 'files.emptyHint': 'Nahrajte súbory a priložte ich k svojej ceste', + 'files.openTab': 'Otvoriť na novej karte', + 'files.confirm.delete': 'Naozaj chcete zmazať tento súbor?', + 'files.toast.deleted': 'Súbor bol zmazaný', + 'files.toast.deleteError': 'Nepodarilo sa zmazať súbor', + 'files.sourcePlan': 'Denný plán', + 'files.sourceBooking': 'Rezervácia', + 'files.sourceTransport': 'Doprava', + 'files.attach': 'Priložiť', + 'files.pasteHint': 'Môžete tiež vložiť obrázky zo schránky (Ctrl+V)', + 'files.trash': 'Kôš', + 'files.trashEmpty': 'Kôš je prázdny', + 'files.emptyTrash': 'Vyprázdniť kôš', + 'files.restore': 'Obnoviť', + 'files.star': 'Označiť hviezdičkou', + 'files.unstar': 'Odobrať hviezdičku', + 'files.assign': 'Priradiť', + 'files.assignTitle': 'Priradiť súbor', + 'files.assignPlace': 'Miesto', + 'files.assignBooking': 'Rezervácia', + 'files.assignTransport': 'Doprava', + 'files.unassigned': 'Nepriradené', + 'files.unlink': 'Zrušiť prepojenie', + 'files.toast.trashed': 'Presunuté do koša', + 'files.toast.restored': 'Súbor bol obnovený', + 'files.toast.trashEmptied': 'Kôš bol vyprázdnený', + 'files.toast.assigned': 'Súbor bol priradený', + 'files.toast.assignError': 'Priradenie zlyhalo', + 'files.toast.restoreError': 'Obnovenie zlyhalo', + 'files.confirm.permanentDelete': 'Trvalo zmazať tento súbor? Túto akciu nie je možné vrátiť.', + 'files.confirm.emptyTrash': 'Trvalo zmazať všetky súbory v koši? Túto akciu nie je možné vrátiť.', + 'files.noteLabel': 'Poznámka', + 'files.notePlaceholder': 'Pridať poznámku...', +}; +export default files; diff --git a/shared/src/i18n/sk/help.ts b/shared/src/i18n/sk/help.ts new file mode 100644 index 000000000..68cb1f1f9 --- /dev/null +++ b/shared/src/i18n/sk/help.ts @@ -0,0 +1,12 @@ +import type { TranslationStrings } from '../types'; + +const help: TranslationStrings = { + 'help.title': 'Pomoc a dokumentácia', + 'help.search': 'Hľadať v dokumentácii…', + 'help.contents': 'Obsah', + 'help.noResults': 'Žiadne zodpovedajúce stránky.', + 'help.errorTitle': 'Túto stránku sa nepodarilo načítať', + 'help.errorBody': 'Obsah pomocníka sa načítava z wiki TREK. Skontrolujte pripojenie a skúste to znova.', +}; + +export default help; diff --git a/shared/src/i18n/sk/index.ts b/shared/src/i18n/sk/index.ts new file mode 100644 index 000000000..eb906e3be --- /dev/null +++ b/shared/src/i18n/sk/index.ts @@ -0,0 +1,114 @@ +import admin from './admin'; +import airport from './airport'; +import atlas from './atlas'; +import backup from './backup'; +import budget from './budget'; +import categories from './categories'; +import collab from './collab'; +import collection from './collection'; +import common from './common'; +import dashboard from './dashboard'; +import dawarich from './dawarich'; +import day from './day'; +import dayplan from './dayplan'; +import docsync from './docsync'; +import files from './files'; +import help from './help'; +import inspector from './inspector'; +import journey from './journey'; +import login from './login'; +import map from './map'; +import members from './members'; +import memories from './memories'; +import mobileAdmin from './mobileAdmin'; +import mobileAtlas from './mobileAtlas'; +import mobileCollections from './mobileCollections'; +import mobileJourney from './mobileJourney'; +import mobileNav from './mobileNav'; +import mobileSettings from './mobileSettings'; +import mobileTrip from './mobileTrip'; +import mobileVacay from './mobileVacay'; +import nav from './nav'; +import notif from './notif'; +import notifications from './notifications'; +import oauth from './oauth'; +import packing from './packing'; +import pdf from './pdf'; +import perm from './perm'; +import photos from './photos'; +import places from './places'; +import planner from './planner'; +import register from './register'; +import reservations from './reservations'; +import roadtrip from './roadtrip'; +import settings from './settings'; +import share from './share'; +import shared from './shared'; +import stats from './stats'; +import storage from './storage'; +import system_notice from './system_notice'; +import todo from './todo'; +import transport from './transport'; +import trip from './trip'; +import trips from './trips'; +import undo from './undo'; +import vacay from './vacay'; + +const locale = { + ...common, + ...trips, + ...nav, + ...dashboard, + ...roadtrip, + ...settings, + ...admin, + ...dayplan, + ...share, + ...shared, + ...login, + ...register, + ...vacay, + ...collection, + ...atlas, + ...trip, + ...places, + ...inspector, + ...reservations, + ...airport, + ...map, + ...budget, + ...files, + ...packing, + ...members, + ...categories, + ...backup, + ...photos, + ...pdf, + ...planner, + ...stats, + ...day, + ...memories, + ...collab, + ...perm, + ...undo, + ...notifications, + ...todo, + ...notif, + ...journey, + ...oauth, + ...system_notice, + ...transport, + ...help, + ...mobileTrip, + ...mobileJourney, + ...mobileVacay, + ...mobileAtlas, + ...mobileNav, + ...mobileAdmin, + ...mobileSettings, + ...mobileCollections, + ...storage, + ...dawarich, + ...docsync, +}; +export default locale; diff --git a/shared/src/i18n/sk/inspector.ts b/shared/src/i18n/sk/inspector.ts new file mode 100644 index 000000000..5b374aba4 --- /dev/null +++ b/shared/src/i18n/sk/inspector.ts @@ -0,0 +1,30 @@ +import type { TranslationStrings } from '../types'; + +const inspector: TranslationStrings = { + 'inspector.opened': 'Otvorené', + 'inspector.closed': 'Zatvorené', + 'inspector.openingHours': 'Otváracie hodiny', + 'inspector.showHours': 'Zobraziť otváracie hodiny', + 'inspector.files': 'Súbory', + 'inspector.filesCount': '{count} súborov', + 'inspector.remove': 'Odstrániť', + 'inspector.removeFromDay': 'Odobrať z dňa', + 'inspector.addToDay': 'Pridať k dňu', + 'inspector.confirmedRes': 'Potvrdená rezervácia', + 'inspector.pendingRes': 'Čakajúca rezervácia', + 'inspector.google': 'Google Maps', + 'inspector.navigation': 'Navigácia', + 'inspector.openWith': 'Otvoriť v', + 'inspector.openStreetMap': 'OpenStreetMap', + 'inspector.website': 'Otvoriť webovú stránku', + 'inspector.saveToCollection': 'Uložiť do zbierky', + 'inspector.savedToCollection': 'Uložené', + 'inspector.addRes': 'Rezervácia', + 'inspector.editRes': 'Upraviť rezerváciu', + 'inspector.participants': 'Účastníci', + 'inspector.trackStats': 'Dáta trasy', + 'inspector.trackColor': 'Farba trasy', + 'inspector.trackColorAuto': 'Automatická farba', + 'inspector.trackColorCustom': 'Vybrať vlastnú farbu', +}; +export default inspector; diff --git a/shared/src/i18n/sk/journey.ts b/shared/src/i18n/sk/journey.ts new file mode 100644 index 000000000..38a5312c1 --- /dev/null +++ b/shared/src/i18n/sk/journey.ts @@ -0,0 +1,650 @@ +import type { TranslationStrings } from '../types'; + +const journey: TranslationStrings = { + 'journey.search.placeholder': 'Hľadať cesty…', + 'journey.search.noResults': 'Žiadne cesty nezodpovedajú „{query}“', + 'journey.title': 'Cestovný denník', + 'journey.subtitle': 'Zaznamenávajte svoje cesty priebežne', + 'journey.new': 'Nový cestovný denník', + 'journey.create': 'Vytvoriť', + 'journey.titlePlaceholder': 'Kam sa chystáte?', + 'journey.empty': 'Zatiaľ žiadne cestovné denníky', + 'journey.emptyHint': 'Začnite dokumentovať svoj ďalší výlet', + 'journey.deleted': 'Cestovný denník odstránený', + 'journey.createError': 'Nepodarilo sa vytvoriť cestovný denník', + 'journey.deleteError': 'Nepodarilo sa odstrániť cestovný denník', + 'journey.deleteConfirmTitle': 'Odstrániť', + 'journey.deleteConfirmMessage': 'Odstrániť „{title}“? Túto akciu nie je možné vrátiť späť.', + 'journey.deleteConfirmGeneric': 'Naozaj to chcete odstrániť?', + 'journey.notFound': 'Cestovný denník sa nenašiel', + 'journey.photos': 'Fotky', + 'journey.timelineEmpty': 'Zatiaľ žiadne zastávky', + 'journey.timelineEmptyHint': 'Pridajte odbavenie alebo napíšte záznam do denníka a začnite', + 'journey.status.draft': 'Koncept', + 'journey.status.active': 'Aktívny', + 'journey.status.completed': 'Dokončený', + 'journey.status.upcoming': 'Nadchádzajúci', + 'journey.status.archived': 'Archivovaný', + 'journey.checkin.add': 'Odbaviť sa', + 'journey.checkin.namePlaceholder': 'Názov miesta', + 'journey.checkin.notesPlaceholder': 'Poznámky (voliteľné)', + 'journey.checkin.save': 'Uložiť', + 'journey.checkin.error': 'Nepodarilo sa uložiť odbavenie', + 'journey.entry.add': 'Denník', + 'journey.entry.edit': 'Upraviť záznam', + 'journey.entry.titlePlaceholder': 'Názov (voliteľný)', + 'journey.entry.bodyPlaceholder': 'Čo sa dnes stalo?', + 'journey.entry.save': 'Uložiť', + 'journey.entry.error': 'Nepodarilo sa uložiť záznam', + 'journey.photo.add': 'Fotka', + 'journey.photo.uploadError': 'Nahrávanie zlyhalo', + 'journey.share.share': 'Zdieľať', + 'journey.share.public': 'Verejný', + 'journey.share.linkCopied': 'Verejný odkaz skopírovaný', + 'journey.share.disabled': 'Verejné zdieľanie je vypnuté', + 'journey.editor.titlePlaceholder': 'Pomenujte tento okamih...', + 'journey.editor.bodyPlaceholder': 'Vyrozprávajte príbeh tohto dňa...', + 'journey.editor.placePlaceholder': 'Miesto (voliteľné)', + 'journey.editor.tagsPlaceholder': 'Značky: skrytý klenot, najlepšie jedlo, musím sa vrátiť...', + 'journey.visibility.private': 'Súkromný', + 'journey.visibility.shared': 'Zdieľaný', + 'journey.visibility.public': 'Verejný', + 'journey.emptyState.title': 'Váš príbeh sa začína tu', + 'journey.emptyState.subtitle': 'Odbavte sa na mieste alebo napíšte svoj prvý záznam do denníka', + 'journey.frontpage.subtitle': 'Premeňte svoje cesty na príbehy, na ktoré nikdy nezabudnete', + 'journey.frontpage.createJourney': 'Vytvoriť cestovný denník', + 'journey.frontpage.activeJourney': 'Aktívny cestovný denník', + 'journey.frontpage.latestJourney': 'Posledný cestovný denník', + 'journey.frontpage.allJourneys': 'Všetky cestovné denníky', + 'journey.frontpage.journeys': 'cestovné denníky', + 'journey.frontpage.createNew': 'Vytvoriť nový cestovný denník', + 'journey.frontpage.createNewSub': 'Vyberte cesty, píšte príbehy, zdieľajte svoje dobrodružstvá', + 'journey.frontpage.live': 'Naživo', + 'journey.frontpage.synced': 'Synchronizované', + 'journey.frontpage.continueWriting': 'Pokračovať v písaní', + 'journey.frontpage.updated': 'Aktualizované {time}', + 'journey.frontpage.suggestionLabel': 'Cesta práve skončila', + 'journey.frontpage.suggestionText': 'Premeňte {title} na cestovný denník', + 'journey.frontpage.dismiss': 'Zavrieť', + 'journey.frontpage.journeyName': 'Názov cestovného denníka', + 'journey.frontpage.namePlaceholder': 'napr. Juhovýchodná Ázia 2026', + 'journey.frontpage.selectTrips': 'Vybrať cesty', + 'journey.frontpage.tripsSelected': 'ciest vybraných', + 'journey.frontpage.trips': 'cesty', + 'journey.frontpage.placesImported': 'miest bude importovaných', + 'journey.frontpage.places': 'miesta', + 'journey.detail.backToJourney': 'Späť na cestovný denník', + 'journey.detail.syncedWithTrips': 'Synchronizované s cestami', + 'journey.detail.addEntry': 'Pridať záznam', + 'journey.detail.jumpToTop': 'Späť nahor', + 'journey.detail.jumpToLast': 'Prejsť na posledný záznam', + 'journey.detail.newEntry': 'Nový záznam', + 'journey.detail.editEntry': 'Upraviť záznam', + 'journey.detail.noEntries': 'Zatiaľ žiadne záznamy', + 'journey.detail.noEntriesHint': 'Pridajte cestu a začnite s kostrovými záznamami', + 'journey.detail.noPhotos': 'Zatiaľ žiadne fotky', + 'journey.detail.noPhotosHint': 'Nahrajte fotky k záznamom alebo prehliadajte svoju knižnicu Immich/Synology', + 'journey.detail.journeyTab': 'Cestovný denník', + 'journey.detail.journeyStats': 'Štatistiky cesty', + 'journey.detail.syncedTrips': 'Synchronizované cesty', + 'journey.detail.noTripsLinked': 'Zatiaľ žiadne prepojené cesty', + 'journey.detail.contributors': 'Prispievatelia', + 'journey.detail.readMore': 'Čítať ďalej', + 'journey.detail.prosCons': 'Klady a zápory', + 'journey.detail.photos': 'fotky', + 'journey.detail.day': 'Deň {number}', + 'journey.detail.places': 'miesta', + 'journey.stats.days': 'Dni', + 'journey.stats.cities': 'Mestá', + 'journey.stats.entries': 'Záznamy', + 'journey.stats.photos': 'Fotky', + 'journey.stats.places': 'Miesta', + 'journey.skeletons.show': 'Zobraziť návrhy', + 'journey.skeletons.hide': 'Skryť návrhy', + 'journey.verdict.lovedIt': 'Skvelé', + 'journey.verdict.couldBeBetter': 'Mohlo by byť lepšie', + 'journey.synced.places': 'miesta', + 'journey.synced.synced': 'synchronizované', + 'journey.editor.discardChangesConfirm': 'Máte neuložené zmeny. Zahodiť ich?', + 'journey.editor.uploadFailed': 'Nahrávanie fotiek zlyhalo', + 'journey.editor.uploadPhotos': 'Nahrať fotky', + 'journey.editor.uploading': 'Nahráva sa...', + 'journey.editor.uploadingProgress': 'Nahráva sa {done}/{total}…', + 'journey.editor.uploadPartialFailed': '{failed} z {total} fotiek zlyhalo — uložte znova a skúste to opäť', + 'journey.editor.fromGallery': 'Z galérie', + 'journey.editor.allPhotosAdded': 'Všetky fotky sú už pridané', + 'journey.editor.externalPhotos': 'Externé fotky', + 'journey.editor.externalPhotosFor': 'Fotky za {date}', + 'journey.editor.externalPhotosNearby': 'Najskôr fotky z okolia', + 'journey.editor.externalPhotosNoLocation': 'Všetky fotky z tohto dňa', + 'journey.editor.externalPhotosQueued': 'vo fronte', + 'journey.editor.externalPhotosUnavailable': 'Nie sú dostupní žiadni pripojení poskytovatelia fotiek.', + 'journey.editor.externalPhotosPartialFailed': '{failed} skupín fotiek zlyhalo — uložte znova a skúste to opäť', + 'journey.editor.writeStory': 'Napíšte svoj príbeh...', + 'journey.editor.prosCons': 'Klady a zápory', + 'journey.editor.pros': 'Klady', + 'journey.editor.cons': 'Zápory', + 'journey.editor.proPlaceholder': 'Niečo skvelé...', + 'journey.editor.conPlaceholder': 'Nie také skvelé...', + 'journey.editor.addAnother': 'Pridať ďalšie', + 'journey.editor.date': 'Dátum', + 'journey.editor.location': 'Miesto', + 'journey.editor.searchLocation': 'Hľadať miesto...', + 'journey.editor.mood': 'Nálada', + 'journey.editor.weather': 'Počasie', + 'journey.editor.photoFirst': '1.', + 'journey.editor.makeFirst': 'Nastaviť ako 1.', + 'journey.editor.searching': 'Hľadá sa...', + 'journey.editor.useCurrentLocation': 'Použiť moju aktuálnu polohu', + 'journey.editor.locationPermissionDenied': + 'Prístup k polohe bol zamietnutý. Povoľte ho v nastaveniach prehliadača a skúste to znova.', + 'journey.editor.locationTimeout': 'Vypršal čas pri zisťovaní vašej polohy. Skúste to znova.', + 'journey.editor.locationUnavailable': 'Nepodarilo sa určiť vašu polohu.', + 'journey.editor.locationInsecureContext': 'Poloha vyžaduje zabezpečené (HTTPS) pripojenie.', + 'journey.mood.amazing': 'Úžasná', + 'journey.mood.good': 'Dobrá', + 'journey.mood.neutral': 'Neutrálna', + 'journey.mood.rough': 'Ťažká', + 'journey.weather.sunny': 'Slnečno', + 'journey.weather.partly': 'Polojasno', + 'journey.weather.cloudy': 'Zamračené', + 'journey.weather.rainy': 'Daždivo', + 'journey.weather.stormy': 'Búrlivo', + 'journey.weather.cold': 'Sneženie', + 'journey.trips.linkTrip': 'Prepojiť cestu', + 'journey.trips.searchTrip': 'Hľadať cestu', + 'journey.trips.searchPlaceholder': 'Názov cesty alebo cieľ...', + 'journey.trips.noTripsAvailable': 'Žiadne dostupné cesty', + 'journey.trips.link': 'Prepojiť', + 'journey.trips.tripLinked': 'Cesta prepojená', + 'journey.trips.linkFailed': 'Prepojenie cesty zlyhalo', + 'journey.trips.addTrip': 'Pridať cestu', + 'journey.trips.unlinkTrip': 'Odpojiť cestu', + 'journey.trips.unlinkMessage': + 'Odpojiť „{title}“? Všetky synchronizované záznamy a fotky z tejto cesty budú natrvalo odstránené. Túto akciu nie je možné vrátiť späť.', + 'journey.trips.unlink': 'Odpojiť', + 'journey.trips.tripUnlinked': 'Cesta odpojená', + 'journey.trips.unlinkFailed': 'Odpojenie cesty zlyhalo', + 'journey.trips.noTripsLinkedSettings': 'Žiadne prepojené cesty', + 'journey.contributors.invite': 'Pozvať prispievateľa', + 'journey.contributors.searchUser': 'Hľadať používateľa', + 'journey.contributors.searchPlaceholder': 'Používateľské meno alebo e-mail...', + 'journey.contributors.noUsers': 'Nenašli sa žiadni používatelia', + 'journey.contributors.role': 'Rola', + 'journey.contributors.added': 'Prispievateľ pridaný', + 'journey.contributors.addFailed': 'Pridanie prispievateľa zlyhalo', + 'journey.contributors.remove': 'Odstrániť prispievateľa', + 'journey.contributors.removeConfirm': 'Odstrániť {username} z tohto cestovného denníka?', + 'journey.contributors.removed': 'Prispievateľ odstránený', + 'journey.contributors.removeFailed': 'Odstránenie prispievateľa zlyhalo', + 'journey.share.publicShare': 'Verejné zdieľanie', + 'journey.share.createLink': 'Vytvoriť odkaz na zdieľanie', + 'journey.share.linkCreated': 'Odkaz na zdieľanie vytvorený', + 'journey.share.createFailed': 'Vytvorenie odkazu zlyhalo', + 'journey.share.copy': 'Kopírovať', + 'journey.share.copied': 'Skopírované!', + 'journey.share.timeline': 'Časová os', + 'journey.share.gallery': 'Galéria', + 'journey.share.map': 'Mapa', + 'journey.share.removeLink': 'Odstrániť odkaz na zdieľanie', + 'journey.share.linkDeleted': 'Odkaz na zdieľanie odstránený', + 'journey.share.deleteFailed': 'Odstránenie zlyhalo', + 'journey.share.updateFailed': 'Aktualizácia zlyhala', + 'journey.invite.role': 'Rola', + 'journey.invite.viewer': 'Čitateľ', + 'journey.invite.editor': 'Editor', + 'journey.invite.invite': 'Pozvať', + 'journey.invite.inviting': 'Pozýva sa...', + 'journey.settings.title': 'Nastavenia cestovného denníka', + 'journey.settings.coverImage': 'Titulný obrázok', + 'journey.settings.changeCover': 'Zmeniť obal', + 'journey.settings.addCover': 'Pridať titulný obrázok', + 'journey.settings.name': 'Názov', + 'journey.settings.subtitle': 'Podtitul', + 'journey.settings.subtitlePlaceholder': 'napr. Thajsko, Vietnam a Kambodža', + 'journey.settings.tracks': 'Stopy GPX', + 'journey.settings.showTripTracks': 'Zobraziť všetky GPX stopy z ciest', + 'journey.settings.showTripTracksHint': 'Vykreslí na mape zaznamenané trasy z prepojených ciest.', + 'journey.settings.endJourney': 'Archivovať cestu', + 'journey.settings.reopenJourney': 'Obnoviť cestu', + 'journey.settings.archived': 'Cesta archivovaná', + 'journey.settings.reopened': 'Cesta znova otvorená', + 'journey.settings.endDescription': 'Skryje odznak Naživo. Kedykoľvek ju môžete znova otvoriť.', + 'journey.settings.delete': 'Odstrániť', + 'journey.settings.deleteJourney': 'Odstrániť cestovný denník', + 'journey.settings.deleteMessage': 'Odstrániť „{title}“? Všetky záznamy a fotky budú stratené.', + 'journey.settings.saved': 'Nastavenia uložené', + 'journey.settings.saveFailed': 'Uloženie zlyhalo', + 'journey.settings.coverUpdated': 'Obal aktualizovaný', + 'journey.settings.coverFailed': 'Nahrávanie zlyhalo', + 'journey.settings.failedToDelete': 'Odstránenie zlyhalo', + 'journey.entries.deleteTitle': 'Odstrániť záznam', + 'journey.photosUploaded': '{count} fotiek nahraných', + 'journey.photosUploadFailed': 'Niektoré fotky sa nepodarilo nahrať', + 'journey.photosAdded': '{count} fotiek pridaných', + 'journey.public.notFound': 'Nenájdené', + 'journey.public.notFoundMessage': 'Tento cestovný denník neexistuje alebo odkaz vypršal.', + 'journey.public.readOnly': 'Iba na čítanie · Verejný cestovný denník', + 'journey.public.tagline': 'Travel Resource & Exploration Kit', + 'journey.public.sharedVia': 'Zdieľané cez', + 'journey.public.madeWith': 'Vytvorené pomocou', + 'journey.pdf.journeyBook': 'Cestovná kniha', + 'journey.pdf.madeWith': 'Vytvorené pomocou TREK', + 'journey.pdf.day': 'Deň', + 'journey.pdf.theEnd': 'Koniec', + 'journey.pdf.saveAsPdf': 'Uložiť ako PDF', + 'journey.pdf.pages': 'strán', + 'journey.picker.tripPeriod': 'Obdobie cesty', + 'journey.picker.day': 'Tento deň', + 'journey.picker.dateRange': 'Časové obdobie', + 'journey.picker.allPhotos': 'Všetky fotky', + 'journey.picker.albums': 'Albumy', + 'journey.picker.selected': 'vybraté', + 'journey.picker.addTo': 'Pridať do', + 'journey.picker.newGallery': 'Nová galéria', + 'journey.picker.selectAll': 'Vybrať všetko', + 'journey.picker.deselectAll': 'Zrušiť výber', + 'journey.picker.noAlbums': 'Nenašli sa žiadne albumy', + 'journey.picker.selectDate': 'Vyberte dátum', + 'journey.picker.search': 'Hľadať', + 'journey.studio.title': 'TREK Studio', + 'journey.studio.open': 'Studio', + 'journey.studio.openAria': 'Otvoriť štúdio fotoknihy', + 'journey.studio.backToJourney': 'Späť na cestovný denník', + 'journey.studio.format': 'Formát strany', + 'journey.studio.formatA4Landscape': 'A4 na šírku', + 'journey.studio.formatA4Portrait': 'A4 na výšku', + 'journey.studio.formatSquare21': 'Štvorec 21 × 21 cm', + 'journey.studio.formatSquare30': 'Štvorec 30 × 30 cm', + 'journey.studio.pages': 'Strany', + 'journey.studio.cover': 'Obal', + 'journey.studio.inspector': 'Vlastnosti', + 'journey.studio.inspectorEmpty': 'Vyberte niečo na strane a upravte to.', + 'journey.studio.emptySpread': 'Táto dvojstrana je stále prázdna', + 'journey.studio.autoLayout': 'Automatické rozloženie', + 'journey.studio.export': 'Export', + 'journey.studio.day': 'DEŇ', + 'journey.studio.stations': 'Zastávky', + 'journey.studio.peersHere': 'tu', + 'journey.studio.folioAuto': 'Automaticky', + 'journey.studio.exportLayout': 'Rozloženie', + 'journey.studio.exportPages': 'Jednotlivé strany', + 'journey.studio.exportPagesHint': 'Jeden list na hárok, v poradí čítania. To chce tlačiareň.', + 'journey.studio.exportSpreads': 'Dvojstrany', + 'journey.studio.exportSpreadsHint': 'Dve strany naraz, ako sa kniha otvára. Na čítanie.', + 'journey.studio.exportFinishing': 'Spracovanie', + 'journey.studio.exportMarks': 'Orezové značky', + 'journey.studio.exportMarksHint': 'Pridá {bleed} mm spadávky na každú hranu a označí, kde sa reže', + 'journey.studio.exportNote': '{sheets} hárkov {width} × {height} mm. Prehliadač z náhľadu tlače vytvorí PDF.', + 'journey.studio.exportOpen': 'Náhľad tlače', + 'journey.studio.exportSave': 'Uložiť ako PDF', + 'journey.studio.exportPreparing': 'Pripravuje sa', + 'journey.studio.exportSheetCount': '{count} hárkov', + 'journey.studio.undo': 'Späť', + 'journey.studio.redo': 'Znova', + 'journey.studio.zoomIn': 'Priblížiť', + 'journey.studio.zoomOut': 'Oddialiť', + 'journey.studio.zoomFit': 'Prispôsobiť pohľadu', + 'journey.studio.downloadSpread': 'Stiahnuť túto dvojstranu', + 'journey.studio.downloadSpreadHint': + 'Uloží návrh tejto dvojstrany ako súbor, bez fotografií, na zdieľanie alebo ďalšie použitie', + 'journey.studio.importSpread': 'Importovať', + 'journey.studio.importSpreadHint': 'Pridá dvojstranu zo stiahnutého súboru s návrhom', + 'journey.studio.importSpreadFailed': 'Tento súbor nie je dvojstrana z TREK Studia', + 'journey.studio.desktopOnly': 'Studio potrebuje väčšiu obrazovku', + 'journey.studio.desktopOnlyHint': + 'Sadzba knihy potrebuje priestor, a tak je Studio len na počítači, rovnako ako tvorba PDF. Všetko ostatné z vašej cesty tu funguje ako obvykle.', + 'journey.studio.formatA5Landscape': 'A5 na šírku', + 'journey.studio.bookView': 'Zobrazenie knihy', + 'journey.studio.multiple': 'Viaceré', + 'journey.studio.kind.photo': 'Fotka', + 'journey.studio.kind.text': 'Text', + 'journey.studio.kind.shape': 'Tvar', + 'journey.studio.position': 'Poloha', + 'journey.studio.width': 'Š', + 'journey.studio.height': 'V', + 'journey.studio.text': 'Text', + 'journey.studio.typography': 'Písmo', + 'journey.studio.leading': 'Riadok', + 'journey.studio.colour': 'Farba', + 'journey.studio.autoColour': 'Automaticky', + 'journey.studio.countryNames': 'Názvy', + 'journey.studio.crop': 'Orezať', + 'journey.studio.look': 'Vzhľad', + 'journey.studio.radius': 'Roh', + 'journey.studio.shape': 'Tvar', + 'journey.studio.arrange': 'Usporiadať', + 'journey.studio.toFront': 'Presunúť dopredu', + 'journey.studio.forward': 'Posunúť dopredu', + 'journey.studio.backward': 'Posunúť dozadu', + 'journey.studio.toBack': 'Presunúť dozadu', + 'journey.studio.lock': 'Zamknúť', + 'journey.studio.unlock': 'Odomknúť', + 'journey.studio.delete': 'Odstrániť', + 'journey.studio.pageHint': 'Strana', + 'journey.studio.boundHint': 'Nadväzuje na záznam v denníku. Úpravou tu sa toto prepojenie preruší.', + 'journey.studio.fit.cover': 'Vyplniť', + 'journey.studio.fit.contain': 'Prispôsobiť', + 'journey.studio.filter.none': 'Originál', + 'journey.studio.filter.bw': 'Čiernobiely', + 'journey.studio.filter.warm': 'Teplý', + 'journey.studio.shapeKind.rect': 'Obdĺžnik', + 'journey.studio.shapeKind.ellipse': 'Elipsa', + 'journey.studio.focalHint': 'Potiahnutím bodu zvoľte, čo zostane v zábere.', + 'journey.studio.backCover': 'Zadný obal', + 'journey.studio.sections': 'Sekcie', + 'journey.studio.content': 'Obsah', + 'journey.studio.elements': 'Prvky', + 'journey.studio.templates': 'Rozloženia', + 'journey.studio.photos': 'Fotky', + 'journey.studio.entries': 'Záznamy', + 'journey.studio.addToPage': 'Pridať na túto stranu', + 'journey.studio.noPhotos': 'Tento cestovný denník zatiaľ nemá žiadne fotky.', + 'journey.studio.untitled': 'Bez názvu', + 'journey.studio.addTitle': 'Názov', + 'journey.studio.addStory': 'Príbeh', + 'journey.studio.addPlace': 'Miesto', + 'journey.studio.shapes': 'Tvary', + 'journey.studio.frames': 'Rámčeky', + 'journey.studio.emptyFrame': 'Prázdny rámček', + 'journey.studio.frameHint': 'Prázdny rámček označuje, kam príde obrázok. Presuňte naň jeden z Obsahu.', + 'journey.studio.shapeKind.line': 'Čiara', + 'journey.studio.styleTitle': 'Nadpis', + 'journey.studio.styleSubtitle': 'Podnadpis', + 'journey.studio.styleBody': 'Základný text', + 'journey.studio.styleCaption': 'Popis', + 'journey.studio.sampleHeading': 'Nadpis', + 'journey.studio.sampleSubheading': 'Podnadpis', + 'journey.studio.sampleBody': 'Napíšte niečo o tomto dni.', + 'journey.studio.sampleCaption': 'Popis', + 'journey.studio.templatesCoverHint': + 'Rozloženia sa vzťahujú na vnútorné dvojstrany. Obal a zadná strana sa navrhujú samostatne.', + 'journey.studio.tpl.heroStory': 'Hlavný obraz a príbeh', + 'journey.studio.tpl.fullBleed': 'Jeden obraz, celá dvojstrana', + 'journey.studio.tpl.twoUp': 'Dve celé strany', + 'journey.studio.tpl.grid4': 'Štyri', + 'journey.studio.tpl.grid6': 'Šesť', + 'journey.studio.tpl.strip': 'Pás a text', + 'journey.studio.tpl.quietText': 'Iba text', + 'journey.studio.tpl.portraitPair': 'Dvojica', + 'journey.studio.dropPhotoHere': 'Presuňte sem\nsvoju fotku', + 'journey.studio.searchContent': 'Hľadať fotky a záznamy', + 'journey.studio.noMatches': 'Nič tomu nezodpovedá.', + 'journey.studio.decorations': 'Dekorácia', + 'journey.studio.quoteMark': 'Úvodzovky', + 'journey.studio.circleOutline': 'Obrysový kruh', + 'journey.studio.roundFrame': 'Zaoblený rámček', + 'journey.studio.shapeKind.rounded': 'Zaoblený obdĺžnik', + 'journey.studio.shapeKind.triangle': 'Trojuholník', + 'journey.studio.shapeKind.outline': 'Iba obrys', + 'journey.studio.travel': 'Cesta', + 'journey.studio.travelEmpty': 'Čísla z tejto cesty zatiaľ nie sú pripravené.', + 'journey.studio.grids': 'Mriežky', + 'journey.studio.gridHint': 'Mriežka vloží blok prázdnych rámčekov. Presuňte na ne fotky z Obsahu.', + 'journey.studio.lines': 'Čiary', + 'journey.studio.frameStyles': 'Štýly rámčeka', + 'journey.studio.frameShapes': 'Tvary rámčeka', + 'journey.studio.plainFrame': 'Jednoduchý', + 'journey.studio.polaroidFrame': 'Polaroid', + 'journey.studio.whiteFrame': 'Biely okraj', + 'journey.studio.shadowFrame': 'Vrhnutý tieň', + 'journey.studio.filmFrame': 'Film', + 'journey.studio.tapeFrame': 'Prelepený', + 'journey.studio.shapeGroup.basic': 'Základné', + 'journey.studio.shapeGroup.polygons': 'Mnohouholníky', + 'journey.studio.shapeGroup.stars': 'Hviezdy', + 'journey.studio.shapeGroup.arrows': 'Šípky', + 'journey.studio.shapeGroup.speech': 'Bubliny', + 'journey.studio.shapeGroup.travel': 'Cestovanie', + 'journey.studio.shapeGroup.decor': 'Dekorácia', + 'journey.studio.shapeGroup.banners': 'Zástavy', + 'journey.studio.summary': 'Prehľad', + 'journey.studio.tripSummary': 'Prehľad cesty', + 'journey.studio.statsRow': 'Jeden riadok', + 'journey.studio.statsFull': 'Všetko', + 'journey.studio.routeMap': 'Mapa trasy', + 'journey.studio.mapStyle.minimal': 'Minimálny', + 'journey.studio.mapStyle.outline': 'Obrys', + 'journey.studio.mapStyle.paper': 'Papier', + 'journey.studio.mapStyle.dark': 'Tmavý', + 'journey.studio.countries': 'Krajiny', + 'journey.studio.countryList': 'Zoznam krajín', + 'journey.studio.countryGrid': 'Mriežka krajín', + 'journey.studio.noCountries': 'Pre túto cestu zatiaľ neboli určené žiadne krajiny.', + 'journey.studio.noRoute': 'Zatiaľ žiadne zastávky so súradnicami.', + 'journey.studio.marks': 'Značky', + 'journey.studio.dateMark': 'Dátum', + 'journey.studio.dayMark': 'Počítadlo dní', + 'journey.studio.dayWord': 'DEŇ', + 'journey.studio.coordsMark': 'Súradnice', + 'journey.studio.coordsDms': 'Stupne', + 'journey.studio.coordsDecimal': 'Desatinné', + 'journey.studio.flagMark': 'Vlajka', + 'journey.studio.distanceMark': 'Vzdialenosť', + 'journey.studio.metric.distance': 'Vzdialenosť', + 'journey.studio.metric.days': 'Dni', + 'journey.studio.metric.steps': 'Zastávky', + 'journey.studio.metric.photos': 'Fotky', + 'journey.studio.metric.countries': 'Krajiny', + 'journey.studio.metric.places': 'Miesta', + 'journey.studio.metric.furthest': 'Najďalej', + 'journey.studio.kind.map': 'Mapa', + 'journey.studio.kind.stats': 'Čísla', + 'journey.studio.kind.countries': 'Krajiny', + 'journey.studio.kind.badge': 'Značka', + 'journey.studio.kind.list': 'Zoznam', + 'journey.studio.kind.icon': 'Ikona', + 'journey.studio.duplicate': 'Duplikovať', + 'journey.studio.style': 'Štýl', + 'journey.studio.shows': 'Zobrazenie', + 'journey.studio.size': 'Veľkosť', + 'journey.studio.weight': 'Rez', + 'journey.studio.italic': 'Kurzíva', + 'journey.studio.tracking': 'Prestrkanie', + 'journey.studio.rotation': 'Otočenie', + 'journey.studio.opacity': 'Krytie', + 'journey.studio.fill': 'Výplň', + 'journey.studio.fillOn': 'Vyplniť', + 'journey.studio.stroke': 'Obrys', + 'journey.studio.strokeWidth': 'Hrúbka', + 'journey.studio.gradient': 'Prechod', + 'journey.studio.gradientDown': 'Nadol', + 'journey.studio.gradientUp': 'Nahor', + 'journey.studio.showIcons': 'Ikony', + 'journey.studio.mapFit': 'Rozsah', + 'journey.studio.mapPadding': 'Priestor', + 'journey.studio.mapShape': 'Tvar', + 'journey.studio.align.left': 'Vľavo', + 'journey.studio.align.center': 'Na stred', + 'journey.studio.align.right': 'Vpravo', + 'journey.studio.markStyle.plain': 'Prostý', + 'journey.studio.markStyle.chip': 'Vyplnený', + 'journey.studio.markStyle.outline': 'Obrysový', + 'journey.studio.markStyle.stacked': 'Nad sebou', + 'journey.studio.icon': 'Ikona', + 'journey.studio.iconAndLabel': 'Ikona a text', + 'journey.studio.iconOnly': 'Iba ikona', + 'journey.studio.labelOnly': 'Iba text', + 'journey.studio.icons': 'Ikony', + 'journey.studio.iconsForTravel': 'Na cesty', + 'journey.studio.iconsAll': 'Všetky ikony', + 'journey.studio.searchIcons': 'Hľadať ikony', + 'journey.studio.lineWidth': 'Hrúbka', + 'journey.studio.mask': 'Orezať do tvaru', + 'journey.studio.maskNone': 'Žiadny', + 'journey.studio.frameStyle': 'Rámček', + 'journey.studio.mapLayers': 'Vrstvy', + 'journey.studio.showLand': 'Krajiny', + 'journey.studio.showRoute': 'Trasa', + 'journey.studio.showPins': 'Zastávky', + 'journey.studio.showLabels': 'Popisky', + 'journey.studio.units': 'Jednotky', + 'journey.studio.metrics': 'Čísla', + 'journey.studio.layout': 'Rozloženie', + 'journey.studio.layoutGrid': 'Mriežka', + 'journey.studio.layoutRow': 'Riadok', + 'journey.studio.layoutColumn': 'Stĺpec', + 'journey.studio.layoutList': 'Zoznam', + 'journey.studio.showOutline': 'Obrysy', + 'journey.studio.showFlag': 'Vlajky', + 'journey.studio.showName': 'Názvy', + 'journey.studio.textScale': 'Veľkosť písma', + 'journey.studio.accent': 'Akcent', + 'journey.studio.refresh': 'Aktualizovať z cesty', + 'journey.studio.staleHint': 'Cesta sa od získania týchto čísel zmenila.', + 'journey.studio.align': 'Zarovnanie', + 'journey.studio.filter.cool': 'Studený', + 'journey.studio.filter.fade': 'Vyblednutý', + 'journey.studio.filter.contrast': 'Výrazný', + 'journey.studio.strokeStyle': 'Ťah', + 'journey.studio.strokeSolid': 'Plný', + 'journey.studio.strokeDashed': 'Čiarkovaný', + 'journey.studio.strokeDotted': 'Bodkovaný', + 'journey.studio.singleFigures': 'Jednotlivé čísla', + 'journey.studio.addPage': 'Pridať dvojstranu', + 'journey.studio.addPageAfter': 'Vložiť dvojstranu za túto', + 'journey.studio.duplicatePage': 'Duplikovať dvojstranu', + 'journey.studio.deletePage': 'Odstrániť dvojstranu', + 'journey.studio.movePageUp': 'Posunúť dopredu', + 'journey.studio.movePageDown': 'Posunúť dozadu', + 'journey.studio.beta': 'Beta', + 'journey.studio.addProsCons': 'Klady a zápory', + 'journey.studio.showMarks': 'Značky', + 'journey.studio.formatCustom': 'Vlastná veľkosť', + 'journey.studio.document': 'Dokument', + 'journey.studio.pageNumbers': 'Čísla strán', + 'journey.studio.pageNumbersOn': 'Zapnuté', + 'journey.studio.pageNumbersOff': 'Vypnuté', + 'journey.studio.folio.outer': 'Vonkajšie', + 'journey.studio.folio.inner': 'Vnútorné', + 'journey.studio.folio.centre': 'Na stred', + 'journey.studio.folioStart': 'Začína na', + 'journey.studio.folioMargin': 'Okraj', + 'journey.studio.relayoutSpread': 'Táto dvojstrana', + 'journey.studio.relayoutSpreadHint': 'Znova zostaviť zo záznamu', + 'journey.studio.relayoutSpreadNone': 'Táto strana nevznikla zo záznamu', + 'journey.studio.relayoutBook': 'Celá kniha', + 'journey.studio.relayoutBookHint': 'Nahradí všetky strany — možno vrátiť späť', + 'journey.studio.tpl.coverFull': 'Na spad', + 'journey.studio.tpl.coverBand': 'Obraz a pruh', + 'journey.studio.tpl.coverWindow': 'V ráme', + 'journey.studio.tpl.coverQuiet': 'Iba text', + 'journey.studio.tpl.coverHalf': 'Dve polovice', + 'journey.studio.tpl.fullText': 'Obraz a text', + 'journey.studio.tpl.grid9': 'Deväť', + 'journey.studio.tpl.mosaic': 'Mozaika', + 'journey.studio.tpl.bandQuote': 'Slová uprostred', + 'journey.studio.tpl.staggerFour': 'Štyri presadené', + 'journey.studio.weightMissing': 'Toto písmo tento rez nemá', + 'journey.studio.mapSource': 'Zdroj mapy', + 'journey.studio.mapSourceVector': 'Obrysy', + 'journey.studio.mapSourceRelief': 'Reliéf', + 'journey.studio.routeLook': 'Čiara', + 'journey.studio.roads': 'Cesty', + 'journey.studio.roadsFetch': 'Viesť po cestách', + 'journey.studio.roadsFollow': 'Po cestách', + 'journey.studio.roadsDirect': 'Vzdušnou čiarou', + 'journey.studio.roadsAgain': 'Načítať znova', + 'journey.studio.roadsClear': 'Vymazať', + 'journey.studio.roadsBusy': 'Načítava sa', + 'journey.studio.roadsHint': 'Opýta sa plánovača trás, kadiaľ každý úsek viedol. Dlhé úseky zostanú bez zmeny.', + 'journey.studio.roadsHave': 'Cesty sú uložené v tejto knihe, takže sa rovnaká čiara vytlačí aj offline.', + 'journey.studio.routeStyle': 'Prevedenie', + 'journey.studio.routePlain': 'Jednoduchá', + 'journey.studio.routeDrawn': 'Kreslená', + 'journey.studio.routeArc': 'Dlhé úseky', + 'journey.studio.routeStraight': 'Priame', + 'journey.studio.routeBow': 'Prehnuté', + 'journey.studio.routeDashArcs': 'Prehnuté úseky čiarkovane', + 'journey.studio.mapStops': 'Zastávky', + 'journey.studio.pinDot': 'Bodky', + 'journey.studio.pinPhoto': 'Fotky', + 'journey.studio.pinPhotoNone': 'Pri týchto zastávkach zatiaľ nie sú žiadne fotografie, kreslia sa preto ako bodky.', + 'journey.studio.mapSourceSatellite': 'Satelit', + 'journey.studio.recommended': 'odporúčané', + 'journey.studio.bleed': 'Spadávka', + 'journey.studio.safeArea': 'Bezpečná', + 'journey.studio.mapSourceSatelliteHint': + 'Sentinel-2 bez oblačnosti, voľný na tlač s uvedením zdroja. Ostrý až na úroveň ulice.', + 'journey.studio.mapPerTrip': 'Každá cesta zvlášť', + 'journey.studio.mapWholeJourney': 'Celá cesta', + 'journey.studio.mapScope': 'Zobrazenie', + 'journey.studio.mapPrintDpi': 'Tlačí sa približne pri', + 'journey.studio.mapPrintDpiLow': 'v tejto veľkosti bude neostrá, skúste širší výrez alebo iný zdroj', + 'journey.studio.mapSourceReliefHint': + 'Tieňovaný reliéf od NASA, voľný na tlač. Vhodný pre krajinu alebo kontinent, pre jedno mesto je príliš hrubý.', + 'journey.studio.mapSourceTiles': 'Dlaždice mapy', + 'journey.studio.mapSourceStatic': 'Mapbox', + 'journey.studio.mapSourceHint': 'Načíta sa pri vykreslení strany a vytlačí sa s uvedením zdroja', + 'journey.studio.mapZoom': 'Priblíženie', + 'journey.studio.mapFraming': 'Výrez', + 'journey.studio.mapFitStops': 'Zastávky', + 'journey.studio.mapFitCountry': 'Celá krajina', + 'journey.studio.mapPadTight': 'Tesne', + 'journey.studio.mapPadNormal': 'Normálne', + 'journey.studio.mapPadWide': 'Širšie', + 'journey.studio.mapPadFar': 'Veľmi široko', + 'journey.studio.mapClipRect': 'V ráme', + 'journey.studio.mapClipCountry': 'Orezať do tvaru', + 'journey.studio.mapClipNeedsCountry': 'Na orezanie je potrebná krajina', + 'journey.studio.mapCutVector': 'Výrez', + 'journey.studio.mapCutTiles': 'Vyrezaná mapa', + 'journey.studio.mapZoomAuto': 'Podľa obsahu', + 'journey.studio.saving': 'Ukladá sa', + 'journey.studio.saved': 'Uložené', + 'journey.studio.saveFailed': 'Neuložené', + 'journey.studio.saveRetry': 'Skúsiť znova', + 'journey.studio.saveConflict': 'Túto knihu uložil niekto iný', + 'journey.studio.saveTakeTheirs': 'Ich verziu', + 'journey.studio.saveKeepMine': 'Moju verziu', + 'journey.studio.rotate': 'Otočiť', + 'journey.studio.rotateLeft': 'Otočiť doľava', + 'journey.studio.rotateRight': 'Otočiť doprava', + 'journey.studio.saveReadOnly': 'Iba na čítanie, neukladá sa', + 'journey.studio.filterPhotos': 'Filtrovať fotografie', + 'journey.studio.filterAll': 'Všetky fotografie', + 'journey.studio.filterLoose': 'Bez záznamu', + 'journey.studio.filterRecent': 'Práve nahrané', + 'journey.studio.filterThisPage': 'Táto strana', + 'journey.studio.entryPhotos': 'Fotografie', + 'journey.studio.noEntryPhotos': 'Tento záznam zatiaľ nemá žiadne fotografie.', + 'journey.studio.noLoosePhotos': 'Každá fotografia tu patrí k niektorému záznamu.', + 'journey.studio.uploadPhotos': 'Nahrať fotografie', + 'journey.studio.uploadHint': 'Presuňte sem obrázky alebo kliknite a vyberte ich', + 'journey.studio.uploadToEntry': 'Nové obrázky pôjdu do tohto záznamu', + 'journey.studio.uploadToGallery': 'Nové obrázky pôjdu do galérie', + 'journey.studio.uploading': 'Nahráva sa {done} z {total}', + 'journey.studio.dropFilesHere': 'Pustite pre pridanie obrázkov', + 'journey.studio.videosSkipped': '{count} videí bolo vynechaných. Kniha obsahuje obrázky.', + 'journey.studio.fillPage': 'Vyplniť stranu', + 'journey.studio.fillSpread': 'Vyplniť dvojstranu', + 'journey.studio.fillHint': 'Roztiahne obrázok cez celú stranu vrátane spadávky a umiestni ho za všetko ostatné.', + 'journey.studio.stops': 'Zastávky', + 'journey.studio.stopsHint': + 'Každá zastávka sa počíta do trasy, vzdialenosti a krajín. Vypnite ju, ak ju chcete vynechať, napríklad domovské letisko.', + 'journey.studio.stopOn': 'Počíta sa', + 'journey.studio.stopOff': 'Vynechaná', + 'journey.studio.stopToggle': 'Počítať túto zastávku', + 'journey.studio.stopsFailed': 'Zastávku sa nepodarilo zmeniť.', + 'journey.editor.statsExcluded': 'Vynechať z trasy', + 'journey.editor.statsExcludedHint': + 'Zastávka zostane v denníku, ale nepočíta sa do vzdialenosti, krajín ani do mapy v Studio.', + 'journey.entry.offRoute': 'Mimo trasy', + 'journey.suggestions.dismiss': 'Zahodiť tento návrh', + 'journey.suggestions.dismissed': 'Návrh zahodený', + 'journey.suggestions.restore': 'Vrátiť zahodené návrhy', + 'journey.suggestions.restoreCount': 'Zahodené návrhy ({count})', + 'journey.suggestions.restored': 'Vrátilo sa {count} návrhov', + 'journey.detail.addOnThisDay': 'Pridať záznam k tomuto dňu', + 'journey.detail.jumpToDay': 'Prejsť na {date}', + 'journey.detail.searchPlaceholder': 'Hľadať v tejto ceste', + 'journey.detail.searchEmpty': 'Žiadny záznam nezodpovedá „{query}“', + 'journey.settings.entryFields': 'Polia záznamu', + 'journey.settings.entryFieldsHint': 'Vypnite, čo táto cesta nepoužíva. Nič z už napísaného sa nestratí.', + 'journey.settings.showVerdict': 'Klady a zápory', + 'journey.settings.showMood': 'Nálada', + 'journey.settings.showWeather': 'Počasie', + 'journey.entry.suggestion': 'Návrh', + 'journey.editor.addDetails': '+ Podrobnosti', +}; +export default journey; diff --git a/shared/src/i18n/sk/login.ts b/shared/src/i18n/sk/login.ts new file mode 100644 index 000000000..95ced1d81 --- /dev/null +++ b/shared/src/i18n/sk/login.ts @@ -0,0 +1,76 @@ +import type { TranslationStrings } from '../types'; + +const login: TranslationStrings = { + 'login.error': 'Prihlásenie zlyhalo. Skontrolujte prosím svoje údaje.', + 'login.tagline': 'Vaše cesty.\nVáš plán.', + 'login.description': 'Plánujte cesty spoločne s interaktívnymi mapami, rozpočtami a synchronizáciou v reálnom čase.', + 'login.title': 'Prihlásiť sa', + 'login.subtitle': 'Vitajte späť', + 'login.signingIn': 'Prihlasovanie…', + 'login.signIn': 'Prihlásiť sa', + 'login.createAdmin': 'Vytvoriť účet administrátora', + 'login.createAdminHint': 'Nastavte prvý administrátorský účet pre TREK.', + 'login.setNewPassword': 'Nastaviť nové heslo', + 'login.setNewPasswordHint': 'Pred pokračovaním musíte zmeniť heslo.', + 'login.createAccount': 'Vytvoriť účet', + 'login.createAccountHint': 'Zaregistrujte si nový účet.', + 'login.creating': 'Vytváranie…', + 'login.noAccount': 'Nemáte účet?', + 'login.hasAccount': 'Už máte účet?', + 'login.register': 'Zaregistrovať sa', + 'login.emailPlaceholder': 'vas@email.sk', + 'login.username': 'Používateľské meno', + 'login.oidc.registrationDisabled': 'Registrácia je zakázaná. Kontaktujte svojho administrátora.', + 'login.oidc.noEmail': 'Od poskytovateľa nebol prijatý žiadny e-mail.', + 'login.oidc.tokenFailed': 'Overenie zlyhalo.', + 'login.oidc.invalidState': 'Neplatná relácia. Skúste to prosím znova.', + 'login.demoFailed': 'Prihlásenie do dema zlyhalo', + 'login.oidcSignIn': 'Prihlásiť sa cez {name}', + 'login.oidcOnly': 'Overovanie heslom je zakázané. Prihláste sa prosím cez svojho SSO poskytovateľa.', + 'login.oidcLoggedOut': 'Boli ste odhlásení. Prihláste sa znova cez svojho SSO poskytovateľa.', + 'login.demoHint': 'Vyskúšajte demo — registrácia nie je potrebná', + 'login.mfaTitle': 'Dvojfaktorové overenie', + 'login.mfaSubtitle': 'Zadajte 6-miestny kód z vašej autentifikačnej aplikácie.', + 'login.mfaCodeLabel': 'Overovací kód', + 'login.mfaCodeRequired': 'Zadajte kód z vašej autentifikačnej aplikácie.', + 'login.mfaHint': 'Otvorte Google Authenticator, Authy alebo inú TOTP aplikáciu.', + 'login.mfaBack': '← Späť na prihlásenie', + 'login.mfaVerify': 'Overiť', + 'login.invalidInviteLink': 'Neplatný alebo vypršaný odkaz s pozvánkou', + 'login.oidcFailed': 'Prihlásenie cez OIDC zlyhalo', + 'login.usernameRequired': 'Používateľské meno je povinné', + 'login.passwordMinLength': 'Heslo musí mať aspoň 8 znakov', + 'login.forgotPassword': 'Zabudnuté heslo?', + 'login.rememberMe': 'Zapamätať si ma', + 'login.forgotPasswordTitle': 'Obnovte si heslo', + 'login.forgotPasswordBody': + 'Zadajte e-mailovú adresu, s ktorou ste sa zaregistrovali. Ak účet existuje, pošleme vám odkaz na obnovenie.', + 'login.forgotPasswordSubmit': 'Odoslať odkaz na obnovenie', + 'login.forgotPasswordSentTitle': 'Skontrolujte si e-mail', + 'login.forgotPasswordSentBody': + 'Ak k tomuto e-mailu existuje účet, odkaz na obnovenie je na ceste. Platnosť vyprší za 60 minút.', + 'login.forgotPasswordSmtpHintOff': + 'Upozornenie: váš administrátor nemá nakonfigurovaný SMTP, takže odkaz na obnovenie sa zapíše do konzoly servera namiesto odoslania e-mailom.', + 'login.backToLogin': 'Späť na prihlásenie', + 'login.newPassword': 'Nové heslo', + 'login.confirmPassword': 'Potvrďte nové heslo', + 'login.passwordsDontMatch': 'Heslá sa nezhodujú', + 'login.mfaCode': 'Kód 2FA', + 'login.resetPasswordTitle': 'Nastaviť nové heslo', + 'login.resetPasswordBody': 'Vyberte si silné heslo, ktoré ste tu ešte nepoužili. Minimálne 8 znakov.', + 'login.resetPasswordMfaBody': 'Zadajte svoj 2FA kód alebo záložný kód na dokončenie obnovenia.', + 'login.resetPasswordSubmit': 'Obnoviť heslo', + 'login.resetPasswordVerify': 'Overiť a obnoviť', + 'login.resetPasswordSuccessTitle': 'Heslo aktualizované', + 'login.resetPasswordSuccessBody': 'Teraz sa môžete prihlásiť svojím novým heslom.', + 'login.resetPasswordInvalidLink': 'Neplatný odkaz na obnovenie', + 'login.resetPasswordInvalidLinkBody': 'Tento odkaz chýba alebo je poškodený. Pre pokračovanie si vyžiadajte nový.', + 'login.resetPasswordFailed': 'Obnovenie zlyhalo. Odkaz mohol vypršať.', + 'login.passkey.signIn': 'Prihlásiť sa pomocou prístupového kľúča', + 'login.passkey.failed': 'Prihlásenie prístupovým kľúčom zlyhalo. Skúste to prosím znova.', + 'login.insecureCookie.title': 'Prihlásenie cez HTTP nevydrží', + 'login.insecureCookie.body': + 'Pripájate sa cez obyčajné HTTP, takže váš prehliadač zahodí zabezpečený reláčný súbor cookie TREK — ďalšia požiadavka zlyhá s „Access token required“. Riešenie: použite HTTPS, alebo pre domáce laboratórium nastavte COOKIE_SECURE=false.', + 'login.insecureCookie.link': 'Otvoriť sprievodcu riešením problémov', +}; +export default login; diff --git a/shared/src/i18n/sk/map.ts b/shared/src/i18n/sk/map.ts new file mode 100644 index 000000000..e2a78eb45 --- /dev/null +++ b/shared/src/i18n/sk/map.ts @@ -0,0 +1,33 @@ +import type { TranslationStrings } from '../types'; + +const map: TranslationStrings = { + 'map.connections': 'Spojenia', + 'map.showConnections': 'Zobraziť trasy rezervácií', + 'map.hideConnections': 'Skryť trasy rezervácií', + 'poi.searchThisArea': 'Hľadať v tejto oblasti', + 'poi.cat.restaurants': 'Reštaurácie', + 'poi.cat.cafes': 'Kaviarne', + 'poi.cat.bars': 'Bary a nočný život', + 'poi.cat.hotels': 'Ubytovanie', + 'poi.cat.sights': 'Pamiatky', + 'poi.cat.museums': 'Múzeá a kultúra', + 'poi.cat.nature': 'Príroda a parky', + 'poi.cat.activities': 'Aktivity', + 'map.showAllConnections': 'Zobraziť všetky trasy rezervácií', + 'map.hideAllConnections': 'Skryť všetky trasy rezervácií', + 'map.baseLayer.default': 'Mapa', + 'map.baseLayer.satellite': 'Satelit', + 'map.baseLayer.switchToSatellite': 'Prepnúť na satelitné zobrazenie', + 'map.baseLayer.switchToDefault': 'Prepnúť na mapové zobrazenie', + 'map.location.denied': + 'Prístup k polohe je zablokovaný. Skontrolujte nastavenia zariadenia; nainštalovaná aplikácia má vlastné oprávnenie na polohu, nezávislé od prehliadača.', + 'map.location.unavailable': 'Vašu polohu sa nepodarilo zistiť.', + 'map.location.timeout': 'Zisťovanie polohy trvalo príliš dlho. Skúste to znova s voľným výhľadom na oblohu.', + 'map.overview.show': 'Zobraziť celú cestu', + 'map.overview.hide': 'Skryť celú cestu', + 'map.overview.total': 'Celková vzdialenosť', + 'map.attribution': 'Zdroje mapy', + 'map.overview.unrouted': '{count} úsek(ov) sa nepodarilo vypočítať, takže vzdialenosti sú neúplné.', + 'map.overview.dayUnrouted': '{count} úsek(ov) tohto dňa sa nepodarilo vypočítať', +}; +export default map; diff --git a/shared/src/i18n/sk/members.ts b/shared/src/i18n/sk/members.ts new file mode 100644 index 000000000..fd0f2f4fd --- /dev/null +++ b/shared/src/i18n/sk/members.ts @@ -0,0 +1,37 @@ +import type { TranslationStrings } from '../types'; + +const members: TranslationStrings = { + 'members.shareTrip': 'Zdieľať cestu', + 'members.inviteUser': 'Pozvať používateľa', + 'members.selectUser': 'Vyberte používateľa…', + 'members.invite': 'Pozvať', + 'members.allHaveAccess': 'Všetci používatelia už majú prístup.', + 'members.access': 'Prístup', + 'members.person': 'osoba', + 'members.persons': 'osôb', + 'members.you': 'vy', + 'members.owner': 'Vlastník', + 'members.leaveTrip': 'Opustiť cestu', + 'members.removeAccess': 'Odobrať prístup', + 'members.confirmLeave': 'Opustiť cestu? Stratíte prístup.', + 'members.confirmRemove': 'Odobrať prístup tomuto používateľovi?', + 'members.loadError': 'Nepodarilo sa načítať členov', + 'members.added': 'pridaný/á', + 'members.addError': 'Nepodarilo sa pridať', + 'members.removed': 'Člen odobraný', + 'members.removeError': 'Nepodarilo sa odobrať', + 'members.makeOwner': 'Nastaviť ako vlastníka', + 'members.confirmTransfer': 'Previesť vlastníctvo na {name}? Stanete sa bežným členom.', + 'members.transferError': 'Prevod vlastníctva zlyhal', + 'members.guests': 'Hostia', + 'members.guest': 'Hosť', + 'members.guestsHint': 'Ľudia bez účtu. Možno im priradiť náklady, balenie a úlohy, ale nemôžu sa prihlásiť.', + 'members.addGuest': 'Pridať hosťa', + 'members.guestNamePlaceholder': 'Meno hosťa', + 'members.guestAdded': 'Hosť pridaný', + 'members.guestAddError': 'Nepodarilo sa pridať hosťa', + 'members.guestRenameError': 'Nepodarilo sa premenovať hosťa', + 'members.guestRemoved': 'Hosť odobraný', + 'members.confirmRemoveGuest': 'Odobrať tohto hosťa? Jeho priradenia a podiely na nákladoch budú tiež odobrané.', +}; +export default members; diff --git a/shared/src/i18n/sk/memories.ts b/shared/src/i18n/sk/memories.ts new file mode 100644 index 000000000..e6cf412ad --- /dev/null +++ b/shared/src/i18n/sk/memories.ts @@ -0,0 +1,76 @@ +import type { TranslationStrings } from '../types'; + +const memories: TranslationStrings = { + 'memories.title': 'Fotky', + 'memories.notConnected': '{provider_name} nie je pripojený', + 'memories.notConnectedHint': + 'Pripojte svoju inštanciu {provider_name} v Nastaveniach, aby ste mohli pridávať fotky k tejto ceste.', + 'memories.notConnectedMultipleHint': + 'Pripojte v Nastaveniach ktoréhokoľvek z týchto poskytovateľov fotiek: {provider_names}, aby ste mohli pridávať fotky k tejto ceste.', + 'memories.noDates': 'Pridajte k ceste dátumy na načítanie fotiek.', + 'memories.noPhotos': 'Nenašli sa žiadne fotky', + 'memories.noPhotosHint': 'V {provider_name} sa nenašli žiadne fotky pre obdobie tejto cesty.', + 'memories.photosFound': 'fotiek', + 'memories.fromOthers': 'od ostatných', + 'memories.sharePhotos': 'Zdieľať fotky', + 'memories.sharing': 'Zdieľanie', + 'memories.reviewTitle': 'Skontrolujte svoje fotky', + 'memories.reviewHint': 'Kliknutím na fotky ich vylúčite zo zdieľania.', + 'memories.shareCount': 'Zdieľať {count} fotiek', + 'memories.providerUrl': 'URL servera', + 'memories.providerApiKey': 'API kľúč', + 'memories.providerUsername': 'Používateľské meno', + 'memories.providerPassword': 'Heslo', + 'memories.providerOTP': 'MFA kód (ak je povolený)', + 'memories.skipSSLVerification': 'Preskočiť overenie SSL certifikátu', + 'memories.immichAutoUpload': 'Zrkadliť fotky journey pri nahrávaní do Immich', + 'memories.providerUrlHintSynology': 'Do URL zahrňte cestu aplikácie Photos, napr. https://nas:5001/photo', + 'memories.testConnection': 'Otestovať pripojenie', + 'memories.testShort': 'Otestovať', + 'memories.testFirst': 'Najprv otestujte pripojenie', + 'memories.connected': 'Pripojené', + 'memories.disconnected': 'Nepripojené', + 'memories.connectionSuccess': 'Pripojené k {provider_name}', + 'memories.connectionError': 'Nepodarilo sa pripojiť k {provider_name}', + 'memories.saved': 'Nastavenia {provider_name} uložené', + 'memories.providerDisconnectedBanner': + 'Vaše pripojenie k {provider_name} bolo stratené. Obnovte pripojenie v Nastaveniach na zobrazenie fotiek.', + 'memories.saveError': 'Nepodarilo sa uložiť nastavenia {provider_name}', + 'memories.addPhotos': 'Pridať fotky', + 'memories.linkAlbum': 'Prepojiť album', + 'memories.selectAlbum': 'Vybrať album z {provider_name}', + 'memories.selectAlbumMultiple': 'Vybrať album', + 'memories.noAlbums': 'Nenašli sa žiadne albumy', + 'memories.syncAlbum': 'Synchronizovať album', + 'memories.unlinkAlbum': 'Odpojiť album', + 'memories.photos': 'fotiek', + 'memories.selectPhotos': 'Vybrať fotky z {provider_name}', + 'memories.selectPhotosMultiple': 'Vybrať fotky', + 'memories.selectHint': 'Ťuknutím na fotky ich vyberiete.', + 'memories.selected': 'vybraté', + 'memories.addSelected': 'Pridať {count} fotiek', + 'memories.alreadyAdded': 'Pridané', + 'memories.private': 'Súkromné', + 'memories.stopSharing': 'Zastaviť zdieľanie', + 'memories.oldest': 'Najstaršie', + 'memories.newest': 'Najnovšie', + 'memories.allLocations': 'Všetky miesta', + 'memories.tripDates': 'Dátumy cesty', + 'memories.allPhotos': 'Všetky fotky', + 'memories.confirmShareTitle': 'Zdieľať s členmi cesty?', + 'memories.confirmShareHint': + '{count} fotiek bude viditeľných pre všetkých členov tejto cesty. Jednotlivé fotky môžete neskôr nastaviť ako súkromné.', + 'memories.confirmShareButton': 'Zdieľať fotky', + 'memories.error.loadAlbums': 'Načítanie albumov zlyhalo', + 'memories.error.linkAlbum': 'Prepojenie albumu zlyhalo', + 'memories.error.unlinkAlbum': 'Odpojenie albumu zlyhalo', + 'memories.error.syncAlbum': 'Synchronizácia albumu zlyhala', + 'memories.error.loadPhotos': 'Načítanie fotiek zlyhalo', + 'memories.error.addPhotos': 'Pridanie fotiek zlyhalo', + 'memories.error.removePhoto': 'Odstránenie fotky zlyhalo', + 'memories.error.toggleSharing': 'Aktualizácia zdieľania zlyhala', + 'memories.saveRouteNotConfigured': 'Trasa na uloženie nie je pre tohto poskytovateľa nakonfigurovaná', + 'memories.testRouteNotConfigured': 'Testovacia trasa nie je pre tohto poskytovateľa nakonfigurovaná', + 'memories.fillRequiredFields': 'Vyplňte prosím všetky povinné polia', +}; +export default memories; diff --git a/shared/src/i18n/sk/mobileAdmin.ts b/shared/src/i18n/sk/mobileAdmin.ts new file mode 100644 index 000000000..9b739d39b --- /dev/null +++ b/shared/src/i18n/sk/mobileAdmin.ts @@ -0,0 +1,9 @@ +import type { TranslationStrings } from '../types'; + +const mobileAdmin: TranslationStrings = { + 'mobileAdmin.create': 'Nový používateľ', + 'mobileAdmin.updateAction': 'Aktualizovať', + 'mobileAdmin.updateLine': 'Verzia {version} k dispozícii · máte {current}', +}; + +export default mobileAdmin; diff --git a/shared/src/i18n/sk/mobileAtlas.ts b/shared/src/i18n/sk/mobileAtlas.ts new file mode 100644 index 000000000..20e9f7597 --- /dev/null +++ b/shared/src/i18n/sk/mobileAtlas.ts @@ -0,0 +1,8 @@ +import type { TranslationStrings } from '../types'; + +const mobileAtlas: TranslationStrings = { + 'mobileAtlas.visited': 'Navštívené', + 'mobileAtlas.planned': 'Plánované', +}; + +export default mobileAtlas; diff --git a/shared/src/i18n/sk/mobileCollections.ts b/shared/src/i18n/sk/mobileCollections.ts new file mode 100644 index 000000000..d3387caff --- /dev/null +++ b/shared/src/i18n/sk/mobileCollections.ts @@ -0,0 +1,7 @@ +import type { TranslationStrings } from '../types'; + +const mobileCollections: TranslationStrings = { + 'mobileCollections.status': 'Stav', +}; + +export default mobileCollections; diff --git a/shared/src/i18n/sk/mobileJourney.ts b/shared/src/i18n/sk/mobileJourney.ts new file mode 100644 index 000000000..6d8c96c58 --- /dev/null +++ b/shared/src/i18n/sk/mobileJourney.ts @@ -0,0 +1,17 @@ +import type { TranslationStrings } from '../types'; + +const mobileJourney: TranslationStrings = { + 'mobileJourney.latestJourney': 'Posledná cesta', + 'mobileJourney.otherJourneys': 'Ďalšie cesty', + 'mobileJourney.entriesCount': '{count} záznamov', + 'mobileJourney.photosCount': '{count} fotiek', + 'mobileJourney.placesCount': '{count} miest', + 'mobileJourney.daysCount': '{count} dní', + 'mobileJourney.time': 'Čas', + 'mobileJourney.tags': 'Štítky', + 'mobileJourney.addTag': 'Pridať štítok', + 'mobileJourney.uploadFromDevice': 'Nahrať zo zariadenia', + 'mobileJourney.browseProvider': 'Prehľadávať {name}', +}; + +export default mobileJourney; diff --git a/shared/src/i18n/sk/mobileNav.ts b/shared/src/i18n/sk/mobileNav.ts new file mode 100644 index 000000000..28b7f051f --- /dev/null +++ b/shared/src/i18n/sk/mobileNav.ts @@ -0,0 +1,9 @@ +import type { TranslationStrings } from '../types'; + +const mobileNav: TranslationStrings = { + 'mobileNav.journeySub': 'Cestovný denník', + 'mobileNav.collectionsSub': 'Uložené miesta', + 'mobileNav.more': 'Viac', +}; + +export default mobileNav; diff --git a/shared/src/i18n/sk/mobileSettings.ts b/shared/src/i18n/sk/mobileSettings.ts new file mode 100644 index 000000000..50f5f6cc4 --- /dev/null +++ b/shared/src/i18n/sk/mobileSettings.ts @@ -0,0 +1,7 @@ +import type { TranslationStrings } from '../types'; + +const mobileSettings: TranslationStrings = { + 'mobileSettings.blurBookingCodesHint': 'Skryť rezervačné kódy, kým na ne neťuknete, aby sa zobrazili', +}; + +export default mobileSettings; diff --git a/shared/src/i18n/sk/mobileTrip.ts b/shared/src/i18n/sk/mobileTrip.ts new file mode 100644 index 000000000..25b9be2a4 --- /dev/null +++ b/shared/src/i18n/sk/mobileTrip.ts @@ -0,0 +1,76 @@ +import type { TranslationStrings } from '../types'; + +const mobileTrip: TranslationStrings = { + 'mobileTrip.addBookingShort': 'Rezervácia', + 'mobileTrip.addNoteShort': 'Poznámka', + 'mobileTrip.addPlaceShort': 'Miesto', + 'mobileTrip.addToDayQuestion': 'Pridať do dňa?', + 'mobileTrip.addTransportShort': 'Doprava', + 'mobileTrip.allDays': 'Všetky dni', + 'mobileTrip.assignedDays': 'Priradené dni', + 'mobileTrip.assignmentNotes': 'Poznámky ku konkrétnemu dňu', + 'mobileTrip.bookingsEmpty': 'Zatiaľ žiadne rezervácie', + 'mobileTrip.collabFeatureDisabled': 'Táto funkcia je pre túto cestu vypnutá', + 'mobileTrip.compactView': 'Kompaktné zobrazenie', + 'mobileTrip.dayAnnounce': 'Deň {current} z {total}', + 'mobileTrip.dayTitlePlaceholder': 'Názov dňa', + 'mobileTrip.export': 'Exportovať', + 'mobileTrip.filesEmpty': 'Zatiaľ žiadne súbory', + 'mobileTrip.filesNext': 'Ďalší súbor', + 'mobileTrip.filesPrev': 'Predchádzajúci súbor', + 'mobileTrip.googleMaps': 'Google Maps', + 'mobileTrip.coMaps': 'CoMaps', + 'mobileTrip.icsDownload': 'Stiahnuť .ics', + 'mobileTrip.icsSubscribe': 'Prihlásiť sa na odber kalendára', + 'mobileTrip.icsSubscribeSub': 'Automaticky sa aktualizuje vo vašej kalendárovej aplikácii', + 'mobileTrip.importListSub': 'Vložte odkaz na zdieľaný zoznam', + 'mobileTrip.importPlaces': 'Importovať miesta', + 'mobileTrip.inCountdown': 'o {time}', + 'mobileTrip.listView': 'Zobrazenie zoznamu', + 'mobileTrip.mapView': 'Zobrazenie mapy', + 'mobileTrip.more': 'Viac', + 'mobileTrip.newCategory': 'Nová kategória', + 'mobileTrip.newReservation': 'Nová rezervácia', + 'mobileTrip.notes': 'Poznámky', + 'mobileTrip.onMap': 'Na mape', + 'mobileTrip.profileDriving': 'Autom', + 'mobileTrip.profileWalking': 'Pešo', + 'mobileTrip.renameDay': 'Premenovať deň', + 'mobileTrip.resBadge': 'Rezervácia', + 'mobileTrip.showOnMap': 'Zobraziť na mape', + 'mobileTrip.statDocuments': '{count} súborov', + 'mobileTrip.statPeople': '{count} ľudí', + 'mobileTrip.stay': 'Pobyt', + 'mobileTrip.tapAgainToDelete': 'Ťuknite znova pre odstránenie', + 'mobileTrip.todoOpenCount': '{count} otvorených', + 'mobileTrip.travel': 'Cestovanie', + 'mobileTrip.upNext': 'Ďalej na rade', + 'mobileTrip.viewDetails': 'Zobraziť podrobnosti', + 'mobileTrip.transportsEmpty': 'Zatiaľ žiadna doprava', + 'mobileTrip.rtInfoTitle': 'Údaje o jazde', + 'mobileTrip.rtDesktopNote': + 'Tieto údaje sa nastavujú na počítači, kde môžete tiež porovnávať alternatívne trasy a nechať deň sledovať importovanú stopu.', + 'mobileTrip.rtPlanOnDesktop': 'Plánovanie prebieha na počítači. Len čo má deň dve miesta, TREK jazdu vypočíta.', + 'mobileTrip.rtSearchOffline': 'Vyžaduje pripojenie: hľadanie číta trasu pred vami.', + 'mobileTrip.rtBehind': 'o {time} za plánom', + 'mobileTrip.rtStart': 'Začiatok', + 'mobileTrip.rtStayScope': + 'Doba pobytu patrí k miestu, takže platí pre každý deň, na ktorý je táto zastávka naplánovaná.', + 'mobileTrip.rtStayLess': 'o {count} minút menej', + 'mobileTrip.rtStayMore': 'o {count} minút viac', + 'mobileTrip.rtNightDesktopOnly': + 'Rezervácia noci na tomto mieste funguje v plánovači na počítači. Tu ju môžete iba zrušiť.', + 'mobileTrip.rtReach': 'Ako ďaleko', + 'mobileTrip.rtReachAhead': '{distance} pred vami', + 'mobileTrip.rtFromNext': 'Od vašej ďalšej zastávky', + 'mobileTrip.rtFromStart': 'Od začiatku etapy', + 'mobileTrip.rtNoneAhead': 'Na ceste pred vami nič nie je. Skúste celú etapu.', + 'mobileTrip.rtNoneOnStage': 'Nič také pozdĺž tejto etapy nie je.', + 'mobileTrip.rtTruncated.one': + '1 úsek mal viac, než sa zmestí do jednej odpovede. Vyberte menej druhov, aby ste videli zvyšok.', + 'mobileTrip.rtTruncated.other': + '{count} úsekov malo viac, než sa zmestí do jednej odpovede. Vyberte menej druhov, aby ste videli zvyšok.', + 'mobileTrip.rtNoDay': 'Nie je vybraný žiadny deň', + 'mobileTrip.rtNoDayHint': 'Mapa zobrazuje celú cestu. Ťuknite hore na deň a zobrazí sa jeho trasa.', +}; +export default mobileTrip; diff --git a/shared/src/i18n/sk/mobileVacay.ts b/shared/src/i18n/sk/mobileVacay.ts new file mode 100644 index 000000000..da75fbafc --- /dev/null +++ b/shared/src/i18n/sk/mobileVacay.ts @@ -0,0 +1,19 @@ +import type { TranslationStrings } from '../types'; + +const mobileVacay: TranslationStrings = { + 'mobileVacay.prevYear': 'Predchádzajúci rok', + 'mobileVacay.nextYear': 'Ďalší rok', + 'mobileVacay.prevMonth': 'Predchádzajúci mesiac', + 'mobileVacay.nextMonth': 'Ďalší mesiac', + 'mobileVacay.usedCount': '{count} využitých', + 'mobileVacay.leftCount': 'Zostáva {count}', + 'mobileVacay.left': 'zostáva', + 'mobileVacay.modeCompany': 'Firma', + 'mobileVacay.decreaseAllowance': 'Znížiť nárok', + 'mobileVacay.increaseAllowance': 'Zvýšiť nárok', + 'mobileVacay.companyLegend': 'Firemné dni', + 'mobileVacay.editCalendar': 'Upraviť kalendár', + 'mobileVacay.viewYear': 'Zobraziť rok', +}; + +export default mobileVacay; diff --git a/shared/src/i18n/sk/nav.ts b/shared/src/i18n/sk/nav.ts new file mode 100644 index 000000000..11a6d8f68 --- /dev/null +++ b/shared/src/i18n/sk/nav.ts @@ -0,0 +1,21 @@ +import type { TranslationStrings } from '../types'; + +const nav: TranslationStrings = { + 'nav.trip': 'Cesta', + 'nav.share': 'Zdieľať', + 'nav.settings': 'Nastavenia', + 'nav.admin': 'Správa', + 'nav.logout': 'Odhlásiť sa', + 'nav.lightMode': 'Svetlý režim', + 'nav.darkMode': 'Tmavý režim', + 'nav.autoMode': 'Automatický režim', + 'nav.administrator': 'Administrátor', + 'nav.myTrips': 'Moje cesty', + 'nav.profile': 'Profil', + 'nav.bottomSettings': 'Nastavenia', + 'nav.bottomAdmin': 'Nastavenia správcu', + 'nav.bottomLogout': 'Odhlásiť sa', + 'nav.bottomAdminBadge': 'Správca', + 'nav.help': 'Pomoc', +}; +export default nav; diff --git a/shared/src/i18n/sk/notif.ts b/shared/src/i18n/sk/notif.ts new file mode 100644 index 000000000..7d0b98d89 --- /dev/null +++ b/shared/src/i18n/sk/notif.ts @@ -0,0 +1,51 @@ +import type { TranslationStrings } from '../types'; + +const notif: TranslationStrings = { + 'notif.test.title': '[Test] Oznámenie', + 'notif.test.simple.text': 'Toto je jednoduché testovacie oznámenie.', + 'notif.test.boolean.text': 'Prijmete toto testovacie oznámenie?', + 'notif.test.navigate.text': 'Kliknutím nižšie prejdete na prehľad.', + 'notif.trip_invite.title': 'Pozvánka na výlet', + 'notif.trip_invite.text': '{actor} vás pozval na {trip}', + 'notif.booking_change.title': 'Rezervácia aktualizovaná', + 'notif.booking_change.text': '{actor} aktualizoval rezerváciu vo {trip}', + 'notif.trip_reminder.title': 'Pripomienka výletu', + 'notif.trip_reminder.text': 'Váš výlet {trip} sa čoskoro blíži!', + 'notif.todo_due.title': 'Úloha sa blíži', + 'notif.todo_due.text': '{todo} vo výlete {trip} má termín {due}', + 'notif.vacay_invite.title': 'Pozvánka Vacay Fusion', + 'notif.vacay_invite.text': '{actor} vás pozval na spojenie dovolenkových plánov', + 'notif.vacay_share.title': 'Kalendár Vacay zdieľaný', + 'notif.vacay_share.text': '{actor} s vami zdieľal svoj kalendár dovoleniek', + 'notif.collection_invite.title': 'Pozvánka do zbierky', + 'notif.collection_invite.text': '{actor} vás pozval na zdieľanie zbierky', + 'notif.photos_shared.title': 'Fotky zdieľané', + 'notif.photos_shared.text': '{actor} zdieľal {count} fotku(-iek) vo {trip}', + 'notif.collab_message.title': 'Nová správa', + 'notif.collab_message.text': '{actor} poslal správu vo {trip}', + 'notif.packing_tagged.title': 'Priradenie balenia', + 'notif.packing_tagged.text': '{actor} vás priradil ku {category} vo {trip}', + 'notif.version_available.title': 'Nová verzia dostupná', + 'notif.version_available.text': 'TREK {version} je teraz dostupný', + 'notif.replica_failure.title': 'Zlyhanie repliky úložiska', + 'notif.replica_failure.text': "Zápis do repliky na '{backend}' zlyhal: {op} položky {key} — {error}", + 'notif.replica_failure.textSuppressed': + "Zápis do repliky na '{backend}' zlyhal: {op} položky {key} — {error}. Od posledného oznámenia bolo potlačených {suppressed} ďalších zlyhaní.", + 'notif.action.view_trip': 'Zobraziť výlet', + 'notif.action.view_collab': 'Zobraziť správy', + 'notif.action.view_packing': 'Zobraziť balenie', + 'notif.action.view_photos': 'Zobraziť fotky', + 'notif.action.view_vacay': 'Zobraziť Vacay', + 'notif.action.view_collection': 'Zobraziť zbierku', + 'notif.action.view_admin': 'Prejsť do administrácie', + 'notif.action.view': 'Zobraziť', + 'notif.action.accept': 'Prijať', + 'notif.action.decline': 'Odmietnuť', + 'notif.plugin.title': '{title}', + 'notif.plugin.text': '{body}', + 'notif.generic.title': 'Oznámenie', + 'notif.generic.text': 'Máte nové oznámenie', + 'notif.dev.unknown_event.title': '[DEV] Neznáma udalosť', + 'notif.dev.unknown_event.text': 'Typ udalosti "{event}" nie je registrovaný v EVENT_NOTIFICATION_CONFIG', +}; +export default notif; diff --git a/shared/src/i18n/sk/notifications.ts b/shared/src/i18n/sk/notifications.ts new file mode 100644 index 000000000..2a23c12c4 --- /dev/null +++ b/shared/src/i18n/sk/notifications.ts @@ -0,0 +1,36 @@ +import type { TranslationStrings } from '../types'; + +const notifications: TranslationStrings = { + 'notifications.title': 'Oznámenia', + 'notifications.markAllRead': 'Označiť všetko ako prečítané', + 'notifications.deleteAll': 'Zmazať všetko', + 'notifications.showAll': 'Zobraziť všetky oznámenia', + 'notifications.empty': 'Žiadne oznámenia', + 'notifications.emptyDescription': 'Všetko máte prečítané!', + 'notifications.all': 'Všetko', + 'notifications.unreadOnly': 'Neprečítané', + 'notifications.markRead': 'Označiť ako prečítané', + 'notifications.markUnread': 'Označiť ako neprečítané', + 'notifications.delete': 'Zmazať', + 'notifications.system': 'Systém', + 'notifications.synologySessionCleared.title': 'Synology Photos odpojené', + 'notifications.synologySessionCleared.text': + 'Váš server alebo účet sa zmenil — prejdite do Nastavení a znovu otestujte pripojenie.', + 'notifications.versionAvailable.title': 'Dostupná aktualizácia', + 'notifications.versionAvailable.text': 'TREK {version} je teraz k dispozícii.', + 'notifications.versionAvailable.button': 'Zobraziť podrobnosti', + 'notifications.test.title': 'Testovacie oznámenie od {actor}', + 'notifications.test.text': 'Toto je jednoduché testovacie oznámenie.', + 'notifications.test.booleanTitle': '{actor} žiada o vaše schválenie', + 'notifications.test.booleanText': 'Toto je testovacie oznámenie s voľbou. Vyberte akciu nižšie.', + 'notifications.test.accept': 'Schváliť', + 'notifications.test.decline': 'Odmietnuť', + 'notifications.test.navigateTitle': 'Pozrite sa na toto', + 'notifications.test.navigateText': 'Toto je testovacie navigačné oznámenie.', + 'notifications.test.goThere': 'Prejsť tam', + 'notifications.test.adminTitle': 'Hromadná správa pre správcov', + 'notifications.test.adminText': '{actor} odoslal testovacie oznámenie všetkým správcom.', + 'notifications.test.tripTitle': '{actor} prispel do vášho výletu', + 'notifications.test.tripText': 'Testovacie oznámenie pre výlet "{trip}".', +}; +export default notifications; diff --git a/shared/src/i18n/sk/oauth.ts b/shared/src/i18n/sk/oauth.ts new file mode 100644 index 000000000..ec6987931 --- /dev/null +++ b/shared/src/i18n/sk/oauth.ts @@ -0,0 +1,118 @@ +import type { TranslationStrings } from '../types'; + +const oauth: TranslationStrings = { + 'oauth.scope.group.trips': 'Cesty', + 'oauth.scope.group.places': 'Miesta', + 'oauth.scope.group.collections': 'Kolekcie', + 'oauth.scope.group.atlas': 'Atlas', + 'oauth.scope.group.packing': 'Balenie', + 'oauth.scope.group.todos': 'Úlohy', + 'oauth.scope.group.budget': 'Rozpočet', + 'oauth.scope.group.reservations': 'Rezervácie', + 'oauth.scope.group.collab': 'Spolupráca', + 'oauth.scope.group.notifications': 'Oznámenia', + 'oauth.scope.group.vacay': 'Dovolenka', + 'oauth.scope.group.geo': 'Geo', + 'oauth.scope.group.weather': 'Počasie', + 'oauth.scope.group.journey': 'Cestovný denník', + 'oauth.scope.trips:read.label': 'Zobraziť cesty a itineráre', + 'oauth.scope.trips:read.description': 'Čítať cesty, dni, poznámky k dňom a členov', + 'oauth.scope.trips:write.label': 'Upraviť cesty a itineráre', + 'oauth.scope.trips:write.description': 'Vytvárať a aktualizovať cesty, dni, poznámky a spravovať členov', + 'oauth.scope.trips:delete.label': 'Mazať cesty', + 'oauth.scope.trips:delete.description': 'Trvalo zmazať celé cesty — táto akcia je nezvratná', + 'oauth.scope.trips:share.label': 'Spravovať zdieľané odkazy', + 'oauth.scope.trips:share.description': 'Vytvárať, aktualizovať a rušiť verejné zdieľané odkazy na cesty', + 'oauth.scope.places:read.label': 'Zobraziť miesta a mapové dáta', + 'oauth.scope.places:read.description': 'Čítať miesta, priradenia k dňom, štítky a kategórie', + 'oauth.scope.places:write.label': 'Spravovať miesta', + 'oauth.scope.places:write.description': 'Vytvárať, aktualizovať a mazať miesta, priradenia a štítky', + 'oauth.scope.collections:read.label': 'Zobraziť kolekcie', + 'oauth.scope.collections:read.description': 'Čítať kolekcie uložených miest, ich miesta, hodnotenia, štítky a členov', + 'oauth.scope.collections:write.label': 'Spravovať kolekcie', + 'oauth.scope.collections:write.description': + 'Vytvárať a upravovať kolekcie, ukladať, hodnotiť, označovať a kopírovať miesta a zdieľať zoznamy', + 'oauth.scope.atlas:read.label': 'Zobraziť Atlas', + 'oauth.scope.atlas:read.description': 'Čítať navštívené krajiny, regióny a zoznam želaní', + 'oauth.scope.atlas:write.label': 'Spravovať Atlas', + 'oauth.scope.atlas:write.description': 'Označovať navštívené krajiny a regióny, spravovať zoznam želaní', + 'oauth.scope.packing:read.label': 'Zobraziť zoznamy balenia', + 'oauth.scope.packing:read.description': 'Čítať položky balenia, tašky a priradenia kategórií', + 'oauth.scope.packing:write.label': 'Spravovať zoznamy balenia', + 'oauth.scope.packing:write.description': + 'Pridávať, aktualizovať, mazať, prepínať a preusporadúvať položky balenia a tašky', + 'oauth.scope.todos:read.label': 'Zobraziť zoznamy úloh', + 'oauth.scope.todos:read.description': 'Čítať úlohy cesty a priradenia kategórií', + 'oauth.scope.todos:write.label': 'Spravovať zoznamy úloh', + 'oauth.scope.todos:write.description': 'Vytvárať, aktualizovať, prepínať, mazať a preusporadúvať úlohy', + 'oauth.scope.budget:read.label': 'Zobraziť rozpočet', + 'oauth.scope.budget:read.description': 'Čítať položky rozpočtu a prehľad výdavkov', + 'oauth.scope.budget:write.label': 'Spravovať rozpočet', + 'oauth.scope.budget:write.description': 'Vytvárať, aktualizovať a mazať položky rozpočtu', + 'oauth.scope.reservations:read.label': 'Zobraziť rezervácie', + 'oauth.scope.reservations:read.description': 'Čítať rezervácie a podrobnosti o ubytovaní', + 'oauth.scope.reservations:write.label': 'Spravovať rezervácie', + 'oauth.scope.reservations:write.description': 'Vytvárať, aktualizovať, mazať a preusporadúvať rezervácie', + 'oauth.scope.collab:read.label': 'Zobraziť spoluprácu', + 'oauth.scope.collab:read.description': 'Čítať poznámky, ankety a správy spolupráce', + 'oauth.scope.collab:write.label': 'Spravovať spoluprácu', + 'oauth.scope.collab:write.description': 'Vytvárať, aktualizovať a mazať poznámky, ankety a správy spolupráce', + 'oauth.scope.notifications:read.label': 'Zobraziť oznámenia', + 'oauth.scope.notifications:read.description': 'Čítať oznámenia v aplikácii a počty neprečítaných', + 'oauth.scope.notifications:write.label': 'Spravovať oznámenia', + 'oauth.scope.notifications:write.description': 'Označovať oznámenia ako prečítané a reagovať na ne', + 'oauth.scope.vacay:read.label': 'Zobraziť plány dovolenky', + 'oauth.scope.vacay:read.description': 'Čítať dáta plánovania dovolenky, záznamy a štatistiky', + 'oauth.scope.vacay:write.label': 'Spravovať plány dovolenky', + 'oauth.scope.vacay:write.description': 'Vytvárať a spravovať záznamy dovolenky, sviatky a tímové plány', + 'oauth.scope.geo:read.label': 'Mapy a geokódovanie', + 'oauth.scope.geo:read.description': 'Vyhľadávať miesta, riešiť URL máp a spätne geokódovať súradnice', + 'oauth.scope.weather:read.label': 'Predpovede počasia', + 'oauth.scope.weather:read.description': 'Získavať predpovede počasia pre miesta a dátumy cesty', + 'oauth.scope.journey:read.label': 'Zobraziť cestovné denníky', + 'oauth.scope.journey:read.description': 'Čítať cestovné denníky, záznamy a zoznam prispievateľov', + 'oauth.scope.journey:write.label': 'Spravovať cestovné denníky', + 'oauth.scope.journey:write.description': 'Vytvárať, aktualizovať a mazať cestovné denníky a ich záznamy', + 'oauth.scope.journey:share.label': 'Spravovať odkazy na cestovné denníky', + 'oauth.scope.journey:share.description': 'Vytvárať, aktualizovať a rušiť verejné zdieľané odkazy na cestovné denníky', + 'oauth.authorize.authorizing': 'Autorizuje sa…', + 'oauth.authorize.loading': 'Načítava sa…', + 'oauth.authorize.errorTitle': 'Chyba autorizácie', + 'oauth.authorize.loginTitle': 'Pre pokračovanie sa prihláste', + 'oauth.authorize.loginDescription': '{client} žiada o prístup k vášmu účtu TREK. Najprv sa prosím prihláste.', + 'oauth.authorize.loginButton': 'Prihlásiť sa do TREK', + 'oauth.authorize.requestLabel': 'Žiadosť o autorizáciu', + 'oauth.authorize.requestDescription': 'Táto aplikácia žiada o prístup k vášmu účtu TREK.', + 'oauth.authorize.trustNote': + 'Prístup udeľujte len aplikáciám, ktorým dôverujete. Vaše dáta zostávajú na vašom serveri.', + 'oauth.authorize.selectScope': 'Vyberte aspoň jedno oprávnenie', + 'oauth.authorize.approveOneScope': 'Schváliť ({count} oprávnenie)', + 'oauth.authorize.approveManyScopes': 'Schváliť ({count} oprávnení)', + 'oauth.authorize.approveAccess': 'Schváliť prístup', + 'oauth.authorize.deny': 'Zamietnuť', + 'oauth.authorize.choosePermissions': 'Vyberte, ktoré oprávnenia udeliť', + 'oauth.authorize.permissionsRequested': 'Požadované oprávnenia', + 'oauth.authorize.alwaysIncluded': 'Vždy zahrnuté', + 'oauth.authorize.alwaysTool.listTrips': 'Vypísať vaše cesty, aby AI mohla zistiť ID ciest', + 'oauth.authorize.alwaysTool.getTripSummary': 'Prečítať prehľad cesty potrebný na použitie akéhokoľvek iného nástroja', + 'oauth.scope.group.files': 'Súbory', + 'oauth.scope.group.settings': 'Nastavenia', + 'oauth.scope.files:read.label': 'Zobraziť súbory cesty', + 'oauth.scope.files:read.description': + 'Vypísať dokumenty cesty: názvy, veľkosti, kto ich nahral a k čomu sú pripojené', + 'oauth.scope.files:write.label': 'Spravovať súbory cesty', + 'oauth.scope.files:write.description': + 'Premenovať a popísať súbory, pripojiť ich k rezerváciám a miestam, označiť hviezdičkou a presunúť do koša', + 'oauth.scope.files:content.label': 'Čítať obsah súborov', + 'oauth.scope.files:content.description': 'Prečítať obsah nahraného dokumentu, napríklad PDF rezervácie alebo lístok', + 'oauth.scope.settings:read.label': 'Zobraziť vaše predvoľby', + 'oauth.scope.settings:read.description': 'Čítať jednotky, formát času, jazyk, predvolenú menu a úvodnú stránku', + 'oauth.scope.settings:write.label': 'Zmeniť vaše predvoľby', + 'oauth.scope.settings:write.description': + 'Zmeniť jednotky, formát času, jazyk, predvolenú menu a úvodnú stránku. Nikdy nie uložené API kľúče', + 'oauth.scope.group.plugins': 'Doplnky', + 'oauth.scope.plugins:use.label': 'Spúšťať nástroje doplnkov', + 'oauth.scope.plugins:use.description': + 'Umožní tomuto klientovi volať nástroje zverejnené doplnkami, ktoré správca nainštaloval a schválil. Každý doplnok koná s oprávneniami, ktoré už dostal, nie s rozsahmi tohto tokenu', +}; +export default oauth; diff --git a/shared/src/i18n/sk/packing.ts b/shared/src/i18n/sk/packing.ts new file mode 100644 index 000000000..c9986a6cc --- /dev/null +++ b/shared/src/i18n/sk/packing.ts @@ -0,0 +1,213 @@ +import type { TranslationStrings } from '../types'; + +const packing: TranslationStrings = { + 'packing.actions': 'Akcie', + 'packing.editDone': 'Hotovo', + 'packing.personalEmptyHint': 'Váš osobný zoznam je prázdny — skopírujte sem zdieľané položky alebo pridajte vlastné.', + 'packing.assignMembers': 'Priradiť členov', + 'packing.categoryOptions': 'Možnosti zoznamu', + 'packing.editItem': 'Upraviť položku', + 'packing.itemName': 'Názov', + 'packing.itemQuantity': 'Množstvo', + 'packing.itemWeight': 'Hmotnosť (g)', + 'packing.title': 'Zoznam vecí', + 'packing.empty': 'Zoznam vecí je prázdny', + 'packing.import': 'Importovať', + 'packing.importTitle': 'Importovať zoznam vecí', + 'packing.importHint': + 'Jedna položka na riadok. Formát: Kategória, Názov, Hmotnosť v g (voliteľné), Zavazadlo (voliteľné), checked/unchecked (voliteľné)', + 'packing.importPlaceholder': + 'Hygiena, Zubná kefka\nOblečenie, Tričká, 200\nDokumenty, Pas, , Príručná batožina\nElektronika, Nabíjačka, 50, Kufor, checked', + 'packing.importCsv': 'Načítať CSV/TXT', + 'packing.importAction': 'Importovať {count}', + 'packing.importSuccess': '{count} položiek importovaných', + 'packing.importError': 'Import zlyhal', + 'packing.importEmpty': 'Žiadne položky na import', + 'packing.progress': '{packed} z {total} zabalených ({percent} %)', + 'packing.clearChecked': 'Odstrániť {count} označených', + 'packing.clearCheckedShort': 'Odstrániť {count}', + 'packing.suggestions': 'Návrhy', + 'packing.suggestionsTitle': 'Pridať návrhy', + 'packing.allSuggested': 'Všetky návrhy boli pridané', + 'packing.allPacked': 'Všetko je zabalené!', + 'packing.addPlaceholder': 'Pridať novú položku...', + 'packing.categoryPlaceholder': 'Zoznam...', + 'packing.filterAll': 'Všetko', + 'packing.filterOpen': 'Na zabalenie', + 'packing.filterDone': 'Hotovo', + 'packing.emptyTitle': 'Zoznam vecí je prázdny', + 'packing.emptyHint': 'Pridajte položky alebo použite návrhy', + 'packing.emptyFiltered': 'Žiadne položky nezodpovedajú tomuto filtru', + 'packing.menuRename': 'Premenovať', + 'packing.menuCheckAll': 'Označiť všetko', + 'packing.menuUncheckAll': 'Odznačiť všetko', + 'packing.menuDeleteCat': 'Odstrániť zoznam', + 'packing.noMembers': 'Žiadni členovia cesty', + 'packing.addItem': 'Pridať položku', + 'packing.addItemPlaceholder': 'Názov položky...', + 'packing.addCategory': 'Pridať zoznam', + 'packing.newCategoryPlaceholder': 'Názov zoznamu (napr. Oblečenie)', + 'packing.applyTemplate': 'Použiť šablónu', + 'packing.template': 'Šablóna', + 'packing.templateApplied': '{count} položiek pridaných zo šablóny', + 'packing.templateError': 'Šablónu sa nepodarilo použiť', + 'packing.saveAsTemplate': 'Uložiť ako šablónu', + 'packing.templateName': 'Názov šablóny', + 'packing.templateSaved': 'Zoznam vecí uložený ako šablóna', + 'packing.bags': 'Zavazadlá', + 'packing.noBag': 'Nepriradené', + 'packing.totalWeight': 'Celková hmotnosť', + 'packing.quantity': 'Počet', + 'packing.bagName': 'Názov zavazadla...', + 'packing.addBag': 'Pridať zavazadlo', + 'packing.changeCategory': 'Presunúť do zoznamu', + 'packing.makePrivate': 'Nastaviť ako súkromné', + 'packing.makePublic': 'Zdieľať', + 'packing.privateHint': 'Súkromné — vidíte len vy', + 'packing.viewCommon': 'Zdieľané', + 'packing.viewPersonal': 'Môj zoznam', + 'packing.share': 'Zdieľanie', + 'packing.tierCommonHint': 'V spoločnom fonde, viditeľné pre všetkých', + 'packing.tierPersonal': 'Osobné', + 'packing.tierPersonalHint': 'Súkromné — vidíte to len vy', + 'packing.tierShared': 'Zdieľať s…', + 'packing.noOneToShare': 'Zatiaľ nikto ďalší na tejto ceste', + 'packing.takenCareOf': 'od {name}', + 'packing.sharedWithCount': 'zdieľané s {count}', + 'packing.broughtBy': 'prináša {name}', + 'packing.alsoBring': 'Môžem to vziať tiež', + 'packing.alsoBringingStop': 'Neberiem to', + 'packing.cloneToMine': 'Kopírovať do môjho zoznamu', + 'packing.confirm.clearChecked': 'Naozaj chcete odstrániť {count} označených položiek?', + 'packing.confirm.deleteCat': 'Naozaj chcete odstrániť zoznam „{name}“ s {count} položkami?', + 'packing.defaultCategory': 'Ostatné', + 'packing.toast.saveError': 'Uloženie zlyhalo', + 'packing.toast.deleteError': 'Odstránenie zlyhalo', + 'packing.toast.renameError': 'Premenovanie zlyhalo', + 'packing.toast.addError': 'Pridanie zlyhalo', + 'packing.suggestions.items': [ + { + name: 'Pas', + category: 'Dokumenty', + }, + { + name: 'Občiansky preukaz', + category: 'Dokumenty', + }, + { + name: 'Cestovné poistenie', + category: 'Dokumenty', + }, + { + name: 'Letenky', + category: 'Dokumenty', + }, + { + name: 'Platobná karta', + category: 'Financie', + }, + { + name: 'Hotovosť', + category: 'Financie', + }, + { + name: 'Vízum', + category: 'Dokumenty', + }, + { + name: 'Tričká', + category: 'Oblečenie', + }, + { + name: 'Nohavice', + category: 'Oblečenie', + }, + { + name: 'Spodná bielizeň', + category: 'Oblečenie', + }, + { + name: 'Ponožky', + category: 'Oblečenie', + }, + { + name: 'Bunda', + category: 'Oblečenie', + }, + { + name: 'Pyžamo', + category: 'Oblečenie', + }, + { + name: 'Plavky', + category: 'Oblečenie', + }, + { + name: 'Pláštenka', + category: 'Oblečenie', + }, + { + name: 'Pohodlné topánky', + category: 'Oblečenie', + }, + { + name: 'Zubná kefka', + category: 'Hygiena', + }, + { + name: 'Zubná pasta', + category: 'Hygiena', + }, + { + name: 'Šampón', + category: 'Hygiena', + }, + { + name: 'Dezodorant', + category: 'Hygiena', + }, + { + name: 'Opaľovací krém', + category: 'Hygiena', + }, + { + name: 'Holiaci strojček', + category: 'Hygiena', + }, + { + name: 'Nabíjačka', + category: 'Elektronika', + }, + { + name: 'Powerbanka', + category: 'Elektronika', + }, + { + name: 'Slúchadlá', + category: 'Elektronika', + }, + { + name: 'Cestovný adaptér', + category: 'Elektronika', + }, + { + name: 'Fotoaparát', + category: 'Elektronika', + }, + { + name: 'Lieky proti bolesti', + category: 'Zdravie', + }, + { + name: 'Náplasti', + category: 'Zdravie', + }, + { + name: 'Dezinfekcia', + category: 'Zdravie', + }, + ], + 'packing.bagLimit': 'Hmotnostný limit', + 'packing.setBagLimit': 'Nastaviť limit', +}; +export default packing; diff --git a/shared/src/i18n/sk/pdf.ts b/shared/src/i18n/sk/pdf.ts new file mode 100644 index 000000000..6c0ad18e7 --- /dev/null +++ b/shared/src/i18n/sk/pdf.ts @@ -0,0 +1,14 @@ +import type { TranslationStrings } from '../types'; + +const pdf: TranslationStrings = { + 'pdf.travelPlan': 'Cestovný plán', + 'pdf.planned': 'Naplánované', + 'pdf.costLabel': 'Náklady', + 'pdf.preview': 'Náhľad PDF', + 'pdf.saveAsPdf': 'Uložiť ako PDF', + 'pdf.pageBreakPerDay': 'Zalomenie strany pre každý deň', + 'pdf.mapTitle': 'Prehľad trasy', + 'pdf.distanceLabel': 'Vzdialenosť', + 'pdf.mapCredit': 'Obrysy krajín: geoBoundaries (CC BY 4.0)', +}; +export default pdf; diff --git a/shared/src/i18n/sk/perm.ts b/shared/src/i18n/sk/perm.ts new file mode 100644 index 000000000..f71e3b95b --- /dev/null +++ b/shared/src/i18n/sk/perm.ts @@ -0,0 +1,51 @@ +import type { TranslationStrings } from '../types'; + +const perm: TranslationStrings = { + 'perm.title': 'Nastavenia oprávnení', + 'perm.subtitle': 'Určte, kto môže vykonávať akcie v celej aplikácii', + 'perm.saved': 'Nastavenia oprávnení uložené', + 'perm.resetDefaults': 'Obnoviť predvolené', + 'perm.customized': 'upravené', + 'perm.level.admin': 'Iba administrátor', + 'perm.level.tripOwner': 'Vlastník výletu', + 'perm.level.tripMember': 'Členovia výletu', + 'perm.level.everybody': 'Všetci', + 'perm.cat.trip': 'Správa výletov', + 'perm.cat.members': 'Správa členov', + 'perm.cat.files': 'Súbory', + 'perm.cat.content': 'Obsah a plán', + 'perm.cat.extras': 'Rozpočet, balenie a spolupráca', + 'perm.action.trip_create': 'Vytvárať výlety', + 'perm.action.trip_edit': 'Upraviť detaily výletu', + 'perm.action.trip_delete': 'Zmazať výlety', + 'perm.action.trip_archive': 'Archivovať / obnoviť výlety', + 'perm.action.trip_cover_upload': 'Nahrať titulný obrázok', + 'perm.action.member_manage': 'Pridať / odobrať členov', + 'perm.action.file_upload': 'Nahrať súbory', + 'perm.action.file_edit': 'Upraviť metadáta súborov', + 'perm.action.file_delete': 'Zmazať súbory', + 'perm.action.place_edit': 'Pridať / upraviť / zmazať miesta', + 'perm.action.day_edit': 'Upraviť dni, poznámky a priradenia', + 'perm.action.reservation_edit': 'Spravovať rezervácie', + 'perm.action.budget_edit': 'Spravovať rozpočet', + 'perm.action.packing_edit': 'Spravovať zoznamy balenia', + 'perm.action.collab_edit': 'Spolupráca (poznámky, hlasovania, chat)', + 'perm.action.share_manage': 'Spravovať odkazy na zdieľanie', + 'perm.actionHint.trip_create': 'Kto môže vytvárať nové výlety', + 'perm.actionHint.trip_edit': 'Kto môže meniť názov, dátumy, popis a menu výletu', + 'perm.actionHint.trip_delete': 'Kto môže trvalo zmazať výlet', + 'perm.actionHint.trip_archive': 'Kto môže archivovať alebo obnoviť výlet', + 'perm.actionHint.trip_cover_upload': 'Kto môže nahrať alebo zmeniť titulný obrázok', + 'perm.actionHint.member_manage': 'Kto môže pozvať alebo odobrať členov výletu', + 'perm.actionHint.file_upload': 'Kto môže nahrávať súbory k výletu', + 'perm.actionHint.file_edit': 'Kto môže upravovať popisy a odkazy súborov', + 'perm.actionHint.file_delete': 'Kto môže presunúť súbory do koša alebo ich trvalo zmazať', + 'perm.actionHint.place_edit': 'Kto môže pridávať, upravovať alebo mazať miesta', + 'perm.actionHint.day_edit': 'Kto môže upravovať dni, poznámky ku dňom a priradenia miest', + 'perm.actionHint.reservation_edit': 'Kto môže vytvárať, upravovať alebo mazať rezervácie', + 'perm.actionHint.budget_edit': 'Kto môže vytvárať, upravovať alebo mazať položky rozpočtu', + 'perm.actionHint.packing_edit': 'Kto môže spravovať položky balenia a tašky', + 'perm.actionHint.collab_edit': 'Kto môže vytvárať poznámky, hlasovania a posielať správy', + 'perm.actionHint.share_manage': 'Kto môže vytvárať alebo mazať verejné odkazy na zdieľanie', +}; +export default perm; diff --git a/shared/src/i18n/sk/photos.ts b/shared/src/i18n/sk/photos.ts new file mode 100644 index 000000000..3b110f041 --- /dev/null +++ b/shared/src/i18n/sk/photos.ts @@ -0,0 +1,25 @@ +import type { TranslationStrings } from '../types'; + +const photos: TranslationStrings = { + 'photos.title': 'Fotografie', + 'photos.subtitle': '{count} fotiek pre {trip}', + 'photos.dropHere': 'Presuňte fotografie sem...', + 'photos.dropHereActive': 'Presuňte fotografie sem', + 'photos.captionForAll': 'Popis (pre všetky)', + 'photos.captionPlaceholder': 'Voliteľný popis...', + 'photos.addCaption': 'Pridať popis...', + 'photos.allDays': 'Všetky dni', + 'photos.noPhotos': 'Zatiaľ žiadne fotky', + 'photos.uploadHint': 'Nahrajte svoje cestovateľské fotky', + 'photos.clickToSelect': 'alebo kliknite pre výber', + 'photos.linkPlace': 'Prepojiť s miestom', + 'photos.noPlace': 'Žiadne miesto', + 'photos.uploadN': 'Nahrať {n} fotiek', + 'photos.linkDay': 'Prepojiť deň', + 'photos.noDay': 'Žiadny deň', + 'photos.dayLabel': 'Deň {number}', + 'photos.photoSelected': 'Fotografia vybraná', + 'photos.photosSelected': 'Fotografie vybrané', + 'photos.fileTypeHint': 'JPG, PNG, WebP · max. 10 MB · až 30 fotografií', +}; +export default photos; diff --git a/shared/src/i18n/sk/places.ts b/shared/src/i18n/sk/places.ts new file mode 100644 index 000000000..66be4cd79 --- /dev/null +++ b/shared/src/i18n/sk/places.ts @@ -0,0 +1,137 @@ +import type { TranslationStrings } from '../types'; + +const places: TranslationStrings = { + 'places.addPlace': 'Pridať miesto/aktivitu', + 'places.addToSelectedDay': 'Pridať k otvorenému dňu', + 'places.addPlaceShort': 'Nové miesto', + 'places.addToDayShort': 'Ku dňu', + 'places.importFile': 'Importovať súbor', + 'places.trackIndicator': 'Trasa / cesta', + 'places.sidebarDrop': 'Pustite pre import', + 'places.importFileHint': + 'Importujte súbory .gpx, .kml alebo .kmz z nástrojov ako Google My Maps, Google Earth alebo GPS tracker.', + 'places.importFileDropHere': 'Kliknutím vyberte súbor alebo ho sem pretiahnite', + 'places.importFileDropActive': 'Pretiahnite súbor na výber', + 'places.importFileUnsupported': 'Nepodporovaný typ súboru. Použite .gpx, .kml alebo .kmz.', + 'places.importFileTooLarge': 'Súbor je príliš veľký. Maximálna veľkosť nahrania je {maxMb} MB.', + 'places.importFileError': 'Import zlyhal', + 'places.importAllSkipped': 'Všetky miesta už boli v ceste.', + 'places.gpxImported': '{count} miest importovaných z GPX', + 'places.gpxImportTypes': 'Čo chcete importovať?', + 'places.gpxImportWaypoints': 'Trasové body', + 'places.gpxImportRoutes': 'Trasy', + 'places.gpxImportTracks': 'Trasy GPS (s geometriou cesty)', + 'places.gpxImportNoneSelected': 'Vyberte aspoň jeden typ na import.', + 'places.kmlImportTypes': 'Čo chcete importovať?', + 'places.kmlImportPoints': 'Body (Placemarks)', + 'places.kmlImportPaths': 'Cesty (LineStrings)', + 'places.kmlImportNoneSelected': 'Vyberte aspoň jeden typ na import.', + 'places.selectionCount': '{count} vybraných', + 'places.deleteSelected': 'Vymazať vybrané', + 'places.changeCategory': 'Zmeniť kategóriu', + 'places.categoryChanged': '{count} miest aktualizovaných', + 'places.kmlKmzImported': '{count} miest importovaných z KMZ/KML', + 'places.urlResolved': 'Miesto importované z URL', + 'places.importList': 'Import zoznamu', + 'places.kmlKmzSummaryValues': 'Placemarks: {total} • Importované: {created} • Preskočené: {skipped}', + 'places.importGoogleList': 'Zoznam Google', + 'places.importNaverList': 'Zoznam Naver', + 'places.googleListHint': 'Vložte zdieľaný odkaz na zoznam Google Maps na import všetkých miest.', + 'places.googleDirHint': 'Funguje aj odkaz na trasu: jeho zastávky sa stanú miestami, v poradí jazdy.', + 'places.googleListImported': '{count} miest importovaných zo zoznamu „{list}“', + 'places.googleListError': 'Import zoznamu Google Maps zlyhal', + 'places.naverListHint': 'Vložte zdieľaný odkaz na zoznam Naver Maps na import všetkých miest.', + 'places.naverListImported': '{count} miest importovaných zo zoznamu „{list}“', + 'places.naverListError': 'Import zoznamu Naver Maps zlyhal', + 'places.viewDetails': 'Zobraziť detaily', + 'places.assignToDay': 'Pridať do ktorého dňa?', + 'places.all': 'Všetko', + 'places.unplanned': 'Nezaradené', + 'places.planned': 'Naplánované', + /** Shown under the filter tabs while an open day narrows both the list and the map. */ + 'places.dayScoped': 'Zobrazuje sa iba otvorený deň', + 'places.dayScopedClear': 'Zobraziť celú cestu', + 'places.filterTracks': 'Trasy', + 'places.filterByRating': 'Filtrovať podľa hodnotenia', + 'places.yourRating': 'Vaše hodnotenie', + 'places.notRated': 'Zatiaľ bez hodnotenia', + 'places.search': 'Hľadať miesta...', + 'places.allCategories': 'Všetky kategórie', + 'places.categoriesSelected': 'kategórií', + 'places.clearFilter': 'Vymazať filter', + 'places.count': '{count} miest', + 'places.countSingular': '1 miesto', + 'places.allPlanned': 'Všetky miesta sú naplánované', + 'places.noneFound': 'Žiadne miesta sa nenašli', + 'places.editPlace': 'Upraviť miesto', + 'places.formName': 'Názov', + 'places.formNamePlaceholder': 'napr. Eiffelova veža', + 'places.formDescription': 'Popis', + 'places.formDescriptionPlaceholder': 'Krátky popis...', + 'places.formAddress': 'Adresa', + 'places.formAddressPlaceholder': 'Ulica, mesto, krajina', + 'places.formLat': 'Zemepisná šírka (napr. 48.8566)', + 'places.formLng': 'Zemepisná dĺžka (napr. 2.3522)', + 'places.formCategory': 'Kategória', + 'places.noCategory': 'Bez kategórie', + 'places.newCategory': 'Nová kategória', + 'places.categoryNamePlaceholder': 'Názov kategórie', + 'places.formTime': 'Čas', + 'places.startTime': 'Od', + 'places.endTime': 'Do', + 'places.endTimeBeforeStart': 'Čas konca je pred časom začiatku', + 'places.timeCollision': 'Časový prekryv s:', + 'places.formWebsite': 'Webová stránka', + 'places.formNotes': 'Poznámky', + 'places.formNotesPlaceholder': 'Osobné poznámky...', + 'places.assignmentNotes': 'Poznámky pre tento deň', + 'places.assignmentNotesPlaceholder': 'Poznámky k tomuto miestu len pre tento deň...', + 'places.formReservation': 'Rezervácia', + 'places.reservationNotesPlaceholder': 'Poznámky k rezervácii, potvrdzovacie číslo...', + 'places.mapsSearchPlaceholder': 'Hľadať miesta...', + 'places.mapsSearchError': 'Hľadanie miesta zlyhalo.', + 'places.loadingDetails': 'Načítavanie podrobností miesta…', + 'places.osmHint': + 'Používate hľadanie cez OpenStreetMap (bez fotiek, otváracích hodín a hodnotení). Pre plné detaily pridajte v nastaveniach kľúč Google API.', + 'places.source.amap': 'Amap', + 'places.details.title': 'Podrobnosti miesta', + 'places.details.empty': 'Vyberte výsledok a zobrazte viac', + 'places.details.loading': 'Načítavanie podrobností...', + 'places.details.error': 'Podrobnosti sa nepodarilo načítať.', + 'places.details.disabled': 'Obohacovanie je vypnuté správcom.', + 'places.details.noPhotos': 'Pre toto miesto sa nenašli žiadne obrázky.', + 'places.details.pickImage': 'Vybrať obrázok', + 'places.details.description': 'Popis', + 'places.details.adopt': 'Použiť tento text', + 'places.details.adoptBlocked': 'Najprv vyprázdnite pole popisu', + 'places.details.facts': 'Dobré vedieť', + 'places.details.nothing': 'Pre toto miesto sa nič nenašlo.', + 'places.details.aboutBrand': 'O reťazci', + 'places.details.aboutBrandNote': 'Toto popisuje reťazec, nie túto pobočku.', + 'places.details.fact.rating': 'Hodnotenie', + 'places.details.fact.cuisine': 'Kuchyňa', + 'places.details.fact.openingHours': 'Otváracie hodiny', + 'places.details.fact.menu': 'Menu', + 'places.details.fact.outdoorSeating': 'Vonkajšie posedenie', + 'places.details.fact.takeaway': 'So sebou', + 'places.details.fact.delivery': 'Rozvoz', + 'places.details.fact.wheelchair': 'Bezbariérový prístup', + 'places.details.fact.vegetarian': 'Vegetariánske', + 'places.details.fact.vegan': 'Vegánske', + 'places.details.fact.internetAccess': 'Wi-Fi', + 'places.categoryCreateError': 'Nepodarilo sa vytvoriť kategóriu', + 'places.nameRequired': 'Zadajte prosím názov', + 'places.saveError': 'Uloženie zlyhalo', + 'places.createExpenseHint': 'Uloží miesto a potom otvorí editor nákladov.', + 'places.duplicateExists': '„{name}“ už je v tejto ceste.', + 'places.addAnyway': 'Aj tak pridať', + 'places.enrichOnImport': 'Obohatiť miesta cez Google', + 'places.enrichOnImportHint': + 'Vyhľadá každé importované miesto a doplní fotky, adresu a kontaktné údaje. Používa váš kľúč Google Maps.', + 'places.uploadImage': 'Nahrať obrázok', + 'places.changeImage': 'Zmeniť obrázok', + 'places.removeImage': 'Odobrať obrázok', + 'places.imageUploadError': 'Obrázok sa nepodarilo nahrať', + 'places.imageRemoveError': 'Obrázok sa nepodarilo odobrať', +}; +export default places; diff --git a/shared/src/i18n/sk/planner.ts b/shared/src/i18n/sk/planner.ts new file mode 100644 index 000000000..f43537585 --- /dev/null +++ b/shared/src/i18n/sk/planner.ts @@ -0,0 +1,67 @@ +import type { TranslationStrings } from '../types'; + +const planner: TranslationStrings = { + 'planner.places': 'Miesta', + 'planner.bookings': 'Rezervácie', + 'planner.packingList': 'Zoznam vecí', + 'planner.documents': 'Dokumenty', + 'planner.dayPlan': 'Denný plán', + 'planner.reservations': 'Rezervácie', + 'planner.minTwoPlaces': 'Potrebujete aspoň 2 miesta so súradnicami', + 'planner.noGeoPlaces': 'Nie sú k dispozícii žiadne miesta so súradnicami', + 'planner.routeCalculated': 'Trasa vypočítaná', + 'planner.routeCalcFailed': 'Trasu sa nepodarilo vypočítať', + 'planner.routeError': 'Chyba pri výpočte trasy', + 'planner.icsExportFailed': 'Export ICS zlyhal', + 'planner.routeOptimized': 'Trasa optimalizovaná', + 'planner.reservationUpdated': 'Rezervácia aktualizovaná', + 'planner.reservationAdded': 'Rezervácia pridaná', + 'planner.confirmDeleteReservation': 'Zmazať rezerváciu?', + 'planner.reservationDeleted': 'Rezervácia zmazaná', + 'planner.days': 'Dni', + 'planner.allPlaces': 'Všetky miesta', + 'planner.totalPlaces': 'Celkovo {n} miest', + 'planner.noDaysPlanned': 'Zatiaľ nie sú naplánované žiadne dni', + 'planner.editTrip': 'Upraviť cestu →', + 'planner.placeOne': '1 miesto', + 'planner.placeN': '{n} miest', + 'planner.addNote': 'Pridať poznámku', + 'planner.noEntries': 'Pre tento deň nie sú žiadne záznamy', + 'planner.addPlace': 'Pridať miesto/aktivitu', + 'planner.addPlaceShort': '+ Pridať miesto/aktivitu', + 'planner.resPending': 'Rezervácia čaká', + 'planner.resConfirmed': 'Rezervácia potvrdená', + 'planner.notePlaceholder': 'Poznámka…', + 'planner.noteTimePlaceholder': 'Čas (voliteľné)', + 'planner.noteExamplePlaceholder': 'napr. S3 o 14:30 z hlavnej stanice, trajekt z móla 7, prestávka na obed…', + 'planner.totalCost': 'Celkové náklady', + 'planner.searchPlaces': 'Hľadať miesta…', + 'planner.allCategories': 'Všetky kategórie', + 'planner.noPlacesFound': 'Nenašli sa žiadne miesta', + 'planner.addFirstPlace': 'Pridať prvé miesto', + 'planner.noReservations': 'Žiadne rezervácie', + 'planner.addFirstReservation': 'Pridať prvú rezerváciu', + 'planner.new': 'Nový', + 'planner.addToDay': '+ Deň', + 'planner.calculating': 'Počíta sa…', + 'planner.route': 'Trasa', + 'planner.optimize': 'Optimalizovať', + 'planner.openGoogleMaps': 'Otvoriť v Mapách Google', + 'planner.openCoMaps': 'Otvoriť v CoMaps', + 'planner.selectDayHint': 'Vyberte deň zo zoznamu vľavo pre zobrazenie denného plánu', + 'planner.noPlacesForDay': 'Zatiaľ žiadne miesta pre tento deň', + 'planner.addPlacesLink': 'Pridať miesta →', + 'planner.minTotal': 'min. celkovo', + 'planner.noReservation': 'Žiadna rezervácia', + 'planner.removeFromDay': 'Odobrať z dňa', + 'planner.addToThisDay': 'Pridať k dňu', + 'planner.overview': 'Prehľad', + 'planner.noDays': 'Zatiaľ žiadne dni', + 'planner.editTripToAddDays': 'Upravte cestu pre pridanie dní', + 'planner.dayCount': '{n} dní', + 'planner.clickToUnlock': 'Kliknutím odomknete', + 'planner.keepPosition': 'Zachovať pozíciu pri optimalizácii trasy', + 'planner.dayDetails': 'Podrobnosti dňa', + 'planner.dayN': 'Deň {n}', +}; +export default planner; diff --git a/shared/src/i18n/sk/register.ts b/shared/src/i18n/sk/register.ts new file mode 100644 index 000000000..ea4ebe648 --- /dev/null +++ b/shared/src/i18n/sk/register.ts @@ -0,0 +1,25 @@ +import type { TranslationStrings } from '../types'; + +const register: TranslationStrings = { + 'register.passwordMismatch': 'Heslá sa nezhodujú', + 'register.passwordTooShort': 'Heslo musí mať aspoň 8 znakov', + 'register.failed': 'Registrácia zlyhala', + 'register.getStarted': 'Začíname', + 'register.subtitle': 'Vytvorte si účet a začnite plánovať svoje vysnívané cesty.', + 'register.feature1': 'Neobmedzené plány ciest', + 'register.feature2': 'Zobrazenie na interaktívnej mape', + 'register.feature3': 'Správa miest a kategórií', + 'register.feature4': 'Sledovanie rezervácií', + 'register.feature5': 'Vytváranie zoznamov vecí', + 'register.feature6': 'Ukladanie fotiek a súborov', + 'register.createAccount': 'Vytvoriť účet', + 'register.startPlanning': 'Začnite plánovať svoju cestu', + 'register.minChars': 'Min. 6 znakov', + 'register.confirmPassword': 'Potvrdiť heslo', + 'register.repeatPassword': 'Zopakujte heslo', + 'register.registering': 'Registrácia...', + 'register.register': 'Registrovať sa', + 'register.hasAccount': 'Už máte účet?', + 'register.signIn': 'Prihlásiť sa', +}; +export default register; diff --git a/shared/src/i18n/sk/reservations.ts b/shared/src/i18n/sk/reservations.ts new file mode 100644 index 000000000..7630d2e0f --- /dev/null +++ b/shared/src/i18n/sk/reservations.ts @@ -0,0 +1,182 @@ +import type { TranslationStrings } from '../types'; + +const reservations: TranslationStrings = { + 'reservations.title': 'Rezervácie', + 'reservations.empty': 'Zatiaľ žiadne rezervácie', + 'reservations.emptyHint': 'Pridajte rezervácie letov, hotelov a ďalších', + 'reservations.add': 'Pridať rezerváciu', + 'reservations.addManual': 'Ručná rezervácia', + 'reservations.placeHint': + 'Tip: Rezervácie je najlepšie vytvárať priamo z miesta – prepoja sa tak s vaším denným plánom.', + 'reservations.confirmed': 'Potvrdené', + 'reservations.pending': 'Čaká na potvrdenie', + 'reservations.summary': '{confirmed} potvrdených, {pending} čakajúcich', + 'reservations.fromPlan': 'Z plánu', + 'reservations.showFiles': 'Zobraziť súbory', + 'reservations.editTitle': 'Upraviť rezerváciu', + 'reservations.status': 'Stav', + 'reservations.datetime': 'Dátum a čas', + 'reservations.startTime': 'Čas začiatku', + 'reservations.endTime': 'Čas konca', + 'reservations.date': 'Dátum', + 'reservations.time': 'Čas', + 'reservations.timeAlt': 'Čas (alternatívny, napr. 19:30)', + 'reservations.notes': 'Poznámky', + 'reservations.notesPlaceholder': 'Ďalšie poznámky...', + 'reservations.urlLabel': 'Odkaz', + 'reservations.urlPlaceholder': 'https://...', + 'reservations.meta.airline': 'Letecká spoločnosť', + 'reservations.meta.flightNumber': 'Číslo letu', + 'reservations.meta.from': 'Z', + 'reservations.meta.to': 'Do', + 'reservations.layover.route': 'Trasa', + 'reservations.layover.stop': 'Zastávka', + 'reservations.layover.addStop': 'Pridať zastávku', + 'reservations.layover.connection': 'Prípoj', + 'reservations.layover.layover': 'Medzipristátie', + 'reservations.needsReview': 'Skontrolovať', + 'reservations.needsReviewHint': 'Letisko sa nepodarilo automaticky rozpoznať — potvrďte prosím miesto.', + 'reservations.searchLocation': 'Hľadať stanicu, prístav, adresu…', + 'reservations.meta.trainNumber': 'Číslo vlaku', + 'reservations.meta.platform': 'Nástupište', + 'reservations.meta.seat': 'Sedadlo', + 'reservations.meta.checkIn': 'Check-in', + 'reservations.meta.checkInUntil': 'Check-in do', + 'reservations.meta.checkOut': 'Check-out', + 'reservations.meta.linkAccommodation': 'Ubytovanie', + 'reservations.meta.pickAccommodation': 'Prepojiť s ubytovaním', + 'reservations.meta.noAccommodation': 'Žiadne', + 'reservations.meta.hotelPlace': 'Ubytovanie', + 'reservations.meta.linkPlace': 'Miesto / Aktivita', + 'reservations.meta.pickPlace': 'Vybrať miesto / aktivitu', + 'reservations.meta.pickHotel': 'Vybrať ubytovanie', + 'reservations.meta.fromDay': 'Od', + 'reservations.meta.toDay': 'Do', + 'reservations.meta.selectDay': 'Vyberte deň', + 'reservations.type.flight': 'Let', + 'reservations.type.hotel': 'Ubytovanie', + 'reservations.type.restaurant': 'Reštaurácia', + 'reservations.type.train': 'Vlak', + 'reservations.type.car': 'Auto', + 'reservations.type.cruise': 'Plavba', + 'reservations.type.event': 'Udalosť', + 'reservations.type.tour': 'Prehliadka', + 'reservations.type.parking': 'Parkovanie', + 'reservations.type.other': 'Iné', + 'reservations.type.bus': 'Autobus', + 'reservations.type.ferry': 'Trajekt', + 'reservations.type.bicycle': 'Bicykel', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transit': 'Verejná doprava', + 'reservations.type.transport_other': 'Ostatné', + 'reservations.confirm.delete': 'Naozaj chcete odstrániť rezerváciu „{name}“?', + 'reservations.confirm.deleteTitle': 'Odstrániť rezerváciu?', + 'reservations.confirm.deleteBody': '„{name}“ bude natrvalo odstránená.', + 'reservations.toast.updated': 'Rezervácia aktualizovaná', + 'reservations.toast.removed': 'Rezervácia odstránená', + 'reservations.toast.fileUploaded': 'Súbor bol nahraný', + 'reservations.toast.uploadError': 'Nahrávanie zlyhalo', + 'reservations.newTitle': 'Nová rezervácia', + 'reservations.bookingType': 'Typ rezervácie', + 'reservations.titleLabel': 'Názov', + 'reservations.titlePlaceholder': 'napr. Lufthansa LH123, Hotel Adlon, ...', + 'reservations.locationAddress': 'Miesto / Adresa', + 'reservations.locationPlaceholder': 'Adresa, letisko, hotel...', + 'reservations.confirmationCode': 'Rezervačný kód', + 'reservations.confirmationPlaceholder': 'napr. ABC12345', + 'reservations.day': 'Deň', + 'reservations.noDay': 'Žiadny deň', + 'reservations.place': 'Miesto', + 'reservations.noPlace': 'Žiadne miesto', + 'reservations.pendingSave': 'bude uložené…', + 'reservations.uploading': 'Nahráva sa...', + 'reservations.attachFile': 'Priložiť súbor', + 'reservations.linkExisting': 'Prepojiť existujúci súbor', + 'reservations.toast.saveError': 'Uloženie zlyhalo', + 'reservations.toast.updateError': 'Aktualizácia zlyhala', + 'reservations.toast.deleteError': 'Odstránenie zlyhalo', + 'reservations.confirm.remove': 'Odstrániť rezerváciu pre „{name}“?', + 'reservations.linkAssignment': 'Prepojiť s priradením dňa', + 'reservations.pickAssignment': 'Vyberte priradenie z vášho plánu...', + 'reservations.noAssignment': 'Bez prepojenia (samostatné)', + 'reservations.price': 'Cena', + 'reservations.budgetCategory': 'Kategória rozpočtu', + 'reservations.budgetCategoryPlaceholder': 'napr. Doprava, Ubytovanie', + 'reservations.budgetCategoryAuto': 'Auto (podľa typu rezervácie)', + 'reservations.budgetHint': 'Pri ukladaní sa automaticky vytvorí položka rozpočtu.', + 'reservations.departureDate': 'Odlet', + 'reservations.arrivalDate': 'Prílet', + 'reservations.departureTime': 'Čas odletu', + 'reservations.arrivalTime': 'Čas príletu', + 'reservations.pickupDate': 'Vyzdvihnutie', + 'reservations.returnDate': 'Vrátenie', + 'reservations.pickupTime': 'Čas vyzdvihnutia', + 'reservations.returnTime': 'Čas vrátenia', + 'reservations.endDate': 'Dátum konca', + 'reservations.meta.departureTimezone': 'TZ odletu', + 'reservations.meta.arrivalTimezone': 'TZ príletu', + 'reservations.span.departure': 'Odlet', + 'reservations.span.arrival': 'Prílet', + 'reservations.span.inTransit': 'Na ceste', + // span.pickup does double duty: the day a rental car is picked up, and the day a + // multi-day parking ends and you collect your own car again. Both read the same way + // in every locale, so parking only needs the drop-off wording of its own. + 'reservations.span.pickup': 'Vyzdvihnutie', + 'reservations.span.dropOff': 'Odovzdanie', + 'reservations.span.return': 'Vrátenie', + 'reservations.span.active': 'Aktívne', + 'reservations.span.start': 'Začiatok', + 'reservations.span.end': 'Koniec', + 'reservations.span.ongoing': 'Prebieha', + 'reservations.validation.endBeforeStart': 'Dátum/čas konca musí byť po dátume/čase začiatku', + 'reservations.addBooking': 'Pridať rezerváciu', + 'reservations.import.title': 'Importovať potvrdenia rezervácií', + 'reservations.import.cta': 'Importovať zo súboru', + 'reservations.import.dropHere': 'Presuňte sem súbory s potvrdením rezervácie alebo kliknite pre výber', + 'reservations.import.dropActive': 'Pustite súbory pre import', + 'reservations.import.acceptedFormats': 'Prijímané: EML, PDF, PKPass, HTML, TXT (max. 10 MB každý, až 5 súborov)', + 'reservations.import.parsing': 'Spracúvajú sa súbory…', + 'reservations.import.previewHeading': 'Nájdených {count} rezervácií', + 'reservations.import.previewEmpty': 'Z nahraných súborov sa nepodarilo extrahovať žiadne rezervácie.', + 'reservations.import.removeItem': 'Odstrániť', + 'reservations.import.needsReview': 'Skontrolovať', + 'reservations.import.tryAi': 'Skúsiť spracovanie pomocou AI', + 'reservations.import.aiParsing': 'Spracúva sa pomocou AI…', + 'reservations.import.confirm': 'Importovať {count} rezervácií', + 'reservations.import.back': 'Späť', + 'reservations.import.success': '{count} rezervácií importovaných', + 'reservations.import.partialFailure': '{created} importovaných, {failed} zlyhalo', + 'reservations.import.error': 'Spracovanie zlyhalo. Uistite sa, že súbor je platným potvrdením rezervácie.', + 'reservations.import.unavailable': 'Import rezervácií nie je na tomto serveri k dispozícii.', + 'reservations.import.unsupportedFormat': 'Nepodporovaný formát súboru. Použite EML, PDF, PKPass, HTML alebo TXT.', + 'reservations.import.fileTooLarge': 'Súbor „{name}“ prekračuje limit 10 MB.', + 'reservations.airtrail.title': 'Import z AirTrail', + 'reservations.airtrail.cta': 'AirTrail', + 'reservations.airtrail.synced': 'AirTrail', + 'reservations.airtrail.syncedHint': 'Synchronizované z AirTrail — úpravy zostávajú synchronizované v oboch smeroch.', + 'reservations.airtrail.notSynced': 'Nesynchronizované', + 'reservations.airtrail.notSyncedHint': 'Tento let bol v AirTrail odstránený a už sa nesynchronizuje.', + 'reservations.airtrail.layoverHint': + 'Importované z AirTrail. Let s viacerými úsekmi a medzipristátím nemá jediný let AirTrail, s ktorým by sa synchronizoval, takže zostáva jednorazovým importom.', + 'reservations.airtrail.loadError': 'Vaše lety z AirTrail sa nepodarilo načítať.', + 'reservations.airtrail.imported': 'Importovaných letov: {count}', + 'reservations.airtrail.skippedDuplicate': 'Už v tejto ceste: {count}, preskočené', + 'reservations.airtrail.nothingImported': 'Nie je čo importovať.', + 'reservations.airtrail.importError': 'Import zlyhal. Skúste to prosím znova.', + 'reservations.airtrail.undo': 'Import z AirTrail', + 'reservations.airtrail.alreadyImported': 'Importované', + 'reservations.airtrail.duringTrip': 'Počas tejto cesty', + 'reservations.airtrail.otherFlights': 'Ostatné lety', + 'reservations.airtrail.empty': 'Vo vašom účte AirTrail sa nenašli žiadne lety.', + 'reservations.airtrail.importCta': 'Importovať {count}', + 'reservations.airtrail.joinConnection': 'Importovať ako jeden let s medzipristátím v {stops}', + 'reservations.costsLabel': 'Náklady', + 'reservations.createExpense': 'Vytvoriť výdavok', + 'reservations.createExpenseHint': 'Uloží rezerváciu a potom otvorí editor nákladov.', + 'reservations.linkedExpense': 'Prepojený výdavok', + 'reservations.removeExpense': 'Odstrániť výdavok', + 'reservations.travelers.label': 'Cestujúci', + 'reservations.travelers.assign': 'Priradiť cestujúcich', + 'reservations.travelers.none': 'Zatiaľ žiadni účastníci cesty.', +}; +export default reservations; diff --git a/shared/src/i18n/sk/roadtrip.ts b/shared/src/i18n/sk/roadtrip.ts new file mode 100644 index 000000000..f251a31c6 --- /dev/null +++ b/shared/src/i18n/sk/roadtrip.ts @@ -0,0 +1,271 @@ +import type { TranslationStrings } from '../types'; + +const roadtrip: TranslationStrings = { + 'roadtrip.stay.portals': 'Nájsť ubytovanie', + 'roadtrip.stay.portalHint': 'Na portáli overte cieľ, termín a hostí. CHECK24 vyžaduje ručné hľadanie.', + 'roadtrip.charging.available': 'voľné', + 'roadtrip.charging.unknown': 'Spoľahlivé údaje nie sú k dispozícii', + 'roadtrip.charging.stale': 'Zastaraný stav', + 'roadtrip.charging.prices': 'Zverejnené tarify', + 'roadtrip.charging.note': + 'Zverejnená tarifa; môžu platiť dane, podmienky a ďalšie poplatky. Cena vašej nabíjacej karty sa môže líšiť.', + 'roadtrip.charging.coverage': 'Otvorené údaje; pokrytie sa líši podľa regiónu a prevádzkovateľa.', + 'roadtrip.charging.availability': 'Dostupnosť a ceny', + 'roadtrip.import.title': 'Importovať trasu z Google Maps', + 'roadtrip.import.note': 'Zastávky sa pridajú k vybranému dňu. TREK trasu prepočíta.', + 'roadtrip.import.unresolved': 'Miesto sa nepodarilo nájsť; táto zastávka bude preskočená.', + 'roadtrip.import.day': 'Deň', + 'roadtrip.hazards.show': 'Zobraziť nebezpečné oblasti', + 'roadtrip.hazards.current': 'Aktuálne výstrahy', + 'roadtrip.hazards.note': 'Výstrahy nie sú uzávierky ciest. Trasy zostávajú nezmenené.', + 'roadtrip.hazards.point': 'Len miesto; zasiahnutá oblasť nie je známa.', + 'roadtrip.hazards.loading': 'Načítavajú sa výstrahy…', + 'roadtrip.hazards.unavailable': 'Nedostupné', + 'roadtrip.hazards.offline': 'Offline: aktuálne výstrahy nie sú dostupné', + 'roadtrip.hazards.partial': 'Obmedzené pokrytie', + 'roadtrip.stops.section': 'Servisné zastávky', + 'roadtrip.stops.inDays': 'Zobraziť aj v Dňoch', + 'roadtrip.stops.daysHint': 'Po vypnutí zostanú všetky servisné zastávky len v pláne Roadtrip.', + 'roadtrip.window.dragHint': + 'Kým ste online, potiahnite koniec dňa pozdĺž trasy alebo na miesto; pravým tlačidlom obnovíte automatický koniec.', + 'roadtrip.window.resetBoundaries': 'Obnoviť automatické konce dní', + 'roadtrip.window.endHere': 'Ukončiť deň tu', + 'roadtrip.window.endHereHint': + 'Deň môžete ukončiť na konkrétnej zastávke v podrobnostiach jej miesta, kým je aktívny režim Roadtrip a denné časy cestovania.', + 'roadtrip.window.endAt': 'Ukončiť deň', + 'roadtrip.window.onRoute': 'Pozdĺž trasy', + 'roadtrip.window.atStop': 'Na poslednom mieste', + 'roadtrip.window.routeHint': 'Prestávka na trase v čase konca dňa.', + 'roadtrip.window.stopHint': 'Zastaviť skôr, než by ďalšie miesto prekročilo čas konca dňa.', + 'roadtrip.window.legTooLong': + 'Jedna jazda prekračuje denné okno cestovania. Pridajte miesto po ceste alebo zvoľte prestávku na trase.', + 'roadtrip.window.pointLabel': 'Koniec dňa {day} o {time}', + 'roadtrip.window.title': 'Denné časy cestovania', + 'roadtrip.window.start': 'Čas začiatku dňa', + 'roadtrip.window.end': 'Čas konca dňa', + 'roadtrip.window.hint': 'Nastavte oba časy pre zapnutie. Ručné časy majú prednosť.', + 'roadtrip.window.invalid': 'Čas konca musí byť neskôr než čas začiatku.', + 'roadtrip.window.stop': 'Koniec dňa', + 'roadtrip.window.resume': 'Pokračovať v ceste', + 'roadtrip.window.pointHint': 'Toto je odhadované miesto nočnej prestávky.', + 'roadtrip.window.departure': 'Pokračovať po zvyšku návštevy o {time}', + 'roadtrip.window.showPoint': 'Zobraziť na mape', + 'roadtrip.window.incomplete': 'Denné prestávky nemožno vypočítať, kým nie sú k dispozícii všetky nadväzujúce trasy.', + 'roadtrip.window.conflict': + 'Pevný čas je v rozpore s jazdou a dennými prestávkami. Ručné časy zostávajú nezmenené; automatické plánovanie je pozastavené.', + 'roadtrip.window.tooLong': + 'Tieto časy cestovania by vyžadovali viac než {days} dní navyše. Zvoľte dlhšie denné okno.', + 'roadtrip.mode.roadtrip': 'Cesta autom', + 'roadtrip.mode.days': 'Dni', + 'roadtrip.mode.label': 'Zobrazenie plánu', + 'roadtrip.title': 'Cesta autom', + 'roadtrip.subtitle': 'Zastávky, časy jazdy a časy príchodu tejto cesty', + 'roadtrip.empty.title': 'Zatiaľ žiadna trasa', + 'roadtrip.stops.label': 'Zastávky po ceste', + 'roadtrip.stops.remove': 'Odstrániť zastávku', + 'roadtrip.poi.title': 'Pozdĺž trasy', + 'roadtrip.poi.scope': 'Deň', + 'roadtrip.poi.looking': 'Hľadá sa', + 'roadtrip.poi.searchingHint': 'Prehľadáva sa trasa…', + 'roadtrip.poi.found': '{count} po ceste', + 'roadtrip.poi.fuel': 'Palivo', + 'roadtrip.poi.charging': 'Nabíjanie', + 'roadtrip.stop.offRoad': '{distance} od cesty', + 'roadtrip.via.plugin': 'Zastávka po ceste', + 'roadtrip.limit.title': 'Nastavenie jazdy', + 'roadtrip.limit.legLabel': 'Najdlhšia jazda naraz', + 'roadtrip.limit.dayLabel': 'Jazda za deň', + 'roadtrip.limit.rangeLabel': 'Dojazd na jednu nádrž', + 'roadtrip.limit.fillLabel': 'Natankovať na', + 'roadtrip.limit.fillFull': 'plná', + 'roadtrip.limit.fillBadge': 'tankuje na {percent} %', + 'roadtrip.limit.wearNote': '{percent} % ubudlo starnutím', + 'roadtrip.limit.rangeLabelCharge': 'Dojazd na jedno nabitie', + 'roadtrip.limit.sectionTrip': 'Táto cesta', + 'roadtrip.limit.sectionDriving': 'Jazda', + 'roadtrip.limit.sectionVehicle': 'Vozidlo', + 'roadtrip.limit.tankLabel': 'Objem nádrže', + 'roadtrip.limit.batteryLabel': 'Batéria', + 'roadtrip.limit.useLabel': 'Spotreba', + 'roadtrip.limit.wearLabel': 'Opotrebenie batérie', + 'roadtrip.limit.computed': 'Vypočítané z údajov vozidla', + 'roadtrip.limit.perFill': 'na nádrž', + 'roadtrip.limit.perCharge': 'na nabitie', + 'roadtrip.limit.afterFill': 'Zastávka na {percent} % dá {distance}', + 'roadtrip.limit.fullNote': 'Zastávka doplní do plna', + 'roadtrip.limit.rangeEmpty': 'Dojazd nie je nastavený', + 'roadtrip.limit.rangeEmptyHint': 'Zadajte dojazd alebo vyplňte údaje nižšie a TREK ho vypočíta.', + 'roadtrip.limit.specHint': 'Dojazd určujú údaje vozidla.', + 'roadtrip.limit.vehicleHint': 'Vyberte vozidlo, aby sa vypočítal jeho dojazd.', + 'roadtrip.limit.minutes': 'min', + 'roadtrip.limit.off': 'vypnuté', + 'roadtrip.limit.blockNote': 'Jeden blok = {distance}', + 'roadtrip.limit.echoOver': '{over} z {days} dní nad vaším limitom.', + 'roadtrip.limit.echoNone': 'Všetkých {days} dní je v rámci vašich limitov.', + 'roadtrip.limit.echoDry': '{count} úsekov bez dosiahnuteľnej zastávky.', + 'roadtrip.limit.echoEmpty': 'Otvorte cestu autom a uvidíte, čo to s ňou spraví.', + 'roadtrip.limit.specToggle': 'Vypočítať z auta', + 'roadtrip.limit.hint': 'Len jazda, bez pobytov a nočných úsekov.', + 'roadtrip.limit.legOver': 'o {time} nad vašou najdlhšou jazdou', + 'roadtrip.limit.dayOver': 'o {time} viac', + 'roadtrip.limit.range': '{distance} od posledného tankovania', + 'roadtrip.limit.none': 'Nenastavené', + 'roadtrip.line.section': 'Čiara trasy', + 'roadtrip.line.connect': 'Prepojiť dni', + 'roadtrip.line.dayColors': 'Farba na každý deň', + 'roadtrip.line.hint': 'Prepájacie jazdy sa započítavajú do dňa príchodu.', + 'roadtrip.avoid.section': 'Vyhnúť sa, ak je to možné', + 'roadtrip.avoid.toll': 'Spoplatnené cesty', + 'roadtrip.avoid.motorway': 'Diaľnice', + 'roadtrip.avoid.ferry': 'Trajekty', + 'roadtrip.avoid.hint': 'Vyhýba sa, kde je to možné; výnimky sú označené.', + 'roadtrip.avoid.unavailable': 'Váš poskytovateľ smerovania nepodporuje vyhýbanie sa.', + 'roadtrip.avoid.badge': '{count} obídených', + 'roadtrip.avoid.missed': '{classes} sa nedá obísť', + 'roadtrip.avoid.missedHint': + 'Tento deň sa nedá obísť, takže ho jazda využije. Každý ďalší deň sa naďalej vyhýba tomu, čomu môže.', + 'roadtrip.refuel.dry': 'Tu dôjde palivo', + 'roadtrip.refuel.after': 'po {distance}', + 'roadtrip.limit.vehicleLabel': 'Čím jazdíte', + 'roadtrip.limit.vehicleAny': 'Oboje', + 'roadtrip.limit.vehicleCombustion': 'Palivo', + 'roadtrip.limit.vehicleElectric': 'Elektro', + 'roadtrip.refuel.dryElectric': 'Tu dôjde batéria', + 'roadtrip.refuel.findElectric': 'Nájsť nabíjačku', + 'roadtrip.refuel.find': 'Nájsť palivo', + 'roadtrip.refuel.again': 'Skúsiť znova', + 'roadtrip.refuel.looking': 'Hľadá sa pozdĺž trasy…', + 'roadtrip.refuel.spare': 'zostáva {distance}', + 'roadtrip.refuel.add': 'Pridať {name} ako zastávku na palivo', + 'roadtrip.refuel.addElectric': 'Pridať {name} ako zastávku na nabíjanie', + 'roadtrip.refuel.none': 'Na dosiahnuteľnom úseku sa nič nenašlo.', + 'roadtrip.refuel.incomplete': 'Hľadanie bolo prerušené, takže tento úsek nebol úplne skontrolovaný.', + 'roadtrip.refuel.failed': 'Vyhľadávanie miest neodpovedalo.', + 'roadtrip.stop.none': 'Cieľ', + 'roadtrip.stay.mode.pause': 'Prestávka', + 'roadtrip.stay.mode.night': 'Nocľah', + 'roadtrip.stay.nightAdded': 'Pridané ako nocľah', + 'roadtrip.stay.nightAction': 'Pridať ako nocľah', + 'roadtrip.stop.makeService': 'Zmeniť na zastávku po ceste', + 'roadtrip.stop.changeKind': 'Zmeniť typ tejto zastávky', + 'roadtrip.stop.backToDestination': 'Späť na cieľ', + 'roadtrip.poi.anySocket': 'Ľubovoľná zásuvka', + 'roadtrip.poi.anyPower': 'Ľubovoľný výkon', + 'roadtrip.poi.free': 'Zadarmo', + 'roadtrip.poi.wholeDay': 'Celý deň', + 'roadtrip.poi.midLeg': 'V polovici, {from} do {to}', + 'roadtrip.track.title': 'Deň {number} sleduje stopu', + 'roadtrip.track.hint': 'Nechať tento deň sledovať importovanú stopu', + 'roadtrip.track.badge': 'Stopa', + 'roadtrip.track.untitled': 'Stopa bez názvu', + 'roadtrip.track.empty': 'V tejto ceste nie sú žiadne stopy', + 'roadtrip.track.emptyHint': 'Importujte súbor GPX alebo KML a jeho stopy sa objavia tu.', + 'roadtrip.track.length': 'dĺžka {distance}', + 'roadtrip.track.gap': '{distance} od tohto dňa', + 'roadtrip.track.onDay': 'pozdĺž tohto dňa', + 'roadtrip.track.explain': + 'Jazda sa pomocou niekoľkých prejazdových bodov pritiahne k stope. Existujúce prejazdové body na týchto úsekoch budú nahradené.', + 'roadtrip.track.action': 'Sledovať túto stopu', + 'roadtrip.track.working': 'Prispôsobujem jazdu stope, kolo {round}', + 'roadtrip.track.done': 'Umiestnených {count} prejazdových bodov. Jazda sa drží do {distance} od stopy.', + 'roadtrip.track.capped': + 'Umiestnených {count} prejazdových bodov. V najširšom mieste sa jazda k stope nepriblíži viac než na {distance}.', + 'roadtrip.track.already': 'Jazda už túto stopu sledovala.', + 'roadtrip.track.errorRoute': 'Služba smerovania trás neodpovedala.', + 'roadtrip.track.errorSave': 'Prejazdové body sa nepodarilo uložiť.', + 'roadtrip.track.clear': 'Odstrániť {count} prejazdových bodov', + 'roadtrip.track.current': 'Aktuálne sleduje {name}', + 'roadtrip.poi.rest': 'Odpočívadlo', + 'roadtrip.poi.campsite': 'Kemp', + 'roadtrip.poi.food': 'Jedlo', + 'roadtrip.poi.sights': 'Zaujímavosti', + 'roadtrip.poi.within': 'Do', + 'roadtrip.poi.filter': 'Filtrovať podľa názvu', + 'roadtrip.poi.noMatch': 'Na trase nič nezodpovedá „{name}“.', + 'roadtrip.poi.noneMatchFilters': 'Nič na trase nezodpovedá týmto filtrom.', + 'roadtrip.poi.foundFiltered': '{count} z {total} na trase', + 'roadtrip.poi.truncated': + 'Na {count} úsekoch ich bolo viac, než sa zmestí do jednej odpovede — zúžte koridor, aby ste videli zvyšok.', + 'roadtrip.poi.search': 'Hľadať', + 'roadtrip.poi.searching': 'Hľadanie {done} z {total}', + 'roadtrip.poi.capped': 'Trasa je dlhá — prehľadaný bol len prvý úsek.', + 'roadtrip.poi.partial': '{count} úsekov sa nepodarilo prehľadať — vyhľadávanie miest neodpovedalo.', + 'roadtrip.poi.failed': 'Vyhľadávanie miest teraz neodpovedá.', + 'roadtrip.poi.empty': 'Vyberte, čo potrebujete, a hľadajte.', + 'roadtrip.poi.add': 'Pridať', + 'roadtrip.poi.offRoute': '{distance} od trasy', + 'roadtrip.poi.atStart': 'blízko štartu', + 'roadtrip.poi.alongRoute': 'po {distance}', + 'roadtrip.poi.clearResults': 'Vymazať výsledky', + 'roadtrip.poi.addManual': 'Pridať ručne', + 'roadtrip.poi.addManualShort': 'Ručne', + 'roadtrip.poi.manualHint': + 'Vyhľadávanie miest nenájde každú nabíjačku alebo pumpu. Nájdite ju podľa názvu a určte, kam na ceste patrí.', + 'roadtrip.poi.addBetween': 'Pridať medzi', + 'roadtrip.poi.manualOffRoute': '{distance} od trasy, preto overte, do ktorého úseku patrí.', + 'roadtrip.poi.manualAppend': 'Zatiaľ sa nič nesmerovalo, preto sa to pridá na koniec dňa {number}.', + 'roadtrip.poi.manualNoResults': 'Nenašli sa žiadne miesta.', + 'roadtrip.poi.manualNoCoords': + 'Bez polohy sa toto uloží medzi miesta cesty, nie do jazdy. Vyberte niektoré z vyhľadávania vyššie alebo vyplňte súradnice.', + 'roadtrip.summary.distance': 'Vzdialenosť', + 'roadtrip.summary.driving': 'Čas jazdy', + 'roadtrip.alt.ask': 'Iné cesty', + 'roadtrip.alt.title': 'Spôsoby, ako prejsť tento úsek', + 'roadtrip.alt.loading': 'Pýtam sa smerovača…', + 'roadtrip.alt.onlyOne': 'Tento úsek sa dá prejsť len jedným rozumným spôsobom.', + 'roadtrip.alt.failed': 'Smerovač teraz neodpovedá.', + 'roadtrip.alt.current': 'Aktuálne', + 'roadtrip.alt.fastest': 'Najrýchlejšie', + 'roadtrip.alt.slower': 'o {time} pomalšie', + 'roadtrip.alt.quicker': 'o {time} rýchlejšie', + 'roadtrip.alt.otherEngine': 'Čas vypočítal smerovač pre obchádzky, nie ten hlavný.', + 'roadtrip.day': 'Deň {number}', + 'roadtrip.quietDay.empty': 'Zatiaľ žiadne zastávky — presuňte sem jednu', + 'roadtrip.quietDay.one': 'Zatiaľ len {name} — presuňte sem zastávku', + 'roadtrip.leg.driveText': '{distance} za {time}', + 'roadtrip.day.stopCount': '{count} zastávok', + 'roadtrip.day.fold': 'Zbaliť', + 'roadtrip.day.folded': 'Zbalené', + 'roadtrip.stop.stayShort': 'Pobyt', + 'roadtrip.stop.fillTitle': 'Natankuje na', + 'roadtrip.stop.fillGives': 'asi {distance} odtiaľto', + 'roadtrip.stop.fillNoRange': 'Nastavte dojazd, aby bolo vidieť, čo to prinesie.', + 'roadtrip.stop.fillDefault': 'Použiť moju predvolenú hodnotu', + 'roadtrip.stop.fillSet': 'Nastaviť, na koľko sa na tejto zastávke tankuje', + 'roadtrip.leg.pending': 'Bez trasy', + 'roadtrip.stop.addTitle': 'Pridať ako zastávku', + 'roadtrip.stop.kind': 'Druh zastávky', + 'roadtrip.stop.landsOn': 'Deň {day}, ako {position}. zastávka', + 'roadtrip.stop.duplicate': '„{name}“ už v tejto ceste je.', + 'roadtrip.stop.moreDetails': 'Viac podrobností', + 'roadtrip.stop.stay': 'Čas na tejto zastávke', + 'roadtrip.stop.pinned': 'Čas, ktorý ste nastavili', + 'roadtrip.stop.computed': 'Vypočítané z jazdy', + 'roadtrip.stop.endIsLeave': 'Na ceste autom sa v tomto čase odchádza.', + 'roadtrip.via.hint': 'Potiahnutím zmeníte trasu, pravým tlačidlom odstránite', + 'roadtrip.warn.late': 'Príchod {minutes} min po čase, ktorý ste nastavili', + 'roadtrip.warn.missedLeave': 'Príchod {minutes} min po čase, ktorý ste nastavili na odchod', + 'roadtrip.warn.overnight': 'Nasledujúci deň', + 'roadtrip.spill.title': 'Zo dňa {number}', + 'roadtrip.spill.departs': 'odchod {time}', + 'roadtrip.summary.stops': 'Zastávky', + 'roadtrip.stay.add': 'Pridať pobyt', + 'roadtrip.stay.none': 'Bez pobytu', + 'roadtrip.stay.custom': 'Minúty', + 'roadtrip.stay.arrive': 'Príchod', + 'roadtrip.stay.leave': 'Odchod', + 'roadtrip.stay.until': 'do {time}', + 'roadtrip.stay.leavesAt': 'Táto návšteva má čas konca, preto sa odchádza o {time}.', + 'roadtrip.stay.dayEndsFirst': 'Cestovný deň sa končí pred {time}, preto jazda pokračuje až ďalšie ráno.', + 'roadtrip.stay.clearLeave': 'Odstrániť čas konca', + 'roadtrip.alt.noMotorway': 'Bez diaľnice', + 'roadtrip.alt.noToll': 'Bez mýta', + 'roadtrip.alt.noFerry': 'Bez trajektu', + 'roadtrip.summary.partial': 'Zvyšok jazdy sa ešte počíta', + 'roadtrip.stay.releaseTitle': 'Zrušiť nocľah?', + 'roadtrip.stay.releaseBody': 'Noc v „{name}“ bude odstránená. Zastávka zostane na trase ako prestávka.', + 'roadtrip.stay.releaseBookedBody': + 'Noc v „{name}“ bude odstránená spolu s rezerváciou „{booking}“ a všetkými výdavkami, ktoré sú s ňou spojené. Zastávka zostane na trase ako prestávka.', + 'roadtrip.stay.releaseAction': 'Zmeniť na prestávku', +}; +export default roadtrip; diff --git a/shared/src/i18n/sk/settings.ts b/shared/src/i18n/sk/settings.ts new file mode 100644 index 000000000..443b9c5e1 --- /dev/null +++ b/shared/src/i18n/sk/settings.ts @@ -0,0 +1,602 @@ +import type { TranslationStrings } from '../types'; + +const settings: TranslationStrings = { + 'settings.title': 'Nastavenia', + 'settings.subtitle': 'Upravte svoje osobné nastavenia', + 'settings.tabs.display': 'Všeobecné', + 'settings.tabs.map': 'Mapa', + 'settings.tabs.notifications': 'Oznámenia', + 'settings.tabs.integrations': 'Integrácie', + 'settings.plugins.oauth.connected': 'Pripojené', + 'settings.plugins.oauth.notConnected': 'Nepripojené', + 'settings.plugins.oauth.connect': 'Pripojiť', + 'settings.plugins.oauth.disconnect': 'Odpojiť', + 'settings.tabs.plugins': 'Doplnky', + 'settings.plugins.title': 'Nastavenia doplnkov', + 'settings.plugins.subtitle': 'Vaše osobné nastavenia pre doplnky, ktoré používate (kľúče API, predvoľby).', + 'settings.plugins.empty': 'Nie sú aktívne žiadne doplnky.', + 'settings.plugins.saved': 'Nastavenia uložené', + 'settings.plugins.requiredMissing': '„{field}" je povinné', + 'settings.pluginActivity.title': 'Aktivita doplnkov', + 'settings.pluginActivity.description': 'Každá akcia, ktorú doplnok vykonal vo vašom mene, od najnovších.', + 'settings.pluginActivity.empty': 'Zatiaľ žiadna aktivita doplnkov.', + 'settings.pluginActivity.refresh': 'Obnoviť', + 'settings.pluginActivity.columns.plugin': 'Doplnok', + 'settings.pluginActivity.columns.action': 'Akcia', + 'settings.pluginActivity.columns.resource': 'Zdroj', + 'settings.pluginActivity.columns.when': 'Kedy', + 'settings.pluginActivity.columns.status': 'Výsledok', + 'settings.tabs.account': 'Účet', + 'settings.tabs.offline': 'Offline', + 'settings.tabs.about': 'O aplikácii', + 'settings.map': 'Mapa', + 'settings.mapTemplate': 'Šablóna mapy', + 'settings.mapTemplatePlaceholder.select': 'Vyberte šablónu...', + 'settings.mapDefaultHint': 'Ponechajte prázdne pre OpenStreetMap (predvolené)', + 'settings.routingBase': 'Vlastný smerovací server', + 'settings.routingBaseHint': + 'Vlastná inštancia OSRM. Prázdne použije verejné servery s limitom približne jedného požiadavku za sekundu — na deň to stačí, na road trip je to málo. Prejaví sa po reštarte servera.', + 'settings.valhallaBase': 'Vlastná inštancia Valhalla', + 'settings.valhallaBaseHint': + 'TREK v predvolenom nastavení používa verejnú Valhallu FOSSGIS na vyhýbanie sa mýtnym cestám, diaľniciam a trajektom. Sem zadajte URL vlastnej Valhally a používajte ju namiesto verejnej. Ak je nastavená iba vlastná smerovacia inštancia, verejná Valhalla sa nepoužije. Po zadaní vlastnej URL reštartujte server a znovu načítajte stránku.', + 'settings.mapHint': 'URL šablóna pre mapové dlaždice', + 'settings.mapProvider': 'Poskytovateľ mapy', + 'settings.mapProviderHint': 'Ovplyvňuje mapy v Trip Planneri a Journey. Atlas vždy používa Leaflet.', + 'settings.mapLeafletSubtitle': 'Klasické 2D, ľubovoľné rastrové dlaždice', + 'settings.mapMapboxSubtitle': 'Vektorové dlaždice, 3D budovy a terén', + 'settings.mapMapLibreSubtitle': 'Vektorové dlaždice OpenFreeMap, bez tokenu', + 'settings.mapExperimental': 'Experimentálne', + 'settings.mapMapboxToken': 'Mapbox prístupový token', + 'settings.mapMapboxTokenHint': 'Verejný token (pk.*) z', + 'settings.mapMapboxTokenLink': 'mapbox.com → Prístupové tokeny', + 'settings.mapCartoKey': 'CARTO API kľúč', + 'settings.mapCartoKeyHint': 'Podkladové mapy CARTO sa bez kľúča zobrazujú s vodoznakom. Zadarmo a bez účtu, na', + 'settings.mapCartoKeyLink': 'carto.com API kľúč pre podkladové mapy', + 'settings.mapCartoKeyMissing': + 'Táto šablóna je podkladová mapa CARTO. Bez kľúča CARTO vypáli do každej dlaždice nápis "API KEY REQUIRED". Kým kľúč nezadáte, TREK zobrazuje predvolenú podkladovú mapu.', + 'settings.mapStyle': 'Štýl mapy', + 'settings.mapStylePlaceholder': 'Vyberte štýl Mapbox', + 'settings.mapStyleHint': 'Predvoľba alebo vaša vlastná URL mapbox://styles/USER/ID', + 'settings.mapOpenFreeMapStylePlaceholder': 'Vyberte štýl OpenFreeMap', + 'settings.mapOpenFreeMapStyleHint': 'Predvoľba alebo URL štýlu OpenFreeMap. Štýly OpenFreeMap fungujú bez tokenu.', + 'settings.map3dBuildings': '3D budovy a terén', + 'settings.map3dHint': 'Náklon + skutočné 3D vyvýšenie budov — funguje s každým štýlom, vrátane satelitu.', + 'settings.mapHighQuality': 'Režim vysokej kvality', + 'settings.mapHighQualityHint': 'Antialiasing + zobrazenie glóbusu pre ostrejšie hrany a realistický pohľad na svet.', + 'settings.mapHighQualityWarning': 'Môže ovplyvniť výkon na slabších zariadeniach.', + 'settings.mapTipLabel': 'Tip:', + 'settings.mapTip': + 'kliknite pravým tlačidlom a ťahajte pre rotáciu/náklon mapy. Stredné tlačidlo pridá miesto (pravé tlačidlo je vyhradené pre rotáciu).', + 'settings.saveMap': 'Uložiť nastavenia mapy', + 'settings.apiKeys': 'API kľúče', + 'settings.mapsKey': 'Google Maps API kľúč', + 'settings.mapsKeyHint': 'Na vyhľadávanie miest. Vyžaduje Places API (New). Získate na console.cloud.google.com', + 'settings.weatherKey': 'OpenWeatherMap API kľúč', + 'settings.weatherKeyHint': 'Na dáta o počasí. Zadarmo na openweathermap.org/api', + 'settings.keyPlaceholder': 'Zadajte kľúč...', + 'settings.configured': 'Nastavené', + 'settings.saveKeys': 'Uložiť kľúče', + 'settings.display': 'Zobrazenie', + 'settings.colorMode': 'Farebný režim', + 'settings.light': 'Svetlé', + 'settings.dark': 'Tmavé', + 'settings.auto': 'Automatické', + 'settings.language': 'Jazyk', + 'settings.temperature': 'Jednotky teploty', + 'settings.distance': 'Jednotky vzdialenosti', + 'settings.timeFormat': 'Formát času', + 'settings.bookingLabels': 'Popisky trás rezervácií', + 'settings.bookingLabelsHint': 'Zobrazuje názvy staníc / letísk na mape. Ak je vypnuté, zobrazí sa iba ikona.', + 'settings.mapPoiPill': 'Objavovať miesta na mape', + 'settings.mapPoiPillHint': + 'Zobraziť na mape cesty kategórie na hľadanie reštaurácií, hotelov a ďalšieho v okolí z OpenStreetMap.', + 'settings.blurBookingCodes': 'Skryť rezervačné kódy', + 'settings.aiAlwaysRetry': 'Vždy opakovať import rezervácií pomocou AI', + 'settings.aiAlwaysRetryHint': + 'Keď súbor nedokáže prečítať štandardný analyzátor, automaticky ho skúsi znovu spracovať pomocou AI.', + 'settings.optimizeFromAccommodation': 'Optimalizovať trasu od ubytovania', + 'settings.optimizeFromAccommodationHint': + 'Pri optimalizácii dňa začne trasa v hoteli, v ktorom sa ráno zobudíte, a skončí v hoteli, do ktorého sa večer ubytujete.', + 'settings.notifications': 'Oznámenia', + 'settings.notifyTripInvite': 'Pozvánky na cesty', + 'settings.notifyBookingChange': 'Zmeny rezervácií', + 'settings.notifyTripReminder': 'Pripomienky ciest', + 'settings.notifyTodoDue': 'Úloha sa blíži', + 'settings.notifyVacayInvite': 'Pozvánky na prepojenie Vacay', + 'settings.notifyVacayShare': 'Zdieľanie kalendára Vacay', + 'settings.notifyCollectionInvite': 'Pozvánky do kolekcií', + 'settings.notifySynologySessionCleared': 'Relácia Synology bola zrušená', + 'settings.notifyPluginNotification': 'Oznámenia doplnkov', + 'settings.notifyPhotosShared': 'Zdieľané fotky (Immich)', + 'settings.notifyCollabMessage': 'Správy v chate (Collab)', + 'settings.notifyPackingTagged': 'Zoznam balenia: priradenia', + 'settings.notifyWebhook': 'Webhook oznámenia', + 'settings.notifyVersionAvailable': 'Nová verzia k dispozícii', + 'settings.notifyReplicaFailure': 'Zlyhanie repliky úložiska', + 'settings.notificationPreferences.email': 'E-mail', + 'settings.notificationPreferences.webhook': 'Webhook', + 'settings.notificationPreferences.inapp': 'V aplikácii', + 'settings.notificationPreferences.notConfigured': 'Zatiaľ nenastavené — nastavte to v nastaveniach doplnku', + 'settings.plugins.actions': 'Akcie', + 'settings.plugins.actions.confirm': 'Spustiť túto akciu?', + 'settings.notificationPreferences.sendTest': 'Odoslať test', + 'settings.notificationPreferences.configure': 'Nastaviť', + 'settings.notificationPreferences.testSuccess': 'Testovacie oznámenie odoslané.', + 'settings.notificationPreferences.testFailed': 'Test zlyhal.', + 'settings.notificationPreferences.pluginConfigured': + 'Nastavené. Prihlasovacie údaje spravujte na stránke nastavení doplnku.', + 'settings.notificationPreferences.ntfy': 'Ntfy', + 'settings.notificationPreferences.noChannels': + 'Nie sú nakonfigurované žiadne kanály oznámení. Požiadajte správcu o nastavenie e-mailových alebo webhookových oznámení.', + 'settings.webhookUrl.label': 'URL webhooku', + 'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...', + 'settings.webhookUrl.hint': 'Zadajte URL vášho Discord, Slack alebo vlastného webhooku na príjem oznámení.', + 'settings.webhookUrl.saved': 'URL webhooku uložená', + 'settings.webhookUrl.test': 'Otestovať', + 'settings.webhookUrl.testSuccess': 'Testovací webhook bol úspešne odoslaný', + 'settings.webhookUrl.testFailed': 'Testovací webhook zlyhal', + 'settings.ntfyUrl.topicLabel': 'Téma Ntfy', + 'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts', + 'settings.ntfyUrl.serverLabel': 'URL servera Ntfy (voliteľné)', + 'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh', + 'settings.ntfyUrl.hint': + 'Zadajte svoju tému Ntfy na príjem push notifikácií. Pole servera ponechajte prázdne pre použitie predvoleného nastavenia vášho správcu.', + 'settings.ntfyUrl.tokenLabel': 'Prístupový token (voliteľné)', + 'settings.ntfyUrl.tokenHint': 'Vyžadované pre témy chránené heslom.', + 'settings.ntfyUrl.saved': 'Nastavenia Ntfy uložené', + 'settings.ntfyUrl.test': 'Otestovať', + 'settings.ntfyUrl.testSuccess': 'Testovacia notifikácia Ntfy bola úspešne odoslaná', + 'settings.ntfyUrl.testFailed': 'Testovacia notifikácia Ntfy zlyhala', + 'settings.ntfyUrl.tokenCleared': 'Prístupový token bol vymazaný', + 'settings.notificationsDisabled': + 'Oznámenia nie sú nakonfigurované. Požiadajte správcu o aktiváciu e-mailových alebo webhookových oznámení.', + 'settings.notificationsActive': 'Aktívny kanál', + 'settings.notificationsManagedByAdmin': 'Udalosti oznámení konfiguruje váš administrátor.', + 'settings.on': 'Zapnuté', + 'settings.off': 'Vypnuté', + 'settings.mcp.title': 'Konfigurácia MCP', + 'settings.mcp.endpoint': 'MCP endpoint', + 'settings.mcp.clientConfig': 'Konfigurácia klienta', + 'settings.mcp.clientConfigHint': + 'Nahraďte API tokenom zo zoznamu nižšie. Cestu k npx môže byť potrebné upraviť pre váš systém (napr. C:\\PROGRA~1\\nodejs\\npx.cmd vo Windows).', + 'settings.mcp.clientConfigHintOAuth': + 'Nahraďte a prihlasovacími údajmi zobrazenými v klientovi OAuth 2.1, ktorého ste vytvorili vyššie. mcp-remote pri prvom pripojení otvorí prehliadač na dokončenie autorizácie. Cestu k npx môže byť potrebné upraviť pre váš systém (napr. C:\\PROGRA~1\\nodejs\\npx.cmd vo Windows).', + 'settings.mcp.copy': 'Kopírovať', + 'settings.mcp.copied': 'Skopírované!', + 'settings.mcp.apiTokens': 'API tokeny', + 'settings.mcp.createToken': 'Vytvoriť nový token', + 'settings.mcp.noTokens': 'Zatiaľ žiadne tokeny. Vytvorte jeden na pripojenie MCP klientov.', + 'settings.mcp.tokenCreatedAt': 'Vytvorený', + 'settings.mcp.tokenUsedAt': 'Použitý', + 'settings.mcp.deleteTokenTitle': 'Zmazať token', + 'settings.mcp.deleteTokenMessage': + 'Tento token okamžite prestane fungovať. Všetci MCP klienti, ktorí ho používajú, stratia prístup.', + 'settings.mcp.modal.createTitle': 'Vytvoriť API token', + 'settings.mcp.modal.tokenName': 'Názov tokenu', + 'settings.mcp.modal.tokenNamePlaceholder': 'napr. Claude Desktop, Pracovný notebook', + 'settings.mcp.modal.creating': 'Vytvára sa…', + 'settings.mcp.modal.create': 'Vytvoriť token', + 'settings.mcp.modal.createdTitle': 'Token vytvorený', + 'settings.mcp.modal.createdWarning': + 'Tento token bude zobrazený iba raz. Skopírujte a uložte ho teraz — nedá sa obnoviť.', + 'settings.mcp.modal.done': 'Hotovo', + 'settings.mcp.toast.created': 'Token vytvorený', + 'settings.mcp.toast.createError': 'Nepodarilo sa vytvoriť token', + 'settings.mcp.toast.deleted': 'Token zmazaný', + 'settings.mcp.toast.deleteError': 'Nepodarilo sa zmazať token', + 'settings.mcp.apiTokensDeprecated': + 'API tokeny sú zastarané a budú odstránené v budúcej verzii. Namiesto toho použite klientov OAuth 2.1.', + 'settings.oauth.clients': 'Klienti OAuth 2.1', + 'settings.oauth.clientsHint': + 'Zaregistrujte klientov OAuth 2.1, aby sa MCP aplikácie tretích strán (Claude Web, Cursor atď.) mohli pripojiť bez statických tokenov.', + 'settings.oauth.createClient': 'Nový klient', + 'settings.oauth.noClients': 'Žiadni klienti OAuth nie sú zaregistrovaní.', + 'settings.oauth.clientId': 'ID klienta', + 'settings.oauth.clientSecret': 'Tajný kľúč klienta', + 'settings.oauth.deleteClient': 'Zmazať klienta', + 'settings.oauth.deleteClientMessage': + 'Tento klient a všetky aktívne relácie budú natrvalo odstránené. Akákoľvek aplikácia, ktorá ho používa, okamžite stratí prístup.', + 'settings.oauth.rotateSecret': 'Obnoviť tajný kľúč', + 'settings.oauth.rotateSecretMessage': + 'Bude vygenerovaný nový tajný kľúč klienta a všetky existujúce relácie budú okamžite zneplatnené. Aktualizujte aplikáciu pred zatvorením tohto dialógu.', + 'settings.oauth.rotateSecretConfirm': 'Obnoviť', + 'settings.oauth.rotateSecretConfirming': 'Obnovuje sa…', + 'settings.oauth.rotateSecretDoneTitle': 'Nový tajný kľúč vygenerovaný', + 'settings.oauth.rotateSecretDoneWarning': + 'Tento tajný kľúč sa zobrazí iba raz. Skopírujte ho teraz a aktualizujte aplikáciu — všetky predchádzajúce relácie boli zneplatnené.', + 'settings.oauth.activeSessions': 'Aktívne relácie OAuth', + 'settings.oauth.sessionScopes': 'Oprávnenia', + 'settings.oauth.sessionExpires': 'Vyprší', + 'settings.oauth.revoke': 'Odvolať', + 'settings.oauth.revokeSession': 'Odvolať reláciu', + 'settings.oauth.revokeSessionMessage': 'Tým sa okamžite odvolá prístup pre túto reláciu OAuth.', + 'settings.oauth.modal.createTitle': 'Zaregistrovať klienta OAuth', + 'settings.oauth.modal.presets': 'Rýchle predvoľby', + 'settings.oauth.modal.clientName': 'Názov aplikácie', + 'settings.oauth.modal.clientNamePlaceholder': 'napr. Claude Web, Moja MCP aplikácia', + 'settings.oauth.modal.redirectUris': 'Presmerovacie URI', + 'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth', + 'settings.oauth.modal.redirectUrisHint': + 'Jedno URI na riadok. HTTPS, HTTP na loopbacku alebo vlastná schéma aplikácie (myapp://). Presná zhoda, okrem portu pri loopback URI.', + 'settings.oauth.modal.scopes': 'Povolené oprávnenia', + 'settings.oauth.modal.scopesHint': + 'list_trips a get_trip_summary sú vždy dostupné — bez potrebného oprávnenia. Umožňujú AI zistiť ID ciest potrebné na použitie ktoréhokoľvek iného nástroja.', + 'settings.oauth.modal.selectAll': 'Vybrať všetko', + 'settings.oauth.modal.deselectAll': 'Zrušiť výber', + 'settings.oauth.modal.creating': 'Registruje sa…', + 'settings.oauth.modal.create': 'Zaregistrovať klienta', + 'settings.oauth.modal.createdTitle': 'Klient zaregistrovaný', + 'settings.oauth.modal.createdWarning': + 'Tajný kľúč klienta sa zobrazí iba raz. Skopírujte ho teraz — nedá sa obnoviť.', + 'settings.oauth.toast.createError': 'Registrácia klienta OAuth zlyhala', + 'settings.oauth.toast.deleted': 'Klient OAuth zmazaný', + 'settings.oauth.toast.deleteError': 'Zmazanie klienta OAuth zlyhalo', + 'settings.oauth.toast.revoked': 'Relácia odvolaná', + 'settings.oauth.toast.revokeError': 'Odvolanie relácie zlyhalo', + 'settings.oauth.toast.rotateError': 'Obnovenie tajného kľúča klienta zlyhalo', + 'settings.oauth.modal.machineClient': 'Strojový klient (bez prihlásenia v prehliadači)', + 'settings.oauth.modal.machineClientHint': + 'Používa grant client_credentials — bez presmerovacích URI. Token je vydaný priamo cez client_id + client_secret a koná ako vy v rámci vybraných oprávnení.', + 'settings.oauth.modal.machineClientUsage': + 'Získať token: POST /oauth/token s grant_type=client_credentials, client_id a client_secret. Bez prehliadača, bez obnovovacieho tokenu.', + 'settings.oauth.badge.machine': 'strojový', + 'settings.account': 'Účet', + 'settings.about': 'O aplikácii', + 'settings.about.reportBug': 'Nahlásiť chybu', + 'settings.about.reportBugHint': 'Našli ste problém? Dajte nám vedieť', + 'settings.about.featureRequest': 'Navrhnúť funkciu', + 'settings.about.featureRequestHint': 'Navrhnite novú funkciu', + 'settings.about.wikiHint': 'Dokumentácia a návody', + 'settings.about.descriptionManaged': + 'TREK vám pomáha organizovať vaše cesty od prvého nápadu po poslednú spomienku. Denné plánovanie, rozpočet, zoznamy balenia, fotky a oveľa viac — všetko na jednom mieste.', + 'settings.about.sourceTitle': 'Zdrojový kód', + 'settings.about.sourceHint': 'TREK je open source, licencovaný pod AGPL-3.0', + 'settings.about.supporters.badge': 'Mesační podporovatelia', + 'settings.about.supporters.title': 'Spoločníci na ceste s TREK', + 'settings.about.supporters.subtitle': + 'Kým plánujete svoju ďalšiu trasu, títo ľudia pomáhajú plánovať budúcnosť TREK. Ich mesačný príspevok ide priamo do vývoja a reálne strávených hodín — aby TREK zostal Open Source.', + 'settings.about.supporters.since': 'podporovateľ od {date}', + 'settings.about.supporters.tierEmpty': 'Buďte prvý', + '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č ciest, ktorý vám pomáha organizovať vaše cesty od prvého nápadu po poslednú spomienku. Denné plánovanie, rozpočet, zoznamy balenia, fotky a oveľa viac — všetko na jednom mieste, na vašom vlastnom serveri.', + 'settings.about.madeWith': 'Vytvorené s', + 'settings.about.madeBy': 'Mauriceom a rastúcou open-source komunitou.', + 'settings.username': 'Používateľské meno', + 'settings.email': 'E-mail', + 'settings.role': 'Rola', + 'settings.roleAdmin': 'Administrátor', + 'settings.oidcLinked': 'Prepojené cez', + 'settings.changePassword': 'Zmeniť heslo', + 'settings.currentPassword': 'Súčasné heslo', + 'settings.currentPasswordRequired': 'Súčasné heslo je povinné', + 'settings.newPassword': 'Nové heslo', + 'settings.confirmPassword': 'Potvrdiť nové heslo', + 'settings.updatePassword': 'Aktualizovať heslo', + 'settings.passwordRequired': 'Zadajte prosím súčasné aj nové heslo', + 'settings.passwordTooShort': 'Heslo musí mať aspoň 8 znakov', + 'settings.passwordMismatch': 'Heslá sa nezhodujú', + 'settings.passwordWeak': 'Heslo musí obsahovať veľké písmeno, malé písmeno, číslicu a špeciálny znak', + 'settings.passwordChanged': 'Heslo bolo úspešne zmenené', + 'settings.mustChangePassword': 'Pred pokračovaním musíte zmeniť heslo. Nastavte si prosím nové heslo nižšie.', + 'settings.deleteAccount': 'Zmazať účet', + 'settings.deleteAccountTitle': 'Zmazať váš účet?', + 'settings.deleteAccountWarning': + 'Váš účet a všetky vaše cesty, miesta a súbory budú natrvalo zmazané. Túto akciu nie je možné vrátiť.', + 'settings.deleteAccountConfirm': 'Zmazať natrvalo', + 'settings.deleteBlockedTitle': 'Zmazanie nie je možné', + 'settings.deleteBlockedMessage': + 'Ste jediným administrátorom. Pred zmazaním svojho účtu povýšte iného používateľa na administrátora.', + 'settings.roleUser': 'Používateľ', + 'settings.saveProfile': 'Uložiť profil', + 'settings.toast.mapSaved': 'Nastavenia mapy uložené', + 'settings.toast.keysSaved': 'API kľúče uložené', + 'settings.toast.displaySaved': 'Nastavenia zobrazenia uložené', + 'settings.toast.profileSaved': 'Profil uložený', + 'settings.uploadAvatar': 'Nahrať profilový obrázok', + 'settings.removeAvatar': 'Odstrániť profilový obrázok', + 'settings.avatarUploaded': 'Profilový obrázok aktualizovaný', + 'settings.avatarRemoved': 'Profilový obrázok odstránený', + 'settings.avatarError': 'Nahrávanie zlyhalo', + 'settings.avatarRemoveError': 'Odstránenie zlyhalo', + 'settings.mfa.title': 'Dvojfaktorové overenie (2FA)', + 'settings.mfa.description': + 'Pridá druhý krok pri prihlásení e-mailom a heslom. Použite autentifikačnú aplikáciu (Google Authenticator, Authy atď.).', + 'settings.mfa.requiredByPolicy': + 'Váš administrátor vyžaduje dvojfaktorové overenie. Pred pokračovaním nižšie nastavte autentifikačnú aplikáciu.', + 'settings.mfa.backupTitle': 'Záložné kódy', + 'settings.mfa.backupDescription': + 'Použite tieto jednorazové záložné kódy, ak stratíte prístup k autentifikačnej aplikácii.', + 'settings.mfa.backupWarning': 'Uložte si tieto kódy teraz. Každý kód možno použiť iba raz.', + 'settings.mfa.backupCopy': 'Kopírovať kódy', + 'settings.mfa.backupDownload': 'Stiahnuť TXT', + 'settings.mfa.backupPrint': 'Tlač / PDF', + 'settings.mfa.backupCopied': 'Záložné kódy skopírované', + 'settings.mfa.enabled': '2FA je pre váš účet zapnuté.', + 'settings.mfa.disabled': '2FA nie je zapnuté.', + 'settings.mfa.setup': 'Nastaviť autentifikačnú aplikáciu', + 'settings.mfa.scanQr': 'Naskenujte tento QR kód svojou aplikáciou alebo zadajte tajný kľúč ručne.', + 'settings.mfa.secretLabel': 'Tajný kľúč (ručné zadanie)', + 'settings.mfa.codePlaceholder': '6-miestny kód', + 'settings.mfa.enable': 'Zapnúť 2FA', + 'settings.mfa.cancelSetup': 'Zrušiť', + 'settings.mfa.disableTitle': 'Vypnúť 2FA', + 'settings.mfa.disableHint': 'Zadajte heslo k účtu a aktuálny kód z autentifikačnej aplikácie.', + 'settings.mfa.disable': 'Vypnúť 2FA', + 'settings.mfa.toastEnabled': 'Dvojfaktorové overenie zapnuté', + 'settings.mfa.toastDisabled': 'Dvojfaktorové overenie vypnuté', + 'settings.mfa.demoBlocked': 'Nie je k dispozícii v demo režime', + 'settings.currency': 'Zobrazovaná mena', + 'settings.currencyHint': + 'Sumy v Nákladoch sa do tejto meny prepočítavajú iba pre zobrazenie — pôvodné sumy zostávajú nezmenené.', + 'settings.currencyTrip': 'Mena cesty', + 'settings.passkey.title': 'Prístupové kľúče', + 'settings.passkey.description': + 'Prihlasujte sa rýchlejšie a s ochranou proti phishingu pomocou prístupového kľúča — odtlačkom prsta, tvárou, PIN kódom alebo hardvérovým kľúčom. Vaše heslo zostáva ako záloha.', + 'settings.passkey.notConfigured': + 'Prístupové kľúče sú povolené, ale na tomto serveri zatiaľ nie sú plne nastavené. Požiadajte administrátora o nastavenie domény WebAuthn.', + 'settings.passkey.add': 'Pridať prístupový kľúč', + 'settings.passkey.addTitle': 'Pridať prístupový kľúč', + 'settings.passkey.passwordPrompt': 'Potvrďte svoje súčasné heslo a potom postupujte podľa pokynov svojho zariadenia.', + 'settings.passkey.passwordRequired': 'Vaše súčasné heslo je povinné.', + 'settings.passkey.namePlaceholder': 'Názov (voliteľné, napr. „iPhone")', + 'settings.passkey.addedToast': 'Prístupový kľúč pridaný', + 'settings.passkey.added': 'Pridané', + 'settings.passkey.addError': 'Prístupový kľúč sa nepodarilo pridať', + 'settings.passkey.cancelled': 'Nastavenie prístupového kľúča zrušené', + 'settings.passkey.deleted': 'Prístupový kľúč odstránený', + 'settings.passkey.deleteConfirm': 'Odstrániť tento prístupový kľúč? Potvrďte svojím heslom.', + 'settings.passkey.rename': 'Premenovať', + 'settings.passkey.defaultName': 'Prístupový kľúč', + 'settings.passkey.synced': 'Synchronizované', + 'settings.passkey.deviceBound': 'Toto zariadenie', + 'settings.passkey.lastUsed': 'Naposledy použité', + 'settings.passkey.neverUsed': 'Nikdy nepoužité', + 'settings.airtrail.title': 'AirTrail', + 'settings.airtrail.hint': + 'Pripojte svoju inštanciu AirTrail na import a synchronizáciu letov. Vytvorte API kľúč v AirTrail v Nastavenia → Zabezpečenie.', + 'settings.airtrail.url': 'URL inštancie', + 'settings.airtrail.apiKey': 'API kľúč', + 'settings.airtrail.apiKeyPlaceholder': 'API kľúč Bearer', + 'settings.airtrail.apiKeyHint': 'Vygenerovaný v AirTrail v Nastavenia → Zabezpečenie. Uložený šifrovane.', + 'settings.airtrail.allowInsecureTls': 'Povoliť certifikáty podpísané sebou samým', + 'settings.airtrail.allowInsecureTlsHint': 'Povoľte iba pre dôveryhodnú inštanciu vo vlastnej sieti.', + 'settings.airtrail.writeBack': 'Zapisovať zmeny späť do AirTrail', + 'settings.airtrail.writeBackHint': + 'V predvolenom stave vypnuté: AirTrail je zdrojom pravdy a TREK z neho iba číta. Zapnite, ak chcete odosielať úpravy vykonané v TREK späť do AirTrail.', + 'settings.airtrail.connected': 'Pripojené', + 'settings.airtrail.notConnected': 'Nepripojené', + 'settings.airtrail.toast.saved': 'Pripojenie k AirTrail uložené', + 'settings.airtrail.toast.saveError': 'Pripojenie sa nepodarilo uložiť', + 'settings.airtrail.test.button': 'Otestovať pripojenie', + 'settings.airtrail.test.success': 'Pripojené — nájdených letov: {count}', + 'settings.airtrail.test.failed': 'Pripojenie zlyhalo', + 'settings.aiParsing.title': 'Spracovanie pomocou AI', + 'settings.aiParsing.hint': + 'Vyberte model AI použitý na získavanie rezervácií z nahraných súborov. Platí iba vtedy, keď váš administrátor nenastavil model pre celú inštanciu.', + 'settings.aiParsing.provider': 'Poskytovateľ', + 'settings.aiParsing.providerLocal': 'Lokálny (Ollama)', + 'settings.aiParsing.providerOpenai': 'OpenAI', + 'settings.aiParsing.providerAnthropic': 'Anthropic', + 'settings.aiParsing.localAdminOnly': + 'Lokálny koncový bod (Ollama) sa nastavuje raz pre celú inštanciu v nastaveniach správcu. Vlastný kľúč OpenAI alebo Anthropic tu môžete používať aj naďalej.', + 'settings.aiParsing.model': 'Model', + 'settings.aiParsing.baseUrl': 'Základná URL', + 'settings.aiParsing.baseUrlHint': 'Kde model beží — lokálny server Ollama alebo koncový bod kompatibilný s OpenAI.', + 'settings.aiParsing.apiKey': 'API kľúč', + 'settings.aiParsing.apiKeyHint': 'Ukladá sa šifrovane. Ponechajte prázdne pre zachovanie aktuálneho kľúča.', + 'settings.aiParsing.multimodal': 'Odosielať dokumenty ako obrázky', + 'settings.aiParsing.multimodalHint': + 'Pre modely so schopnosťou spracovať obraz — odošle pôvodné PDF namiesto extrahovaného textu.', + 'settings.aiParsing.toast.saved': 'Nastavenia AI uložené', + 'settings.aiParsing.toast.saveError': 'Nastavenia AI sa nepodarilo uložiť', + 'settings.tabs.appearance': 'Vzhľad', + 'settings.appearance.theme': 'Motív', + 'settings.appearance.scheme': 'Farebná schéma', + 'settings.appearance.scheme.default': 'Predvolená', + 'settings.appearance.scheme.highContrast': 'Vysoký kontrast', + 'settings.appearance.scheme.indigo': 'Indigová', + 'settings.appearance.scheme.teal': 'Zelenomodrá', + 'settings.appearance.scheme.rose': 'Ružová', + 'settings.appearance.scheme.amber': 'Jantárová', + 'settings.appearance.scheme.violet': 'Fialová', + 'settings.appearance.scheme.custom': 'Vlastná', + 'settings.appearance.customAccent': 'Vlastný akcent', + 'settings.appearance.contrastOk': 'Dobrý kontrast', + 'settings.appearance.contrastLow': 'Nízky kontrast', + 'settings.appearance.readability': 'Čitateľnosť', + 'settings.appearance.transparency': 'Priehľadnosť', + 'settings.appearance.transparencyHint': 'Sklovité priesvitné plochy. Vypnite pre plné pozadia s vyšším kontrastom.', + 'settings.appearance.reduceMotion': 'Obmedziť pohyb', + 'settings.appearance.reduceMotionHint': 'Minimalizuje animácie a prechody.', + 'settings.appearance.density': 'Hustota', + 'settings.appearance.comfortable': 'Pohodlná', + 'settings.appearance.compact': 'Kompaktná', + 'settings.appearance.textSize': 'Veľkosť textu', + 'settings.appearance.advancedTextSizes': 'Rozšírené veľkosti textu', + 'settings.appearance.hideAdvanced': 'Skryť rozšírené', + 'settings.appearance.tier.title': 'Nadpisy', + 'settings.appearance.tier.subtitle': 'Podnadpisy', + 'settings.appearance.tier.body': 'Text', + 'settings.appearance.tier.caption': 'Popisky', + 'settings.appearance.dashboardWidgets': 'Widgety na prehľade', + 'settings.appearance.dashboardWidgetsHint': 'Zobrazte alebo skryte widgety prehľadu nezávisle na počítači a mobile.', + 'settings.appearance.desktop': 'Počítač', + 'settings.appearance.mobile': 'Mobil', + 'settings.appearance.widget.sidebar': 'Pravý bočný panel', + 'settings.appearance.widget.currency': 'Mena', + 'settings.appearance.widget.collections': 'Kolekcie', + 'settings.appearance.widget.timezones': 'Časové pásma', + 'settings.appearance.widget.upcomingReservations': 'Nadchádzajúce rezervácie', + 'settings.appearance.widget.atlas': 'Atlas / krajiny', + 'settings.appearance.widget.tripsTotal': 'Cesty celkom', + 'settings.appearance.widget.daysTraveled': 'Precestované dni', + 'settings.appearance.widget.distanceFlown': 'Nalietaná vzdialenosť', + 'settings.appearance.reset': 'Obnoviť predvolené', + 'settings.appearance.group.belowHero': 'Pod hlavičkou', + 'settings.appearance.group.bottomOfPage': 'Dole na stránke', + 'settings.appearance.sidebarHint': 'Celý pravý stĺpec. Vypnite a prehľad sa vycentruje.', + 'settings.appearance.densityHint': + 'Kompaktná zúži rozostupy a odsadenie pre hustejšie rozloženie, ktoré na obrazovku umiestni viac.', + 'settings.appearance.textSizeAll': 'Všetko', + 'settings.appearance.perSize': 'Upraviť každú veľkosť zvlášť', + 'settings.appearance.size.large': 'Veľká', + 'settings.appearance.size.medium': 'Stredná', + 'settings.appearance.size.normal': 'Normálna', + 'settings.appearance.size.small': 'Malá', + 'settings.appearance.preview.large': 'Veľký nadpis', + 'settings.appearance.preview.medium': 'Stredný podnadpis', + 'settings.appearance.preview.normal': 'Normálny text', + 'settings.appearance.preview.small': 'Malý popisok / adresa', + 'settings.appearance.example.large': 'Nadpisy, veľké čísla', + 'settings.appearance.example.medium': 'Podnadpisy', + 'settings.appearance.example.normal': 'Názvy miest, popisy', + 'settings.appearance.example.small': 'Adresy, štítky', + 'settings.appearance.experimental': 'Experimentálne', + 'settings.appearance.mobileNav': 'Dolná navigačná lišta', + 'settings.appearance.mobileNav.hint': + 'Vyberte, ktoré položky sa zobrazia v lište a ktoré budú v ponuke „Viac". Prehľad zostáva vždy na prvom mieste.', + 'settings.appearance.mobileNav.inBar': 'V lište', + 'settings.appearance.mobileNav.underMore': 'V ponuke „Viac"', + 'settings.appearance.mobileNav.moreEmpty': 'Zatiaľ tu nič nie je — všetko sa zmestí do lišty.', + 'settings.appearance.mobileNav.pinned': 'Pripnuté', + 'settings.appearance.mobileNav.toMore': 'Presunúť do ponuky „Viac"', + 'settings.appearance.mobileNav.toBar': 'Presunúť do lišty', + 'settings.appearance.dashOrder': 'Poradie na prehľade', + 'settings.appearance.dashOrder.hint': + 'Zmeňte poradie, v ktorom sa na prehľade v telefóne radí zoznam ciest a widgety. Vybraná cesta zostáva vždy hore.', + 'settings.appearance.dashOrder.trips': 'Cesty', + 'settings.appearance.dashOrder.hidden': 'Skryté', + 'settings.general.languageRegion': 'Jazyk a región', + 'settings.general.travelMap': 'Cestovanie a mapa', + 'settings.general.startup': 'Spustenie', + 'settings.startPage': 'Úvodná stránka', + 'settings.startPageDashboard': 'Prehľad', + 'settings.startPageActiveTrip': 'Aktívna cesta', + 'settings.startPageHint': + 'TREK sa otvorí rovno na ceste, ktorá práve prebieha, alebo na najbližšej nadchádzajúcej. Je to tá istá cesta, ktorú zvýrazňuje prehľad.', + 'settings.startTripTab': 'Úvodná karta', + 'settings.startTripTabHint': + 'Karta, na ktorej sa cesta otvorí. Ak patrí k doplnku, ktorý ste vypli, otvorí sa namiesto nej zobrazenie plánu.', + + // ── Offline (#1135) ──────────────────────────────────────────────────────── + 'settings.offline.cache.title': 'Offline vyrovnávacia pamäť', + 'settings.offline.mode.title': 'Offline režim', + 'settings.offline.mode.force': 'Vynútiť offline režim', + 'settings.offline.mode.forceHint': + 'Pracujte iba s dátami z vyrovnávacej pamäte a svoje zmeny zaraďte do fronty. Vypnutím sa znovu pripojíte a synchronizujete.', + 'settings.offline.mode.active': + 'Offline režim je zapnutý — vaše zmeny sú vo fronte a synchronizujú sa, keď ho vypnete.', + 'settings.offline.prepare.title': 'Príprava na offline', + 'settings.offline.prepare.hint': + 'Stiahnite si všetko potrebné — dáta ciest, dokumenty a mapové dlaždice — skôr než stratíte pripojenie.', + 'settings.offline.prepare.button': 'Stiahnuť pre offline použitie', + 'settings.offline.prepare.running': 'Sťahuje sa…', + 'settings.offline.prepare.done': 'Pripravené na offline použitie', + 'settings.offline.prepare.phase.trips': 'Dáta ciest', + 'settings.offline.prepare.phase.files': 'Dokumenty', + 'settings.offline.prepare.phase.tiles': 'Mapové dlaždice', + 'settings.offline.resync': 'Synchronizovať teraz', + 'settings.offline.resyncing': 'Synchronizuje sa…', + 'settings.offline.storage.title': 'Čo ukladať offline', + 'settings.offline.storage.tiles': 'Ukladať mapové dlaždice offline', + 'settings.offline.storage.tilesHint': + 'Mapové dlaždice zaberajú najviac miesta. Vypnutím ponecháte offline iba dáta ciest a dokumenty.', + 'settings.offline.storage.tripsTitle': 'Cesty', + 'settings.offline.storage.tripOn': 'Uložené offline', + 'settings.offline.storage.tripOff': 'Neuložené', + 'settings.offline.storage.tripFinished': 'Ukončené. Uloží sa, len ak to zapnete.', + 'settings.offline.notice.stored': 'Uložených {count} ciest v tomto zariadení', + 'settings.offline.notice.nothing': 'Nie je čo ukladať. Zapnite cesty, ktoré si chcete ponechať.', + 'settings.offline.notice.busy': 'Synchronizácia už prebieha. Skúste to o chvíľu znovu.', + 'settings.offline.notice.offline': 'Bez pripojenia. Pripojte sa, aby ste mohli ukladať cesty offline.', + 'settings.offline.notice.signedOut': 'Vaša relácia sa skončila. Pre synchronizáciu sa znovu prihláste.', + 'settings.offline.notice.failed': 'Sťahovanie sa nepodarilo dokončiť. Skontrolujte pripojenie a skúste to znovu.', + 'settings.offline.notice.loadFailed': + 'Offline úložisko tohto zariadenia sa nepodarilo prečítať. Zvyčajne pomôže vymazanie vyrovnávacej pamäte.', + 'settings.offline.clear': 'Vymazať vyrovnávaciu pamäť', + 'settings.offline.clearConfirm': + 'Vymazať všetky offline dáta ciest? Kedykoľvek online ich môžete znovu synchronizovať.', + 'settings.offline.stats.trips': 'Cesty vo vyrovnávacej pamäti', + 'settings.offline.stats.pending': 'Čakajúce zmeny', + 'settings.offline.stats.failed': 'Neúspešné zmeny', + 'settings.offline.stats.conflicts': 'Konflikty', + 'settings.offline.empty': 'Zatiaľ žiadne cesty vo vyrovnávacej pamäti. Pre synchronizáciu sa pripojte k internetu.', + 'settings.offline.loading': 'Načítava sa…', + 'settings.offline.conflicts.title': 'Konflikty synchronizácie', + 'settings.offline.conflicts.hint': + 'Zmeny, ktoré ste vykonali offline, sa stretávajú s novšími zmenami na serveri. Vyberte, ktorú verziu zachovať.', + 'settings.offline.conflicts.keepMine': 'Zachovať moju', + 'settings.offline.conflicts.keepServer': 'Zachovať ich', + 'settings.offline.conflicts.mine': 'Vaša verzia', + 'settings.offline.conflicts.server': 'Verzia zo servera', + 'settings.offline.conflicts.item': 'Zmena v „{name}"', + 'settings.offline.conflicts.strategyTitle': 'Keď dôjde ku konfliktu', + 'settings.offline.conflicts.strategy.ask': 'Vždy sa ma opýtať', + 'settings.offline.conflicts.strategy.mine': 'Vždy zachovať moju verziu', + 'settings.offline.conflicts.strategy.server': 'Vždy zachovať verziu zo servera', + 'settings.offline.banner.offline': 'Offline', + 'settings.offline.banner.forced': 'Offline režim', + 'settings.offline.banner.queued': 'Offline · {count} vo fronte', + 'settings.offline.banner.syncing': 'Synchronizácia {count}…', + 'settings.offline.banner.failed': 'Synchronizácia zlyhala: {count}', + 'settings.offline.banner.conflicts': 'Konflikty: {count}', + 'settings.alwaysShowRoutes': 'Vždy zobrazovať trasy rezervácií', + 'settings.alwaysShowRoutesHint': + 'Automaticky vykreslí na mape trasu každého letu, vlaku a inej rezervácie — netreba ju zapínať pri každej položke.', + + // Public API keys (Settings -> Integrations) + // ── API keys: what a key may read ───────────────────────────────────────── + 'settings.apiScopes.title': 'Čo smie tento kľúč čítať', + 'settings.apiScopes.hint': + 'Pre kľúč, ktorý má vidieť všetko, nechajte všetko zapnuté. Čokoľvek vypnete, bude tomuto kľúču odopreté, nielen vynechané z odpovede.', + 'settings.apiScopes.all': 'Všetko', + 'settings.apiScopes.noneSelected': 'Vyberte aspoň jednu oblasť, inak by kľúč nemohol čítať nič.', + 'settings.apiScopes.limited': '{count} z {total}', + 'settings.apiScopes.trips': 'Cesty', + 'settings.apiScopes.days': 'Dni', + 'settings.apiScopes.places': 'Miesta', + 'settings.apiScopes.notes': 'Poznámky ku dňu', + 'settings.apiScopes.reservations': 'Rezervácie', + 'settings.apiScopes.accommodations': 'Ubytovanie', + 'settings.apiScopes.travellers': 'Kto ide', + 'settings.apiScopes.bucket-list': 'Zoznam želaní', + 'settings.apiScopes.stats': 'Súhrny', + 'settings.apiKeys.title': 'API kľúče', + 'settings.apiKeys.description': + 'Kľúče pre verejné API, aby iný softvér mohol čítať vaše cesty. Iba na čítanie: kľúč nemôže nič meniť ani mazať.', + 'settings.apiKeys.create': 'Vytvoriť kľúč', + 'settings.apiKeys.empty': 'Zatiaľ žiadne kľúče. Vytvorte jeden a pripojte iný softvér.', + 'settings.apiKeys.createdAt': 'vytvorený', + 'settings.apiKeys.usedAt': 'naposledy použitý', + 'settings.apiKeys.deleteTitle': 'Zmazať kľúč', + 'settings.apiKeys.deleteMessage': + 'Všetko, čo tento kľúč používa, okamžite prestane fungovať. Túto akciu nie je možné vrátiť.', + 'settings.apiKeys.deleted': 'Kľúč zmazaný', + 'settings.apiKeys.deleteFailed': 'Kľúč sa nepodarilo zmazať', + 'settings.apiKeys.createFailed': 'Kľúč sa nepodarilo vytvoriť', + 'settings.apiKeys.copy': 'Kopírovať', + 'settings.apiKeys.docsHint': 'Pošlite kľúč ako "Authorization: Bearer ..." alebo "X-API-Key: ..." na /api/v1.', + 'settings.apiKeys.endpoint': 'Endpoint', + 'settings.apiKeys.neverUsed': 'nikdy nepoužitý', + 'settings.apiKeys.loadFailed': 'Vaše kľúče sa nepodarilo načítať. Obnovte stránku a skúste to znovu.', + 'settings.apiKeys.limitReached': + 'Máte {max} kľúčov, čo je najviac, koľko účet môže mať. Zmažte niektorý, ktorý už nepoužívate, a vytvorte ďalší.', + 'settings.apiKeys.copyFailed': 'Kopírovanie sa nepodarilo. Označte text a skopírujte ho ručne.', + 'settings.apiKeys.modal.createTitle': 'Vytvoriť API kľúč', + 'settings.apiKeys.modal.name': 'Názov', + 'settings.apiKeys.modal.namePlaceholder': 'napr. Dawarich', + 'settings.apiKeys.modal.nameHint': 'Iba pre vás, aby ste kľúč neskôr spoznali.', + 'settings.apiKeys.modal.creating': 'Vytvára sa...', + 'settings.apiKeys.modal.create': 'Vytvoriť', + 'settings.apiKeys.modal.createdTitle': 'API kľúč vytvorený', + 'settings.apiKeys.modal.createdWarning': + 'Skopírujte kľúč teraz. Zobrazí sa iba raz a neskôr ho už nie je možné získať.', + 'settings.apiKeys.modal.done': 'Hotovo', +}; + +export default settings; diff --git a/shared/src/i18n/sk/share.ts b/shared/src/i18n/sk/share.ts new file mode 100644 index 000000000..e2b44f05e --- /dev/null +++ b/shared/src/i18n/sk/share.ts @@ -0,0 +1,16 @@ +import type { TranslationStrings } from '../types'; + +const share: TranslationStrings = { + 'share.linkTitle': 'Verejný odkaz', + 'share.linkHint': + 'Vytvorte odkaz, ktorým si môže ktokoľvek prezrieť túto cestu bez prihlásenia. Iba na čítanie — úpravy nie sú možné.', + 'share.createLink': 'Vytvoriť odkaz', + 'share.deleteLink': 'Zmazať odkaz', + 'share.createError': 'Nepodarilo sa vytvoriť odkaz', + 'share.permMap': 'Mapa a plán', + 'share.permBookings': 'Rezervácie', + 'share.permPacking': 'Balenie', + 'share.permBudget': 'Náklady', + 'share.permCollab': 'Chat', +}; +export default share; diff --git a/shared/src/i18n/sk/shared.ts b/shared/src/i18n/sk/shared.ts new file mode 100644 index 000000000..642c8e1de --- /dev/null +++ b/shared/src/i18n/sk/shared.ts @@ -0,0 +1,21 @@ +import type { TranslationStrings } from '../types'; + +const shared: TranslationStrings = { + 'shared.expired': 'Odkaz vypršal alebo je neplatný', + 'shared.expiredHint': 'Tento zdieľaný odkaz na cestu už nie je aktívny.', + 'shared.readOnly': 'Zdieľané zobrazenie – iba na čítanie', + 'shared.tabPlan': 'Plán', + 'shared.tabBookings': 'Rezervácie', + 'shared.tabPacking': 'Balenie', + 'shared.tabBudget': 'Náklady', + 'shared.tabChat': 'Chat', + 'shared.days': 'dní', + 'shared.places': 'miest', + 'shared.other': 'Ostatné', + 'shared.totalBudget': 'Celkové náklady', + 'shared.messages': 'správ', + 'shared.sharedVia': 'Zdieľané cez', + 'shared.confirmed': 'Potvrdené', + 'shared.pending': 'Čaká na potvrdenie', +}; +export default shared; diff --git a/shared/src/i18n/sk/stats.ts b/shared/src/i18n/sk/stats.ts new file mode 100644 index 000000000..0779afa7f --- /dev/null +++ b/shared/src/i18n/sk/stats.ts @@ -0,0 +1,13 @@ +import type { TranslationStrings } from '../types'; + +const stats: TranslationStrings = { + 'stats.countries': 'Krajiny', + 'stats.cities': 'Mestá', + 'stats.trips': 'Cesty', + 'stats.places': 'Miesta', + 'stats.worldProgress': 'Objavovanie sveta', + 'stats.visited': 'navštívené', + 'stats.remaining': 'zostáva', + 'stats.visitedCountries': 'Navštívené krajiny', +}; +export default stats; diff --git a/shared/src/i18n/sk/storage.ts b/shared/src/i18n/sk/storage.ts new file mode 100644 index 000000000..8bfd62d9c --- /dev/null +++ b/shared/src/i18n/sk/storage.ts @@ -0,0 +1,153 @@ +import type { TranslationStrings } from '../types'; + +const storage: TranslationStrings = { + // Field labels/help — these keys are pinned by STORAGE_BACKEND_TYPES in + // @trek/shared (labelKey/helpKey); renaming one breaks the admin form. + 'storage.field.root': 'Koreňový adresár', + 'storage.help.root': 'Absolútna cesta na serveri, kam tento backend ukladá svoje objekty.', + 'storage.field.endpoint': 'URL koncového bodu', + 'storage.help.endpoint': + 'Základná URL služby kompatibilnej s S3, napr. https://s3.example.com alebo http://127.0.0.1:9000.', + 'storage.field.bucket': 'Bucket', + 'storage.field.accessKeyId': 'ID prístupového kľúča', + 'storage.field.secretAccessKey': 'Tajný prístupový kľúč', + 'storage.field.region': 'Región', + 'storage.help.region': 'Ponechajte predvolenú hodnotu, pokiaľ váš poskytovateľ nevyžaduje konkrétny región.', + 'storage.field.keyPrefix': 'Predpona kľúča', + 'storage.help.keyPrefix': 'Voliteľná predpona pridaná ku každému kľúču objektu, napr. trek/prod.', + 'storage.field.retries': 'Počet pokusov', + 'storage.field.timeoutMs': 'Časový limit (ms)', + 'storage.field.primary': 'Primárny backend', + 'storage.field.replicas': 'Repliky', + + // Panel chrome + 'storage.title': 'Úložisko', + 'storage.description': 'Kam TREK ukladá nahrané súbory, fotky a zálohy. Kým neuložíte, nič sa nezmení.', + 'storage.loading': 'Načítava sa…', + 'storage.saved': 'Konfigurácia úložiska uložená', + 'storage.save': 'Uložiť zmeny', + 'storage.unsaved': 'Neuložené zmeny', + + 'storage.saveConflict': + 'Nastavenia úložiska sa od načítania zmenili, takže vaše zmeny neboli uložené. Zahoďte ich a načítajte uložené nastavenia znova, aby ste mohli začať odznova.', + 'storage.discardAndReload': 'Zahodiť moje zmeny a načítať znova', + 'storage.configError.banner': 'Uložené nastavenia úložiska sa nepodarilo načítať — uložením ich nahradíte: {error}', + // Backends list + 'storage.backends.title': 'Backendy', + 'storage.backends.add': 'Pridať backend', + 'storage.backends.usedBy': 'Používa: {categories}', + 'storage.backends.unused': 'Nepriradené k žiadnej kategórii', + 'storage.backends.envReadOnly': 'Definované premennou prostredia — iba na čítanie', + 'storage.source.built-in': 'Vstavané', + 'storage.source.env': 'Prostredie', + 'storage.source.settings': 'Nastavenia', + 'storage.type.local': 'Miestne', + 'storage.type.s3': 'S3', + 'storage.type.mirror': 'Zrkadlo', + 'storage.actions.test': 'Test', + 'storage.actions.edit': 'Upraviť', + 'storage.actions.remove': 'Odobrať', + + // Test-connection results + 'storage.test.running': 'Testuje sa…', + 'storage.test.ok': 'Pripojenie v poriadku', + 'storage.test.failed': 'Test zlyhal', + + // Remove pre-check (friendly message; the server stays authoritative) + 'storage.remove.title': 'Odobrať backend', + 'storage.remove.body': 'Odobrať {name} z konfigurácie? Server odmietne uloženie, ak od neho ešte niečo závisí.', + 'storage.remove.stillAssigned': 'Stále priradené k: {categories}', + + // Backend form + 'storage.form.addTitle': 'Pridať backend', + 'storage.form.editTitle': 'Upraviť backend', + 'storage.form.name': 'Názov', + 'storage.form.type': 'Typ', + 'storage.form.apply': 'Použiť', + 'storage.form.cancel': 'Zrušiť', + 'storage.form.duplicateName': 'Backend s názvom {name} už existuje', + + // Category map + 'storage.categories.title': 'Kategórie', + 'storage.categories.default': 'predvolené', + 'storage.categories.reassignWarning': + 'Existujúce objekty sa nepresúvajú: nové objekty idú do novo priradeného backendu, staré zostávajú tam, kde sú.', + 'storage.category.files': 'Dokumenty cesty', + 'storage.category.journey': 'Fotky z cestovného denníka', + 'storage.category.covers': 'Titulné obrázky', + 'storage.category.avatars': 'Profilové fotky', + 'storage.category.places': 'Obrázky miest', + 'storage.category.photos-google': 'Vyrovnávacia pamäť fotiek Google', + 'storage.category.photos-trek': 'Vyrovnávacia pamäť fotiek TREK', + 'storage.category.backups': 'Zálohy', + + // What each category stores — rendered under the label in the category map. + 'storage.categoryDesc.files': + 'Súbory nahrané k cestám — lístky, PDF, potvrdenia rezervácií a súbory zdieľané v chate cesty.', + 'storage.categoryDesc.journey': 'Fotky a náhľady pripojené k záznamom cestovného denníka.', + 'storage.categoryDesc.covers': 'Titulné obrázky ciest a zbierok vrátane obrázkov načítaných z Unsplash.', + 'storage.categoryDesc.avatars': 'Profilové fotky používateľských účtov.', + 'storage.categoryDesc.places': 'Obrázky pripojené k miestam a miestam v zbierkach — nahrané alebo importované.', + 'storage.categoryDesc.photos-google': + 'Uložené kópie fotiek z Google Places — dajú sa znovu načítať, ich strata je bezpečná.', + 'storage.categoryDesc.photos-trek': + 'Fotky uložené vo vyrovnávacej pamäti zo služby fotiek TREK používanej funkciou Spomienky — dajú sa znovu načítať, ich strata je bezpečná.', + 'storage.categoryDesc.backups': 'Archívy záloh servera vytvorené panelom Zálohy alebo plánovačom.', + + // Health strip + 'storage.health.title': 'Stav', + 'storage.health.allClear': 'Neboli zaznamenané žiadne zlyhania replík.', + 'storage.health.seedFile': + 'Je prítomný seed súbor storage-config.json, ale je ignorovaný — konfiguračné riadky už existujú. Spravujte úložisko tu.', + 'storage.health.failureLine': '{op} pre {key} na {backend} zlyhalo: {error}', + + // Replicas-on-primary mirror UX (2026-08-20 spec) + 'storage.mirror.targets': 'Ciele zrkadla', + 'storage.mirror.targetsHelp': 'Každý zápis do tohto backendu sa tiež skopíruje do každého vybraného cieľa.', + 'storage.mirror.latencyNote': + 'Repliky sa zapisujú jedna po druhej počas každého nahrávania — pomalý alebo nedostupný cieľ spomalí každé nahrávanie každej kategórie na tomto backende.', + 'storage.mirror.mirroredTo': 'Zrkadlené do: {targets}', + 'storage.mirror.replicaOf': 'Replika: {primaries}', + 'storage.mirror.cacheWarning': + 'Neodporúča sa: táto kategória obsahuje znovu získateľný obsah — jeho replikácia je zvyčajne zbytočná.', + 'storage.mirror.degenerate.duplicate-mirror': + 'Druhé zrkadlo obaľuje {primary} — panel spravuje iba prvé; odoberte toto, aby ste spravovali zrkadlenie z {primary}.', + 'storage.mirror.degenerate.env-primary': 'Obaľuje backend definovaný premennou prostredia — tu sa nedá upraviť.', + 'storage.mirror.degenerate.missing-primary': 'Odkazuje na backend, ktorý už neexistuje.', + 'storage.remove.usedAsReplicaBy': 'Používané ako replika: {primaries}', + + // Backfill + usage (backfill/stats/notifications spec) + 'storage.sync.now': 'Synchronizovať teraz', + 'storage.sync.running': 'Synchronizuje sa… {done}/{total}', + 'storage.sync.counts': '{copied} skopírovaných · {skipped} preskočených · {failed} zlyhaní', + 'storage.sync.cancel': 'Zrušiť synchronizáciu', + 'storage.sync.done': 'Synchronizácia dokončená: {copied} skopírovaných, {deleted} odstránených, {failed} zlyhaní', + 'storage.sync.cancelled': 'Synchronizácia zrušená', + 'storage.sync.error': 'Synchronizácia zlyhala: {error}', + 'storage.sync.prompt': 'Existujúce objekty ešte nie sú replikované — synchronizovať teraz?', + 'storage.sync.dismiss': 'Zavrieť', + 'storage.usage.line': '{objects} objektov · {size}', + 'storage.usage.computed': 'Využitie vypočítané {age}', + 'storage.usage.never': 'Využitie ešte nebolo vypočítané', + 'storage.usage.refresh': 'Obnoviť', + 'storage.usage.compute': 'Vypočítať teraz', + 'storage.usage.legacyNote': 'zahŕňa staršiu knižnicu fotiek', + + // Category migration (copy → flip → delta sweep) + 'storage.migrate.promptTitle': 'Presunúť existujúce objekty do nového backendu?', + 'storage.migrate.promptLine': '{category}: {objects} objektov ({size}) z {from} do {to}', + 'storage.migrate.promptLineUnknown': '{category}: neznáma veľkosť (využitie ešte nebolo vypočítané) z {from} do {to}', + 'storage.migrate.move': 'Presunúť existujúce objekty', + 'storage.migrate.routeOnly': 'Iba smerovať nové zápisy', + 'storage.migrate.running': 'Presúva sa {category}… {done}/{total}', + 'storage.migrate.done': 'Presun dokončený: {copied} skopírovaných, {skipped} preskočených', + 'storage.migrate.doneFailures': '{failed} zlyhalo — tieto objekty neboli skopírované do nového backendu', + 'storage.migrate.failed': 'Presun zlyhal: {error} — kategória nebola prepnutá', + 'storage.migrate.cancelled': 'Presun zrušený — nič nebolo prepnuté', + 'storage.migrate.reclaimable': '{objects} objektov ({size}) zostáva na {from} — uvoľnite ručne', + 'storage.migrate.cancel': 'Zrušiť presun', + 'storage.migrate.promptCancel': 'Zrušiť', + 'storage.migrate.queued': 'V poradí: {categories}', + 'storage.migrate.queueDropped': 'Nepodarilo sa spustiť ďalší presun — zvyšné poradie bolo vymazané: {categories}', +}; +export default storage; diff --git a/shared/src/i18n/sk/system_notice.ts b/shared/src/i18n/sk/system_notice.ts new file mode 100644 index 000000000..54d82491d --- /dev/null +++ b/shared/src/i18n/sk/system_notice.ts @@ -0,0 +1,97 @@ +import type { TranslationStrings } from '../types'; + +const system_notice: TranslationStrings = { + 'system_notice.v3_photos.title': 'Fotografie sa v 3.0 presunuli', + 'system_notice.v3_photos.body': + '**Fotografie** v Plánovači ciest boli odstránené. Vaše fotografie sú v bezpečí — TREK nikdy neupravoval vašu knižnicu Immich ani Synology.\n\nFotografie sú teraz v doplnku **Journey**. Journey je voliteľný — ak ešte nie je k dispozícii, požiadajte svojho správcu, aby ho aktivoval v Správa → Doplnky.', + 'system_notice.v3_journey.title': 'Spoznajte Journey — cestovný denník', + 'system_notice.v3_journey.body': + 'Dokumentujte svoje cesty ako bohaté cestovateľské príbehy s časovými osami, galériami fotiek a interaktívnymi mapami.', + 'system_notice.v3_journey.cta_label': 'Otvoriť Journey', + 'system_notice.v3_journey.highlight_timeline': 'Časová os a galéria deň po dni', + 'system_notice.v3_journey.highlight_photos': 'Import z Immich alebo Synology', + 'system_notice.v3_journey.highlight_share': 'Zdieľajte verejne — bez prihlásenia', + 'system_notice.v3_journey.highlight_export': 'Export ako PDF fotokniha', + 'system_notice.v3_features.title': 'Ďalšie novinky v 3.0', + 'system_notice.v3_features.body': 'Niekoľko ďalších vecí, ktoré o tomto vydaní stojí za to vedieť.', + 'system_notice.v3_features.highlight_dashboard': 'Redizajn nástenky mobile-first', + 'system_notice.v3_features.highlight_offline': 'Plný offline režim ako PWA', + 'system_notice.v3_features.highlight_search': 'Automatické dopĺňanie vyhľadávania miest v reálnom čase', + 'system_notice.v3_features.highlight_import': 'Import miest zo súborov KMZ/KML', + 'system_notice.v3_mcp.title': 'MCP: aktualizácia na OAuth 2.1', + 'system_notice.v3_mcp.body': + 'Integrácia MCP bola kompletne prepracovaná. OAuth 2.1 je teraz odporúčaná metóda overovania. Staršie statické tokeny (trek_…) sú zastarané a v budúcom vydaní budú odstránené.', + 'system_notice.v3_mcp.highlight_oauth': 'OAuth 2.1 odporúčané (mcp-remote)', + 'system_notice.v3_mcp.highlight_scopes': '24 jemne odstupňovaných rozsahov oprávnení', + 'system_notice.v3_mcp.highlight_deprecated': 'Statické tokeny trek_ sú zastarané', + 'system_notice.v3_mcp.highlight_tools': 'Rozšírená sada nástrojov a promptov', + 'system_notice.v3_thankyou.title': 'Osobné slovo odo mňa', + 'system_notice.v3_thankyou.body': + 'Než pôjdete ďalej — chcem sa na chvíľu zastaviť.\n\nTREK začal ako vedľajší projekt, ktorý som vytvoril pre svoje vlastné cesty. Nikdy som si nepredstavoval, že vyrastie na niečo, čomu teraz 4 000 z vás dôveruje pri plánovaní svojich dobrodružstiev. Každú hviezdičku, každý issue, každú požiadavku na funkciu — všetky ich čítam a práve ony ma držia počas neskorých nocí medzi prácou na plný úväzok a univerzitou.\n\nChcem, aby ste vedeli: TREK bude vždy open source, vždy self-hosted, vždy váš. Žiadne sledovanie, žiadne predplatné, žiadne háčiky. Len nástroj vytvorený niekým, kto miluje cestovanie rovnako ako vy.\n\nOsobitné poďakovanie patrí [jubnl](https://github.com/jubnl) — stal si sa neuveriteľným spolupracovníkom. Toľko z toho, čo robí verziu 3.0 skvelou, nesie tvoj rukopis. Ďakujem, že si veril tomuto projektu, keď bol ešte len v plienkach.\n\nA každému jednému z vás, kto nahlásil chybu, preložil reťazec, zdieľal TREK s priateľom alebo ho jednoducho použil na naplánovanie cesty — **ďakujem**. Vy ste dôvod, prečo toto existuje.\n\nNa mnoho ďalších dobrodružstiev spoločne.\n\n— Maurice\n\n---\n\n[Pridaj sa ku komunite na Discorde](https://discord.gg/7Q6M6jDwzf)\n\nAk ti TREK zlepšuje cestovanie, [malá káva](https://ko-fi.com/mauriceboe) vždy pomôže udržať svetlá rozsvietené.', + 'system_notice.v3014_whitespace_collision.title': 'Vyžaduje sa akcia: konflikt používateľského účtu', + 'system_notice.v3014_whitespace_collision.body': + 'Aktualizácia 3.0.14 zistila jeden alebo viac konfliktov používateľského mena alebo e-mailu spôsobených medzerami na začiatku/konci uložených účtov. Dotknuté účty boli automaticky premenované. Skontrolujte protokoly servera na riadky začínajúce **[migration] WHITESPACE COLLISION**, aby ste zistili, ktoré účty vyžadujú kontrolu.', + 'system_notice.welcome_v1.title': 'Vitajte v TREK', + 'system_notice.welcome_v1.body': + 'Váš komplexný plánovač ciest. Vytvárajte itineráre, zdieľajte cesty s priateľmi a majte vo všetkom poriadok — online i offline.', + 'system_notice.welcome_v1.cta_label': 'Naplánovať cestu', + 'system_notice.welcome_v1.hero_alt': 'Malebná cestovateľská destinácia s prekrytím plánovacieho rozhrania TREK', + 'system_notice.welcome_v1.highlight_plan': 'Itineráre deň po dni pre každú cestu', + 'system_notice.welcome_v1.highlight_share': 'Spolupracujte s cestovnými partnermi', + 'system_notice.welcome_v1.highlight_offline': 'Funguje offline na mobile', + 'system_notice.dev_test_modal.title': '[Dev] Testovacie oznámenie', + 'system_notice.dev_test_modal.body': 'Toto je testovacie oznámenie len pre vývoj.', + // Thank-you + support the project (shown once per install and once per upgrade) + 'system_notice.thank_you_support.title': 'Ďakujeme, že používate TREK', + 'system_notice.thank_you_support.body': + 'Rýchle poďakovanie za to, že ste si nainštalovali TREK — úprimne, znamená to pre mňa veľa.\n\nSom jediný vývojár a TREK tvorím vo svojom voľnom čase. Začalo to ako malý nástroj len pre moje vlastné cesty a odvtedy ma podpora a záujem komunity úplne dostávajú. TREK robím s veľkým srdcom — ale aj vďaka mnohým úžasným externým prispievateľom, ktorí ho pomohli formovať.\n\n**TREK je open source a úplne zadarmo — a tak to už navždy zostane. Žiadne platené úrovne, žiadne predplatné, žiadny háčik. Sľubujem.**\n\nAk je pre vás TREK užitočný a chceli by ste podporiť jeho vývoj, malá káva mi naozaj pomáha pokračovať v tvorbe — žiadny tlak, ale každá šálka mi pomáha prekonať neskoré noci.\n\nĎakujem, že ste tu.\n\n— Maurice', + 'system_notice.thank_you_support.highlight_opensource': '100 % open source na GitHube', + 'system_notice.thank_you_support.highlight_free': 'Navždy zadarmo — nikdy žiadne platené úrovne', + 'system_notice.thank_you_support.highlight_community': 'Tvorené spoločne s komunitou', + 'system_notice.thank_you_support.cta_bmc': 'Buy Me a Coffee', + 'system_notice.thank_you_support.cta_kofi': 'Podporiť na Ko-fi', + // The release modal. One stable set of keys: each big release swaps the copy in place. + 'system_notice.release_notes.eyebrow': 'Aktualizácia nainštalovaná', + 'system_notice.release_notes.headline': 'Štyri veci, ktoré TREK teraz zvládne sám.', + 'system_notice.release_notes.intro': + 'Vlastné API miest, cesty autom naplánované od začiatku do konca, história polohy späť vo vašich rukách a vaše dokumenty v synchronizácii.', + 'system_notice.release_notes.features_label': 'Hlavné novinky', + 'system_notice.release_notes.features_aside': 'Zďaleka nie všetko', + 'system_notice.release_notes.feature_places_title': 'TREK Places API', + 'system_notice.release_notes.feature_places_body': + 'Prvý open source plánovač ciest s vlastným API miest. 73,6 milióna miest, bez kľúča, bez limitu.', + 'system_notice.release_notes.feature_roadtrip_title': 'Doplnok Cesta autom', + 'system_notice.release_notes.feature_roadtrip_body': + 'Naplánuje jazdu sám: trasu, vzdialenosť, hodiny a zastávky. Vypnuté, kým to správca nezapne.', + 'system_notice.release_notes.feature_dawarich_title': 'Integrácia Dawarich', + 'system_notice.release_notes.feature_dawarich_body': + 'Self-hosted odpoveď na Google Timeline, teraz čitateľná priamo v TREK. TREK číta, a len číta.', + 'system_notice.release_notes.footnote': 'A k tomu dlhý zoznam menších zmien naprieč zvyškom TREK.', + 'system_notice.release_notes.notes_label': 'Poznámky k vydaniu', + 'system_notice.release_notes.note_eyebrow': 'Slovo od správcu', + 'system_notice.release_notes.note_title': 'Vy ste dôvod, prečo na TREK stále pracujem.', + 'system_notice.release_notes.note_body': + 'TREK začal ako malý nástroj pre moje vlastné cesty, napísaný po práci, pretože som ich chcel plánovať lepšie. V podstate nikdy neprestal rásť. Takmer všetko, čo používate, vzniklo neskoro v noci, cez víkendy, vo vlakoch, popri práci na plný úväzok, a bolo veľa večerov, keď som sa potichu pýtal, či ho tam vonku niekedy vôbec niekto otvorí.', + 'system_notice.release_notes.promise_label': 'Sľub', + 'system_notice.release_notes.promise_lead': 'TREK zostáva zadarmo, navždy.', + 'system_notice.release_notes.promise_text': + 'Každá funkcia, každá aktualizácia, pre všetkých. Žiadne platené úrovne, žiadne predplatné, žiadny háčik.', + 'system_notice.release_notes.note_body_after': + 'A potom ste ho otvorili. V priebehu pár mesiacov vás boli tisíce: hviezdičky, hlásenia chýb, preklady do jazykov, ktorými nehovorím, pull requesty od ľudí, ktorých som nikdy nestretol. Každé ráno sa stále najprv pozriem do repozitára a stále mi to nepripadá celkom skutočné.', + 'system_notice.release_notes.note_closing': 'Ďakujem, že ste tu, váš Maurice.', + 'system_notice.release_notes.support_lead': + 'TREK je a vždy bude zadarmo, ale servery, domény a množstvo neskorých nocí nie sú.', + 'system_notice.release_notes.support_text': + 'Ak si získal miesto na vašich cestách, kúpte mi kávu a pomôžte, aby prišlo aj ďalšie vydanie.', + 'system_notice.release_notes.cta_bmc': 'Buy me a coffee', + 'system_notice.release_notes.cta_kofi': 'Podporiť na Ko-fi', + 'system_notice.pager.prev': 'Predchádzajúce oznámenie', + 'system_notice.pager.next': 'Ďalšie oznámenie', + 'system_notice.pager.counter': '{current} / {total}', + 'system_notice.pager.goto': 'Prejsť na oznámenie {n}', + 'system_notice.pager.position': 'Oznámenie {current} z {total}', + 'system_notice.release_notes.feature_docsync_title': 'Synchronizácia dokumentov', + 'system_notice.release_notes.feature_docsync_body': + 'Paperless-ngx, Papra, Nextcloud, OpenCloud a Synology Drive. Dokumenty cesty prúdia obomi smermi s úložiskom, ktoré už prevádzkujete.', +}; +export default system_notice; diff --git a/shared/src/i18n/sk/todo.ts b/shared/src/i18n/sk/todo.ts new file mode 100644 index 000000000..654c81708 --- /dev/null +++ b/shared/src/i18n/sk/todo.ts @@ -0,0 +1,41 @@ +import type { TranslationStrings } from '../types'; + +const todo: TranslationStrings = { + 'todo.emptyFiltered': 'Žiadne úlohy nezodpovedajú tomuto filtru', + 'todo.subtab.packing': 'Baliaci zoznam', + 'todo.subtab.todo': 'Úlohy', + 'todo.completed': 'dokončené', + 'todo.filter.all': 'Všetko', + 'todo.filter.open': 'Otvorené', + 'todo.filter.done': 'Hotové', + 'todo.uncategorized': 'Bez zoznamu', + 'todo.namePlaceholder': 'Názov úlohy', + 'todo.descriptionPlaceholder': 'Popis (voliteľné)', + 'todo.unassigned': 'Nepriradené', + 'todo.noCategory': 'Bez zoznamu', + 'todo.hasDescription': 'Má popis', + 'todo.addItem': 'Pridať novú úlohu', + 'todo.sidebar.sortBy': 'Zoradiť podľa', + 'todo.priority': 'Priorita', + 'todo.newCategoryLabel': 'nový', + 'todo.newCategory': 'Názov zoznamu', + 'todo.addCategory': 'Pridať zoznam', + 'todo.newItem': 'Nová úloha', + 'todo.empty': 'Zatiaľ žiadne úlohy. Pridajte úlohu a začnite!', + 'todo.filter.my': 'Moje úlohy', + 'todo.filter.overdue': 'Po termíne', + 'todo.sidebar.tasks': 'Úlohy', + 'todo.sidebar.categories': 'Zoznamy', + 'todo.detail.title': 'Úloha', + 'todo.detail.description': 'Popis', + 'todo.detail.category': 'Zoznam', + 'todo.detail.dueDate': 'Termín splnenia', + 'todo.detail.assignedTo': 'Priradené', + 'todo.detail.delete': 'Zmazať', + 'todo.detail.save': 'Uložiť zmeny', + 'todo.sortByPrio': 'Priorita', + 'todo.detail.priority': 'Priorita', + 'todo.detail.noPriority': 'Žiadna', + 'todo.detail.create': 'Vytvoriť úlohu', +}; +export default todo; diff --git a/shared/src/i18n/sk/transport.ts b/shared/src/i18n/sk/transport.ts new file mode 100644 index 000000000..0df59ef73 --- /dev/null +++ b/shared/src/i18n/sk/transport.ts @@ -0,0 +1,10 @@ +import type { TranslationStrings } from '../types'; + +const transport: TranslationStrings = { + 'transport.addTransport': 'Pridať dopravu', + 'transport.modalTitle.create': 'Pridať dopravu', + 'transport.modalTitle.edit': 'Upraviť dopravu', + 'transport.title': 'Doprava', + 'transport.addManual': 'Doprava', +}; +export default transport; diff --git a/shared/src/i18n/sk/trip.ts b/shared/src/i18n/sk/trip.ts new file mode 100644 index 000000000..fcdb9ebd3 --- /dev/null +++ b/shared/src/i18n/sk/trip.ts @@ -0,0 +1,95 @@ +import type { TranslationStrings } from '../types'; + +const trip: TranslationStrings = { + 'trip.tabs.plan': 'Plán', + 'trip.tabs.transports': 'Doprava', + 'trip.tabs.reservations': 'Rezervácie', + 'trip.tabs.reservationsShort': 'Rez.', + 'trip.tabs.packing': 'Zoznam vecí', + 'trip.tabs.packingShort': 'Balenie', + 'trip.tabs.lists': 'Zoznamy', + 'trip.tabs.listsShort': 'Zoznamy', + 'trip.tabs.budget': 'Náklady', + 'trip.tabs.files': 'Súbory', + 'trip.loading': 'Načítava sa cesta...', + 'trip.loadingPhotos': 'Načítavajú sa fotky miest...', + 'trip.loadingSteps.pack': 'Balíme kufre...', + 'trip.loadingSteps.road': 'Vyrážame na cestu...', + 'trip.loadingSteps.arrive': 'Už sme skoro tam...', + 'trip.mobilePlan': 'Plán', + 'trip.mobilePlaces': 'Miesta', + 'trip.toast.placeUpdated': 'Miesto bolo aktualizované', + 'trip.toast.tripUpdated': 'Cesta aktualizovaná', + 'trip.toast.placeAdded': 'Miesto bolo pridané', + 'trip.toast.placeDeleted': 'Miesto bolo odstránené', + 'trip.toast.selectDay': 'Najprv prosím vyberte deň', + 'trip.toast.assignedToDay': 'Miesto bolo priradené k dňu', + 'trip.toast.loadError': 'Cestu sa nepodarilo načítať', + 'trip.toast.reorderError': 'Nepodarilo sa zmeniť poradie', + 'trip.toast.reservationUpdated': 'Rezervácia aktualizovaná', + 'trip.toast.reservationAdded': 'Rezervácia pridaná', + 'trip.toast.deleted': 'Odstránené', + 'trip.confirm.deletePlace': 'Naozaj chcete toto miesto odstrániť?', + 'trip.confirm.deletePlaces': 'Odstrániť {count} miest?', + 'trip.toast.placesDeleted': '{count} miest odstránených', + 'trip.invite.linkTitle': 'Odkaz na pozvanie na cestu', + 'trip.invite.linkHint': + 'Ktokoľvek s účtom TREK, kto otvorí tento odkaz, sa pripojí k ceste ako člen. Vygenerovaním nového odkazu zneplatníte ten starý.', + 'trip.invite.create': 'Vytvoriť odkaz na pozvanie', + 'trip.invite.regenerate': 'Vygenerovať znova', + 'trip.invite.disable': 'Deaktivovať', + 'trip.invite.joinHeading': 'Pripojiť sa k tejto ceste', + 'trip.invite.joinPrompt': 'Boli ste pozvaní pripojiť sa k ceste „{title}“.', + 'trip.invite.joinCta': 'Pripojiť sa k ceste', + 'trip.invite.joining': 'Pripája sa…', + 'trip.invite.invalidTitle': 'Pozvánka nie je dostupná', + 'trip.invite.invalid': 'Tento odkaz na pozvanie je neplatný alebo jeho platnosť vypršala.', + 'trip.invite.backToDashboard': 'Späť na prehľad', + 'transit.title': 'Verejná doprava', + 'transit.from': 'Odkiaľ', + 'transit.to': 'Kam', + 'transit.searchStop': 'Hľadať zastávku alebo stanicu…', + 'transit.swap': 'Prehodiť', + 'transit.depart': 'Odchod', + 'transit.arrive': 'Príchod', + 'transit.mode.rail': 'Vlak', + 'transit.mode.subway': 'Metro', + 'transit.mode.tram': 'Električka', + 'transit.mode.bus': 'Autobus', + 'transit.mode.ferry': 'Trajekt', + 'transit.mode.cable': 'Lanovka', + 'transit.pref.best': 'Najlepšie spojenie', + 'transit.pref.transfers': 'Menej prestupov', + 'transit.pref.walking': 'Menej chôdze', + 'transit.search': 'Hľadať', + 'transit.searching': 'Hľadá sa…', + 'transit.searchError': 'Vyhľadanie spojenia zlyhalo. Skúste to prosím znova.', + 'transit.noResultsVia': 'Cez {provider} sa nenašlo žiadne spojenie. Skúste iný čas alebo filtre.', + 'transit.noResults': 'Nenašli sa žiadne spojenia. Skúste iný čas alebo filtre.', + 'transit.direct': 'Priame', + 'transit.transfers': '{count} prestupov', + 'transit.min': '{count} min', + 'transit.stops': '{count} zastávok', + 'transit.walkTo': 'Pešo k {name}', + 'transit.platform': 'Nástupište {track}', + 'transit.adding': 'Pridáva sa…', + 'transit.addToDay': 'Pridať k dňu', + 'transit.itinerary': 'Itinerár', + 'transit.attribution': 'Údaje o spojení cez', + 'transport.modeManual': 'Ručne', + 'transport.modeAutomated': 'Automaticky', + 'transit.sectionTitle': 'Automatické spojenie MHD', + 'transit.changeRoute': 'Zmeniť trasu', + 'transit.editDetails': 'Upraviť podrobnosti', + 'transit.journey': 'Cesta verejnou dopravou', + 'transit.pickDay': 'Vyberte deň, pre ktorý chcete vyhľadať spojenie.', + 'transit.noItinerary': 'Táto položka nemá uložené spojenie – vyhľadajte ho pomocou tlačidla „Zmeniť trasu“.', + 'transit.durationLabel': 'Dĺžka trvania', + 'transit.transfersLabel': 'Prestupy', + 'transit.walkLabel': 'Chôdza', + 'transit.searchHint': 'Vyhľadajte reálne spojenia a pridajte ich rovno do dňa — údaje cez Transitous.', + 'trip.confirm.deletePlaceNight': 'Noc rezervovaná v „{name}“ zmizne spolu s miestom.', + 'trip.confirm.deletePlaceBooked': + 'Noc rezervovaná v „{name}“ zmizne spolu s miestom, vrátane rezervácie „{booking}“ a všetkých naviazaných výdavkov.', +}; +export default trip; diff --git a/shared/src/i18n/sk/trips.ts b/shared/src/i18n/sk/trips.ts new file mode 100644 index 000000000..6f18e619b --- /dev/null +++ b/shared/src/i18n/sk/trips.ts @@ -0,0 +1,16 @@ +import type { TranslationStrings } from '../types'; + +const trips: TranslationStrings = { + 'trips.memberRemoved': '{username} odobraný', + 'trips.memberRemoveError': 'Odobranie zlyhalo', + 'trips.memberAdded': '{username} pridaný', + 'trips.memberAddError': 'Pridanie zlyhalo', + 'trips.reminder': 'Pripomienka', + 'trips.reminderNone': 'Žiadna', + 'trips.reminderDay': 'deň', + 'trips.reminderDays': 'dní', + 'trips.reminderCustom': 'Vlastná', + 'trips.reminderDaysBefore': 'dní pred odchodom', + 'trips.reminderDisabledHint': 'Pripomienky výletov sú vypnuté. Zapnite ich v Administrácia > Nastavenia > Oznámenia.', +}; +export default trips; diff --git a/shared/src/i18n/sk/undo.ts b/shared/src/i18n/sk/undo.ts new file mode 100644 index 000000000..e2f6a1611 --- /dev/null +++ b/shared/src/i18n/sk/undo.ts @@ -0,0 +1,24 @@ +import type { TranslationStrings } from '../types'; + +const undo: TranslationStrings = { + 'undo.button': 'Späť', + 'undo.tooltip': 'Späť: {action}', + 'undo.assignPlace': 'Miesto priradené ku dňu', + 'undo.removeAssignment': 'Miesto odobrané z dňa', + 'undo.reorder': 'Miesta preusporiadané', + 'undo.optimize': 'Trasa optimalizovaná', + 'undo.deletePlace': 'Miesto zmazané', + 'undo.deletePlaces': 'Miesta zmazané', + 'undo.changeCategory': 'Kategória zmenená', + 'undo.moveDay': 'Miesto presunuté na iný deň', + 'undo.lock': 'Zámok miesta prepnutý', + 'undo.importGpx': 'Import GPX', + 'undo.importKeyholeMarkup': 'Import KMZ/KML', + 'undo.importFiles': 'Import súborov', + 'undo.importGoogleList': 'Import z Google Maps', + 'undo.importNaverList': 'Import z Naver Maps', + 'undo.importBooking': 'Import potvrdenia rezervácie', + 'undo.addPlace': 'Miesto pridané', + 'undo.done': 'Vrátené späť: {action}', +}; +export default undo; diff --git a/shared/src/i18n/sk/vacay.ts b/shared/src/i18n/sk/vacay.ts new file mode 100644 index 000000000..d335c55aa --- /dev/null +++ b/shared/src/i18n/sk/vacay.ts @@ -0,0 +1,151 @@ +import type { TranslationStrings } from '../types'; + +const vacay: TranslationStrings = { + 'schoolCatalog.refreshError': 'Zmena bola uložená, ale zoznam sa nepodarilo obnoviť. Skúste ho načítať znova.', + 'schoolCatalog.title': 'Školské prázdniny', + 'schoolCatalog.hint': + 'Spravujte zdieľané regióny školských prázdnin. Všetci ich môžu vybrať v nastaveniach dovolenky.', + 'schoolCatalog.periodHint': 'Oba krajné dni sú zahrnuté. Pridajte obdobia pre každý školský rok.', + 'schoolCatalog.region': 'Región alebo školský obvod', + 'schoolCatalog.name': 'Názov prázdnin', + 'schoolCatalog.start': 'Dátum začiatku', + 'schoolCatalog.end': 'Dátum konca', + 'schoolCatalog.addPeriod': 'Pridať obdobie prázdnin', + 'schoolCatalog.invalid': 'Skontrolujte názvy a dátumy.', + 'schoolCatalog.discard': 'Zahodiť neuložené zmeny?', + 'schoolCatalog.country': 'Krajina', + 'schoolCatalog.deleteHint': 'Najprv odstráňte regióny. Regióny používané kalendármi nie je možné vymazať.', + 'schoolCatalog.deleteCountry': 'Vymazať krajinu', + 'schoolCatalog.addCountry': 'Pridať krajinu', + 'schoolCatalog.code': 'Kód krajiny (napr. US)', + 'schoolCatalog.empty': 'Zatiaľ žiadne regióny.', + 'schoolCatalog.addRegion': 'Pridať región', + 'schoolCatalog.offline': 'Na správu školských prázdnin sa pripojte k internetu.', + 'schoolCatalog.loadError': 'Regióny školských prázdnin sa nepodarilo načítať. Znova otvorte nastavenia.', + 'schoolCatalog.retry': 'Skúsiť znova', + 'vacay.subtitle': 'Plánovanie a správa dní dovolenky', + 'vacay.settings': 'Nastavenia', + 'vacay.year': 'Rok', + 'vacay.addYear': 'Pridať nasledujúci rok', + 'vacay.addPrevYear': 'Pridať predchádzajúci rok', + 'vacay.removeYear': 'Odobrať rok', + 'vacay.removeYearConfirm': 'Odobrať rok {year}?', + 'vacay.removeYearHint': 'Všetky záznamy o dovolenke a firemné voľná za tento rok budú natrvalo vymazané.', + 'vacay.remove': 'Odobrať', + 'vacay.persons': 'Osoby', + 'vacay.noPersons': 'Žiadne osoby neboli pridané', + 'vacay.addPerson': 'Pridať osobu', + 'vacay.editPerson': 'Upraviť osobu', + 'vacay.removePerson': 'Odobrať osobu', + 'vacay.removePersonConfirm': 'Odobrať osobu {name}?', + 'vacay.removePersonHint': 'Všetky záznamy o dovolenke tejto osoby budú natrvalo vymazané.', + 'vacay.personName': 'Meno', + 'vacay.personNamePlaceholder': 'Zadajte meno', + 'vacay.color': 'Farba', + 'vacay.add': 'Pridať', + 'vacay.legend': 'Legenda', + 'vacay.publicHoliday': 'Štátny sviatok', + 'vacay.companyHoliday': 'Firemné voľno', + 'vacay.weekend': 'Víkend', + 'vacay.modeVacation': 'Dovolenka', + 'vacay.modeCompany': 'Firemné voľno', + 'vacay.modeHalf': 'Pol dňa', + 'vacay.modeHalfHint': 'Zapísať poldennú dovolenku', + 'vacay.fullDay': 'Celý deň', + 'vacay.modeComp': 'Náhradné / pružné voľno', + 'vacay.modeCompHint': 'Zapísať náhradné / pružné voľno (zadarmo — bez čerpania dovolenky)', + 'vacay.compHalf': 'Pol dňa náhradného voľna', + 'vacay.entitlement': 'Nárok', + 'vacay.entitlementDays': 'Dní', + 'vacay.used': 'Vyčerpané', + 'vacay.remaining': 'Zostáva', + 'vacay.carriedOver': 'z roku {year}', + 'vacay.blockWeekends': 'Blokovať víkendy', + 'vacay.blockWeekendsHint': 'Zabrániť zadávaniu dovolenky na víkendové dni', + 'vacay.weekendDays': 'Víkendové dni', + 'vacay.mon': 'Po', + 'vacay.tue': 'Ut', + 'vacay.wed': 'St', + 'vacay.thu': 'Št', + 'vacay.fri': 'Pi', + 'vacay.sat': 'So', + 'vacay.sun': 'Ne', + 'vacay.publicHolidays': 'Štátne sviatky', + 'vacay.publicHolidaysHint': 'Označiť štátne sviatky v kalendári', + 'vacay.schoolHolidays': 'Školské prázdniny', + 'vacay.schoolHolidaysHint': 'Označiť školské prázdniny ako vizuálnu vrstvu kalendára', + 'vacay.selectCountry': 'Vyberte krajinu', + 'vacay.selectRegion': 'Vyberte región (povinné)', + 'vacay.addCalendar': 'Pridať kalendár', + 'vacay.calendarLabel': 'Popis (voliteľné)', + 'vacay.calendarColor': 'Farba', + 'vacay.noCalendars': 'Zatiaľ neboli pridané žiadne kalendáre sviatkov', + 'vacay.noSchoolCalendars': 'Zatiaľ neboli pridané žiadne kalendáre školských prázdnin', + 'vacay.companyHolidays': 'Firemné voľná', + 'vacay.companyHolidaysHint': 'Povoliť označovanie dní celofiremného voľna', + 'vacay.companyHolidaysNoDeduct': 'Firemné voľná sa nezapočítavajú do nároku na dovolenku.', + 'vacay.weekStart': 'Týždeň začína', + 'vacay.weekStartHint': 'Zvoľte, či kalendárny týždeň začína v pondelok alebo v nedeľu', + 'vacay.carryOver': 'Prevod dovolenky', + 'vacay.carryOverHint': 'Automaticky prevádzať zostávajúce dni dovolenky do ďalšieho roka', + 'vacay.carriedOverPrevPeriod': 'z predchádzajúceho obdobia', + 'vacay.compUsedCount': '{count} náhradné / pružné', + 'vacay.yearType': 'Dovolenkový rok', + 'vacay.yearTypeHint': 'Kedy začína váš dovolenkový rok — podľa toho sa riadi nárok, čerpanie aj prevod', + 'vacay.yearTypeCalendar': 'Kalendárny', + 'vacay.yearTypeFiscal': 'Fiškálny', + 'vacay.yearTypeAnniversary': 'Dátum nástupu', + 'vacay.yearStartMonth': 'Počiatočný mesiac', + 'vacay.yearStartDay': 'Deň', + 'vacay.hireDate': 'Dátum nástupu', + 'vacay.hireDateHint': 'Vyberte dátum nástupu — dovolenkový rok potom každý rok začína tým dňom.', + 'vacay.yearWindow': '{year}: {window}', + 'vacay.sharing': 'Zdieľanie', + 'vacay.sharingHint': 'Zdieľajte svoj plán dovolenky s ostatnými používateľmi TREK', + 'vacay.owner': 'Vlastník', + 'vacay.shareEmailPlaceholder': 'E-mail používateľa TREK', + 'vacay.shareSuccess': 'Plán bol úspešne zdieľaný', + 'vacay.shareError': 'Plán sa nepodarilo zdieľať', + 'vacay.dissolve': 'Zrušiť prepojenie', + 'vacay.dissolveHint': 'Znova oddeliť kalendáre. Vaše záznamy zostanú zachované.', + 'vacay.dissolveAction': 'Oddeliť', + 'vacay.dissolved': 'Kalendáre boli oddelené', + 'vacay.fusedWith': 'Prepojené s', + 'vacay.you': 'vy', + 'vacay.noData': 'Žiadne údaje', + 'vacay.changeColor': 'Zmeniť farbu', + 'vacay.inviteUser': 'Pozvať používateľa', + 'vacay.inviteHint': 'Pozvite iného používateľa TREK na zdieľanie spoločného kalendára dovoleniek.', + 'vacay.selectUser': 'Vyberte používateľa', + 'vacay.sendInvite': 'Odoslať pozvánku', + 'vacay.inviteSent': 'Pozvánka odoslaná', + 'vacay.inviteError': 'Pozvánku sa nepodarilo odoslať', + 'vacay.pending': 'čaká na vybavenie', + 'vacay.noUsersAvailable': 'Žiadni používatelia nie sú k dispozícii', + 'vacay.accept': 'Prijať', + 'vacay.decline': 'Odmietnuť', + 'vacay.acceptFusion': 'Prijať a prepojiť', + 'vacay.inviteTitle': 'Žiadosť o prepojenie', + 'vacay.inviteWantsToFuse': 'vás pozýva na zdieľanie kalendára dovoleniek.', + 'vacay.fuseInfo1': 'Obaja uvidíte všetky záznamy o dovolenke v jednom zdieľanom kalendári.', + 'vacay.fuseInfo2': 'Obe strany môžu vytvárať a upravovať záznamy jeden druhému.', + 'vacay.fuseInfo3': 'Obe strany môžu mazať záznamy a meniť nároky na dovolenku.', + 'vacay.fuseInfo4': 'Nastavenia ako štátne sviatky a firemné voľná sú zdieľané.', + 'vacay.fuseInfo5': 'Prepojenie môže ktorákoľvek strana kedykoľvek zrušiť. Vaše záznamy zostanú zachované.', + 'vacay.sharedCalendars': 'Zdieľané kalendáre', + 'vacay.shareCalendar': 'Zdieľať kalendár', + 'vacay.shareCalendarHint': + 'Umožnite inému používateľovi TREK vidieť váš kalendár dovoleniek. Iba na čítanie — žiadne prepojenie, žiadne úpravy.', + 'vacay.sharedWithYou': 'Zdieľané s vami', + 'vacay.youShareWith': 'Zdieľate s', + 'vacay.viewOnly': 'iba na čítanie', + 'vacay.share': 'Zdieľať', + 'vacay.shareSent': 'Kalendár zdieľaný', + 'vacay.shareFailed': 'Kalendár sa nepodarilo zdieľať', + 'vacay.stopSharing': 'Ukončiť zdieľanie', + 'vacay.showInCalendar': 'Zobraziť v kalendári', + 'vacay.hideFromCalendar': 'Skryť z kalendára', + 'vacay.sharedEmpty': 'Ukážte si navzájom svoje kalendáre bez toho, aby ste ich prepojili.', + 'vacay.sharedLegend': 'Zdieľané (iba na čítanie)', +}; +export default vacay;