#let komp_ac_fields = (…) z Typst šablony. Cesta, která odpovídá existující tabulce a sloupci, se stane odkazem na ni; vše ostatní se stane sloupcem TEXT, který později upravíte, a každé [] se stane podřízenou tabulkou.
+td-table-name = Název tabulky
+td-row-display-columns = Sloupce identifikující řádek
+td-row-display-hint = Oddělte čárkami, platí jen pro kořenovou tabulku.
+td-template-source = Zdroj šablony
+td-template-create-button = Vytvořit ze šablony
+td-history-title = Historie přejmenování
+td-history-heading = Historie přejmenování sloupců
+td-history-empty = V { $scope } nebyl přejmenován žádný sloupec.
+td-history-empty-this-profile = V tomto profilu nebyl přejmenován žádný sloupec.
+td-col-was = Byl
+td-col-is = Je
+td-col-when = Kdy
+
+td-columns-added = { $count ->
+ [one] { $count } sloupec přidán do `{ $table }`.
+ [few] { $count } sloupce přidány do `{ $table }`.
+ *[other] { $count } sloupců přidáno do `{ $table }`.
+}
+td-profile-copied = { $message } — zkopírováno { $tables ->
+ [one] { $tables } tabulka
+ [few] { $tables } tabulky
+ *[other] { $tables } tabulek
+} a { $scripts ->
+ [one] { $scripts } skript
+ [few] { $scripts } skripty
+ *[other] { $scripts } skriptů
+}.
+td-template-tables-created = { $count ->
+ [one] Vytvořena { $count } tabulka ze šablony.
+ [few] Vytvořeny { $count } tabulky ze šablony.
+ *[other] Vytvořeno { $count } tabulek ze šablony.
+}
+td-err-select-table-first = Nejprve vyberte tabulku.
+td-err-profile-gone = Profil `{ $missing }` už neexistuje.
+td-err-not-a-table = `{ $missing }` není tabulka rozsahu { $scope }.
+td-err-describe-column = Před přidáním popište alespoň jeden sloupec.
+td-err-backend-no-columns = Backend nepřidal sloupce.
+td-err-choose-rename = Vyberte sloupec a zadejte jeho nový název.
+td-err-backend-no-rename = Backend nepřejmenoval sloupec.
+td-err-type-name = Pro potvrzení smazání napište přesný název tabulky.
+td-err-backend-no-delete = Backend nesmazal tabulku.
+td-err-name-profile = Zadejte název profilu, do kterého se kopíruje.
+td-err-backend-no-copy = Backend nezkopíroval profil.
+td-err-template-required = Vyžaduje se název tabulky i zdroj šablony.
+td-err-backend-no-template = Backend nevytvořil tabulky ze šablony.
+td-err-permission = Vyžaduje se oprávnění ke správě tabulek.
+td-unavailable-title = Definice tabulky není dostupná
+
+# --- Referenční kurzy ECB ------------------------------------------------------
+ecb-title = Devizové kurzy
+ecb-heading = Referenční kurzy ECB
+ecb-description = Importér načítá zveřejněné kurzy ECB jednou denně a zaznamenává každý pokus. Konverze čtou jen to, co ověřil, takže pokrytí rozhoduje o tom, zda lze cizoměnovou částku zaúčtovat vůbec.
+ecb-unavailable-title = Devizové kurzy nejsou dostupné
+ecb-forbidden = Pro otevření této stránky se vyžaduje čtení údajů o devizových kurzech.
+ecb-import-attempts = Pokusy o import
+ecb-failed-count = { $count ->
+ [one] { $count } neúspěšný
+ [few] { $count } neúspěšné
+ *[other] { $count } neúspěšných
+}
+ecb-no-attempts-hint = Importér nezaznamenal žádný pokus. Běží při startu a poté denně, takže prázdný záznam znamená, že server od vytvoření této tabulky nedokončil žádný běh.
+ecb-th-result = Výsledek
+ecb-th-started = Spuštěno
+ecb-th-finished = Dokončeno
+ecb-th-took = Trvalo
+ecb-th-window = Období
+ecb-th-observations = Pozorování
+ecb-th-verified-through = Ověřeno do
+ecb-batch-succeeded = úspěšné
+ecb-batch-running = probíhá
+ecb-batch-failed = neúspěšné
+ecb-still-running = stále běží
+ecb-audit-hint = Pokusy jsou auditní záznam: nelze je upravovat ani mazat a dávka, která znovu načetla den, který už vlastnila starší, nevloží nic — proto může být nový počet nižší než celkový.
+ecb-import-running = import probíhá
+ecb-postable-lead = Co lze zaúčtovat právě teď
+ecb-ordinary-transactions = Běžné transakce
+ecb-statements-title = Výpisy a rozhodující data
+ecb-dated-up-to = datované do včetně
+ecb-ordinary-rate-hint = Přepočteno kurzem zveřejněným v pracovní den před transakcí.
+ecb-statements-rate-hint = Přepočteno kurzem zveřejněným v ten den, nebo v poslední pracovní den před ním.
+ecb-postable-limit-hint = Cizoměnová částka datovaná po svém limitu se odmítá přímo, dokud importér nedoběhne — nepřepočítává se zastaralým kurzem.
+ecb-nothing = Nic.
+ecb-no-publication-hint = Nikdy nebylo ověřeno žádné zveřejnění, takže každá cizoměnová částka se odmítá bez ohledu na datum.
+ecb-verified-through = Ověřeno do
+ecb-never = nikdy
+ecb-up-to-date = aktuální
+ecb-behind-count = { $count ->
+ [one] { $count } zmeškaný publikační den
+ [few] { $count } zmeškané publikační dny
+ *[other] { $count } zmeškaných publikačních dní
+}
+ecb-no-coverage = bez pokrytí
+ecb-should-reach = Má dosáhnout
+ecb-last-attempt = Poslední pokus
+ecb-none-recorded = žádný nezaznamenán
+ecb-last-success = Poslední úspěch
+ecb-none = žádný
+ecb-next-import = Další import
+ecb-currencies-on = Měny k { $date }
+ecb-the-covered-day = pokrytý den
+ecb-most-recent-failure = Poslední neúspěch — dávka { $batch }, spuštěno { $started }:
+ecb-no-reason-recorded = nebyl zaznamenán žádný důvod.
+ecb-headline-current = Kurzy jsou aktuální
+ecb-headline-never-ran = Nikdy nebyly importovány žádné kurzy
+ecb-headline-behind = Kurzy se zpožďují
+ecb-explanation-current = Ověřen je každý publikační den až po nejnovější, takže konverze se zaúčtovávají normálně.
+ecb-explanation-never-ran = Dokud se jeden nepodaří, každá konverze v cizí měně se odmítá pro nedostatek pokrytí.
+ecb-explanation-behind = { $count ->
+ [one] Chybí { $count } publikační den.
+ [few] Chybí { $count } publikační dny.
+ *[other] Chybí { $count } publikačních dní.
+} Konverze datovaná do mezery se odmítá, dokud importér nedoběhne.
+ecb-new-of = { $inserted } nových z { $total }
+ecb-in = za { $time }
+ecb-ago = před { $time }
+ecb-less-than-1s = <1s
+
+# --- Oprávnění (role / uživatelé / přístup) ------------------------------------
+perm-eyebrow = Oprávnění
+perm-tabs-aria = sekce oprávnění
+perm-tab-roles = Role
+perm-tab-roles-sub = Vytváření rolí a jejich dědičnosti
+perm-tab-people = Lidé
+perm-tab-people-sub = Přiřadit uživateli roli
+perm-tab-access = Přístup
+perm-tab-access-sub = Co role může dělat
+perm-unavailable-title = Oprávnění nejsou dostupná
+perm-update-error = Oprávnění se nepodařilo aktualizovat
+perm-forbidden = Tento účet nespravuje ani role, ani uživatele.
+perm-err-missing-session = Chybějící relace
+perm-err-nothing-to-change = Není co měnit: formulář neobsahoval žádná oprávnění.
+perm-err-bad-pair = '{ $value }' není dvojice objekt|akce.
+perm-err-not-editable-role = '{ $role }' není role, kterou můžete upravovat.
+perm-err-neither-grant-nor-revoke = '{ $value }' není ani grant, ani zrušení.
+perm-err-grant-failed = Udelení { $action } na { $object } se nezdařilo: { $error }
+perm-err-revoke-failed = Zrušení { $action } na { $object } se nezdařilo: { $error }
+perm-err-bad-starter-access = '{ $value }' není úroveň startovacího přístupu.
+perm-role-created-grant-failed = Role '{ $role }' byla vytvořena, ale udelení { $action } na { $object } se nezdařilo: { $error }
+perm-role-reason-outranks-you = má vyšší úroveň než vy
+perm-role-reason-built-in = vestavěná
+perm-role-reason-still-assigned = stále přiřazená
+
+roles-description = Role je pojmenovaná množina oprávnění. Lidem se přiřazují role; rolím se přiřazuje přístup.
+roles-updated-notice = Role aktualizovány. Přihlášené relace zůstávají platné a změnu zachytí při nejbližším požadavku.
+roles-new-heading = Nová role
+roles-new-hint = Dědičnost z jiné role dá nové roli vše, co má tato role, a udržuje ji v souladu, když se tato role změní. Startovací přístup je zkratka pro dva běžné případy; cokoli užšího je pár kliků na kartě Přístup.
+roles-name = Název
+roles-inherits-from = Dědí z
+roles-inherits-none = Nic — začíná prázdná
+roles-starter-access = Startovací přístup
+roles-access-none = Žádný — udělte ho na kartě Přístup
+roles-access-read = Číst vše
+roles-access-full = Číst a zapisovat vše
+roles-create-button = Vytvořit roli
+roles-existing = Existující role
+roles-th-role = Role
+roles-th-kind = Druh
+roles-th-inherits = Dědí z
+roles-th-people = Lidé
+roles-th-access = Přístup
+roles-th-remove = Odebrat
+roles-built-in = vestavěná
+roles-edit-access = Upravit přístup
+
+users-description = Přiřaďte uživateli roli. Co role může dělat, se určí jednou, na kartě Přístup.
+users-updated-notice = Aktualizováno. Nejbližší požadavek dané osoby použije novou roli; nemusí se znovu přihlašovat.
+users-heading = Uživatelé
+users-outrank-hint = Můžete měnit jen někoho, jehož role je nižší než vaše — zde { $editable } z { $total }.
+users-th-user = Uživatel
+users-th-email = E-mail
+users-th-role = Role
+users-th-change = Změnit roli
+users-th-reset = Obnovit heslo
+users-assign = Přiřadit
+users-confirm = Potvrdit
+users-reset = Obnovit
+
+grants-description = Co role může dělat s daty. Každý, kdo roli drží, dostane přesně toto.
+grants-updated-notice = Přístup aktualizován. Platí od nejbližšího požadavku každého držitele role.
+grants-no-role = Není co upravovat
+grants-no-role-hint = Není zde žádná role s nižší úrovní než vaše. Vytvořte jednu nejprve.
+grants-role-heading = Role
+grants-editing = Upravujete
+grants-inherits-prefix = → dědí
+grants-inherits-parent = { $role } dědí vše, co má { $parent }. Děděný přístup se zobrazuje níže, ale mění se na nadřazené roli.
+grants-inherits-none = { $role } nedědí nic, takže vše, co vidíte níže, je vše, co má.
+grants-structural-hint = Tato role navrhuje systém a nikdy nemůže zapisovat řádková data, takže je otevřený jen sloupec pro čtení.
+grants-shortcuts = Zkratky
+grants-shortcuts-hint = Udělují zástupné objekty, takže nadále pokrývají profily a tabulky vytvořené později.
+grants-full-access-everything = Plný přístup ke všemu
+grants-remove-all-access = Odebrat veškerý přístup
+grants-everything-everywhere = Vše, všude
+grants-profile-prefix = Profil:
+grants-read-only = Pouze pro čtení
+grants-full-access = Plný přístup
+grants-clear = Vyčistit
+grants-th-object = Objekt
+grants-th-row = Řádek
+grants-cell-unavailable = Pro tuto roli není dostupné
+grants-cell-direct = Drží přímo — kliknutím zrušíte
+grants-cell-inherited = zděděno: pokrývá to nadřazená role nebo širší grant
+grants-cell-grant = Kliknutím udělíte
+grants-all = Vše
+grants-none = Nic
+grants-read-everything-hint = Čtení na každém profilu, deníku a devizovém kurzu
+grants-full-everything-hint = Každá akce, kterou role může držet, na každém profilu
+grants-remove-all-hint = Odvolat každý grant, který tato role drží přímo
+grants-read-only-hint = Čtení všeho zde
+grants-full-access-hint = Každá akce, kterou role může držet, na všem zde
+grants-clear-hint = Odvolat vše, co tato role drží přímo zde
+grants-all-hint = Udělit každou akci dostupnou na tomto objektu
+grants-none-hint = Odvolat přímé granty tohoto objektu
+grants-everything-title = Vše
+grants-label-all-tables = Všechny tabulky
+grants-note-all-tables = Každá tabulka v každém profilu včetně těch, které přibudou později.
+grants-label-all-journals = Všechny deníky
+grants-note-all-journals = Účetní deník každého profilu.
+grants-label-all-rates = Všechny devizové kurzy
+grants-note-all-rates = Kurzy ECB importuje server, takže je lze pouze číst.
+grants-note-profile-tables = Každá tabulka v tomto profilu včetně těch, které přibudou později.
+grants-label-journal = Deník
+grants-note-journal = Účetní deník tohoto profilu.
+grants-label-rates = Devizové kurzy
+grants-note-rates = Importuje server, takže jediným grantem je čtení.
+grants-note-table = Tato tabulka a celá její šablonová rodina.
+
+# --- Analytika -----------------------------------------------------------------
+analytics-title = Analytika
+analytics-eyebrow = Reportování
+analytics-description = Dotazujte se na read-only analytické API a výsledek zobrazte v grafu.
+analytics-available-data = Dostupná data
+analytics-load-hint = Načtěte profil, abyste viděli aliasy tabulek a sloupců, které analytický SQL akceptuje.
+analytics-profile = Profil
+analytics-loading-profiles = Načítají se profily…
+analytics-load-schema = Načíst schéma
+analytics-no-schema = Není načteno žádné schéma.
+analytics-chart = Graf
+analytics-chart-bar = Sloupcový
+analytics-chart-line = Čárový
+analytics-chart-pie = Koláčový
+analytics-chart-scatter = Bodový
+analytics-chart-table = Tabulka
+analytics-max-rows = Maximální počet řádků
+analytics-sql = SQL
+analytics-sql-placeholder = Načtěte schéma a poté vyberte startovací dotaz nebo napište SELECT dotaz
+analytics-run-query = Spustit dotaz
+analytics-running = Spouští se…
+analytics-no-tables = Tento profil nemá analytické tabulky.
+analytics-tables-available = { $count ->
+ [one] k dispozici { $count } tabulka
+ [few] k dispozici { $count } tabulky
+ *[other] k dispozici { $count } tabulek
+}
+analytics-use-starter = Použít startovací dotaz
+analytics-links = Odkazy
+analytics-required = povinné
+analytics-llm-context = Kontext schématu pro LLM
+analytics-llm-hint = Zkopírujte celý tento text a zahrňte ho, když požádáte LLM o napsání dotazu.
+analytics-copy-context = Kopírovat kontext
+analytics-copied = Zkopírováno
+analytics-load-error = Profily se nepodařilo načíst: { $message }
+analytics-no-profiles = Nejsou k dispozici žádné profily
+analytics-choose-profile = Vyberte profil…
+analytics-sign-in = Přihlaste se, abyste viděli profily, které můžete číst.
+analytics-err-profile-required = Zadejte název profilu pro načtení jeho schématu
+analytics-err-input-required = Vyžaduje se název profilu a SQL
+analytics-err-chart-columns = Grafy vyžadují alespoň dva výsledné sloupce
+analytics-err-chart-type = Neznámý typ grafu
+analytics-not-signed-in = Nejste přihlášen pro { $action }.
+analytics-action-loading-schema = načítání schématu
+analytics-action-running-query = spouštění dotazu
+analytics-result-meta = { $rows ->
+ [one] { $rows } řádek za { $elapsed } ms
+ [few] { $rows } řádky za { $elapsed } ms
+ *[other] { $rows } řádků za { $elapsed } ms
+}
+analytics-result-meta-truncated = { $rows ->
+ [one] { $rows } řádek za { $elapsed } ms (zkráceno)
+ [few] { $rows } řádky za { $elapsed } ms (zkráceno)
+ *[other] { $rows } řádků za { $elapsed } ms (zkráceno)
+}
+
+# --- Import / export -------------------------------------------------------------
+transfer-eyebrow = Přenos dat
+import-title = Import CSV
+import-lead = Vyberte soubor v prohlížeči nebo vložte CSV. Řádky se ověřují proti živým strukturám tabulek před hromadným vkládáním přes gRPC.
+import-profile = Profil
+import-target-tables = Cílové tabulky
+import-csv-file = Soubor CSV
+import-csv-data = Data CSV
+import-error-title = CSV se nepodařilo importovat
+import-import-rows = Importovat řádky
+import-success-title = Import dokončen
+import-success-message = Vloženo { $inserted ->
+ [one] { $inserted } záznam
+ [few] { $inserted } záznamy
+ *[other] { $inserted } záznamů
+} z { $source_rows ->
+ [one] { $source_rows } řádku CSV
+ [few] { $source_rows } řádků CSV
+ *[other] { $source_rows } řádků CSV
+} ve { $table_count ->
+ [one] { $table_count } tabulce
+ [few] { $table_count } tabulkách
+ *[other] { $table_count } tabulkách
+}.
+import-err-select-profile = Vyberte profil.
+import-err-tables-required = Zadejte alespoň jednu cílovou tabulku.
+import-err-csv-required = Vyberte soubor CSV nebo vložte data CSV.
+import-err-unknown-profile = Neznámý profil.
+import-err-tables-not-in-profile = Jedna nebo více cílových tabulek nepatří do profilu.
+import-err-missing-structure = Backend vynechal požadovanou strukturu tabulky.
+import-err-no-importable-columns = CSV nemá importovatelné sloupce pro tabulku '{ $table }'.
+import-err-column-not-importable = Sloupec '{ $column }' není importovatelný pro tabulku '{ $table }'.
+import-err-csv-row = Řádek CSV { $row }: { $error }
+import-err-multi-headers = Více-tabulkové CSV potřebuje řádek s hlavičkou tabulek a řádek s hlavičkou sloupců.
+import-err-first-row = První řádek CSV musí obsahovat jen vybrané názvy tabulek.
+import-err-header-lengths = Řádek hlavičky tabulek a sloupců mají různou délku.
+import-err-row-width = Řádek dat CSV má jiný počet polí než hlavička.
+import-err-no-data-rows = CSV obsahuje hlavičky, ale žádné řádky dat.
+import-err-missing-type = Chybí typ sloupce '{ $column }'
+import-err-permission = Vyžaduje se oprávnění k vkládání pro alespoň jednu čitelnou tabulku.
+import-err-unterminated-quote = CSV obsahuje neuzavřenou uvozovkovou hodnotu.
+import-err-empty = CSV je prázdné.
+import-err-bad-boolean = Neplatná booleovská hodnota '{ $value }'
+import-err-bad-integer = Neplatná celočíselná hodnota '{ $value }'
+
+export-title = Export CSV
+export-lead = Soubor se generuje z živých dat tabulek přes gRPC.
+export-profile = Profil
+export-choose-profile = Vyberte profil
+export-tables = Tabulky
+export-comma-hint = Více tabulek oddělte čárkami.
+export-error-title = CSV se nepodařilo exportovat
+export-download = Stáhnout CSV
+export-err-select-profile = Vyberte profil.
+export-err-tables-required = Zadejte alespoň jednu tabulku.
+export-err-unknown-profile = Neznámý profil.
+export-err-tables-not-in-profile = Jedna nebo více tabulek nepatří do vybraného profilu.
+export-err-missing-structure = Backend vynechal požadovanou strukturu tabulky.
+export-err-negative-count = Backend vrátil záporný počet řádků.
+export-err-range = Export přesahuje podporovaný rozsah pozic řádků.
+export-err-permission = Vyžaduje se oprávnění ke čtení pro alespoň jednu tabulku.
+
+# --- Přidat logiku ----------------------------------------------------------------
+add-logic-title = Přidat logiku
+add-logic-eyebrow = Vypočítaný sloupec
+add-logic-lead = Vytvořte nebo aktualizujte Steel skript přes existující službu skriptů tabulek.
+add-logic-table = Tabulka
+add-logic-choose-table = Vyberte tabulku
+add-logic-name = Název logiky
+add-logic-target-column = Cílový sloupec
+add-logic-script = Steel výraz
+add-logic-description = Popis
+add-logic-error-title = Logiku se nepodařilo uložit
+add-logic-save = Uložit logiku
+add-logic-success-title = Logika uložena
+add-logic-saved = Skript #{ $id } byl uložen.
+add-logic-saved-warnings = Skript #{ $id } byl uložen. Upozornění: { $warnings }
+add-logic-err-select-table = Vyberte cílovou tabulku.
+add-logic-err-target-column = Zadejte cílový sloupec.
+add-logic-err-script = Zadejte Steel výraz.
+add-logic-err-script-paren = Steel výraz musí začínat `(`.
+add-logic-err-permission = Vyžaduje se oprávnění ke správě skriptů.
+
+# --- Nástroj pro přidání tabulky ---------------------------------------------------
+add-table-title = Přidat tabulku
+add-table-eyebrow = Definice tabulky
+add-table-lead = Vyberte, zda tabulka patří jednomu profilu, nebo je dostupná všem profilům, a poté přidejte její sloupce. Po vytvoření můžete přiřadit počáteční oprávnění rolím.
+builder-err-title = Tabulku se nepodařilo vytvořit
+builder-err-permission = Vyžaduje se oprávnění ke správě tabulek.
+builder-err-backend-no-create = Backend nevytvořil tabulku.
+builder-could-not-continue = Nelze pokračovat
+builder-draft-updated = Návrh aktualizován
+builder-table-details = Podrobnosti tabulky
+builder-scope-question = Kde má být tato tabulka dostupná?
+builder-scope-profile = Jeden profil
+builder-scope-profile-hint = Tuto tabulku může používat jen vybraný profil.
+builder-scope-global = Všechny profily
+builder-scope-global-hint = Tuto sdílenou tabulku může používat každý profil.
+builder-which-profile = Který profil?
+builder-choose-profile = Vyberte profil
+builder-new-profile = Nový profil…
+builder-new-profile-name = Název nového profilu
+builder-accounting-currency = Účetní měna
+builder-table-name = Název tabulky
+builder-add-column-heading = Přidat sloupec
+builder-add-column-button = Přidat sloupec
+builder-shared-table-hint = Sdílená tabulka nevede vlastní účetnictví, takže sloupce ACCOUNTING, ACCOUNTING_TRANSFER a kvantitativní evidence se zde nenabízejí — každý z nich se účtuje do deníku jednoho profilu.
+builder-compound-intro = je definiční řádek, ne vlastní sloupec. Jeho přidáním tabulka získá:
+builder-inherits-currency-hint = drženo v měně a zaokrouhlení zvolených výše
+builder-account-system-hint = systémový sloupec — účet, na který se účtuje každý řádek, zapisovaný jako account
+builder-rename-generated-hint = Každému z nich můžete dát vlastní název v části Přejmenovat generované sloupce hned po přidání řádku; prázdné pole ponechá název zobrazený zde.
+builder-reserved-hint = Tyto názvy jsou vyhrazené: žádný vlastní sloupec je nesmí použít a tabulka může obsahovat jen jeden { $type }. Umístí se na místo tohoto řádku v seznamu sloupců a lze je s ním přesouvat.
+builder-columns-heading = Sloupce
+builder-no-columns = Zatím žádné sloupce. Popište jeden výše a stiskněte
+builder-columns-order-hint = Sloupce se vytvářejí v tomto pořadí. Šipkami můžete jeden přesunout.
+builder-th-order = Pořadí
+builder-th-name = Název
+builder-th-type = Typ
+builder-th-indexed = Indexovaný
+builder-th-options = Možnosti
+builder-move-up = Posunout { $name } nahoru
+builder-move-down = Posunout { $name } dolů
+builder-renamed-to = přejmenován na { $alias }
+builder-rename-generated = Přejmenovat generované sloupce
+builder-rename-generated-hint2 = Tyto sloupce pocházejí z definičních řádků výše. Dejte některému vlastní název, nebo ho nechte prázdný, aby zůstal zobrazený název.
+builder-rename-aria = Přejmenovat { $name }
+builder-apply-names = Použít názvy
+builder-row-display = Sloupce identifikující řádek
+builder-row-display-hint = Co uživatelům identifikuje řádek, ve zvoleném pořadí. Výběrem id se seznam vyprázdní.
+builder-preview = Náhled definice tabulky
+builder-preview-th-column = Sloupec
+builder-preview-th-type = Typ
+builder-preview-th-options = Možnosti
+builder-preview-th-source = Zdroj
+builder-preview-primary-key = primární klíč
+builder-preview-default-false = výchozí false
+builder-preview-not-null-1 = not null, výchozí 1
+builder-preview-current-time = aktuální čas
+builder-preview-account-option = not null, → účty, zapisováno jako { $field }
+builder-option-indexed = indexovaný
+builder-create-table = Vytvořit tabulku
+builder-status-generated-keep = Generované sloupce si ponechávají své názvy.
+builder-status-generated-one = Přejmenován 1 generovaný sloupec.
+builder-status-generated-many = { $count ->
+ [one] Přejmenován { $count } generovaný sloupec
+ [few] Přejmenovány { $count } generované sloupce
+ *[other] Přejmenováno { $count } generovaných sloupců
+}.
+
+draft-err-profile-name = Zadejte název nového profilu.
+draft-err-table-conflict-global = Tabulka s názvem `{ $name }` už existuje. Název sdílené tabulky musí být volný v každém profilu.
+draft-err-table-conflict = Tabulka s názvem `{ $name }` už existuje v profilu `{ $profile }`, nebo je sdílená všemi profily.
+draft-err-no-columns = Před uložením přidejte alespoň jeden sloupec.
+draft-err-alias-taken = Alias `{ $alias }` pro generovaný sloupec `{ $source }` už používá jiný sloupec.
+draft-err-accounting-currency = Účetní měna musí být třímístný kód ISO-4217
+
+schema-status-column-added = Sloupec `{ $name }` přidán.
+schema-status-column-removed = Sloupec `{ $name }` odebrán.
+schema-status-column-moved-up = Sloupec `{ $name }` posunut nahoru.
+schema-status-column-moved-down = Sloupec `{ $name }` posunut dolů.
+
+schema-err-both-name-type = Vyžaduje se název sloupce i typ sloupce.
+schema-err-creation-only = Sloupec typu { $type } lze vybrat jen při vytváření tabulky.
+schema-err-column-exists = Sloupec s názvem `{ $name }` už existuje.
+schema-err-generated-exists = `{ $type }` generuje sloupec s názvem `{ $generated }` a tabulka ho už má.
+schema-err-ql-types = Sloupce kvantitativní evidence musí používat { $types }
+schema-err-column-ql-types = Sloupec `{ $name }`: sloupce kvantitativní evidence musí používat { $types }
+schema-err-column-prefix = Sloupec `{ $name }`: { $error }
+schema-err-decimal-not-valid = `decimal` není platný typ sloupce.
+schema-err-link-not-valid = `link` není platný typ sloupce.
+schema-err-decimal-args-needed = `{ $type }` vyžaduje přesnost i desetinná místa.
+schema-err-link-target-needed = `link` vyžaduje odkazovanou tabulku.
+schema-err-generated-type = `{ $type }` je typ sloupce, který generuje backend.
+schema-err-invalid-type = `{ $type }` není platný typ sloupce.
+schema-err-account-link = Vztah účtu je zabudovaný do ACCOUNTING a nelze ho deklarovat jako odkaz.
+schema-err-link-self = Odkaz `{ $column }` nemůže ukazovat na vytvářenou tabulku.
+schema-err-column-gone = Tento sloupec už neexistuje.
+schema-err-link-indexed = Odkaz `{ $name }` je indexován automaticky a nelze ho indexovat znovu.
+schema-err-definition-indexed = `{ $name }` je definiční řádek, ne sloupec, takže ho nelze indexovat.
+schema-err-currency-only = Sloupec `{ $name }`: měna patří jen typu sloupce, který ji vyžaduje.
+schema-err-name-twice = `{ $name }` pojmenovává více než jeden sloupec této tabulky.
+schema-err-currency-code = Měna musí být třímístný kód ISO-4217
+schema-err-profile-only-type = Sdílená tabulka nemůže používat { $type }: účtuje do deníku jednoho profilu a sdílená tabulka patří každému profilu.
+schema-err-shared-ql = Sloupec `{ $name }`: sdílená tabulka nemůže vést kvantitativní evidenci, která patří jednomu profilu.
+schema-err-profile-reserved = Tento název profilu je vyhrazen PostgreSQL.
+schema-err-table-name-too-long = Název tabulky nemůže být delší než 63 znaků, protože indexy jejích sloupců jsou pojmenované po ní.
+schema-err-table-name-reserved = `{ $name }` je název tabulky, kterou dostane každý profil, takže ho nelze použít.
+
+error-identifier-empty = { $label } nemůže být prázdné.
+error-identifier-whitespace = { $label } nesmí začínat ani končit mezerou.
+error-identifier-underscore = { $label } nesmí začínat podtržítkem.
+error-identifier-number = { $label } nesmí začínat číslicí.
+error-identifier-too-long = { $label } nesmí být delší než 63 znaků.
+error-identifier-charset = { $label } může obsahovat jen malá písmena, číslice a podtržítko.
+error-identifier-reserved = { $label } používá vyhrazený název.
+error-decimal-required = { $label } je povinné pro desetinný sloupec.
+error-decimal-sign = { $label } nesmí obsahovat znaménko.
+error-decimal-whole = { $label } musí být celé číslo.
+error-decimal-leading-zeros = { $label } nesmí mít úvodní nuly.
+error-precision-min = Přesnost musí být alespoň 1.
+error-scale-gt-precision = Desetinná místa nemohou být více než přesnost.
+
+# --- Přidat validaci ----------------------------------------------------------------
+validation-eyebrow = Validace
+validation-library-eyebrow = Globální knihovna validací
+validation-field-title = Přidat validaci pole
+validation-field-lead = Připojte validaci k jednomu sloupci jedné tabulky.
+validation-rule-title = Přidat opakovaně použitelné validační pravidlo
+validation-rule-lead = Pojmenované pravidlo, ze kterého mohou validační sady skládat, nezávislé na jakékoli tabulce.
+validation-set-title = Přidat validační sadu
+validation-set-lead = Sestavte uspořádanou sadu z existujících názvů opakovaně použitelných pravidel.
+validation-profile = Profil
+validation-table = Tabulka
+validation-column = Sloupec
+validation-apply-set = Místo toho použít pojmenovanou validační sadu
+validation-apply-set-placeholder = Nechte prázdné, aby se uložila pravidla níže
+validation-error-title = Validaci se nepodařilo uložit
+validation-success-title = Validace uložena
+validation-save = Uložit validaci
+validation-rule-name = Název pravidla
+validation-description = Popis
+validation-save-rule = Uložit pravidlo
+validation-set-name = Název sady
+validation-reusable-rules = Opakovaně použitelná pravidla
+validation-reusable-rules-hint = Oddělte čárkami a aplikují se v tomto pořadí.
+validation-save-set = Uložit sadu
+validation-position-rules = Pravidla pozic
+validation-position-rules-hint = Jeden na řádek: pozice | omezení. Pozice: 0, 0-3, 4+ nebo 1,3,5. Omezení: alphabetic, numeric, alphanumeric, exact=x, one-of=a,b, regex=…
+validation-pattern-description = Popis vzoru
+validation-min-length = Minimální délka
+validation-max-length = Maximální délka
+validation-warn-at = Hranice upozornění
+validation-count-mode = Režim počítání
+validation-count-chars = Znaky
+validation-count-bytes = Bajty
+validation-count-display-width = Zobrazovaná šířka
+validation-allowed-values = Povolené hodnoty
+validation-display-mask = Zobrazovací maska
+validation-mask-input-char = Vstupní znak masky
+validation-mask-template-char = Šablonový znak masky
+validation-required = Povinné
+validation-allow-empty = Povolit prázdné
+validation-case-insensitive = Nerozlišovat velikost písmen
+validation-external = Externí validace
+validation-lock = Zamknout konfiguraci
+validation-err-at-least-one-rule = Zadejte alespoň jeden název opakovaně použitelného pravidla.
+validation-err-enter = Zadejte { $label }.
+validation-err-non-negative = { $label } musí být nezáporné celé číslo.
+validation-err-min-max = Minimum nemůže být větší než maximum.
+validation-err-pattern-line = Řádek vzoru { $line } musí používat `pozice | omezení`.
+validation-err-range-start = Začátek rozsahu vzoru nemůže přesáhnout jeho konec.
+validation-err-bad-position = Neplatná pozice vzoru '{ $value }'.
+validation-err-bad-constraint = Neznámé omezení znaků '{ $value }'.
+validation-err-permission = Vyžaduje se oprávnění ke správě validací.
diff --git a/web/locales/en/main.ftl b/web/locales/en/main.ftl
index 175cb538..73eef2ae 100644
--- a/web/locales/en/main.ftl
+++ b/web/locales/en/main.ftl
@@ -1 +1,786 @@
-# English is the source locale. Add every new key here first.
+# ============================================================================
+# English (en) — SOURCE locale.
+#
+# Every key that exists here MUST also exist in locales/sk/main.ftl and
+# locales/cs/main.ftl. Do NOT translate this file.
+#
+# Key naming: #let komp_ac_fields = (…) contract out of a Typst template. A path that matches an existing table and column becomes a reference to it; anything else becomes a TEXT column to refine later, and every [] becomes a child table.
+td-table-name = Table name
+td-row-display-columns = Row display columns
+td-row-display-hint = Comma-separated, and only for the root table.
+td-template-source = Template source
+td-template-create-button = Create from template
+td-history-title = Rename history
+td-history-heading = Column rename history
+td-history-empty = No column in { $scope } has been renamed.
+td-history-empty-this-profile = No column in this profile has been renamed.
+td-col-was = Was
+td-col-is = Is
+td-col-when = When
+
+td-columns-added = { $count ->
+ [one] { $count } column added to `{ $table }`.
+ *[other] { $count } columns added to `{ $table }`.
+}
+td-profile-copied = { $message } — { $tables ->
+ [one] { $tables } table
+ *[other] { $tables } tables
+} and { $scripts ->
+ [one] { $scripts } script
+ *[other] { $scripts } scripts
+} copied.
+td-template-tables-created = { $count ->
+ [one] { $count } table created from the template.
+ *[other] { $count } tables created from the template.
+}
+td-err-select-table-first = Select a table first.
+td-err-profile-gone = Profile `{ $missing }` no longer exists.
+td-err-not-a-table = `{ $missing }` is not a table of { $scope }.
+td-err-describe-column = Describe at least one column before adding.
+td-err-backend-no-columns = The backend did not add the columns.
+td-err-choose-rename = Choose a column and type its new name.
+td-err-backend-no-rename = The backend did not rename the column.
+td-err-type-name = Type the table's name exactly to confirm the deletion.
+td-err-backend-no-delete = The backend did not delete the table.
+td-err-name-profile = Name the profile to copy into.
+td-err-backend-no-copy = The backend did not copy the profile.
+td-err-template-required = A table name and the template's source are both required.
+td-err-backend-no-template = The backend did not create the template's tables.
+td-err-permission = Table-management permission is required.
+td-unavailable-title = Table definition unavailable
+
+# --- ECB reference rates ---------------------------------------------------
+ecb-title = Exchange rates
+ecb-heading = ECB reference rates
+ecb-description = The importer fetches the ECB's published rates once a day and records every attempt. Conversions read only what it has verified, so coverage is what decides whether a foreign-currency amount can be posted at all.
+ecb-unavailable-title = Exchange rates unavailable
+ecb-forbidden = Reading exchange-rate data is required to open this page.
+ecb-import-attempts = Import attempts
+ecb-failed-count = { $count ->
+ [one] { $count } failed
+ *[other] { $count } failed
+}
+ecb-no-attempts-hint = The importer has not recorded an attempt. It runs on startup and then daily, so an empty log means the server has not completed a run since this table was created.
+ecb-th-result = Result
+ecb-th-started = Started
+ecb-th-finished = Finished
+ecb-th-took = Took
+ecb-th-window = Window
+ecb-th-observations = Observations
+ecb-th-verified-through = Verified through
+ecb-batch-succeeded = succeeded
+ecb-batch-running = running
+ecb-batch-failed = failed
+ecb-still-running = still running
+ecb-audit-hint = Attempts are an audit record: they cannot be edited or deleted, and a batch that re-fetched a day an earlier one already owned inserts nothing, which is why the new count can be lower than the total.
+ecb-import-running = import running
+ecb-postable-lead = What can be posted right now
+ecb-ordinary-transactions = Ordinary transactions
+ecb-statements-title = Statements & decisive dates
+ecb-dated-up-to = dated up to and including
+ecb-ordinary-rate-hint = Converted at the rate published the business day before the transaction.
+ecb-statements-rate-hint = Converted at the rate published on that day, or the last business day before it.
+ecb-postable-limit-hint = A foreign-currency amount dated after its limit is refused outright until the importer catches up — it is not converted at a stale rate.
+ecb-nothing = Nothing.
+ecb-no-publication-hint = No publication has ever been verified, so every foreign-currency amount is refused whatever its date.
+ecb-verified-through = Verified through
+ecb-never = never
+ecb-up-to-date = up to date
+ecb-behind-count = { $count ->
+ [one] { $count } publication day behind
+ *[other] { $count } publication days behind
+}
+ecb-no-coverage = no coverage
+ecb-should-reach = Should reach
+ecb-last-attempt = Last attempt
+ecb-none-recorded = none recorded
+ecb-last-success = Last success
+ecb-none = none
+ecb-next-import = Next import
+ecb-currencies-on = Currencies on { $date }
+ecb-the-covered-day = the covered day
+ecb-most-recent-failure = Most recent failure — batch { $batch }, started { $started }:
+ecb-no-reason-recorded = no reason was recorded.
+ecb-headline-current = Rates are current
+ecb-headline-never-ran = No rates have ever been imported
+ecb-headline-behind = Rates are behind
+ecb-explanation-current = Every publication day up to the latest one is verified, so conversions post normally.
+ecb-explanation-never-ran = Until one succeeds, every conversion in a foreign currency is refused for want of coverage.
+ecb-explanation-behind = { $count ->
+ [one] { $count } publication day is missing.
+ *[other] { $count } publication days are missing.
+} A conversion dated inside the gap is refused until the importer catches up.
+ecb-new-of = { $inserted } new of { $total }
+ecb-in = in { $time }
+ecb-ago = { $time } ago
+ecb-less-than-1s = <1s
+
+# --- Permissions (roles / users / grants) ----------------------------------
+perm-eyebrow = Permissions
+perm-tabs-aria = permission sections
+perm-tab-roles = Roles
+perm-tab-roles-sub = Create roles and their inheritance
+perm-tab-people = People
+perm-tab-people-sub = Give a user a role
+perm-tab-access = Access
+perm-tab-access-sub = What a role may do
+perm-unavailable-title = Permissions unavailable
+perm-update-error = Could not update permissions
+perm-forbidden = This account manages neither roles nor users.
+perm-err-missing-session = Missing session
+perm-err-nothing-to-change = Nothing to change: the form carried no permissions.
+perm-err-bad-pair = '{ $value }' is not an object|action pair.
+perm-err-not-editable-role = '{ $role }' is not a role you may edit.
+perm-err-neither-grant-nor-revoke = '{ $value }' is neither grant nor revoke.
+perm-err-grant-failed = Granting { $action } on { $object } failed: { $error }
+perm-err-revoke-failed = Revoking { $action } on { $object } failed: { $error }
+perm-err-bad-starter-access = '{ $value }' is not a starter access level.
+perm-role-created-grant-failed = Role '{ $role }' was created, but granting { $action } on { $object } failed: { $error }
+perm-role-reason-outranks-you = outranks you
+perm-role-reason-built-in = built in
+perm-role-reason-still-assigned = still assigned
+
+roles-description = A role is a named set of permissions. People are given roles; roles are given access.
+roles-updated-notice = Roles updated. Signed-in sessions stay valid and pick up the change on their next request.
+roles-new-heading = New role
+roles-new-hint = Inheriting from another role starts the new one with everything that role has, and keeps it in step as that role changes. Starter access is a shortcut for the two common cases; anything narrower is a few clicks on the Access tab.
+roles-name = Name
+roles-inherits-from = Inherits from
+roles-inherits-none = Nothing — starts empty
+roles-starter-access = Starter access
+roles-access-none = None — grant it on the Access tab
+roles-access-read = Read everything
+roles-access-full = Read and write everything
+roles-create-button = Create role
+roles-existing = Existing roles
+roles-th-role = Role
+roles-th-kind = Kind
+roles-th-inherits = Inherits from
+roles-th-people = People
+roles-th-access = Access
+roles-th-remove = Remove
+roles-built-in = built in
+roles-edit-access = Edit access
+
+users-description = Give a user a role. What that role may do is decided once, on the Access tab.
+users-updated-notice = Updated. The person's next request uses the new role; they do not have to sign in again.
+users-heading = Users
+users-outrank-hint = You can only change someone whose role you outrank — { $editable } of { $total } here.
+users-th-user = User
+users-th-email = Email
+users-th-role = Role
+users-th-change = Change role
+users-th-reset = Reset password
+users-assign = Assign
+users-confirm = Confirm
+users-reset = Reset
+
+grants-description = What a role may do with the data. Everyone holding the role gets exactly this.
+grants-updated-notice = Access updated. It applies to the next request every holder of the role makes.
+grants-no-role = No role to edit
+grants-no-role-hint = There is no role here you outrank. Create one first.
+grants-role-heading = Role
+grants-editing = Editing
+grants-inherits-prefix = → inherits
+grants-inherits-parent = { $role } inherits everything { $parent } has. Inherited access shows below but is changed on the parent.
+grants-inherits-none = { $role } inherits from nothing, so what you see below is all it has.
+grants-structural-hint = This role designs the system and may never write row data, so only the read column is open.
+grants-shortcuts = Shortcuts
+grants-shortcuts-hint = These grant the wildcard objects, so they keep covering profiles and tables created later.
+grants-full-access-everything = Full access to everything
+grants-remove-all-access = Remove all access
+grants-everything-everywhere = Everything, everywhere
+grants-profile-prefix = Profile:
+grants-read-only = Read only
+grants-full-access = Full access
+grants-clear = Clear
+grants-th-object = Object
+grants-th-row = Row
+grants-cell-unavailable = Not available for this role
+grants-cell-direct = Held directly — click to revoke
+grants-cell-inherited = inherited: covered by the parent role or a wider grant
+grants-cell-grant = Click to grant
+grants-all = All
+grants-none = None
+grants-read-everything-hint = Read on every profile, journal and exchange rate
+grants-full-everything-hint = Every action the role may hold, on every profile
+grants-remove-all-hint = Revoke every grant this role holds directly
+grants-read-only-hint = Read on everything in here
+grants-full-access-hint = Every action the role may hold, on everything in here
+grants-clear-hint = Revoke everything this role holds directly in here
+grants-all-hint = Grant every action available on this object
+grants-none-hint = Revoke this object's direct grants
+grants-everything-title = Everything
+grants-label-all-tables = All tables
+grants-note-all-tables = Every table in every profile, including ones added later.
+grants-label-all-journals = All journals
+grants-note-all-journals = Every profile's accounting journal.
+grants-label-all-rates = All exchange rates
+grants-note-all-rates = ECB rates are imported by the server, so they can only be read.
+grants-note-profile-tables = Every table in this profile, including ones added later.
+grants-label-journal = Journal
+grants-note-journal = This profile's accounting journal.
+grants-label-rates = Exchange rates
+grants-note-rates = Imported by the server, so read is the only grant.
+grants-note-table = This table and its whole template family.
+
+# --- Analytics -------------------------------------------------------------
+analytics-title = Analytics
+analytics-eyebrow = Reporting
+analytics-description = Query the read-only analytics API and chart the result.
+analytics-available-data = Available data
+analytics-load-hint = Load a profile to see the table and column aliases accepted by analytics SQL.
+analytics-profile = Profile
+analytics-loading-profiles = Loading profiles…
+analytics-load-schema = Load schema
+analytics-no-schema = No schema loaded.
+analytics-chart = Chart
+analytics-chart-bar = Bar
+analytics-chart-line = Line
+analytics-chart-pie = Pie
+analytics-chart-scatter = Scatter
+analytics-chart-table = Table
+analytics-max-rows = Max rows
+analytics-sql = SQL
+analytics-sql-placeholder = Load the schema, then choose a starter query or write a SELECT query
+analytics-run-query = Run query
+analytics-running = Running…
+analytics-no-tables = This profile has no analytics tables.
+analytics-tables-available = { $count ->
+ [one] { $count } table available
+ *[other] { $count } tables available
+}
+analytics-use-starter = Use starter query
+analytics-links = Links
+analytics-required = required
+analytics-llm-context = LLM schema context
+analytics-llm-hint = Copy this entire text and include it when asking an LLM to write a query.
+analytics-copy-context = Copy context
+analytics-copied = Copied
+analytics-load-error = Could not load profiles: { $message }
+analytics-no-profiles = No profiles available
+analytics-choose-profile = Choose a profile…
+analytics-sign-in = Sign in to list the profiles you may read.
+analytics-err-profile-required = Enter a profile name to load its schema
+analytics-err-input-required = Profile name and SQL are required
+analytics-err-chart-columns = Charts require at least two result columns
+analytics-err-chart-type = Unknown chart type
+analytics-not-signed-in = You are not signed in for { $action }.
+analytics-action-loading-schema = loading the schema
+analytics-action-running-query = running a query
+analytics-result-meta = { $rows ->
+ [one] { $rows } row
+ *[other] { $rows } rows
+} in { $elapsed } ms
+analytics-result-meta-truncated = { $rows ->
+ [one] { $rows } row
+ *[other] { $rows } rows
+} in { $elapsed } ms (truncated)
+
+# --- Import / export -------------------------------------------------------
+transfer-eyebrow = Data transfer
+import-title = Import CSV
+import-lead = Choose a browser-local file or paste CSV. Rows are validated against live table structures before gRPC bulk insertion.
+import-profile = Profile
+import-target-tables = Target tables
+import-csv-file = CSV file
+import-csv-data = CSV data
+import-error-title = Could not import CSV
+import-import-rows = Import rows
+import-success-title = Import complete
+import-success-message = Inserted { $inserted ->
+ [one] { $inserted } record
+ *[other] { $inserted } records
+} from { $source_rows ->
+ [one] { $source_rows } CSV row
+ *[other] { $source_rows } CSV rows
+} across { $table_count ->
+ [one] { $table_count } table
+ *[other] { $table_count } tables
+}.
+import-err-select-profile = Select a profile.
+import-err-tables-required = Enter at least one target table.
+import-err-csv-required = Choose a CSV file or paste CSV data.
+import-err-unknown-profile = Unknown profile.
+import-err-tables-not-in-profile = One or more target tables do not belong to the profile.
+import-err-missing-structure = The backend omitted a requested table structure.
+import-err-no-importable-columns = CSV has no importable columns for table '{ $table }'.
+import-err-column-not-importable = Column '{ $column }' is not importable for table '{ $table }'.
+import-err-csv-row = CSV row { $row }: { $error }
+import-err-multi-headers = Multi-table CSV needs a table-header row and a column-header row.
+import-err-first-row = The first CSV row must contain only selected table names.
+import-err-header-lengths = Table and column header rows have different lengths.
+import-err-row-width = A CSV data row has a different number of fields than the header.
+import-err-no-data-rows = CSV contains headers but no data rows.
+import-err-missing-type = Missing type for column '{ $column }'
+import-err-permission = Insert permission is required for at least one readable table.
+import-err-unterminated-quote = CSV contains an unterminated quoted value.
+import-err-empty = CSV is empty.
+import-err-bad-boolean = Invalid boolean value '{ $value }'
+import-err-bad-integer = Invalid integer value '{ $value }'
+
+export-title = Export CSV
+export-lead = The download is generated from live table data through gRPC.
+export-profile = Profile
+export-choose-profile = Choose a profile
+export-tables = Tables
+export-comma-hint = Separate multiple tables with commas.
+export-error-title = Could not export CSV
+export-download = Download CSV
+export-err-select-profile = Select a profile.
+export-err-tables-required = Enter at least one table.
+export-err-unknown-profile = Unknown profile.
+export-err-tables-not-in-profile = One or more tables do not belong to the selected profile.
+export-err-missing-structure = The backend omitted a requested table structure.
+export-err-negative-count = The backend returned a negative row count.
+export-err-range = The export exceeds the supported row-position range.
+export-err-permission = Read permission is required for at least one table.
+
+# --- Add logic -------------------------------------------------------------
+add-logic-title = Add logic
+add-logic-eyebrow = Computed column
+add-logic-lead = Create or update a Steel script through the existing table-script service.
+add-logic-table = Table
+add-logic-choose-table = Choose a table
+add-logic-name = Logic name
+add-logic-target-column = Target column
+add-logic-script = Steel expression
+add-logic-description = Description
+add-logic-error-title = Could not save the logic
+add-logic-save = Save logic
+add-logic-success-title = Logic saved
+add-logic-saved = Script #{ $id } was saved.
+add-logic-saved-warnings = Script #{ $id } was saved. Warnings: { $warnings }
+add-logic-err-select-table = Select a target table.
+add-logic-err-target-column = Enter the target column.
+add-logic-err-script = Enter a Steel expression.
+add-logic-err-script-paren = The Steel expression must start with `(`.
+add-logic-err-permission = Script-management permission is required.
+
+# --- Add table builder -----------------------------------------------------
+add-table-title = Add table
+add-table-eyebrow = Table definition
+add-table-lead = Choose whether the table belongs to one profile or is available to all profiles, then add its columns. After creation, you can assign the initial role permissions.
+builder-err-title = Could not create the table
+builder-err-permission = Table-management permission is required.
+builder-err-backend-no-create = The backend did not create the table.
+builder-could-not-continue = Could not continue
+builder-draft-updated = Draft updated
+builder-table-details = Table details
+builder-scope-question = Where should this table be available?
+builder-scope-profile = One profile
+builder-scope-profile-hint = Only the selected profile can use this table.
+builder-scope-global = All profiles
+builder-scope-global-hint = Every profile can use this shared table.
+builder-which-profile = Which profile?
+builder-choose-profile = Choose a profile
+builder-new-profile = New profile…
+builder-new-profile-name = New profile name
+builder-accounting-currency = Accounting currency
+builder-table-name = Table name
+builder-add-column-heading = Add a column
+builder-add-column-button = Add column
+builder-shared-table-hint = A shared table keeps no books of its own, so ACCOUNTING, ACCOUNTING_TRANSFER and quantity-ledger columns are not offered here — each of them posts to one profile's ledger.
+builder-compound-intro = is a definition row, not a column of its own. Adding it gives the table:
+builder-inherits-currency-hint = kept in the currency and rounding chosen above
+builder-account-system-hint = system column — the account each row is posted to, written as account
+builder-rename-generated-hint = Each of these can be given a name of your own under Rename generated columns once the row is added; leave a field empty to keep the name shown here.
+builder-reserved-hint = These names are reserved: no column of your own may use them, and the table may hold only one { $type }. They land where this row sits in the column list, and can be moved with it.
+builder-columns-heading = Columns
+builder-no-columns = No columns yet. Describe one above and press
+builder-columns-order-hint = Columns are created in this order. Use the arrows to move one.
+builder-th-order = Order
+builder-th-name = Name
+builder-th-type = Type
+builder-th-indexed = Indexed
+builder-th-options = Options
+builder-move-up = Move { $name } up
+builder-move-down = Move { $name } down
+builder-renamed-to = renamed to { $alias }
+builder-rename-generated = Rename generated columns
+builder-rename-generated-hint2 = These columns come from the definition rows above. Give one a name of your own, or leave it empty to keep the name shown.
+builder-rename-aria = Rename { $name }
+builder-apply-names = Apply names
+builder-row-display = Row display columns
+builder-row-display-hint = What identifies a row to users, in the order chosen. Pick id to clear the list.
+builder-preview = Table definition preview
+builder-preview-th-column = Column
+builder-preview-th-type = Type
+builder-preview-th-options = Options
+builder-preview-th-source = Source
+builder-preview-primary-key = primary key
+builder-preview-default-false = default false
+builder-preview-not-null-1 = not null, default 1
+builder-preview-current-time = current time
+builder-preview-account-option = not null, → accounts, written as { $field }
+builder-option-indexed = indexed
+builder-create-table = Create table
+builder-status-generated-keep = The generated columns keep their own names.
+builder-status-generated-one = 1 generated column renamed.
+builder-status-generated-many = { $count } generated columns renamed.
+
+draft-err-profile-name = Enter a name for the new profile.
+draft-err-table-conflict-global = A table named `{ $name }` already exists. A shared table's name has to be free in every profile.
+draft-err-table-conflict = A table named `{ $name }` already exists in profile `{ $profile }`, or is shared by every profile.
+draft-err-no-columns = Add at least one column before saving.
+draft-err-alias-taken = Alias `{ $alias }` for generated column `{ $source }` is already taken by another column.
+draft-err-accounting-currency = Accounting currency must be a three-letter ISO-4217 code
+
+schema-status-column-added = Column `{ $name }` added.
+schema-status-column-removed = Column `{ $name }` removed.
+schema-status-column-moved-up = Column `{ $name }` moved up.
+schema-status-column-moved-down = Column `{ $name }` moved down.
+
+schema-err-both-name-type = Both a column name and a column type are required.
+schema-err-creation-only = A { $type } column can only be chosen while the table is being created.
+schema-err-column-exists = A column named `{ $name }` already exists.
+schema-err-generated-exists = `{ $type }` generates a column named `{ $generated }`, and the table already has one.
+schema-err-ql-types = Quantity-ledger columns must use { $types }
+schema-err-column-ql-types = Column `{ $name }`: quantity-ledger columns must use { $types }
+schema-err-column-prefix = Column `{ $name }`: { $error }
+schema-err-decimal-not-valid = `decimal` is not a valid field type.
+schema-err-link-not-valid = `link` is not a valid field type.
+schema-err-decimal-args-needed = `{ $type }` needs both a precision and a scale.
+schema-err-link-target-needed = `link` needs a referenced table.
+schema-err-generated-type = `{ $type }` is a column type the backend generates itself.
+schema-err-invalid-type = `{ $type }` is not a valid field type.
+schema-err-account-link = The account relationship is built into ACCOUNTING and cannot be declared as a link.
+schema-err-link-self = Link `{ $column }` cannot point at the table being created.
+schema-err-column-gone = That column no longer exists.
+schema-err-link-indexed = Link `{ $name }` is indexed automatically and cannot be indexed again.
+schema-err-definition-indexed = `{ $name }` is a definition row, not a column, so it cannot be indexed.
+schema-err-currency-only = Column `{ $name }`: a currency belongs only to a column type that requires one.
+schema-err-name-twice = `{ $name }` names more than one of this table's columns.
+schema-err-currency-code = Currency must be a three-letter ISO-4217 code
+schema-err-profile-only-type = A shared table cannot use { $type }: it posts to one profile's books, and a shared table belongs to every profile.
+schema-err-shared-ql = Column `{ $name }`: a shared table cannot keep a quantity ledger, which belongs to one profile.
+schema-err-profile-reserved = That profile name is reserved by PostgreSQL.
+schema-err-table-name-too-long = Table name cannot be longer than 63 characters, because the indexes on its columns are named after it.
+schema-err-table-name-reserved = `{ $name }` is the name of a table every profile is given, so it cannot be reused.
+
+error-identifier-empty = { $label } cannot be empty.
+error-identifier-whitespace = { $label } cannot start or end with a space.
+error-identifier-underscore = { $label } cannot start with an underscore.
+error-identifier-number = { $label } cannot start with a number.
+error-identifier-too-long = { $label } cannot be longer than 63 characters.
+error-identifier-charset = { $label } may only use lowercase letters, digits and underscores.
+error-identifier-reserved = { $label } uses a reserved name.
+error-decimal-required = { $label } is required for a decimal column.
+error-decimal-sign = { $label } cannot carry a sign.
+error-decimal-whole = { $label } must be a whole number.
+error-decimal-leading-zeros = { $label } cannot have leading zeros.
+error-precision-min = Precision must be at least 1.
+error-scale-gt-precision = Scale cannot be greater than precision.
+
+# --- Add validation --------------------------------------------------------
+validation-eyebrow = Validation
+validation-library-eyebrow = Global validation library
+validation-field-title = Add field validation
+validation-field-lead = Attach validation to one column of one table.
+validation-rule-title = Add reusable validation rule
+validation-rule-lead = A named rule that validation sets can compose, independent of any table.
+validation-set-title = Add validation set
+validation-set-lead = Compose an ordered set from existing reusable rule names.
+validation-profile = Profile
+validation-table = Table
+validation-column = Column
+validation-apply-set = Apply named validation set instead
+validation-apply-set-placeholder = Leave empty to save the rules below
+validation-error-title = Could not save validation
+validation-success-title = Validation saved
+validation-save = Save validation
+validation-rule-name = Rule name
+validation-description = Description
+validation-save-rule = Save rule
+validation-set-name = Set name
+validation-reusable-rules = Reusable rules
+validation-reusable-rules-hint = Comma-separated and applied in this order.
+validation-save-set = Save set
+validation-position-rules = Position rules
+validation-position-rules-hint = One per line: position | constraint. Positions: 0, 0-3, 4+, or 1,3,5. Constraints: alphabetic, numeric, alphanumeric, exact=x, one-of=a,b, regex=…
+validation-pattern-description = Pattern description
+validation-min-length = Minimum length
+validation-max-length = Maximum length
+validation-warn-at = Warning threshold
+validation-count-mode = Count mode
+validation-count-chars = Characters
+validation-count-bytes = Bytes
+validation-count-display-width = Display width
+validation-allowed-values = Allowed values
+validation-display-mask = Display mask
+validation-mask-input-char = Mask input character
+validation-mask-template-char = Mask template character
+validation-required = Required
+validation-allow-empty = Allow empty
+validation-case-insensitive = Case insensitive
+validation-external = External validation
+validation-lock = Lock configuration
+validation-err-at-least-one-rule = Enter at least one reusable rule name.
+validation-err-enter = Enter a { $label }.
+validation-err-non-negative = { $label } must be a non-negative integer.
+validation-err-min-max = Minimum cannot be greater than maximum.
+validation-err-pattern-line = Pattern line { $line } must use `position | constraint`.
+validation-err-range-start = Pattern range start cannot exceed its end.
+validation-err-bad-position = Invalid pattern position '{ $value }'.
+validation-err-bad-constraint = Unknown character constraint '{ $value }'.
+validation-err-permission = Validation-management permission is required.
diff --git a/web/locales/sk/main.ftl b/web/locales/sk/main.ftl
index c79fd50c..f82b3e41 100644
--- a/web/locales/sk/main.ftl
+++ b/web/locales/sk/main.ftl
@@ -1 +1,803 @@
-# Slovak translations. Missing messages fall back to English.
+# ============================================================================
+# Slovak (sk) locale. Keys must stay identical to locales/en/main.ftl.
+# Only the values (right of "=") are translated.
+# ============================================================================
+
+# --- Spoločné / zdieľané slová ---------------------------------------------
+common-cancel = Zrušiť
+common-no = Nie
+common-remove = Odstrániť
+common-yes = Áno
+
+# --- Chrome stránky (ui/, navbar) ------------------------------------------
+ui-back-to-admin = Späť do administračného panela
+ui-back-to-admin-panel = ← Administračný panel
+ui-back-to-form = Späť do formulára
+ui-dismiss-alert = zatvoriť upozornenie
+notice-log-in-first = Najprv sa prosím prihláste.
+
+nav-admin = Administrácia
+nav-permissions = Oprávnenia
+nav-analytics = Analytika
+nav-rates = Kurzy
+nav-import = Import
+nav-export = Export
+nav-password = Heslo
+nav-log-out = Odhlásiť sa
+nav-login = Prihlásenie
+nav-register = Registrácia
+nav-main-menu = hlavné menu
+nav-mobile-menu = mobilné menu
+
+# --- Názvy polí používané v poskladaných správach ---------------------------
+label-profile = profil
+label-table = tabuľka
+label-column = stĺpec
+label-set-name = názov sady
+label-rule-name = názov pravidla
+label-validation-set-name = názov validačnej sady
+label-minimum = Minimum
+label-maximum = Maximum
+label-warning-threshold = Hranica upozornenia
+label-precision = Presnosť
+label-scale = Desatinné miesta
+label-column-name = Názov stĺpca
+label-table-name = Názov tabuľky
+label-linked-table = Odkazovaná tabuľka
+label-column-alias = Alias stĺpca
+label-profile-name = Názov profilu
+
+# --- Odznaky stĺpcov --------------------------------------------------------
+column-flag-system = systémový
+column-flag-primary-key = primárny kľúč
+column-flag-nullable = môže byť prázdny
+column-flag-required = povinný
+column-flag-quantity-ledger = kvantitatívna evidencia
+column-flag-half-up = zaokrúhlené nahor
+column-flag-read-only = len na čítanie
+column-flag-generated = generovaný
+column-flag-generated-from = generovaný z { $source }
+
+# --- Prihlásenie / registrácia / zmena hesla -------------------------------
+login-title = Prihlásenie
+login-username-or-email = Používateľské meno alebo e-mail
+login-password = Heslo
+login-optional = (voliteľné)
+login-button-login = Prihlásiť sa
+login-no-account = Ešte nemáte účet?
+login-error-title = Prihlásenie sa nepodarilo
+login-error-identifier-required = Používateľské meno alebo e-mail je povinné
+login-error-invalid-token = Server vrátil neplatný prístupový token
+
+register-title = Registrácia
+register-button-register = Registrovať sa
+register-confirm-password = Potvrdiť heslo
+register-have-account = Už máte účet?
+register-error-title = Registrácia sa nepodarila
+register-success-title = Registrácia úspešná. Teraz sa môžete prihlásiť.
+register-success-message =
+ ID používateľa: { $id }
+ Používateľské meno: { $username }
+ E-mail: { $email }
+ Rola: { $role }
+ Časové pásmo: { $timezone }
+ Krajina telefónu: { $phone_country }
+
+field-username = Používateľské meno
+field-email = E-mail
+field-timezone = Časové pásmo
+field-phone-country = Krajina telefónu
+field-current-password = Aktuálne heslo
+field-new-password = Nové heslo
+field-confirm-new-password = Potvrdiť nové heslo
+
+password-title = Zmena hesla
+password-button-change = Zmeniť heslo
+password-empty-current-hint = Pri čerstvo vytvorenom účte správcu alebo super správcu nechajte aktuálne heslo prázdne.
+password-error-title = Zmenu hesla sa nepodarilo vykonať
+password-success-title = Heslo zmenené
+password-changed-message = Vaše nové heslo je aktívne.
+
+# --- Administračný panel (prehliadač pracovnej plochy) ----------------------
+admin-title = Administračný panel
+admin-eyebrow-workspace = Pracovná plocha
+admin-description = Prechádzajte profily, tabuľky a ich fyzické stĺpce. Vyberte tabuľku a zobrazia sa možnosti jej úprav.
+admin-add-table = Pridať tabuľku
+admin-add-logic = Pridať logiku
+admin-add-validation = Pridať validáciu
+admin-add-rule = Pridať pravidlo
+admin-export = Export
+admin-exchange-rates = Devízové kurzy
+admin-unavailable-title = Administračný panel nie je dostupný
+admin-forbidden = Tento účet nemá povolenie otvoriť administračný panel.
+
+admin-profiles = Profily
+admin-no-profiles-available = Nie sú k dispozícii žiadne profily.
+admin-table-count = { $count ->
+ [one] { $count } tabuľka
+ [few] { $count } tabuľky
+ *[other] { $count } tabuliek
+}
+admin-shared-by-every-profile = zdieľaná všetkými profilmi
+admin-tables-heading = Tabuľky
+admin-select-profile-first = Vyberte profil, aby ste videli jeho tabuľky.
+admin-no-global-tables = Neexistujú žiadne globálne tabuľky.
+admin-no-profile-tables = Tento profil nemá vlastné tabuľky.
+admin-no-dependencies = Bez závislostí
+admin-depends-on-prefix = Závisí od
+admin-row-display-prefix = zobrazenie:
+admin-add-rename-columns = Pridať / premenovať stĺpce
+admin-delete-table = Vymazať tabuľku
+admin-who-may-use-it = Kto ju môže používať
+admin-pick-table-hint = Vyberte tabuľku, aby ste do nej pridali stĺpce, vymazali ju alebo určili, kto ju môže používať.
+admin-new-global-table = Nová globálna tabuľka
+admin-new-table = Nová tabuľka
+admin-from-template = Zo šablóny
+admin-copy-profile = Kopírovať profil
+admin-rename-history = História premenovaní
+admin-columns = Stĺpce
+admin-column-counts = { $user ->
+ [one] { $user } používateľ
+ [few] { $user } používatelia
+ *[other] { $user } používateľov
+} · { $system ->
+ [one] { $system } systém
+ [few] { $system } systémy
+ *[other] { $system } systémov
+}
+admin-select-table-inspect = Vyberte tabuľku, aby ste zobrazili jej stĺpce.
+admin-no-visible-columns = Táto tabuľka nemá žiadne viditeľné stĺpce.
+admin-system-columns-label = Systémové stĺpce · skryté pred používateľmi
+
+# --- Stránky definície tabuľky (stĺpce / vymazať / kopírovať / šablóna / história)
+td-columns-title = Stĺpce
+td-add-columns-to = Pridať stĺpce do
+td-append-hint = Stĺpce sa pridávajú na koniec. Nič, čo už existuje, sa nemení a nové stĺpce možno indexovať hneď pri pridaní.
+td-rename-column = Premenovať stĺpec
+td-rename-hint = Premenúva sa len zobrazený názov, nie fyzický stĺpec pod ním, takže uložené údaje a skripty zostávajú nedotknuté. Možné len kým tabuľka nemá žiadne riadky.
+td-column-label = Stĺpec
+td-choose-column = Vyberte stĺpec
+td-new-name = Nový názov
+td-rename-button = Premenovať stĺpec
+td-columns-now = Súčasné stĺpce
+td-col-column = Stĺpec
+td-col-type = Typ
+td-col-notes = Poznámky
+td-scripts = Skripty
+td-col-target-column = Cieľový stĺpec
+td-col-description = Popis
+td-source = zdroj
+
+td-could-not-add-column = Stĺpec sa nepodarilo pridať
+td-staged = Pripravené
+td-link-alias = Alias odkazu
+td-column-name = Názov stĺpca
+td-link-alias-hint = Alias je názov stĺpca, ktorým sa tento vzťah rozlišuje.
+td-column-type = Typ stĺpca
+td-choose-type = Vyberte typ
+td-fk-link = FKlink
+td-temporal-type = Časový typ
+td-choose-temporal-type = Vyberte časový typ
+td-gtin-type = Typ GTIN
+td-choose-gtin-length = Vyberte dĺžku GTIN
+td-precision = Presnosť
+td-precision-hint = Celkový počet uložených číslic, aspoň 1.
+td-scale = Desatinné miesta
+td-scale-hint = Číslice za desatinnou čiarkou, najviac toľko ako presnosť.
+td-referenced-table = Odkazovaná tabuľka
+td-choose-table = Vyberte tabuľku
+td-group-global = Globálne
+td-group-user = Vytvorené používateľom
+td-group-system = Vytvorené systémom
+td-no-eligible-tables = V tomto rozsahu neexistujú žiadne vhodné tabuľky.
+td-currency = Mena
+td-rounding = Zaokrúhľovanie
+td-rounding-none = žiadne
+td-rounding-half-up = zaokrúhliť nahor
+td-indexing = Indexovanie
+td-indexed-automatically = Indexované automaticky — odkaz je cudzí kľúč a server indexuje každý z nich.
+td-required = Povinný
+td-required-hint = Riadok musí preň obsahovať hodnotu.
+td-quantity-ledger = Kvantitatívna evidencia
+td-ql-only = Len { $types }.
+td-shared-no-quantity-ledger = Zdieľaná tabuľka nevedie vlastné účtovníctvo, takže nemôže obsahovať stĺpec kvantitatívnej evidencie.
+td-stage-column = Pripraviť stĺpec
+td-no-staged-columns = Zatiaľ nie sú pripravené žiadne stĺpce. Popíšte jeden vyššie a stlačte
+td-col-name = Názov
+td-col-indexed = Indexovaný
+td-col-options = Možnosti
+td-indexed-automatically-tag = indexované automaticky
+td-money-exact = presne
+td-money-half-up = zaokrúhlené nahor
+td-add-columns-button = { $count ->
+ [one] Pridať { $count } stĺpec do tabuľky
+ [few] Pridať { $count } stĺpce do tabuľky
+ *[other] Pridať { $count } stĺpcov do tabuľky
+}
+
+td-eyebrow-table-definition = Definícia tabuľky
+td-columns-count = { $count ->
+ [one] { $count } stĺpec
+ [few] { $count } stĺpce
+ *[other] { $count } stĺpcov
+}
+td-identified-by = identifikovaná podľa
+td-its-id = svojho id
+td-depends-on-prefix = závisí od
+td-acts-on-profile = Všetko na tejto stránke sa týka tohto profilu.
+td-global-label = Globálne — všetky profily
+td-tab-aria = akcie s tabuľkou
+td-tab-columns = Stĺpce
+td-tab-columns-sub = Pridať stĺpce a premenovať ich
+td-tab-delete = Vymazať
+td-tab-delete-sub = Odstrániť túto tabuľku
+td-tab-access = Prístup
+td-tab-access-sub = Ktoré roly ju môžu čítať a zapisovať
+td-tab-copy = Kopírovať profil
+td-tab-copy-sub = Duplikovať jeho štruktúru
+td-tab-template = Zo šablóny
+td-tab-template-sub = Vytvoriť tabuľky z Typst faktúry
+td-tab-history = História premenovaní
+td-tab-history-sub = Ako stĺpce získali svoje názvy
+td-backend-managed-title = Spravované backendom
+td-backend-managed-hint = Táto tabuľka patrí backendu. Jej definíciu si môžete pozrieť v administračnom paneli, ale meniť sa dá len cez API backendu, takže žiadna z akcií na zápis sa na ňu nevzťahuje.
+
+td-could-not-continue = Nedá sa pokračovať
+td-done = Hotovo
+td-sql-ran = SQL, ktorý backend vykonal
+td-delete-title = Vymazať tabuľku
+td-delete-table = Vymazať tabuľku
+td-delete-hint = Odstráni tabuľku aj jej definíciu, a ak to bola posledná tabuľka profilu, aj profil. Backend odmietne vymazať tabuľku, ktorá má stále riadky.
+td-links-to = Odkazuje na { $tables }.
+td-type-to-confirm = Napíšte
+td-no-table-chosen = Nebola vybratá žiadna tabuľka
+td-pick-table-delete = Najprv vyberte tabuľku na vymazanie v administračnom paneli.
+td-copy-title = Kopírovať profil
+td-copy-into = Kopírovať
+td-copy-hint = Kopíruje štruktúru — tabuľky, odkazy a skripty — bez riadkov. Ak nezačiarknete žiadnu tabuľku, skopíruje sa celý profil.
+td-new-profile-name = Názov nového profilu
+td-copy-button = Kopírovať profil
+td-template-title = Vytvoriť zo šablóny
+td-template-created-tables = Tabuľky vytvorené zo šablóny
+td-col-table = Tabuľka
+td-col-collection = Kolekcia
+td-col-parent = Nadradená
+td-root = koreň
+td-template-create-heading = Vytvoriť tabuľky z faktúrovej šablóny
+td-template-hint = Načíta kontrakt #let komp_ac_fields = (…) z Typst šablóny. Cesta, ktorá zodpovedá existujúcej tabuľke a stĺpcu, sa stane odkazom na ňu; všetko ostatné sa stane stĺpcom TEXT, ktorý neskôr upravíte, a každé [] sa stane podradenou tabuľkou.
+td-table-name = Názov tabuľky
+td-row-display-columns = Stĺpce identifikujúce riadok
+td-row-display-hint = Oddeľte čiarkami, platí len pre koreňovú tabuľku.
+td-template-source = Zdroj šablóny
+td-template-create-button = Vytvoriť zo šablóny
+td-history-title = História premenovaní
+td-history-heading = História premenovaní stĺpcov
+td-history-empty = V { $scope } nebol premenovaný žiadny stĺpec.
+td-history-empty-this-profile = V tomto profile nebol premenovaný žiadny stĺpec.
+td-col-was = Bol
+td-col-is = Je
+td-col-when = Kedy
+
+td-columns-added = { $count ->
+ [one] { $count } stĺpec pridaný do `{ $table }`.
+ [few] { $count } stĺpce pridané do `{ $table }`.
+ *[other] { $count } stĺpcov pridaných do `{ $table }`.
+}
+td-profile-copied = { $message } — skopírované { $tables ->
+ [one] { $tables } tabuľka
+ [few] { $tables } tabuľky
+ *[other] { $tables } tabuliek
+} a { $scripts ->
+ [one] { $scripts } skript
+ [few] { $scripts } skripty
+ *[other] { $scripts } skriptov
+}.
+td-template-tables-created = { $count ->
+ [one] Vytvorená { $count } tabuľka zo šablóny.
+ [few] Vytvorené { $count } tabuľky zo šablóny.
+ *[other] Vytvorených { $count } tabuliek zo šablóny.
+}
+td-err-select-table-first = Najprv vyberte tabuľku.
+td-err-profile-gone = Profil `{ $missing }` už neexistuje.
+td-err-not-a-table = `{ $missing }` nie je tabuľka rozsahu { $scope }.
+td-err-describe-column = Pred pridaním popíšte aspoň jeden stĺpec.
+td-err-backend-no-columns = Backend nepridal stĺpce.
+td-err-choose-rename = Vyberte stĺpec a zadajte jeho nový názov.
+td-err-backend-no-rename = Backend nepremenoval stĺpec.
+td-err-type-name = Na potvrdenie vymazania napíšte presný názov tabuľky.
+td-err-backend-no-delete = Backend nevymazal tabuľku.
+td-err-name-profile = Zadajte názov profilu, do ktorého sa kopíruje.
+td-err-backend-no-copy = Backend neskopíroval profil.
+td-err-template-required = Vyžaduje sa názov tabuľky aj zdroj šablóny.
+td-err-backend-no-template = Backend nevytvoril tabuľky zo šablóny.
+td-err-permission = Vyžaduje sa oprávnenie na správu tabuliek.
+td-unavailable-title = Definícia tabuľky nie je dostupná
+
+# --- Referenčné kurzy ECB ---------------------------------------------------
+ecb-title = Devízové kurzy
+ecb-heading = Referenčné kurzy ECB
+ecb-description = Importér načítava zverejnené kurzy ECB raz denne a zaznamenáva každý pokus. Konverzie čítajú len to, čo overil, takže pokrytie rozhoduje o tom, či je možné cudzomenovú sumu zahlasovať vôbec.
+ecb-unavailable-title = Devízové kurzy nie sú dostupné
+ecb-forbidden = Na otvorenie tejto stránky sa vyžaduje čítanie údajov o devízových kurzoch.
+ecb-import-attempts = Pokusy o import
+ecb-failed-count = { $count ->
+ [one] { $count } zlyhaný
+ [few] { $count } zlyhané
+ *[other] { $count } zlyhaných
+}
+ecb-no-attempts-hint = Importér nezaznamenal žiadny pokus. Beží pri štarte a potom denne, takže prázdny záznam znamená, že server od vytvorenia tejto tabuľky nedokončil žiadny beh.
+ecb-th-result = Výsledok
+ecb-th-started = Spustené
+ecb-th-finished = Dokončené
+ecb-th-took = Trvalo
+ecb-th-window = Obdobie
+ecb-th-observations = Pozorovania
+ecb-th-verified-through = Overené do
+ecb-batch-succeeded = úspešné
+ecb-batch-running = prebieha
+ecb-batch-failed = zlyhané
+ecb-still-running = stále beží
+ecb-audit-hint = Pokusy sú audítorský záznam: nemožno ich upravovať ani mazať a dávka, ktorá znovu načítala deň, ktorý už vlastnila staršia, nevloží nič — preto môže byť nový počet nižší ako celkový.
+ecb-import-running = import prebieha
+ecb-postable-lead = Čo možno zahlasovať práve teraz
+ecb-ordinary-transactions = Bežné transakcie
+ecb-statements-title = Výpisy a rozhodujúce dátumy
+ecb-dated-up-to = datované do vrátane
+ecb-ordinary-rate-hint = Prepočítané kurzom zverejneným v pracovný deň pred transakciou.
+ecb-statements-rate-hint = Prepočítané kurzom zverejneným v ten deň, alebo v posledný pracovný deň pred ním.
+ecb-postable-limit-hint = Cudzomenová suma datovaná po svojom limite sa odmieta priamo, kým importér nedobehne — neprepočítava sa zastaraným kurzom.
+ecb-nothing = Nič.
+ecb-no-publication-hint = Nikdy nebolo overené žiadne zverejnenie, takže každá cudzomenová suma sa odmieta bez ohľadu na dátum.
+ecb-verified-through = Overené do
+ecb-never = nikdy
+ecb-up-to-date = aktuálne
+ecb-behind-count = { $count ->
+ [one] { $count } zmeškaný publikačný deň
+ [few] { $count } zmeškané publikačné dni
+ *[other] { $count } zmeškaných publikačných dní
+}
+ecb-no-coverage = bez pokrytia
+ecb-should-reach = Má dosiahnuť
+ecb-last-attempt = Posledný pokus
+ecb-none-recorded = žiadny nezaznamenaný
+ecb-last-success = Posledný úspech
+ecb-none = žiadny
+ecb-next-import = Ďalší import
+ecb-currencies-on = Meny k { $date }
+ecb-the-covered-day = pokrytý deň
+ecb-most-recent-failure = Posledné zlyhanie — dávka { $batch }, spustené { $started }:
+ecb-no-reason-recorded = nebol zaznamenaný žiadny dôvod.
+ecb-headline-current = Kurzy sú aktuálne
+ecb-headline-never-ran = Nikdy neboli importované žiadne kurzy
+ecb-headline-behind = Kurzy meškajú
+ecb-explanation-current = Overený je každý publikačný deň až po najnovší, takže konverzie sa hlasujú normálne.
+ecb-explanation-never-ran = Kým sa jeden nepodarí, každá konverzia v cudzej mene sa odmieta pre nedostatok pokrytia.
+ecb-explanation-behind = { $count ->
+ [one] Chýba { $count } publikačný deň.
+ [few] Chýbajú { $count } publikačné dni.
+ *[other] Chýba { $count } publikačných dní.
+} Konverzia datovaná do medzery sa odmieta, kým importér nedobehne.
+ecb-new-of = { $inserted } nových z { $total }
+ecb-in = o { $time }
+ecb-ago = pred { $time }
+ecb-less-than-1s = <1s
+
+# --- Oprávnenia (roly / používatelia / prístup) ------------------------------
+perm-eyebrow = Oprávnenia
+perm-tabs-aria = sekcie oprávnení
+perm-tab-roles = Roly
+perm-tab-roles-sub = Vytváranie rolí a ich dedičnosti
+perm-tab-people = Ľudia
+perm-tab-people-sub = Priradiť používateľovi rolu
+perm-tab-access = Prístup
+perm-tab-access-sub = Čo rola môže robiť
+perm-unavailable-title = Oprávnenia nie sú dostupné
+perm-update-error = Oprávnenia sa nepodarilo aktualizovať
+perm-forbidden = Tento účet nespravuje ani roly, ani používateľov.
+perm-err-missing-session = Chýbajúca relácia
+perm-err-nothing-to-change = Nie je čo meniť: formulár neobsahoval žiadne oprávnenia.
+perm-err-bad-pair = '{ $value }' nie je dvojica objekt|akcia.
+perm-err-not-editable-role = '{ $role }' nie je rola, ktorú môžete upravovať.
+perm-err-neither-grant-nor-revoke = '{ $value }' nie je ani grant, ani zrušenie.
+perm-err-grant-failed = Udeľovanie { $action } na { $object } zlyhalo: { $error }
+perm-err-revoke-failed = Rušenie { $action } na { $object } zlyhalo: { $error }
+perm-err-bad-starter-access = '{ $value }' nie je úroveň štartovacieho prístupu.
+perm-role-created-grant-failed = Rola '{ $role }' bola vytvorená, ale udeľovanie { $action } na { $object } zlyhalo: { $error }
+perm-role-reason-outranks-you = má vyššiu úroveň ako vy
+perm-role-reason-built-in = vstavaná
+perm-role-reason-still-assigned = stále priradená
+
+roles-description = Rola je pomenovaná množina oprávnení. Ľuďom sa prideľujú roly; rolam sa prideľuje prístup.
+roles-updated-notice = Roly aktualizované. Prihlásené relácie zostávajú platné a zmenu zachytia pri najbližšej požiadavke.
+roles-new-heading = Nová rola
+roles-new-hint = Dedičnosť z inej roly dá novej role všetko, čo má tá rola, a udržiava ju v súlade, keď sa tá rola zmení. Štartovací prístup je skratka pre dva bežné prípady; čokoľvek užšie je pár klikov na karte Prístup.
+roles-name = Názov
+roles-inherits-from = Dedi z
+roles-inherits-none = Nič — začína prázdna
+roles-starter-access = Štartovací prístup
+roles-access-none = Žiadny — udeľte ho na karte Prístup
+roles-access-read = Čítať všetko
+roles-access-full = Čítať a zapisovať všetko
+roles-create-button = Vytvoriť rolu
+roles-existing = Existujúce roly
+roles-th-role = Rola
+roles-th-kind = Druh
+roles-th-inherits = Dedi z
+roles-th-people = Ľudia
+roles-th-access = Prístup
+roles-th-remove = Odstrániť
+roles-built-in = vstavaná
+roles-edit-access = Upraviť prístup
+
+users-description = Priraďte používateľovi rolu. Čo rola môže robiť, sa určí raz, na karte Prístup.
+users-updated-notice = Aktualizované. Najbližšia požiadavka danej osoby použije novú rolu; nemusí sa znova prihlasovať.
+users-heading = Používatelia
+users-outrank-hint = Môžete meniť len niekoho, koho rola je nižšia ako vaša — tu { $editable } z { $total }.
+users-th-user = Používateľ
+users-th-email = E-mail
+users-th-role = Rola
+users-th-change = Zmeniť rolu
+users-th-reset = Obnoviť heslo
+users-assign = Priradiť
+users-confirm = Potvrdiť
+users-reset = Obnoviť
+
+grants-description = Čo rola môže robiť s údajmi. Každý, kto rolu drží, dostane presne toto.
+grants-updated-notice = Prístup aktualizovaný. Platí od najbližšej požiadavky každého držiteľa roly.
+grants-no-role = Nie je čo upravovať
+grants-no-role-hint = Nie je tu žiadna rola s nižšou úrovňou ako vaša. Vytvorte jednu najprv.
+grants-role-heading = Rola
+grants-editing = Upravujete
+grants-inherits-prefix = → dedí
+grants-inherits-parent = { $role } dedí všetko, čo má { $parent }. Dedený prístup sa zobrazuje nižšie, ale mení sa na nadradenej role.
+grants-inherits-none = { $role } nededí nič, takže všetko, čo vidíte nižšie, je všetko, čo má.
+grants-structural-hint = Táto rola navrhuje systém a nikdy nemôže zapisovať riadkové údaje, takže je otvorený len stĺpec na čítanie.
+grants-shortcuts = Skratky
+grants-shortcuts-hint = Udeľujú zástupné objekty, takže naďalej pokrývajú profily a tabuľky vytvorené neskôr.
+grants-full-access-everything = Úplný prístup ku všetkému
+grants-remove-all-access = Odstrániť všetok prístup
+grants-everything-everywhere = Všetko, všade
+grants-profile-prefix = Profil:
+grants-read-only = Iba na čítanie
+grants-full-access = Úplný prístup
+grants-clear = Vyčistiť
+grants-th-object = Objekt
+grants-th-row = Riadok
+grants-cell-unavailable = Pre túto rolu nie je dostupné
+grants-cell-direct = Drží priamo — kliknutím zrušíte
+grants-cell-inherited = zdedené: pokrýva to nadradená rola alebo širší grant
+grants-cell-grant = Kliknutím udelíte
+grants-all = Všetko
+grants-none = Nič
+grants-read-everything-hint = Čítanie na každom profile, denníku a devízovom kurze
+grants-full-everything-hint = Každá akcia, ktorú rola môže držať, na každom profile
+grants-remove-all-hint = Odvolať každý grant, ktorý táto rola drží priamo
+grants-read-only-hint = Čítanie všetkého tu
+grants-full-access-hint = Každá akcia, ktorú rola môže držať, na všetkom tu
+grants-clear-hint = Odvolať všetko, čo táto rola drží priamo tu
+grants-all-hint = Udeliť každú akciu dostupnú na tomto objekte
+grants-none-hint = Odvolať priame granty tohto objektu
+grants-everything-title = Všetko
+grants-label-all-tables = Všetky tabuľky
+grants-note-all-tables = Každá tabuľka v každom profile vrátane tých, ktoré pribudnú neskôr.
+grants-label-all-journals = Všetky denníky
+grants-note-all-journals = Účtovný denník každého profilu.
+grants-label-all-rates = Všetky devízové kurzy
+grants-note-all-rates = Kurzy ECB importuje server, takže ich možno len čítať.
+grants-note-profile-tables = Každá tabuľka v tomto profile vrátane tých, ktoré pribudnú neskôr.
+grants-label-journal = Denník
+grants-note-journal = Účtovný denník tohto profilu.
+grants-label-rates = Devízové kurzy
+grants-note-rates = Importuje server, takže jediným grantom je čítanie.
+grants-note-table = Táto tabuľka a celá jej šablónová rodina.
+
+# --- Analytika ---------------------------------------------------------------
+analytics-title = Analytika
+analytics-eyebrow = Reportovanie
+analytics-description = Dotazujte sa na read-only analytické API a výsledok zobrazte v grafe.
+analytics-available-data = Dostupné údaje
+analytics-load-hint = Načítajte profil, aby ste videli aliasy tabuliek a stĺpcov, ktoré analytický SQL akceptuje.
+analytics-profile = Profil
+analytics-loading-profiles = Načítavajú sa profily…
+analytics-load-schema = Načítať schému
+analytics-no-schema = Nie je načítaná žiadna schéma.
+analytics-chart = Graf
+analytics-chart-bar = Stĺpcový
+analytics-chart-line = Čiarový
+analytics-chart-pie = Koláčový
+analytics-chart-scatter = Bodový
+analytics-chart-table = Tabuľka
+analytics-max-rows = Maximálny počet riadkov
+analytics-sql = SQL
+analytics-sql-placeholder = Načítajte schému a potom vyberte štartovací dotaz alebo napíšte SELECT dotaz
+analytics-run-query = Spustiť dotaz
+analytics-running = Spúšťa sa…
+analytics-no-tables = Tento profil nemá analytické tabuľky.
+analytics-tables-available = { $count ->
+ [one] k dispozícii { $count } tabuľka
+ [few] k dispozícii { $count } tabuľky
+ *[other] k dispozícii { $count } tabuliek
+}
+analytics-use-starter = Použiť štartovací dotaz
+analytics-links = Odkazy
+analytics-required = povinné
+analytics-llm-context = Kontext schémy pre LLM
+analytics-llm-hint = Skopírujte celý tento text a zahrňte ho, keď požiadate LLM o napísanie dotazu.
+analytics-copy-context = Kopírovať kontext
+analytics-copied = Skopírované
+analytics-load-error = Profily sa nepodarilo načítať: { $message }
+analytics-no-profiles = Nie sú k dispozícii žiadne profily
+analytics-choose-profile = Vyberte profil…
+analytics-sign-in = Prihláste sa, aby ste videli profily, ktoré môžete čítať.
+analytics-err-profile-required = Zadajte názov profilu na načítanie jeho schémy
+analytics-err-input-required = Vyžadujú sa názov profilu a SQL
+analytics-err-chart-columns = Grafy vyžadujú aspoň dva výsledné stĺpce
+analytics-err-chart-type = Neznámy typ grafu
+analytics-not-signed-in = Nie ste prihlásený na { $action }.
+analytics-action-loading-schema = načítavanie schémy
+analytics-action-running-query = spúšťanie dotazu
+analytics-result-meta = { $rows ->
+ [one] { $rows } riadok za { $elapsed } ms
+ [few] { $rows } riadky za { $elapsed } ms
+ *[other] { $rows } riadkov za { $elapsed } ms
+}
+analytics-result-meta-truncated = { $rows ->
+ [one] { $rows } riadok za { $elapsed } ms (skrátené)
+ [few] { $rows } riadky za { $elapsed } ms (skrátené)
+ *[other] { $rows } riadkov za { $elapsed } ms (skrátené)
+}
+
+# --- Import / export ---------------------------------------------------------
+transfer-eyebrow = Prenos údajov
+import-title = Import CSV
+import-lead = Vyberte súbor v prehliadači alebo vložte CSV. Riadky sa overujú proti živým štruktúram tabuliek pred hromadným vkladaním cez gRPC.
+import-profile = Profil
+import-target-tables = Cieľové tabuľky
+import-csv-file = Súbor CSV
+import-csv-data = Údaje CSV
+import-error-title = CSV sa nepodarilo importovať
+import-import-rows = Importovať riadky
+import-success-title = Import dokončený
+import-success-message = Vložené { $inserted ->
+ [one] { $inserted } záznam
+ [few] { $inserted } záznamy
+ *[other] { $inserted } záznamov
+} z { $source_rows ->
+ [one] { $source_rows } riadku CSV
+ [few] { $source_rows } riadkov CSV
+ *[other] { $source_rows } riadkov CSV
+} v { $table_count ->
+ [one] { $table_count } tabuľke
+ [few] { $table_count } tabuľkách
+ *[other] { $table_count } tabuľkách
+}.
+import-err-select-profile = Vyberte profil.
+import-err-tables-required = Zadajte aspoň jednu cieľovú tabuľku.
+import-err-csv-required = Vyberte súbor CSV alebo vložte údaje CSV.
+import-err-unknown-profile = Neznámy profil.
+import-err-tables-not-in-profile = Jedna alebo viac cieľových tabuliek nepatrí do profilu.
+import-err-missing-structure = Backend vynechal požadovanú štruktúru tabuľky.
+import-err-no-importable-columns = CSV nemá importovateľné stĺpce pre tabuľku '{ $table }'.
+import-err-column-not-importable = Stĺpec '{ $column }' nie je importovateľný pre tabuľku '{ $table }'.
+import-err-csv-row = Riadok CSV { $row }: { $error }
+import-err-multi-headers = Viac-tabuľkové CSV potrebuje riadok s hlavičkou tabuliek a riadok s hlavičkou stĺpcov.
+import-err-first-row = Prvý riadok CSV musí obsahovať len vybrané názvy tabuliek.
+import-err-header-lengths = Riadok hlavičky tabuliek a stĺpcov majú rôznu dĺžku.
+import-err-row-width = Riadok údajov CSV má iný počet polí ako hlavička.
+import-err-no-data-rows = CSV obsahuje hlavičky, ale žiadne riadky údajov.
+import-err-missing-type = Chýba typ stĺpca '{ $column }'
+import-err-permission = Vyžaduje sa oprávnenie na vkladanie pre aspoň jednu čitateľnú tabuľku.
+import-err-unterminated-quote = CSV obsahuje neuzavretú úvodzovkovú hodnotu.
+import-err-empty = CSV je prázdny.
+import-err-bad-boolean = Neplatná boolovská hodnota '{ $value }'
+import-err-bad-integer = Neplatná celočíselná hodnota '{ $value }'
+
+export-title = Export CSV
+export-lead = Súbor sa generuje z živých údajov tabuliek cez gRPC.
+export-profile = Profil
+export-choose-profile = Vyberte profil
+export-tables = Tabuľky
+export-comma-hint = Viacero tabuliek oddeľte čiarkami.
+export-error-title = CSV sa nepodarilo exportovať
+export-download = Stiahnuť CSV
+export-err-select-profile = Vyberte profil.
+export-err-tables-required = Zadajte aspoň jednu tabuľku.
+export-err-unknown-profile = Neznámy profil.
+export-err-tables-not-in-profile = Jedna alebo viac tabuliek nepatrí do vybraného profilu.
+export-err-missing-structure = Backend vynechal požadovanú štruktúru tabuľky.
+export-err-negative-count = Backend vrátil záporný počet riadkov.
+export-err-range = Export presahuje podporovaný rozsah pozícií riadkov.
+export-err-permission = Vyžaduje sa oprávnenie na čítanie pre aspoň jednu tabuľku.
+
+# --- Pridať logiku ------------------------------------------------------------
+add-logic-title = Pridať logiku
+add-logic-eyebrow = Vypočítaný stĺpec
+add-logic-lead = Vytvorte alebo aktualizujte Steel skript cez existujúcu službu skriptov tabuliek.
+add-logic-table = Tabuľka
+add-logic-choose-table = Vyberte tabuľku
+add-logic-name = Názov logiky
+add-logic-target-column = Cieľový stĺpec
+add-logic-script = Steel výraz
+add-logic-description = Popis
+add-logic-error-title = Logiku sa nepodarilo uložiť
+add-logic-save = Uložiť logiku
+add-logic-success-title = Logika uložená
+add-logic-saved = Skript #{ $id } bol uložený.
+add-logic-saved-warnings = Skript #{ $id } bol uložený. Upozornenia: { $warnings }
+add-logic-err-select-table = Vyberte cieľovú tabuľku.
+add-logic-err-target-column = Zadajte cieľový stĺpec.
+add-logic-err-script = Zadajte Steel výraz.
+add-logic-err-script-paren = Steel výraz musí začínať `(`.
+add-logic-err-permission = Vyžaduje sa oprávnenie na správu skriptov.
+
+# --- Nástroj na pridávanie tabuľky --------------------------------------------
+add-table-title = Pridať tabuľku
+add-table-eyebrow = Definícia tabuľky
+add-table-lead = Vyberte, či tabuľka patrí jednému profilu alebo je dostupná všetkým profilom, a potom pridajte jej stĺpce. Po vytvorení môžete priradiť počiatočné oprávnenia rolám.
+builder-err-title = Tabuľku sa nepodarilo vytvoriť
+builder-err-permission = Vyžaduje sa oprávnenie na správu tabuliek.
+builder-err-backend-no-create = Backend nevytvoril tabuľku.
+builder-could-not-continue = Nedá sa pokračovať
+builder-draft-updated = Návrh aktualizovaný
+builder-table-details = Podrobnosti tabuľky
+builder-scope-question = Kde má byť táto tabuľka dostupná?
+builder-scope-profile = Jeden profil
+builder-scope-profile-hint = Túto tabuľku môže používať len vybraný profil.
+builder-scope-global = Všetky profily
+builder-scope-global-hint = Túto zdieľanú tabuľku môže používať každý profil.
+builder-which-profile = Ktorý profil?
+builder-choose-profile = Vyberte profil
+builder-new-profile = Nový profil…
+builder-new-profile-name = Názov nového profilu
+builder-accounting-currency = Účtovná mena
+builder-table-name = Názov tabuľky
+builder-add-column-heading = Pridať stĺpec
+builder-add-column-button = Pridať stĺpec
+builder-shared-table-hint = Zdieľaná tabuľka nevedie vlastné účtovníctvo, takže stĺpce ACCOUNTING, ACCOUNTING_TRANSFER a kvantitatívnej evidencie sa tu neponúkajú — každý z nich sa účtuje do denníka jedného profilu.
+builder-compound-intro = je definičný riadok, nie vlastný stĺpec. Jeho pridaním tabuľka získa:
+builder-inherits-currency-hint = držané v mene a zaokrúhlení zvolených vyššie
+builder-account-system-hint = systémový stĺpec — účet, na ktorý sa účtuje každý riadok, zapisovaný ako account
+builder-rename-generated-hint = Každému z nich môžete dať vlastný názov v časti Premenovať generované stĺpce hneď po pridaní riadku; prázdne pole ponechá názov zobrazený tu.
+builder-reserved-hint = Tieto názvy sú vyhradené: žiadny vlastný stĺpec ich nesmie použiť a tabuľka môže obsahovať len jeden { $type }. Umiestnia sa na miesto tohto riadku v zozname stĺpcov a dajú sa s ním presúvať.
+builder-columns-heading = Stĺpce
+builder-no-columns = Zatiaľ žiadne stĺpce. Popíšte jeden vyššie a stlačte
+builder-columns-order-hint = Stĺpce sa vytvárajú v tomto poradí. Šípkami môžete jeden presunúť.
+builder-th-order = Poradie
+builder-th-name = Názov
+builder-th-type = Typ
+builder-th-indexed = Indexovaný
+builder-th-options = Možnosti
+builder-move-up = Posunúť { $name } hore
+builder-move-down = Posunúť { $name } dole
+builder-renamed-to = premenovaný na { $alias }
+builder-rename-generated = Premenovať generované stĺpce
+builder-rename-generated-hint2 = Tieto stĺpce pochádzajú z definičných riadkov vyššie. Dajte niektorému vlastný názov, alebo ho nechajte prázdny, aby zostal zobrazený názov.
+builder-rename-aria = Premenovať { $name }
+builder-apply-names = Použiť názvy
+builder-row-display = Stĺpce identifikujúce riadok
+builder-row-display-hint = Čo používateľom identifikuje riadok, v zvolenom poradí. Výberom id sa zoznam vyprázdni.
+builder-preview = Náhľad definície tabuľky
+builder-preview-th-column = Stĺpec
+builder-preview-th-type = Typ
+builder-preview-th-options = Možnosti
+builder-preview-th-source = Zdroj
+builder-preview-primary-key = primárny kľúč
+builder-preview-default-false = predvolene false
+builder-preview-not-null-1 = not null, predvolene 1
+builder-preview-current-time = aktuálny čas
+builder-preview-account-option = not null, → účty, zapisované ako { $field }
+builder-option-indexed = indexovaný
+builder-create-table = Vytvoriť tabuľku
+builder-status-generated-keep = Generované stĺpce si ponechávajú svoje názvy.
+builder-status-generated-one = Premenovaný 1 generovaný stĺpec.
+builder-status-generated-many = { $count ->
+ [one] Premenovaný { $count } generovaný stĺpec
+ [few] Premenované { $count } generované stĺpce
+ *[other] Premenovaných { $count } generovaných stĺpcov
+}.
+
+draft-err-profile-name = Zadajte názov nového profilu.
+draft-err-table-conflict-global = Tabuľka s názvom `{ $name }` už existuje. Názov zdieľanej tabuľky musí byť voľný v každom profile.
+draft-err-table-conflict = Tabuľka s názvom `{ $name }` už existuje v profile `{ $profile }`, alebo je zdieľaná všetkými profilmi.
+draft-err-no-columns = Pred uložením pridajte aspoň jeden stĺpec.
+draft-err-alias-taken = Alias `{ $alias }` pre generovaný stĺpec `{ $source }` už používa iný stĺpec.
+draft-err-accounting-currency = Účtovná mena musí byť trojpísmenový kód ISO-4217
+
+schema-status-column-added = Stĺpec `{ $name }` pridaný.
+schema-status-column-removed = Stĺpec `{ $name }` odstránený.
+schema-status-column-moved-up = Stĺpec `{ $name }` posunutý hore.
+schema-status-column-moved-down = Stĺpec `{ $name }` posunutý dole.
+
+schema-err-both-name-type = Vyžaduje sa názov stĺpca aj typ stĺpca.
+schema-err-creation-only = Stĺpec typu { $type } možno vybrať len pri vytváraní tabuľky.
+schema-err-column-exists = Stĺpec s názvom `{ $name }` už existuje.
+schema-err-generated-exists = `{ $type }` generuje stĺpec s názvom `{ $generated }` a tabuľka ho už má.
+schema-err-ql-types = Stĺpce kvantitatívnej evidencie musia používať { $types }
+schema-err-column-ql-types = Stĺpec `{ $name }`: stĺpce kvantitatívnej evidencie musia používať { $types }
+schema-err-column-prefix = Stĺpec `{ $name }`: { $error }
+schema-err-decimal-not-valid = `decimal` nie je platný typ stĺpca.
+schema-err-link-not-valid = `link` nie je platný typ stĺpca.
+schema-err-decimal-args-needed = `{ $type }` vyžaduje presnosť aj desatinné miesta.
+schema-err-link-target-needed = `link` vyžaduje odkazovanú tabuľku.
+schema-err-generated-type = `{ $type }` je typ stĺpca, ktorý generuje backend.
+schema-err-invalid-type = `{ $type }` nie je platný typ stĺpca.
+schema-err-account-link = Vzťah účtu je zabudovaný do ACCOUNTING a nemožno ho deklarovať ako odkaz.
+schema-err-link-self = Odkaz `{ $column }` nemôže ukazovať na vytváranú tabuľku.
+schema-err-column-gone = Tento stĺpec už neexistuje.
+schema-err-link-indexed = Odkaz `{ $name }` je indexovaný automaticky a nemožno ho indexovať znova.
+schema-err-definition-indexed = `{ $name }` je definičný riadok, nie stĺpec, takže ho nemožno indexovať.
+schema-err-currency-only = Stĺpec `{ $name }`: mena patrí len typu stĺpca, ktorý ju vyžaduje.
+schema-err-name-twice = `{ $name }` pomenúva viac ako jeden stĺpec tejto tabuľky.
+schema-err-currency-code = Mena musí byť trojpísmenový kód ISO-4217
+schema-err-profile-only-type = Zdieľaná tabuľka nemôže používať { $type }: účtuje do denníka jedného profilu a zdieľaná tabuľka patrí každému profilu.
+schema-err-shared-ql = Stĺpec `{ $name }`: zdieľaná tabuľka nemôže viesť kvantitatívnu evidenciu, ktorá patrí jednému profilu.
+schema-err-profile-reserved = Tento názov profilu je vyhradený PostgreSQL.
+schema-err-table-name-too-long = Názov tabuľky nemôže byť dlhší ako 63 znakov, pretože indexy jej stĺpcov sú pomenované po nej.
+schema-err-table-name-reserved = `{ $name }` je názov tabuľky, ktorú dostane každý profil, takže ho nemožno použiť.
+
+error-identifier-empty = { $label } nemôže byť prázdne.
+error-identifier-whitespace = { $label } nesmie začínať ani končiť medzerou.
+error-identifier-underscore = { $label } nesmie začínať podčiarkovníkom.
+error-identifier-number = { $label } nesmie začínať číslom.
+error-identifier-too-long = { $label } nesmie byť dlhšie ako 63 znakov.
+error-identifier-charset = { $label } môže obsahovať len malé písmená, číslice a podčiarkovník.
+error-identifier-reserved = { $label } používa vyhradený názov.
+error-decimal-required = { $label } je povinné pre desatinný stĺpec.
+error-decimal-sign = { $label } nesmie obsahovať znamienko.
+error-decimal-whole = { $label } musí byť celé číslo.
+error-decimal-leading-zeros = { $label } nesmie mať vedúce nuly.
+error-precision-min = Presnosť musí byť aspoň 1.
+error-scale-gt-precision = Desatinné miesta nemôžu byť viac ako presnosť.
+
+# --- Pridať validáciu ----------------------------------------------------------
+validation-eyebrow = Validácia
+validation-library-eyebrow = Globálna knižnica validácií
+validation-field-title = Pridať validáciu poľa
+validation-field-lead = Pripojte validáciu k jednému stĺpcu jednej tabuľky.
+validation-rule-title = Pridať opakovane použiteľné validačné pravidlo
+validation-rule-lead = Pomenované pravidlo, z ktorého môžu validačné sady skladať, nezávislé od akejkoľvek tabuľky.
+validation-set-title = Pridať validačnú sadu
+validation-set-lead = Zostavte usporiadanú sadu z existujúcich názvov opakovane použiteľných pravidiel.
+validation-profile = Profil
+validation-table = Tabuľka
+validation-column = Stĺpec
+validation-apply-set = Namiesto toho použiť pomenovanú validačnú sadu
+validation-apply-set-placeholder = Nechajte prázdne, aby sa uložili pravidlá nižšie
+validation-error-title = Validáciu sa nepodarilo uložiť
+validation-success-title = Validácia uložená
+validation-save = Uložiť validáciu
+validation-rule-name = Názov pravidla
+validation-description = Popis
+validation-save-rule = Uložiť pravidlo
+validation-set-name = Názov sady
+validation-reusable-rules = Opakovane použiteľné pravidlá
+validation-reusable-rules-hint = Oddeľte čiarkami a aplikujú sa v tomto poradí.
+validation-save-set = Uložiť sadu
+validation-position-rules = Pravidlá pozícií
+validation-position-rules-hint = Jeden na riadok: pozícia | obmedzenie. Pozície: 0, 0-3, 4+ alebo 1,3,5. Obmedzenia: alphabetic, numeric, alphanumeric, exact=x, one-of=a,b, regex=…
+validation-pattern-description = Popis vzoru
+validation-min-length = Minimálna dĺžka
+validation-max-length = Maximálna dĺžka
+validation-warn-at = Hranica upozornenia
+validation-count-mode = Režim počítania
+validation-count-chars = Znaky
+validation-count-bytes = Bajty
+validation-count-display-width = Zobrazovaná šírka
+validation-allowed-values = Povolené hodnoty
+validation-display-mask = Zobrazovacia maska
+validation-mask-input-char = Vstupný znak masky
+validation-mask-template-char = Šablónový znak masky
+validation-required = Povinné
+validation-allow-empty = Povoliť prázdne
+validation-case-insensitive = Nerozlišovať veľkosť písmen
+validation-external = Externá validácia
+validation-lock = Zamknúť konfiguráciu
+validation-err-at-least-one-rule = Zadajte aspoň jeden názov opakovane použiteľného pravidla.
+validation-err-enter = Zadajte { $label }.
+validation-err-non-negative = { $label } musí byť nezáporné celé číslo.
+validation-err-min-max = Minimum nemôže byť väčšie ako maximum.
+validation-err-pattern-line = Riadok vzoru { $line } musí používať `pozícia | obmedzenie`.
+validation-err-range-start = Začiatok rozsahu vzoru nemôže presiahnuť jeho koniec.
+validation-err-bad-position = Neplatná pozícia vzoru '{ $value }'.
+validation-err-bad-constraint = Neznáme obmedzenie znakov '{ $value }'.
+validation-err-permission = Vyžaduje sa oprávnenie na správu validácií.
diff --git a/web/src/pages/add_logic/logic.rs b/web/src/pages/add_logic/logic.rs
index 5f8864da..5f0007b3 100644
--- a/web/src/pages/add_logic/logic.rs
+++ b/web/src/pages/add_logic/logic.rs
@@ -5,7 +5,11 @@ use axum::{
response::{Html, IntoResponse, Redirect, Response},
};
-use crate::{AppState, services::authenticated_request};
+use crate::{
+ AppState,
+ {i18n::Locale, tr},
+ services::authenticated_request,
+};
use super::{
loader::{LoadError, load_page},
@@ -17,7 +21,7 @@ pub(crate) async fn new_logic_page(
State(state): State