From 6c056881969c0723bdc2421f4b6c66aa3e0dcd94 Mon Sep 17 00:00:00 2001 From: VAIO73 <50487331+Vaso73@users.noreply.github.com> Date: Tue, 20 Oct 2026 19:03:51 +0000 Subject: [PATCH] i18n: complete OCI runtime and maintenance Slovak diagnostics --- .../tests/test_oci_complete_errors_sk.py | 268 ++++++++ lang/sk.json | 623 ++++++++++-------- oci/remote/configure_jellyfin_encoding.py | 4 +- oci/remote/oci_dhcp_lease.py | 6 +- oci/remote/oci_image_cache.py | 7 +- oci/remote/oci_immich_recognition.py | 2 +- oci/remote/oci_installation_state.py | 2 +- oci/remote/oci_restore_recovery.py | 4 +- oci/remote/oci_rocm_check.py | 4 +- oci/remote/oci_update_check.py | 3 +- oci/remote/oci_watchdog.py | 9 +- oci/remote/rclone_mount_publish.py | 39 +- oci/remote/verify_oci_archive.py | 2 +- oci/src/proxmenux_oci/cli.py | 65 +- oci/src/proxmenux_oci/i18n.py | 45 ++ 15 files changed, 746 insertions(+), 337 deletions(-) create mode 100644 .github/scripts/tests/test_oci_complete_errors_sk.py diff --git a/.github/scripts/tests/test_oci_complete_errors_sk.py b/.github/scripts/tests/test_oci_complete_errors_sk.py new file mode 100644 index 00000000..8b54d976 --- /dev/null +++ b/.github/scripts/tests/test_oci_complete_errors_sk.py @@ -0,0 +1,268 @@ +"""Human diagnostics translate; IDs, JSON, error types and forbidden effects do not.""" +from contextlib import ExitStack, nullcontext, redirect_stderr, redirect_stdout +import copy +import importlib.util +import io +import json +from pathlib import Path +import sys +import tempfile +import unittest +from unittest.mock import MagicMock, Mock, patch +import urllib.error + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +import test_oci_complete_ui_sk as fixtures +from proxmenux_oci import casaos, cli, converter, i18n +from proxmenux_oci.catalog import Catalog +from proxmenux_oci.github_source import GitHubSource, SourceError +import oci_image_cache +import oci_dhcp_lease +import oci_rocm_check +import oci_ui +import oci_watchdog +import configure_jellyfin_encoding + + +class TechnicalMessages(unittest.TestCase): + setUp = fixtures.CompleteUI.setUp + patch = fixtures.CompleteUI.patch + + def remote_language(self): + self.patch(oci_ui, '_language', 'sk') + self.patch(oci_ui, '_cache', self.sk) + + def test_real_readme_errors_translate_only_at_the_display_boundary(self): + for text, expected in [('# App', 'README neobsahuje'), + ('## docker-compose\nplain text', 'Sekcia docker-compose neobsahuje blok kódu'), + ('## docker-compose\n```yaml\nservices: {}', 'Blok docker-compose nie je ukončený'), + ('## docker-compose\n```yaml\nnot-compose\n```', 'Nájdený blok nevyzerá')]: + with self.subTest(text=text), self.assertRaises(converter.ConversionError) as caught: + converter.extract_compose(text) + raw = str(caught.exception) + self.assertIn(expected, i18n.diagnostic(caught.exception)) + self.assertEqual(str(caught.exception), raw) + + def test_schema_error_keeps_field_details_and_original_exception(self): + with self.assertRaises(converter.ConversionError) as caught: + self.catalog.validate({}) + raw = str(caught.exception) + self.assertTrue(raw.startswith('La plantilla generada no cumple el esquema:')) + self.assertEqual(i18n.diagnostic(caught.exception), 'Vygenerovaná šablóna nezodpovedá schéme:' + raw.split(':', 1)[1]) + + def test_real_casaos_error_preserves_the_protocol_and_localizes_the_message(self): + with self.assertRaises(converter.ConversionError) as caught: + casaos.parse_casaos_compose('[]') + self.assertEqual(str(caught.exception), 'The CasaOS document is not a Compose mapping') + self.assertEqual(i18n.diagnostic(caught.exception), 'Dokument Compose musí byť mapa kľúčov a hodnôt.') + + def test_github_rate_limit_keeps_url_and_token_variable_without_a_network_call(self): + url = 'https://fiction.invalid/catalogue?ref=example' + error = urllib.error.HTTPError(url, 403, 'Forbidden', {'X-RateLimit-Remaining': '0'}, None) + request = self.patch(__import__('urllib.request', fromlist=['urlopen']), 'urlopen', side_effect=error) + with self.assertRaises(SourceError) as caught: + GitHubSource(token='fictional-token')._request(url) + request.assert_called_once() + text = i18n.diagnostic(caught.exception) + self.assertIn('GitHub vrátil HTTP 403', text) + self.assertIn(url, text) + self.assertIn('GITHUB_TOKEN', text) + self.assertNotIn('fictional-token', text) + + def test_github_timeout_retains_external_reason_and_three_attempts(self): + request = self.patch(__import__('urllib.request', fromlist=['urlopen']), 'urlopen', + side_effect=urllib.error.URLError('fictional external transport reason')) + self.patch(__import__('time'), 'sleep') + with self.assertRaises(SourceError) as caught: + GitHubSource()._request('https://fiction.invalid/template') + self.assertEqual(request.call_count, 3) + self.assertIn('ani po 3 pokusoch: fictional external transport reason', i18n.diagnostic(caught.exception)) + + def test_unknown_diagnostics_and_machine_codes_pass_through_unchanged(self): + for value in ['service:db:healthcheck-format', 'external tool: failure at 0x1234', + 'Check failed', 'Invalid cache', 'Ambiguous application', 'private-operation-id']: + self.assertEqual(i18n.diagnostic(value), value) + + def test_cli_help_preserves_flags_actions_defaults_and_numeric_types(self): + argv = ['manage', '104', '--action', 'recreate', '--unattended', '--min-image-age-days', '7'] + slovak = cli.build_parser() + self.assertIn('Vypísať aplikácie', slovak.format_help()) + with patch.object(i18n, '_language', 'en'): + english = cli.build_parser() + self.assertIn('List applications', english.format_help()) + self.assertEqual(vars(english.parse_args(argv)), vars(slovak.parse_args(argv))) + + def test_cli_summary_preserves_image_reference_ports_mount_paths_and_status_code(self): + template = self.catalog.compose('tandoor') + saved = copy.deepcopy(template) + text = cli._template_summary_text(template) + self.assertIn('Obraz: ' + template['container_contract']['image']['reference'], text) + self.assertIn('Dátové zväzky:', text) + self.assertIn('Stav: ' + template['status'], text) + for mount in template['container_contract']['volumes']: + self.assertIn(mount['container_path'], text) + self.assertEqual(template, saved) + + def test_install_cli_no_stays_successful_cancellation_without_dispatch(self): + template = self.catalog.compose('jellyfin') + saved = copy.deepcopy(template) + self.patch(cli.Catalog, 'compose', return_value=template) + self.patch(cli, 'build_deployment', return_value={'fiction': True}) + self.patch(cli, '_deployment_summary_text', return_value='Fiktívny plán') + answer = self.patch(__import__('builtins'), 'input', return_value='n') + output = io.StringIO() + with redirect_stdout(output): self.assertEqual(cli.main(['install', 'jellyfin']), 0) + self.assertIn('Nainštalovať? [y/N]:', answer.call_args.args[0]) + self.assertEqual(output.getvalue().count('Inštalácia bola zrušená.'), 1) + self.assertEqual(template, saved) + + def test_blocked_install_remains_error_one_and_never_asks_to_install(self): + template = self.catalog.compose('jellyfin') + template['compatibility'].update(automatic_install_candidate=False, untranslated_blockers=['fiction-blocker-code']) + self.patch(cli.Catalog, 'compose', return_value=template) + answer = self.patch(__import__('builtins'), 'input', side_effect=AssertionError('blocked installation asked a question')) + output = io.StringIO() + with redirect_stdout(io.StringIO()), redirect_stderr(output): + self.assertEqual(cli.main(['install', 'jellyfin']), 1) + self.assertIn('Inštalácia je zablokovaná: fiction-blocker-code', output.getvalue()) + answer.assert_not_called() + + def test_watchdog_manual_stop_stays_stopped_without_start_or_notice(self): + self.remote_language() + self.patch(oci_watchdog, 'watched', return_value={777: 'Fiction'}) + self.patch(oci_watchdog, 'is_running', return_value=False) + self.patch(oci_watchdog, 'is_busy', return_value=False) + self.patch(oci_watchdog, 'read_tasks', return_value=[('vzshutdown', '777', 75)]) + start = self.patch(oci_watchdog, 'start', side_effect=AssertionError('manual stop was undone')) + notice = self.patch(oci_watchdog.oci_operation_notice, 'notify') + state = oci_watchdog.new_state(); state['seen'] = 50 + output = io.StringIO() + with redirect_stdout(output): oci_watchdog.look({777: state}, 100) + self.assertTrue(state['settled']) + self.assertEqual(output.getvalue(), '') + start.assert_not_called(); notice.assert_not_called() + + def test_watchdog_localization_does_not_change_retry_state_or_notification_payload(self): + self.patch(oci_watchdog, 'watched', return_value={777: 'Fiction'}) + self.patch(oci_watchdog, 'is_running', return_value=False) + self.patch(oci_watchdog, 'is_busy', return_value=False) + self.patch(oci_watchdog, 'read_tasks', return_value=[]) + start = self.patch(oci_watchdog, 'start', return_value=True) + notice = self.patch(oci_watchdog.oci_operation_notice, 'notify') + outcomes = [] + for locale in ('en', 'sk'): + with patch.object(oci_ui, '_language', locale), patch.object(oci_ui, '_cache', self.sk): + state = oci_watchdog.new_state(); state['seen'] = 50 + text = io.StringIO() + with redirect_stdout(text): oci_watchdog.look({777: state}, 100) + outcomes.append((copy.deepcopy(state), notice.call_args, start.call_args)) + self.assertIn('CT 777 (Fiction)', text.getvalue()) + if locale == 'sk': self.assertIn('spúšťa sa znova (pokus 1)', text.getvalue()) + self.assertEqual(outcomes[0], outcomes[1]) + + def test_image_cache_json_contract_and_invalid_command_have_no_mutations(self): + self.remote_language() + self.patch(oci_image_cache.instances, 'locked', side_effect=lambda *a: nullcontext()) + self.patch(oci_image_cache, 'archives_of', return_value={}) + output = io.StringIO() + with redirect_stdout(output): self.assertEqual(oci_image_cache.main(['list', '777']), 0) + self.assertEqual(json.loads(output.getvalue()), {'archives': [], 'freed': 0}) + error = io.StringIO() + with redirect_stderr(error): self.assertEqual(oci_image_cache.main(['invalid']), 2) + self.assertIn('Použitie: oci_image_cache.py [prune | list VMID... | remove VMID...]', error.getvalue()) + + def test_rocm_timeout_localizes_but_external_gpu_errors_are_preserved(self): + self.remote_language() + self.patch(sys, 'argv', ['oci_rocm_check.py', '777']) + for raw, expected in [('the GPU did not answer in time', 'GPU neodpovedalo včas'), + ('external provider exception 0x123', 'external provider exception 0x123')]: + with self.subTest(raw=raw), patch.object(oci_rocm_check, 'check', side_effect=RuntimeError(raw)): + output = io.StringIO() + with redirect_stderr(output): self.assertEqual(oci_rocm_check.main(), 1) + self.assertEqual(output.getvalue().strip(), expected) + + def test_jellyfin_completion_distinguishes_changed_from_already_applied(self): + self.remote_language() + self.patch(sys, 'argv', ['configure_jellyfin_encoding.py', '/fiction-root', '{}']) + for changed, expected in [(True, 'Nastavenia Jellyfin boli aktualizované:'), + (False, 'Nastavenia Jellyfin už boli použité:')]: + with self.subTest(changed=changed), patch.object(configure_jellyfin_encoding, 'update_encoding', + return_value=(Path('/fiction-root/config/encoding.xml'), changed)): + output = io.StringIO() + with redirect_stdout(output): configure_jellyfin_encoding.main() + self.assertEqual(output.getvalue().strip(), expected + ' /config/encoding.xml') + + def test_dhcp_completion_keeps_interface_and_ip_version_without_repairing_a_guest(self): + self.remote_language() + self.patch(oci_dhcp_lease, 'LOCKS', MagicMock()) + self.patch(oci_dhcp_lease.fcntl, 'flock') + repair = self.patch(oci_dhcp_lease, 'repair', return_value=[('eth0', 4)]) + output = io.StringIO() + with redirect_stdout(output): oci_dhcp_lease.check(777, 0) + repair.assert_called_once_with(777, 0) + self.assertEqual(output.getvalue().strip(), 'CT 777: klient DHCP rozhrania eth0 (IPv4) bol znova spustený') + + +class StandalonePublisher(unittest.TestCase): + def test_mount_error_keeps_host_language_after_entering_the_container_root(self): + spec = importlib.util.spec_from_file_location('fiction_namespace_publisher', + fixtures.ROOT / 'oci/remote/rclone_mount_publish.py') + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + inside = False + def chroot(path): + nonlocal inside + inside = True + def read(path, **kwargs): + if inside: + raise FileNotFoundError('Host language catalog is outside the container root') + return ('{"language":"sk"}' if path.name == 'config.json' else + '{"clone source mount tree":"naklonovať strom zdrojového pripojenia"}') + libc = Mock(); libc.setns.return_value = 0; libc.syscall.return_value = -1 + with ExitStack() as guards: + for target, name, options in [ + (sys, 'argv', {'new': ['publisher.py', '777', '/fiction-source', '/fiction-target', 'ro']}), + (module.platform, 'machine', {'return_value': 'x86_64'}), + (Path, 'read_text', {'autospec': True, 'side_effect': read}), + (module.ctypes, 'CDLL', {'return_value': libc}), + (module.ctypes, 'get_errno', {'return_value': 13}), + (module.os, 'open', {'return_value': 42}), + (module.os, 'close', {}), (module.os, 'fchdir', {}), + (module.os, 'chroot', {'side_effect': chroot}), (module.os, 'chdir', {})]: + guards.enter_context(patch.object(target, name, **options)) + with self.assertRaises(OSError) as caught: + module.main() + self.assertTrue(inside) + self.assertEqual(caught.exception.errno, 13) + self.assertIn('naklonovať strom zdrojového pripojenia', str(caught.exception)) + self.assertEqual(libc.syscall.call_args.args[0], module.SYSCALLS['x86_64'][0]) + + def test_copied_helper_has_localized_errors_without_engine_import_or_mount_syscalls(self): + with tempfile.TemporaryDirectory(prefix='oci-publisher-language-') as directory: + root = Path(directory); (root / 'lang').mkdir() + (root / 'config.json').write_text('{"language":"sk"}') + (root / 'lang/sk.json').write_text(json.dumps({'Usage:': 'Použitie:', 'Unsupported host architecture:': 'Nepodporovaná architektúra hostiteľa:'})) + source = fixtures.ROOT / 'oci/remote/rclone_mount_publish.py' + copied = root / 'publisher.py'; copied.write_bytes(source.read_bytes()) + spec = importlib.util.spec_from_file_location('fiction_standalone_publisher', copied) + module = importlib.util.module_from_spec(spec) + with patch.dict(sys.modules, {'oci_ui': None}), patch.dict(__import__('os').environ, {'PMX_BASE_DIR': str(root)}): + spec.loader.exec_module(module) + with patch.object(module.ctypes, 'CDLL', side_effect=AssertionError('mount syscall path entered')) as syscall: + with patch.object(sys, 'argv', ['publisher.py']), redirect_stderr(io.StringIO()) as output: + self.assertEqual(module.main(), 2) + self.assertIn('Použitie: publisher.py PID SOURCE TARGET rw|ro', output.getvalue()) + with patch.object(sys, 'argv', ['publisher.py', '1', '/fiction-source', '/fiction-target', 'ro']), \ + patch.object(module.platform, 'machine', return_value='fiction-architecture'), redirect_stderr(io.StringIO()) as output: + self.assertEqual(module.main(), 2) + self.assertIn('Nepodporovaná architektúra hostiteľa: fiction-architecture', output.getvalue()) + syscall.assert_not_called() + (root / 'config.json').write_text('invalid json') + module._messages.cache_clear() + self.assertEqual(module.translate('Usage:'), 'Usage:') + (root / 'config.json').write_text('{"language":"en"}') + module._messages.cache_clear() + self.assertEqual(module.translate('Usage:'), 'Usage:') + + +if __name__ == '__main__': unittest.main() diff --git a/lang/sk.json b/lang/sk.json index edd0df4f..55ceb340 100644 --- a/lang/sk.json +++ b/lang/sk.json @@ -1,4 +1,67 @@ { + "'auto'/'local', or root@IP for development": "'auto'/'local' alebo root@IP pri vývoji", + "Add the host firewall rule of this container; one option for each confirmed rule": "Pridať pravidlo firewallu hostiteľa pre tento kontajner; jedna voľba pre každé potvrdené pravidlo", + "Another OCI operation is using the instance registry.": "Register inštancií používa iná operácia OCI.", + "Blockers": "Prekážky", + "Bulk generation requires GITHUB_TOKEN to obtain an immutable revision per application": "Hromadné generovanie vyžaduje GITHUB_TOKEN na získanie nemennej revízie každej aplikácie", + "CT {vmid} ({name}) could not be kept running; it is left stopped": "CT {vmid} ({name}) sa nepodarilo udržať v chode; zostáva zastavený", + "CT {vmid} ({name}) stopped on its own; starting it again (attempt {attempt})": "CT {vmid} ({name}) sa sám zastavil; spúšťa sa znova (pokus {attempt})", + "CT {vmid}: DHCP client of {name} (IPv{version}) started again": "CT {vmid}: klient DHCP rozhrania {name} (IPv{version}) bol znova spustený", + "Configure and install an application": "Nastaviť a nainštalovať aplikáciu", + "Could not reach {url} after 3 attempts: {reason}": "Adresa {url} nie je dostupná ani po 3 pokusoch: {reason}", + "Emit numeric progress for the OCI menu": "Vypisovať číselný priebeh pre ponuku OCI", + "Enable a mount on an installed Rclone OCI": "Nastaviť pripojenie v nainštalovanom OCI kontajneri Rclone", + "Generated: {generated}; failed: {failed}; family: {provider}": "Vygenerované: {generated}; neúspešné: {failed}; rodina: {provider}", + "GitHub returned HTTP 403 for {url}. Set GITHUB_TOKEN to raise the API rate limit.": "GitHub vrátil HTTP 403 pre {url}. Nastavením GITHUB_TOKEN zvýšite limit požiadaviek API.", + "GitHub returned HTTP {status} for {url}.": "GitHub vrátil HTTP {status} pre {url}.", + "GitHub returned a truncated tree for the CasaOS catalogue": "GitHub vrátil neúplný strom súborov katalógu CasaOS", + "Host directories are not reverted by the backup (confirmed beforehand)": "Adresáre hostiteľa sa zo zálohy nevracajú do pôvodného stavu (vopred potvrdené)", + "Icons resolved: {resolved}; cleared: {cleared}; unchanged: {unchanged}; with a theme variant: {themed}": "Priradené ikony: {resolved}; vymazané: {cleared}; nezmenené: {unchanged}; s variantom témy: {themed}", + "Index updated: {count} candidate applications": "Index bol aktualizovaný: {count} kandidátnych aplikácií", + "Install? [y/N]:": "Nainštalovať? [y/N]:", + "Installation blocked:": "Inštalácia je zablokovaná:", + "Installation cancelled.": "Inštalácia bola zrušená.", + "Internal installer operation; not legacy adoption": "Interná operácia inštalátora; neslúži na prevzatie existujúceho kontajnera", + "Jellyfin configuration already applied:": "Nastavenia Jellyfin už boli použité:", + "Jellyfin configuration updated:": "Nastavenia Jellyfin boli aktualizované:", + "Keep the backup taken before the update in this Proxmox storage": "Ponechať zálohu vytvorenú pred aktualizáciou v tomto úložisku Proxmox", + "List applications": "Vypísať aplikácie", + "No Compose files were found in the CasaOS catalogue": "V katalógu CasaOS sa nenašli žiadne súbory Compose", + "Only the applications that need no question: the ones the cluster keeps a record of": "Iba aplikácie bez potreby otázok: tie, ktorých záznam uchováva klaster", + "Open the page of an application in the menu": "Otvoriť stránku aplikácie v ponuke", + "ProxMenux OCI manager Apps (Technology Preview)": "ProxMenux – správca OCI aplikácií (Technology Preview)", + "Rclone remote": "Vzdialené úložisko Rclone", + "Refresh the index from the image sources": "Obnoviť index zo zdrojov obrazov", + "Regenerate the catalog templates": "Znova vygenerovať šablóny katalógu", + "Regenerate the template of one application": "Znova vygenerovať šablónu jednej aplikácie", + "Register again the OCI applications restored from a backup": "Znova zaregistrovať OCI aplikácie obnovené zo zálohy", + "Resolve catalog icons against the jsdelivr icon sets": "Priradiť ikony katalógu zo súprav ikon jsdelivr", + "Scheduled run: no questions; stops where a person has to decide": "Plánovaný beh bez otázok; zastaví sa pri potrebe rozhodnutia používateľa", + "Show the summary of a template": "Zobraziť súhrn šablóny", + "The ProxMenux application catalogue is not a list": "Katalóg aplikácií ProxMenux nemá formát zoznamu", + "The README has no recognisable docker-compose section": "README neobsahuje rozpoznateľnú sekciu docker-compose", + "The application '{app_id}' does not come from LinuxServer": "Aplikácia '{app_id}' nepochádza z LinuxServer", + "The block found does not look like a Docker Compose file": "Nájdený blok nevyzerá ako súbor Docker Compose", + "The docker-compose block is not closed": "Blok docker-compose nie je ukončený", + "The docker-compose section contains no code block": "Sekcia docker-compose neobsahuje blok kódu", + "The main Compose service cannot be identified unambiguously": "Hlavnú službu v súbore Compose nemožno jednoznačne určiť", + "Unsupported host architecture:": "Nepodporovaná architektúra hostiteľa:", + "Update, modify or recreate one installed OCI instance": "Aktualizovať, upraviť alebo znova vytvoriť jednu nainštalovanú inštanciu OCI", + "Volumes": "Dátové zväzky", + "clone source mount tree": "klonovanie zdrojového stromu pripojenia", + "enter container namespace": "vstup do menného priestoru kontajnera", + "installable": "možno nainštalovať", + "main container of the application": "hlavný kontajner aplikácie", + "make cloned mount tree read-only": "nastavenie klonovaného stromu pripojenia iba na čítanie", + "none": "žiadne", + "not generated": "nevygenerované", + "pending adaptation": "čaká na prispôsobenie", + "print the estimated unpacked size in MiB (0 when unknown)": "vypísať odhad rozbalenej veľkosti v MiB (0, ak nie je známa)", + "publish mount tree": "sprístupnenie stromu pripojenia", + "python3-jsonschema is required to generate templates": "Na generovanie šablón je potrebný python3-jsonschema", + "removed unused image archive: {path} ({size} bytes)": "odstránený nepoužívaný archív obrazu: {path} ({size} bajtov)", + "return to host namespace": "návrat do menného priestoru hostiteľa", + "the GPU did not answer in time": "GPU neodpovedalo včas", "Application data": "Údaje aplikácie", "Consume/export": "Priečinky consume a export", "Library": "Knižnica", @@ -52,12 +115,12 @@ "A backup was modified": "Záloha bola zmenená", "A command did not finish in time:": "Príkaz neskončil včas:", "A complete restore will:": "Úplná obnova vykoná:", - "A concurrent change was detected; the container is not removed": "Bola zistená súbežná zmena; obal sa neodstraňuje", - "A container mount has a source, backup or permission different from the saved record": "Montáž kontajnera má zdroj, zálohu alebo povolenie odlišné od uloženého záznamu", + "A concurrent change was detected; the container is not removed": "Bola zistená súbežná zmena; kontajner sa neodstráni", + "A container mount has a source, backup or permission different from the saved record": "Pripojenie v kontajneri má iný zdroj, nastavenie zálohovania alebo oprávnenia než uložený záznam", "A container without its record stays as an ordinary container and is not offered again.": "Kontajner bez záznamu zostane ako obyčajný kontajner a už sa neponúka.", "A coordinated operation has a saved journal. Continuing attempts to recover the previous stack where needed, or finish cleanup for a completed operation. Recovery or cleanup can fail.": "Koordinovaná operácia má uložený záznam priebehu. Pokračovanie sa podľa potreby pokúsi obnoviť predchádzajúci stav aplikácie alebo dokončiť upratovanie už dokončenej operácie. Obnova aj upratovanie môžu zlyhať.", "A coordinated operation is pending. The whole previous stack will be recovered, not only the selected member. If the operation already finished, the cleanup of its markers is completed.": "Koordinovaná operation čaká. Celý predchádzajúci stack bude obnovený, nielen vybraný člen. Ak už operation skončil, vyčistenie jeho markerov je ukončené.", - "A different host monitor include already exists; it is not overwritten:": "Iný hostiteľský monitor už existuje; nie je prepísaný:", + "A different host monitor include already exists; it is not overwritten:": "Už existuje iný pripojený konfiguračný súbor monitora hostiteľa; neprepíše sa:", "A fancy monitoring tool": "Nádherný monitorovací nástroj", "A free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemata.": "MongoDB je bezplatná multiplatformová dokumentová databáza s otvoreným zdrojovým kódom. Patrí medzi databázy NoSQL a používa dokumenty podobné JSON so schémami.", "A free reverse proxy for tunneling services (not self-hosted).": "Bezplatný reverzný proxy na tunelovanie služieb (neprevádzkuje sa na vlastnom serveri).", @@ -75,7 +138,7 @@ "A keyfile is installed at:": "Keyfile je nainštalovaný v:", "A legacy gasket-dkms package was found on this host, but no Coral M.2 / PCIe hardware is present.": "Na tomto hostiteľovi sa našiel starý balík gasket-dkms, ale nie je prítomný žiadny hardvér Coral M.2 / PCIe.", "A managed rootfs and an unprivileged container are required": "Riadené rootfs a neprivilegovaný kontajner sú required", - "A managed volume with backup enabled is required": "Riadený objem so zapnutou zálohou je required", + "A managed volume with backup enabled is required": "Vyžaduje sa spravovaný dátový zväzok so zapnutým zálohovaním", "A matching managed host firewall rule may also be removed.": "Môže sa odstrániť aj zodpovedajúce spravované pravidlo firewallu hostiteľa.", "A member VMID is in use by another guest or is on another node": "VMID člena aplikácie používa iný hosť alebo je kontajner na inom uzle", "A member configuration changed after the stack was checked": "Nastavenie kontajnera sa po kontrole aplikácie zmenilo", @@ -94,7 +157,7 @@ "A newer kernel is installed. Reboot before the next backup window to use it.": "Je nainštalované novšie jadro. Aby ste ho mohli použiť, reštartujte ho pred ďalším oknom zálohy.", "A newer version is available:": "Je dostupná novšia verzia:", "A pending operation exists for": "Nedokončená operácia existuje pre", - "A pending stack assembly already exists; it is not overwritten": "Nevyriešená zostava stohov už existuje; nie je prepísaná", + "A pending stack assembly already exists; it is not overwritten": "Už existuje nedokončené zostavenie aplikácie; neprepíše sa", "A previous NVIDIA refresh is pending review": "Predchádzajúce obnovovanie NVIDIA čaká na preskúmanie", "A previous VFIO passthrough configuration was detected for the following NVIDIA GPU(s):": "Pre nasledujúce GPU NVIDIA bola zistená predchádzajúca konfigurácia priechodu VFIO:", "A privacy-first, open-source platform for knowledge management and collaboration.": "Platforma na správu znalostí a spoluprácu s otvoreným zdrojovým kódom a dôrazom na súkromie.", @@ -105,8 +168,8 @@ "A reboot is required to finish the restore.": "Na dokončenie obnovy je potrebný reštart.", "A reboot will be required to complete the restore.": "Na dokončenie obnovy bude potrebný reštart.", "A relaxed AppArmor or seccomp profile is requested; this may be optional.": "Požaduje sa uvoľnený profil AppArmor alebo seccomp; môže byť voliteľný.", - "A reproducible native startup is missing": "Chýba reprodukovateľný prirodzený štart", - "A rootfs adaptation is stored in persistent storage": "Adaptácia korienkov sa skladuje v trvalom sklade", + "A reproducible native startup is missing": "Chýba natívny spôsob spustenia, ktorý možno zopakovať", + "A rootfs adaptation is stored in persistent storage": "Úprava koreňového súborového systému je uložená v trvalom úložisku", "A running container is restarted to apply the changes; a stopped one is left stopped. The data of the application, its database and the configuration of the other containers are not changed. A container volume removed here is deleted with the data in it.": "Spustený kontajner sa reštartuje, aby sa zmeny použili; zastavený zostane zastavený. Údaje aplikácie sa zachovajú. Databáza ani ostatné kontajnery sa nemenia. Odstránením trvalého úložiska kontajnera sa vymažú aj údaje, ktoré obsahuje.", "A scheduled run cannot answer:": "Plánované spustenie nemôže odpovedať:", "A self-hosted Bitwarden server": "Server Bitwarden na vlastnom serveri", @@ -118,14 +181,14 @@ "A simple, open-source file sharing host.": "Jednoduchá služba na zdieľanie súborov s otvoreným zdrojovým kódom.", "A simple, private file server.": "Jednoduchý súkromný súborový server.", "A single matching image platform cannot be resolved": "Jedinú zodpovedajúcu obrazovú platformu nie je možné vyriešiť", - "A single-platform OCI archive is required": "Jednoplatformový OCI archív je required", + "A single-platform OCI archive is required": "Vyžaduje sa archív OCI pre jedinú platformu", "A stack backup is missing; a partial restore is not allowed": "Chýba záloha jedného z kontajnerov aplikácie; čiastočná obnova nie je povolená", - "A stack member has a different identity": "Člen stohu má inú identitu", + "A stack member has a different identity": "Kontajner zostavy má inú identitu", "A system reboot is recommended to ensure all changes take effect.": "Odporúča sa reštart systému, aby sa všetky zmeny bezpečne prejavili.", "A third party companion app available to Plex server owners to allow their users to request, review and discover content.": "Aplikácia tretej strany pre majiteľov serverov Plex, ktorá umožňuje ich používateľom požadovať, skúmať a objavovať obsah.", "A third-party client for self-hosted server and self-hosted server, remote access management interface, remote access to installed applications.": "Klient tretej strany pre vlastný server s rozhraním na správu vzdialeného prístupu a prístup k nainštalovaným aplikáciám.", - "A tmpfs mount is not part of the journal; recovery blocked": "A tmpfs mount nie je súčasťou časopisu; zotavenie blokované", - "A tmpfs mount overlaps another mount": "Pripojenie tmpfs sa prekrýva s inou montážou", + "A tmpfs mount is not part of the journal; recovery blocked": "Pripojenie tmpfs nie je súčasťou záznamu operácie; obnova je zablokovaná", + "A tmpfs mount overlaps another mount": "Pripojenie tmpfs sa prekrýva s iným pripojením", "A tunneling daemon by Cloudflare that safely exposes your web servers into the internet.": "Tunelový démon Cloudflare, ktorý bezpečne vystavuje vaše webové servery na internet.", "A versatile file conversion tool that supports multiple formats.": "Univerzálny nástroj na konverziu súborov, ktorý podporuje viacero formátov.", "A web GUI client of Project V which supports VMess, VLESS, SS, SSR, Trojan, Tuic and Juicity protocols": "Webový GUI klient projektu V, ktorý podporuje protokoly VMess, VLESS, SS, SSR, Trojan, Tuic a Juicity", @@ -200,7 +263,7 @@ "Access could not be granted completely; the application may be unable to write to:": "Prístup nebolo možné úplne udeliť; aplikácia možno nebude môcť zapisovať do:", "Access could not be granted; the application cannot write to:": "Prístup nebolo možné udeliť; aplikácia nemôže písať na:", "Access denied by {registry}. Check the image name and sign in from Registry accounts.": "Register {registry} odmietol prístup. Skontrolujte názov obrazu a prihláste sa cez Účty registrov.", - "Access granted to the application on:": "Prístup udelený aplikácii dňa:", + "Access granted to the application on:": "Aplikácii bol udelený prístup k:", "Access password of the web interface (optional)": "Heslo na prístup do webového rozhrania (voliteľné)", "Access profile:": "Profil prístupu:", "Access token of the Jupyter Lab web interface": "Prístupový token webového rozhrania Jupyter Lab", @@ -382,8 +445,8 @@ "Also install the VirtIO network driver during setup to enable network access.": "Počas inštalácie nainštalujte aj sieťový ovládač VirtIO, aby fungoval prístup k sieti.", "Although VFIO can bind to this device, full passthrough to a VM is": "Aj keď sa VFIO vie na toto zariadenie naviazať, úplný passthrough do VM je", "Altus is an Electron-based WhatsApp client with themes and multiple account support.": "Altus je klient WhatsApp založený na Electrone s podporou tém a viacerých účtov.", - "Ambiguous mount points in the container": "Ambiciózne body upevnenia v kontajneri", - "Ambiguous or invalid environment variable": "Ambiciózna alebo neplatná premenná prostredia", + "Ambiguous mount points in the container": "Nejednoznačné body pripojenia v kontajneri", + "Ambiguous or invalid environment variable": "Nejednoznačná alebo neplatná premenná prostredia", "Amount of RAM in MiB (default: 4096)": "Množstvo RAM v MiB (predvolené: 4096)", "An AI model used to generate images conditioned on text descriptions.": "Model AI používaný na generovanie obrázkov podmienených textovými popismi.", "An AMD dedicated GPU has been detected without FLR support": "Bola zistená dedikovaná AMD GPU bez podpory FLR", @@ -393,11 +456,11 @@ "An Intel dedicated GPU has been detected without FLR support": "Bola zistená dedikovaná Intel GPU bez podpory FLR", "An accelerated video generation framework that speeds up end-to-end diffusion while preserving video quality": "Rámec na zrýchlené generovanie videa, ktorý urýchľuje celý difúzny proces pri zachovaní kvality videa", "An application changed since the update check. Check for updates again.": "Od poslednej kontroly sa aplikácia zmenila. Znova vyhľadajte aktualizácie.", - "An executable required by the adapter is missing in the new image": "V novom obrázku chýba spustiteľný requi.", + "An executable required by the adapter is missing in the new image": "V novom obraze chýba spustiteľný súbor vyžadovaný adaptérom", "An fstab entry already exists for:": "Záznam vo fstab už existuje pre:", "An image probe container was started externally": "Externe bola spustená obrazová sonda", - "An include is not part of the journal; recovery blocked": "Zahrnutie nie je súčasťou časopisu; obnova zablokovaná", - "An include was modified outside the journal; recovery blocked": "Zahrnutie bolo upravené mimo časopisu; regenerácia zablokovaná", + "An include is not part of the journal; recovery blocked": "Pripojený konfiguračný súbor nie je súčasťou záznamu operácie; obnova je zablokovaná", + "An include was modified outside the journal; recovery blocked": "Pripojený konfiguračný súbor bol zmenený mimo záznamu operácie; obnova je zablokovaná", "An open source generative AI development platform for building AI Agents and LLM workflows": "Vývojová platforma generatívnej AI s otvoreným zdrojovým kódom na tvorbu agentov AI a pracovných postupov s LLM", "An operation of this installation has not finished; recover it from the management menu before removing it": "Operácia tejto inštalácie sa ešte nedokončila; pred odstránením ju obnovte v ponuke správy OCI", "An update does not accept configuration changes": "Aktualizácia neprijíma zmeny konfigurácie", @@ -428,7 +491,7 @@ "Application responding:": "Aplikácia odpovedá:", "Application responding; checking its stability...": "Aplikácia reaguje; kontrola jej stability...", "Application suite: one independent LXC per selected application": "Zostava aplikácií: samostatný kontajner LXC pre každú vybranú aplikáciu", - "Application:": "Použitie:", + "Application:": "Aplikácia:", "Applications you can choose:": "Aplikácie si môžete vybrať:", "Apply": "Použiť", "Apply AMD CPU fixes": "Použiť opravy pre AMD procesory", @@ -538,7 +601,7 @@ "Automated post-installation script": "Automatický skript po inštalácii", "Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.": "Automatický správca knižnice televíznych seriálov. Sleduje nové epizódy obľúbených seriálov a spracuje ich, keď sú dostupné.", "Automatic detection": "Automatická detekcia", - "Automatic private network allocation requires a /24 subnet": "Automatické pridelenie súkromných sietí requires a /24 subnet", + "Automatic private network allocation requires a /24 subnet": "Automatické pridelenie súkromnej siete vyžaduje podsieť /24", "Automatic video library manager for TV Shows": "Automatický správca knižnice televíznych seriálov", "Automatic/Unattended": "Automaticky/bez zásahu", "Automation & Scheduling": "Automatizácia a plánovanie", @@ -724,8 +787,8 @@ "CT": "CT", "CT started successfully.": "CT bol úspešne spustený.", "CT {vmid} is a host monitor and had a rule in the host firewall. Allow TCP port {port} from {subnet} through the firewall of this host? Existing firewall rules are not changed.": "CT {vmid} je hostiteľský monitor a mal pravidlo v hostiteľskom firewalle. Povoliť TCP port {port} z {subnet} cez bránu firewall tohto hostiteľa? Existujúce pravidlá brány firewall sa nemenia.", - "CUDA requires a working NVIDIA driver": "CUDA requires pracovný ovládač NVIDIA", - "CUDA requires the NVIDIA Container Toolkit on the host": "CUDA requires the NVIDIA Container Toolkit na hostiteľovi", + "CUDA requires a working NVIDIA driver": "CUDA vyžaduje funkčný ovládač NVIDIA", + "CUDA requires the NVIDIA Container Toolkit on the host": "CUDA vyžaduje NVIDIA Container Toolkit na hostiteľovi", "Calculate all kinds of statistics from your (local) Emby or Jellyfin server": "Vypočítajte všetky druhy štatistík z vášho (miestneho) servera Emby alebo Jellyfin", "Calibre is a powerful and easy to use e-book manager. Users say it's outstanding and a must-have. It'll allow you to do nearly everything and it takes things a step beyond normal e-book software. It's also completely free and open source and great for both casual users and computer experts.": "Calibre je výkonný a ľahko použiteľný správca elektronických kníh. Ponúka rozsiahle možnosti nad rámec bežných nástrojov a používatelia ho vysoko hodnotia. Je úplne bezplatný, s otvoreným zdrojovým kódom a vhodný pre bežných používateľov aj odborníkov.", "Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself.": "Calibre-web je webová aplikácia poskytujúca čisté rozhranie pre prehliadanie, čítanie a sťahovanie elektronických kníh pomocou existujúcej databázy Calibre. Je tiež možné integrovať Google disk a upraviť metaúdaje a knižnicu calibre prostredníctvom samotnej aplikácie.", @@ -741,7 +804,7 @@ "Cannot create:": "Nedá sa vytvoriť:", "Cannot detect filesystem on": "Nedá sa zistiť súborový systém na", "Cannot find": "Nedá sa nájsť", - "Cannot identify the vendor of the device:": "Nie je možné identifikovať predajcu zariadenia:", + "Cannot identify the vendor of the device:": "Nepodarilo sa určiť výrobcu zariadenia:", "Cannot inspect current swap configuration": "Nie je možné skontrolovať aktuálnu konfiguráciu výmeny", "Cannot inspect existing ZRAM configurations": "Nie je možné skontrolovať existujúce konfigurácie ZRAM", "Cannot inspect existing ZRAM generator configuration": "Nie je možné skontrolovať existujúcu konfiguráciu generátora ZRAM", @@ -758,7 +821,7 @@ "Cannot validate credentials - no shares available for testing.": "Prihlasovacie údaje sa nedajú overiť - nie sú dostupné žiadne zdieľania na test.", "Cannot verify the reused disk:": "Nie je možné overiť znovu použitý disk:", "Cannot write the image archive to {storage}. Check storage access and mount status.": "Archív obrazu sa nedá zapísať do úložiska {storage}. Skontrolujte prístup k úložisku a stav jeho pripojenia.", - "Capabilities cannot be kept and all dropped at the same time": "Nie je možné udržať si schopnosti a zároveň ich znížiť.", + "Capabilities cannot be kept and all dropped at the same time": "Oprávnenia capabilities nemožno súčasne ponechať aj všetky odobrať", "Catalog options": "Možnosti katalógu", "Category": "Kategória", "Caution: Maximum mode generates more heat.": "Pozor: maximálny režim vytvára viac tepla.", @@ -806,8 +869,8 @@ "Changing Release Channel": "Mením vetvu vydania", "Changing between a privileged and an unprivileged container, or the host monitor mode, requires installing the application again": "Pri prepnutí medzi privilegovaným a neprivilegovaným kontajnerom alebo pri zmene režimu monitorovania hostiteľa je aplikáciu potrebné nainštalovať znova.", "Changing the machine type on an existing installed VM is not safe: it changes the chipset and PCI slot layout, which typically prevents the guest OS from booting.": "Meniť typ stroja na už nainštalovanej VM nie je bezpečné: zmení sa chipset a rozloženie PCI slotov, čo často zabráni štartu hosťovského OS.", - "Changing the rootfs or its storage requires a separate migration": "Zmena rootfs alebo jeho skladovanie requires samostatnú migráciu", - "Changing the storage or size of a disk requires a migration; empty disks are not created": "Zmena úložiska alebo veľkosti disku requires migrácie; prázdne disky nie sú vytvorené", + "Changing the rootfs or its storage requires a separate migration": "Zmena koreňového súborového systému alebo jeho úložiska vyžaduje samostatnú migráciu", + "Changing the storage or size of a disk requires a migration; empty disks are not created": "Zmena úložiska alebo veľkosti disku vyžaduje migráciu; prázdne disky sa nevytvoria", "Check": "Skontrolujte", "Check BIOS/UEFI in Hardware > BIOS — must match what the original VM used": "Skontrolujte BIOS/UEFI v Hardware > BIOS - musí sedieť s tým, čo používala pôvodná VM", "Check Coral USB/M.2 detection": "Skontrolovať detekciu Coral USB/M.2", @@ -859,13 +922,13 @@ "Checking the container before the update...": "Kontrola kontajnera pred aktualizáciou...", "Checking the container...": "Kontroluje sa kontajner...", "Checking the device permissions for the application user...": "Kontrola oprávnení zariadenia pre užívateľa aplikácie...", - "Checking the image compatibility:": "Kontrola kompatibility obrázku:", + "Checking the image compatibility:": "Kontroluje sa kompatibilita obrazu:", "Checking the image in the registry...": "Kontrola obrazu v registri...", "Checking the interrupted operation...": "Kontrolujem prerušenú operáciu...", "Checking the interrupted stack operation...": "Kontrolujem prerušenú operáciu celej aplikácie...", "Checking the new image without starting it:": "Kontrolujem nový obraz bez jeho spustenia:", "Checking the recreated stack...": "Kontrolujem znovu vytvorené kontajnery aplikácie...", - "Checking the remote...": "Kontrolujem ovládač...", + "Checking the remote...": "Kontroluje sa vzdialené úložisko...", "Checking the restored installation": "Kontrola obnovenej inštalácie", "Checking the restored installation...": "Kontrola obnovenej inštalácie...", "Checking the stack before recreating...": "Kontrolujem aplikáciu pred opätovným vytvorením kontajnerov...", @@ -1019,7 +1082,7 @@ "Component was installed on the backup source but no matching hardware was found on this host.": "Súčasť bola nainštalovaná na zdrojovom hostovi zálohy, ale na tomto hostovi sa nenašiel zodpovedajúci hardvér.", "Component:": "Súčasť:", "Components to uninstall (manual for now):": "Súčasti na odinštalovanie (zatiaľ ručne):", - "Compose capabilities validated in the LXC user namespace:": "Skladanie schopností validovaných v LXC užívateľskom priestore:", + "Compose capabilities validated in the LXC user namespace:": "Oprávnenia capabilities zo súboru Compose boli overené v používateľskom mennom priestore LXC:", "Compose file of the application": "Súbor Compose aplikácie", "Compose file of this host": "súboru Compose z tohto hostiteľa", "Compressed size:": "Veľkosť po kompresii:", @@ -1175,7 +1238,7 @@ "Container Status": "Stav kontajnera", "Container checked": "Skontrolovaný kontajner", "Container configuration not found": "Nastavenie kontajnera sa nenašlo", - "Container configured (not started):": "Kontajner nastavený (nezačína sa):", + "Container configured (not started):": "Kontajner je nastavený (nie je spustený):", "Container converted to privileged": "Kontajner prevedený na privilegovaný", "Container created:": "Vytvorený kontajner:", "Container data targeted for deletion:": "Údaje kontajnera určené na vymazanie:", @@ -1187,11 +1250,11 @@ "Container is already stopped.": "Kontajner už je zastavený.", "Container is running. Restart to apply changes?": "Kontajner beží. Reštartovať ho, aby sa zmeny prejavili?", "Container is stopped. Start it now to verify the mount works?": "Kontajner je zastavený. Spustiť ho teraz a overiť, či mount funguje?", - "Container kept with its data; the installation was not validated:": "Kontajner uchovávaný so svojimi údajmi; zariadenie nebolo potvrdené:", + "Container kept with its data; the installation was not validated:": "Kontajner aj jeho údaje zostávajú zachované; inštalácia nebola overená:", "Container mount point:": "Mount point v kontajneri:", "Container must be stopped before conversion": "Kontajner musí byť pred prevodom zastavený", - "Container prepared for the stack:": "Nádoba pripravená na zásobník:", - "Container recreated": "Zrekonštruovaný kontajner", + "Container prepared for the stack:": "Kontajner pripravený pre zostavu:", + "Container recreated": "Kontajner bol znova vytvorený", "Container removed:": "Odstránený kontajner:", "Container restarted successfully": "Kontajner bol úspešne reštartovaný", "Container running steadily": "Kontajner beží plynule", @@ -1222,7 +1285,7 @@ "Containers that will be created (one LXC per service, on a private network):": "Kontajnery, ktoré budú vytvorené (jeden LXC na službu, na súkromnej sieti):", "Containers that will receive this device": "Kontajnery, ktoré dostanú toto zariadenie", "Containers that will receive this path": "Kontajnery, ktoré dostanú túto cestu", - "Containers:": "Obaly:", + "Containers:": "Kontajnery:", "Contains files": "Obsahuje súbory", "Contains:": "Obsahuje:", "Content Types": "Typy obsahu", @@ -1243,7 +1306,7 @@ "Continue: Proceed with conversion": "Pokračovať: spustiť prevod", "Continue?": "Pokračovať?", "Continuing with your selection.": "Pokračujem s vaším výberom.", - "Contradictory tmpfs options": "Možnosti kontrastných tmpfs", + "Contradictory tmpfs options": "Protichodné voľby tmpfs", "Controller": "Controller", "Controller + NVMe": "Controller + NVMe", "Controller + NVMe assignment will be written now and become active after host reboot.": "Priradenie Controller + NVMe sa teraz zapíše a aktivuje sa po reštarte servera.", @@ -1274,7 +1337,7 @@ "Converting image using command:": "Konvertujem obraz pomocou príkazu:", "Converting the container to privileged...": "Konverzia kontajnera na privilegovaný...", "Converts to deb822; keeps .list backups as .bak": "Prevedie na deb822; zálohy .list ponechá ako .bak", - "Coordinated backups require zstd": "Koordinované zálohy require zstd", + "Coordinated backups require zstd": "Koordinované zálohy vyžadujú zstd", "Cops by Sébastien Lucas, now maintained by MikesPub, stands for Calibre OPDS (and HTML) Php Server.": "COPS od Sébastiena Lucasa, dnes spravovaný MikesPub, znamená Calibre OPDS (a HTML) PHP Server.", "Copy a peer configuration to the host with: pct pull /config/peer1/peer1.conf peer1.conf": "Kopírovať konfiguráciu peer k hostiteľovi s: pct pull /config/peer1/peer1.conf peer1.conf", "Copy failed": "Kopírovanie zlyhalo", @@ -1311,18 +1374,18 @@ "Coral packages purged.": "Balíky Coral boli úplne odstránené.", "Coral uninstallation completed.": "Odinštalovanie Coral je hotové.", "Core Proxmox packages reinstalled successfully": "Základné balíky Proxmoxu boli úspešne preinštalované", - "Core is running, but not responding over HTTP on 80/8123": "Jadro beží, ale neodpovedá cez HTTP na 80/8123", - "Core is still on the initial installation page": "Jadro je stále na úvodnej inštalačnej stránke", + "Core is running, but not responding over HTTP on 80/8123": "Home Assistant Core beží, ale neodpovedá cez HTTP na porte 80 ani 8123", + "Core is still on the initial installation page": "Home Assistant Core je stále na úvodnej inštalačnej stránke", "Core packages": "Základné balíky", "Cores": "Počet jadier", - "Corrupted gzip layer": "Vrstvená vrstva gzipu", + "Corrupted gzip layer": "Poškodená vrstva gzip", "Could not add": "Nepodarilo sa pridať", "Could not add disk": "Disk sa nepodarilo pridať", "Could not add the confirmed host firewall rule": "Potvrdené pravidlo firewallu hostiteľa sa nepodarilo pridať", "Could not add the device to the container:": "Nepodarilo sa pridať zariadenie do kontajnera:", "Could not add the mount point:": "Nepodarilo sa pridať bod pripojenia:", "Could not apply the Compose extra hosts": "Nepodarilo sa použiť extra hostiteľov", - "Could not apply the Compose supplementary groups": "Nepodarilo sa použiť zostavu doplnkových skupín", + "Could not apply the Compose supplementary groups": "Nepodarilo sa použiť doplnkové skupiny zo súboru Compose", "Could not apply the Jellyfin configuration:": "Nepodarilo sa použiť konfiguráciu Jellyfin:", "Could not apply the installer profile": "Nepodarilo sa použiť profil inštalátora", "Could not apply the pre-start repair:": "Nepodarilo sa použiť predštartovaciu opravu:", @@ -1357,7 +1420,7 @@ "Could not download recovery blob from PBS.": "Nepodarilo sa stiahnuť obnovovací balíček z PBS.", "Could not download the NVIDIA Container Toolkit repository definition.": "Nepodarilo sa stiahnuť definíciu úložiska NVIDIA Container Toolkit.", "Could not download the NVIDIA Container Toolkit signing key.": "Nepodarilo sa stiahnuť podpisový kľúč NVIDIA Container Toolkit.", - "Could not download the image": "Nepodarilo sa stiahnuť obrázok", + "Could not download the image": "Obraz sa nepodarilo stiahnuť", "Could not download the installer.": "Inštalátor sa nepodarilo stiahnuť.", "Could not enable the privileged profile before the first start": "Nepodarilo sa povoliť privilegovaný profil pred prvým začiatkom", "Could not export ZFS pool": "ZFS pool sa nepodarilo exportovať", @@ -1375,8 +1438,8 @@ "Could not install sshpass automatically (no internet?). Falling back to manual paste mode — you'll see the line to copy onto the server next.": "sshpass sa nepodarilo nainštalovať automaticky (bez internetu?). Prepínam na ručné vloženie - hneď uvidíte riadok, ktorý treba skopírovať na server.", "Could not install systemd-zram-generator": "Nepodarilo sa nainštalovať systemd-zram-generator", "Could not install the NVIDIA Container Toolkit signing key.": "Nepodarilo sa nainštalovať podpisový kľúč NVIDIA Container Toolkit.", - "Could not install the required packages:": "Nepodarilo sa nainštalovať required balíčky:", - "Could not install the stack startup hook": "Nepodarilo sa nainštalovať stack štartovací hák", + "Could not install the required packages:": "Požadované balíky sa nepodarilo nainštalovať:", + "Could not install the stack startup hook": "Spúšťací skript zostavy sa nepodarilo nainštalovať", "Could not install vzdump hook in /etc/vzdump.conf": "Nepodarilo sa nainštalovať vzdump hook do /etc/vzdump.conf", "Could not load shared functions. Script cannot continue.": "Nepodarilo sa načítať zdieľané funkcie. Skript nemôže pokračovať.", "Could not load the host kernel module:": "Nepodarilo sa načítať modul hostiteľského jadra:", @@ -1392,7 +1455,7 @@ "Could not prepare the file bind mount target:": "Nepodarilo sa pripraviť cieľ pripojenia súboru:", "Could not publish pending restore. Previous pending restore was kept.": "Nepodarilo sa zverejniť čakajúce obnovenie. Predchádzajúce čakajúce obnovenie bolo zachované.", "Could not push the key. Check the password and that": "Kľúč sa nepodarilo odoslať. Skontrolujte heslo a to, že", - "Could not query the image registry": "Nepodarilo sa nájsť obrazový register", + "Could not query the image registry": "Nepodarilo sa získať údaje z registra obrazov", "Could not reach {registry}. Check its address, DNS and network access.": "Nepodarilo sa dosiahnuť {registry}. Skontrolujte jeho adresu, DNS a prístup k sieti.", "Could not read SMART data from": "SMART dáta sa nepodarilo prečítať z", "Could not read VM configuration.": "Nastavenie VM sa nepodarilo prečítať.", @@ -1500,10 +1563,10 @@ "Creating pigz wrapper script...": "Vytváram wrapper skript pre pigz...", "Creating the backup": "Vytvorenie zálohy", "Creating the container...": "Vytváram kontajner...", - "Creating the container: applying the image configuration...": "Vytváranie kontajnera: použitie konfigurácie obrázka...", - "Creating the container: extracting the image": "Vytvorenie kontajnera: extrahovanie obrázka", + "Creating the container: applying the image configuration...": "Vytváranie kontajnera: používajú sa nastavenia obrazu...", + "Creating the container: extracting the image": "Vytváranie kontajnera: rozbaľuje sa obraz", "Creating the container: preparing its disk...": "Vytváranie kontajnera: príprava jeho disku...", - "Creating the container: reading the image...": "Vytváranie kontajnera: čítanie obrázka...", + "Creating the container: reading the image...": "Vytváranie kontajnera: načítava sa obraz...", "Creating the initial administrator...": "Vytvorenie počiatočného správcu...", "Creating the private network...": "Vytváranie súkromnej siete...", "Creating the temporary data container": "Vytvorenie dočasného dátového kontajnera", @@ -1532,8 +1595,8 @@ "Current NFS client script supports privileged LXC only.": "Aktuálny skript NFS klienta podporuje iba privilegovaný LXC.", "Current NFS exports in CT": "Aktuálne NFS exporty v CT", "Current NFS mounts:": "Aktuálne NFS pripojenia:", - "Current NVIDIA inventory resolved: a refresh is required": "Aktuálne NVIDIA inventár vyriešený: obnovovanie je required", - "Current NVIDIA inventory resolved: no refresh is required": "Aktuálne NVIDIA inventár vyriešený: žiadne obnovenie je required", + "Current NVIDIA inventory resolved: a refresh is required": "Aktuálny zoznam zariadení NVIDIA bol zistený: je potrebné obnovenie", + "Current NVIDIA inventory resolved: no refresh is required": "Aktuálny zoznam zariadení NVIDIA bol zistený: obnovenie nie je potrebné", "Current Network Configuration": "Aktuálne nastavenie siete", "Current PBS Version": "Aktuálna verzia PBS", "Current PVE Version": "Aktuálna verzia PVE", @@ -1914,7 +1977,7 @@ "Downloading and verifying the image.\nThis can take a few minutes. Please wait...": "Obraz sa sťahuje a overuje.\nMôže to trvať niekoľko minút. Čakajte, prosím...", "Downloading official installer...": "Sťahujem oficiálny inštalátor...", "Downloading pre-existing encrypted backups from this host will fail unless you kept a copy of the current key.": "Stiahnutie už existujúcich šifrovaných záloh z tohto hosta zlyhá, ak ste si nenechali kópiu aktuálneho kľúča.", - "Downloading the image:": "Sťahovanie obrázku:", + "Downloading the image:": "Sťahuje sa obraz:", "Downloading the latest Fastfetch release...": "Sťahujem najnovšiu verziu Fastfetch...", "Driver blacklist entries removed": "Záznamy v blackliste ovládačov boli odstránené", "Driver blacklist removed for": "Blacklist ovládača odstránený pre", @@ -1922,7 +1985,7 @@ "Drivers :": "Ovládače :", "Drivers compiled and installed via DKMS.": "Ovládače boli skompilované a nainštalované cez DKMS.", "Dry run completed; mount configuration was not applied. The CT was already running.": "Suchý chod dokončený;konfigurácia pripojenia nebola použitá. CT už bežal.", - "Dry run completed; mount configuration was not applied. The CT was started for the remote check.": "Suchý chod dokončený;konfigurácia pripojenia nebola použitá. CT bol spustený na vzdialenú kontrolu.", + "Dry run completed; mount configuration was not applied. The CT was started for the remote check.": "Skúšobný beh bol dokončený; nastavenie pripojenia sa nepoužilo. Kontajner bol spustený na kontrolu vzdialeného úložiska.", "Dry run completed; no changes were made.": "Suchý beh dokončený; neboli vykonané žiadne zmeny.", "Dry run completed; no containers were created.": "Suchý beh dokončený; neboli vytvorené žiadne kontajnery.", "Dry run completed; the container and the mounts were not changed.": "Suchý chod dokončený; kontajner a držiaky neboli zmenené.", @@ -1938,7 +2001,7 @@ "Duplicated GPU device in the container": "Duplikované GPU zariadenie v kontajneri", "Duplicated NVIDIA devices": "Duplikované zariadenia NVIDIA", "Duplicated VMID in the Proxmox inventory": "Duplikované VMID v inventári Proxmox", - "Duplicated native directive:": "Duplikát natívne smernice:", + "Duplicated native directive:": "Duplicitná natívna direktíva:", "Duplicated native option": "Duplikované natívne možnosti", "Duplicated or invalid stack VMID": "Duplicitné alebo neplatné VMID kontajnerov aplikácie", "Duplicati is a backup client that securely stores encrypted, incremental, compressed backups on local storage, cloud storage services and remote file servers. It works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon S3, Google Drive, box.com, Mega, B2, and many others.": "Duplicati je záložný klient, ktorý bezpečne ukladá šifrované, prírastkové, stlačené zálohy na lokálne úložisko, cloudové úložné služby a vzdialené súborové servery. Funguje so štandardnými protokolmi ako FTP, SSH, WebDAV, rovnako ako populárne služby ako Microsoft OneDrive, Amazon S3, Google Drive, box.com, Mega, B2, a mnoho ďalších.", @@ -2738,8 +2801,8 @@ "Home Assistant": "Home Assistant", "Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server": "Home Assistant Core je systém domácej automatizácie s otvoreným zdrojovým kódom, ktorý uprednostňuje lokálne ovládanie a súkromie. Rozvíja ho celosvetová komunita nadšencov a domácich majstrov. Hodí sa na Raspberry Pi alebo lokálny server.", "Home Assistant OS cannot be checked without an IP address": "Home Assistant OS nemožno skontrolovať bez IP adresy", - "Home Assistant OS did not pass the Supervisor, Core and Observer checks": "Home Assistant OS neprešiel dozorcom, základnými a pozorovateľmi", - "Home Assistant OS ready: Supervisor, Core and Observer running": "Home Assistant OS pripravený: Supervízor, jadro a pozorovateľ beží", + "Home Assistant OS did not pass the Supervisor, Core and Observer checks": "Home Assistant OS neprešiel kontrolami Supervisor, Core a Observer", + "Home Assistant OS ready: Supervisor, Core and Observer running": "Home Assistant OS je pripravený: Supervisor, Core a Observer bežia", "Home Assistant OS was not started: its addresses will be known once Core is running.": "Home Assistant OS sa nezačalo: jeho adresy budú známe po spustení Core.", "Home Assistant Observer": "Home Assistant Observer", "Home Automation systems": "Systémy domácej automatizácie", @@ -2790,7 +2853,7 @@ "Host directories are not included in the backup and are not reverted by a recovery.": "Hostiteľské adresáre nie sú zahrnuté do zálohy a nie sú vrátené zotavením.", "Host directories are not included in the backups and are not reverted by a recovery.": "Hostiteľské adresáre nie sú zahrnuté v zálohách a nie sú vrátené zotavením.", "Host directories cannot be included in vzdump": "Hostiteľské adresáre nemožno zahrnúť do vzdump", - "Host directories cannot be part of the vzdump backup": "Hostiteľské adresáre nemôžu byť súčasťou zálohy", + "Host directories cannot be part of the vzdump backup": "Adresáre hostiteľa nemožno zahrnúť do zálohy vzdump", "Host directories that are kept, with their content:": "Hostiteľské adresáre, ktoré sú uchovávané, s ich obsahom:", "Host directory": "Adresár na serveri", "Host directory (created if it does not exist)": "Adresár na serveri (vytvorí sa, ak neexistuje)", @@ -2815,7 +2878,7 @@ "Host identity (hostname, hosts)": "Identita hosta (hostname, hosts)", "Host kernel module loaded:": "Načítaný modul jadra hostiteľa:", "Host monitor configured: shared PID and network namespaces, LXCFS disabled in this container": "Konfigurovaný monitor hostiteľa: zdieľané PID a sieťové priestory, LXCFS vypnuté v tomto kontajneri", - "Host monitor verified: PID and network namespaces and memory match the host": "Monitor hostiteľa overený: PID a sieťové názvy a pamäť zodpovedajú hostiteľovi", + "Host monitor verified: PID and network namespaces and memory match the host": "Monitor hostiteľa je overený: menné priestory PID a siete aj pamäť zodpovedajú hostiteľovi", "Host monitor: shared PID/network and privileged access. A compromised image could affect Proxmox. Use only on trusted networks.": "Monitorovanie hostiteľa so zdieľaným priestorom PID, sieťou a privilegovaným prístupom. Napadnutý obraz by mohol ohroziť Proxmox. Používajte iba v dôveryhodných sieťach.", "Host monitoring declined": "Monitorovanie hostiteľa bolo odmietnuté", "Host path for": "Cesta na hostiteľovi pre", @@ -2942,30 +3005,30 @@ "Image Source Directory": "Zdrojový priečinok obrazov", "Image access confirmed.\n\n{reference}\n\nArchitecture: {architecture}\nVersion: {version}\nDownload size: {size}\nDigest: {digest}": "Prístup k obrazu bol potvrdený.\n\n{reference}\n\nArchitektúra: {architecture}\nVerzia: {version}\nVeľkosť na stiahnutie: {size}\nDigest: {digest}", "Image cache": "Vyrovnávacia pamäť obrazov", - "Image compatibility restored:": "Kompatibilita s obrázkom obnovená:", - "Image compatibility verified:": "Kompatibilita s obrázkom overená:", + "Image compatibility restored:": "Kompatibilita obrazu bola obnovená:", + "Image compatibility verified:": "Kompatibilita obrazu bola overená:", "Image directory:": "Priečinok s obrazmi:", - "Image download failed:": "Sťahovanie obrázku zlyhalo:", - "Image downloaded": "Stiahnutý obrázok", + "Image download failed:": "Sťahovanie obrazu zlyhalo:", + "Image downloaded": "Obraz bol stiahnutý", "Image downloaded and verified.\n\n{reference}\n\nStorage: {storage}\nArchive size: {size}\nArchive: {archive}\n\nNo container was created.\nProxMenux removes unused cached images after successful updates.": "Obraz bol stiahnutý a overený.\n\n{reference}\n\nÚložisko: {storage}\nVeľkosť archívu: {size}\nArchív: {archive}\n\nNebol vytvorený žiadny kontajner.\nProxMenux po úspešných aktualizáciách odstraňuje nepoužívané obrazy z vyrovnávacej pamäte.", "Image file not found:": "Súbor obrazu sa nenašiel:", "Image imported:": "Obraz importovaný:", "Image integrity verification failed. The partial download was discarded; try again.": "Overenie integrity obrazu zlyhalo. Neúplne stiahnuté dáta boli zahodené; skúste to znova.", - "Image integrity verified": "Potvrdená integrita obrázku", - "Image not allowed for the host monitor profile": "Obrázok nie je povolený pre profil monitora hostiteľa", + "Image integrity verified": "Integrita obrazu bola overená", + "Image not allowed for the host monitor profile": "Obraz nie je povolený pre profil monitorovania hostiteľa", "Image reference": "Odkaz na obraz", "Image reference (for example ghcr.io/user/application:latest)": "Odkaz na obraz (napríklad ghcr.io/user/application:latest)", "Image selection was cancelled": "Výber obrazu bol zrušený", "Image that is not in the catalog": "Obraz, ktorý nie je v katalógu", - "Image:": "Image:", + "Image:": "Obraz:", "Images to import:": "Image na import:", - "Immich CUDA requires NVIDIA driver 545 or later": "Immich CUDA requires NVIDIA ovládač 545 alebo neskôr", + "Immich CUDA requires NVIDIA driver 545 or later": "Immich CUDA vyžaduje ovládač NVIDIA verzie 545 alebo novší", "Immich GPU profile not validated": "Profil GPU pre Immich nebol overený", "Immich configuration cancelled": "Konfigurácia Immich zrušená", "Immich device without a validated translation": "Zariadenie Immich bez overeného prekladu", "Immich machine learning": "Immich strojové učenie", - "Immich requires CUDA compute capability 5.2 or later": "Immich requires CUDA výpočtová schopnosť 5.2 alebo neskôr", - "Immich runtime without a validated translation": "Immich spustiť bez overeného prekladu", + "Immich requires CUDA compute capability 5.2 or later": "Immich vyžaduje výpočtovú schopnosť CUDA 5.2 alebo vyššiu", + "Immich runtime without a validated translation": "Prostredie Immich nemá overený prevod do natívneho LXC", "Immich server": "Server Immich", "Import — disk image imports": "Import — import diskových obrazov", "Import Disk Image to VM": "Importovať obraz disku do VM", @@ -3014,22 +3077,22 @@ "Incompatible instance directory": "Nekompatibilný inštančný adresár", "Incompatible instance record": "Nekompatibilný záznam o inštancii", "Incompatible record": "Nekompatibilný záznam", - "Incompatible stack assembly": "Nekompatibilná súprava stohov", + "Incompatible stack assembly": "Nekompatibilné zostavenie aplikácie", "Incompatible version": "Nekompatibilná verzia", "Incomplete NVIDIA identity": "Neúplná identita NVIDIA", "Incomplete NVIDIA inventory": "Neúplný inventár NVIDIA", "Incomplete Proxmox inventory": "Neúplný inventár Proxmox", "Incomplete Proxmox inventory; recovery blocked": "Neúplný inventár Proxmox; blokovaná obnova", - "Incomplete container removed:": "Neúplná odstránená nádoba:", + "Incomplete container removed:": "Nedokončený kontajner bol odstránený:", "Incomplete dependency order": "Neúplné poradie závislosti", "Incomplete device configuration": "Neúplná konfigurácia zariadenia", - "Incomplete file recipe or unknown paths": "Neúplný súbor recept alebo neznáme cesty", + "Incomplete file recipe or unknown paths": "Neúplný postup úpravy súborov alebo neznáme cesty", "Incomplete gzip layer": "Neúplná vrstva gzipu", "Incomplete mount configuration": "Neúplná konfigurácia pripojenia", "Incomplete or incompatible Proxmox inventory": "Neúplný alebo nezlučiteľný súpis Proxmox", "Incomplete primary network": "Neúplná primárna sieť", "Incomplete stack order": "Neúplné poradie kontajnerov aplikácie", - "Incomplete stack removed": "Neúplný zásobník odstránený", + "Incomplete stack removed": "Nedokončená zostava bola odstránená", "Inconsistent adaptation profile and recipe": "Nekonzistentný adaptačný profil a recept", "Inconsistent host monitor profile": "Profil nekonzistentného monitora hostiteľa", "Inconsistent stack identity": "Nekonzistentná identita aplikácie s viacerými kontajnermi", @@ -3043,7 +3106,7 @@ "Independent LXC applications installed": "Inštalované nezávislé aplikácie LXC", "Independent LXCs: no main container or hookscript. Each one keeps its own Start with Proxmox setting.": "Samostatné kontajnery LXC bez hlavného kontajnera a skriptu hookscript. Každý si zachová vlastné nastavenie spúšťania spolu s Proxmoxom.", "Independent applications, without a main container.": "Nezávislé aplikácie bez hlavného kontajnera.", - "Indexers and quality profiles still need to be configured.": "Indexery a kvalitné profily ešte treba nakonfigurovať.", + "Indexers and quality profiles still need to be configured.": "Indexery a profily kvality ešte treba nastaviť.", "Inherited retention:": "Prevzaté uchovávanie:", "Inherited schedule:": "Prevzatý plán:", "Initial Nextcloud administrator": "Počiatočný správca Nextcloud", @@ -3120,7 +3183,7 @@ "Installation completed. Press Enter to continue...": "Inštalácia je dokončená. Pokračujte stlačením Enter...", "Installation failed": "Inštalácia zlyhala", "Installation finished but drivers are not loaded. A reboot may be required.": "Inštalácia sa dokončila, ale ovládače nie sú načítané. Možno bude potrebný reštart.", - "Installation incomplete. These containers and their data are kept:": "Inštalácia neúplná. Tieto nádoby a ich údaje sa uchovávajú:", + "Installation incomplete. These containers and their data are kept:": "Inštalácia nie je dokončená. Tieto kontajnery a ich údaje zostávajú zachované:", "Installation log:": "Záznam inštalácie:", "Installation settings": "Nastavenia inštalácie", "Installation summary": "Zhrnutie inštalácie", @@ -3182,14 +3245,14 @@ "Installing pigz...": "Inštalujem pigz...", "Installing required dependencies...": "Inštalujem potrebné závislosti...", "Installing required package: git": "Inštalujem potrebný balík: git", - "Installing required packages...": "Inštalujem required balíčky...", + "Installing required packages...": "Inštalujú sa požadované balíky...", "Installing required tools...": "Inštalujem potrebné nástroje...", "Installing selected utilities": "Inštalujem vybrané nástroje", "Installing system utilities...": "Inštalujem systémové nástroje...", "Installing the new image": "Inštalácia nového obrazu", - "Installing the new image...": "Inštalujem nový obrázok...", - "Installing the new image:": "Inštalácia nového obrázku:", - "Installing the stack startup hook...": "Inštalácia stack startup...", + "Installing the new image...": "Inštaluje sa nový obraz...", + "Installing the new image:": "Inštaluje sa nový obraz:", + "Installing the stack startup hook...": "Inštaluje sa spúšťací skript zostavy...", "Installing zfs-auto-snapshot package...": "Inštalujem balík zfs-auto-snapshot...", "Installs essential packages if missing": "Nainštaluje chýbajúce základné balíky", "Insufficient Disk Space": "Nedostatok miesta na disku", @@ -3234,7 +3297,7 @@ "Interrupted stack operation found": "Našla sa prerušená operácia celej aplikácie", "Invalid 'proxmox-ve' candidate (not 9.x or none). Please verify your repository configuration and network, then retry.": "Neplatný kandidát 'proxmox-ve' (nie je 9.x alebo chýba). Skontrolujte nastavenie repozitárov a sieť, potom skúste znova.", "Invalid ALLOWED_HOSTS value": "Neplatná hodnota ALLOWED_HOSTS", - "Invalid Home Assistant OS check timeout": "Neplatný čas odhlásenia Home Assistant OS", + "Invalid Home Assistant OS check timeout": "Neplatný časový limit kontroly Home Assistant OS", "Invalid ID": "Neplatné ID", "Invalid IPv4 address": "Neplatná adresa IPv4", "Invalid IPv4 gateway": "Neplatná brána IPv4", @@ -3243,9 +3306,9 @@ "Invalid MAC address:": "Neplatná adresa MAC:", "Invalid NVIDIA destination": "Neplatné miesto určenia NVIDIA", "Invalid NVIDIA device:": "Neplatné NVIDIA zariadenie:", - "Invalid Nextcloud volume": "Neplatný objem Nextcloud", + "Invalid Nextcloud volume": "Neplatný dátový zväzok Nextcloud", "Invalid OCI Entrypoint": "Neplatný vstupný bod OCI", - "Invalid OCI digest": "Neplatná digescia OCI", + "Invalid OCI digest": "Neplatný identifikátor digest OCI", "Invalid OCR language:": "Neplatný jazyk OCR:", "Invalid Option": "Neplatná možnosť", "Invalid Path": "Neplatná cesta", @@ -3269,15 +3332,15 @@ "Invalid action": "Neplatná akcia", "Invalid administrator email": "Neplatný administrátorský mail", "Invalid administrator user name": "Neplatné meno správcu", - "Invalid base VMID": "Neplatná základňa VMID", + "Invalid base VMID": "Neplatné základné VMID", "Invalid bridge": "Neplatný sieťový most", "Invalid check package:": "Neplatný kontrolný balík:", "Invalid configuration path:": "Neplatná konfiguračná dráha:", - "Invalid consume/export volumes": "Neplatné objemy spotreby/vývozu", + "Invalid consume/export volumes": "Neplatné dátové zväzky consume a export", "Invalid container path:": "Neplatná trasa kontajnera:", - "Invalid credential file path:": "Neplatná cesta k credential súboru:", + "Invalid credential file path:": "Neplatná cesta súboru s prihlasovacími údajmi:", "Invalid declarative entrypoint": "Neplatný deklaratívny vstupný bod", - "Invalid declarative stop signal": "Neplatná deklaratívna zastávka signal", + "Invalid declarative stop signal": "Neplatný deklaratívny signál zastavenia", "Invalid declarative working directory": "Neplatný deklaratívny pracovný adresár", "Invalid device UID": "Neplatné UID zariadenia", "Invalid device UID:": "Neplatné UID zariadenie:", @@ -3290,12 +3353,12 @@ "Invalid health check": "Neplatná kontrola zdravotného stavu", "Invalid healthcheck path": "Neplatná cesta kontroly zdravotného stavu", "Invalid healthcheck port": "Neplatný port na kontrolu zdravotného stavu", - "Invalid healthcheck request timeout": "Neplatná lehota na kontrolu zdravotného stavu", + "Invalid healthcheck request timeout": "Neplatný časový limit požiadavky kontroly stavu", "Invalid healthcheck scheme": "Neplatná schéma kontroly zdravotného stavu", - "Invalid healthcheck stability period": "Neplatná doba stability zdravotného poistenia", + "Invalid healthcheck stability period": "Neplatné obdobie overovania stability", "Invalid healthcheck timeout": "Neplatná lehota na kontrolu zdravotného stavu", "Invalid host kernel module name:": "Neplatné meno modulu jadra hostiteľa:", - "Invalid host monitor PID": "Neplatný monitor hostiteľa PID", + "Invalid host monitor PID": "Neplatné PID monitora hostiteľa", "Invalid host path:": "Neplatná cesta k hostiteľovi:", "Invalid host-monitor firewall plan": "Neplatný plán firewallu pre monitor hostiteľa", "Invalid image probe descriptor": "Neplatný deskriptor obrazovej sondy", @@ -3307,14 +3370,14 @@ "Invalid machine learning resources": "Neplatné zdroje strojového učenia", "Invalid main member or duplicated members": "Neplatný hlavný člen alebo duplikovaný člen", "Invalid media path": "Neplatná mediálna cesta", - "Invalid media volume": "Neplatný objem média", - "Invalid mediafiles volume": "Neplatný objem súborov médií", + "Invalid media volume": "Neplatný dátový zväzok médií", + "Invalid mediafiles volume": "Neplatný dátový zväzok mediafiles", "Invalid minimum version:": "Neplatná minimálna verzia:", "Invalid mount name": "Neplatné meno pripojenia", "Invalid mount type": "Neplatný typ pripojenia", "Invalid name": "Neplatný názov", "Invalid name. Use only letters, numbers, hyphens and underscores.": "Neplatný názov. Použite iba písmená, čísla, pomlčky a podčiarkovníky.", - "Invalid native entrypoint": "Neplatný domáci vstupný bod", + "Invalid native entrypoint": "Neplatný natívny vstupný bod", "Invalid octal permissions": "Neplatné oktálne práva", "Invalid option": "Neplatná voľba", "Invalid option, please try again.": "Neplatná možnosť, skúste to znova.", @@ -3330,7 +3393,7 @@ "Invalid prlimit value": "Neplatná hodnota prlimitu", "Invalid process limits format": "Neplatný formát obmedzení procesu", "Invalid read-only option": "Neplatná možnosť iba na čítanie", - "Invalid registry digest": "Neplatné trávenie registra", + "Invalid registry digest": "Neplatný identifikátor digest z registra", "Invalid remote name": "Neplatný názov vzdialeného úložiska", "Invalid remote path": "Neplatná vzdialená cesta", "Invalid repair version:": "Neplatná verzia opravy:", @@ -3338,8 +3401,8 @@ "Invalid resources": "Neplatné zdroje", "Invalid restored volume path": "Neplatná cesta obnoveného objemu", "Invalid running state": "Neplatný stav spustenia", - "Invalid saved image digest": "Uložený image digest nie je platný", - "Invalid security.unprivileged value:": "Neplatné zabezpečenie.neprivilegovaná hodnota:", + "Invalid saved image digest": "Neplatný uložený identifikátor digest obrazu", + "Invalid security.unprivileged value:": "Neplatná hodnota security.unprivileged:", "Invalid selection": "Neplatný výber", "Invalid service alias": "Neplatný alias služby", "Invalid service check URL": "Neplatné URL služby", @@ -3348,17 +3411,17 @@ "Invalid shared path": "Neplatná spoločná cesta", "Invalid shutdown timeout": "Neplatný čas vypnutia", "Invalid size. Please enter a number in MB (e.g., 128, 256, 512).": "Neplatná veľkosť. Zadajte číslo v MB (napr. 128, 256, 512).", - "Invalid stack contract": "Neplatná zmluva o zásobníku", + "Invalid stack contract": "Neplatná definícia zostavy", "Invalid stack journal": "Neplatný záznam operácie aplikácie s viacerými kontajnermi", "Invalid stack members": "Neplatní členovia aplikácie s viacerými kontajnermi", - "Invalid stack name": "Neplatný názov stohu", + "Invalid stack name": "Neplatný názov zostavy", "Invalid stack operation": "Neplatná operácia aplikácie s viacerými kontajnermi", "Invalid storage": "Neplatné úložisko", "Invalid storage ID. Use only letters, numbers, hyphens and underscores.": "Neplatné ID úložiska. Použite iba písmená, čísla, pomlčky a podčiarkovníky.", "Invalid storage name": "Neplatný názov úložiska", "Invalid suite application": "Neplatná aplikácia zostavy", "Invalid sysctl value:": "Neplatná sysctl hodnota:", - "Invalid template storage": "Neplatná pamäť šablóny", + "Invalid template storage": "Neplatné úložisko šablón", "Invalid template storage name.": "Neplatný názov úložiska šablóny.", "Invalid tmpfs options:": "Neplatné možnosti tmpfs:", "Invalid tmpfs path:": "Neplatná cesta tmpfs:", @@ -3401,8 +3464,8 @@ "Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.": "Jackett funguje ako proxy server: dotazy z aplikácií Sonarr, SickRage, CouchPotato, Mylar a ďalších prevádza na HTTP dotazy pre jednotlivé trackery, spracuje ich HTML odpovede a výsledky vráti aplikácii. Umožňuje vyhľadávať aj získavať najnovšie príspevky cez RSS. Zdieľaná logika získavania a prevodu údajov z indexerov odbremeňuje ostatné aplikácie.", "Jellyfin WebUI": "Jellyfin WebUI", "Jellyfin configuration applied:": "Použitá konfigurácia Jellyfin:", - "Jellyfin did not create encoding.xml before the timeout": "Jellyfin nevytvoril kódovanie.xml pred prestávkou", - "Jellyfin has not created encoding.xml in any declared path": "Jellyfin nevytvoril kódovanie.xml v žiadnej deklarovanej ceste", + "Jellyfin did not create encoding.xml before the timeout": "Jellyfin nevytvoril encoding.xml pred uplynutím časového limitu", + "Jellyfin has not created encoding.xml in any declared path": "Jellyfin nevytvoril encoding.xml v žiadnej deklarovanej ceste", "Jellyseerr is a free and open source software application for managing requests for your media library.": "Jellyseerr je bezplatná a open source softvérová aplikácia pre správu žiadostí o mediálnu knižnicu.", "Jenkins Continuous Integration and Delivery server.": "Jenkins – server na priebežnú integráciu a dodávanie softvéru.", "Jenkins unlock": "Odomknutie Jenkins", @@ -3474,7 +3537,7 @@ "Kometa reads its configuration from /config/config.yml and the container only ships /config/config.yml.template. Copy the template to config.yml, fill in the required Plex and TMDb connections, then restart the container.": "Kometa číta nastavenia z /config/config.yml, kontajner však obsahuje iba /config/config.yml.template. Skopírujte šablónu do config.yml, vyplňte požadované pripojenia Plex a TMDb a kontajner reštartujte.", "Komga is a media server for your comics, mangas, BDs, magazines and eBooks.": "Komga je mediálny server na komiksy, mangu, grafické romány, časopisy a elektronické knihy.", "Krita is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.": "Krita je profesionálny bezplatný maliarsky program s otvoreným zdrojovým kódom. Vytvárajú ho umelci, ktorí chcú sprístupniť umelecké nástroje každému.", - "LAN access to the kept containers (stack configuration incomplete):": "Prístup LAN k uloženým kontajnerom (konfigurácia koša neúplná):", + "LAN access to the kept containers (stack configuration incomplete):": "Prístup z LAN k ponechaným kontajnerom (nastavenie zostavy nie je dokončené):", "LAN address applied to the application URLs": "LAN adresa použitá na URL aplikácie", "LLM App Development Platform": "Platforma vývoja aplikácií LLM", "LM Studio can run local AI models like gpt-oss, Llama, Gemma, Qwen, and DeepSeek privately on your computer.": "LM Studio umožňuje spúšťať modely AI ako gpt-oss, Llama, Gemma, Qwen a DeepSeek lokálne a súkromne na vašom počítači.", @@ -3494,9 +3557,9 @@ "LXC containers with NVIDIA passthrough:": "LXC kontajnery s NVIDIA passthrough:", "LXC conversion from privileged to unprivileged completed successfully!": "Konverzia LXC z privilegovaného na neprivilegovaný kontajner bola úspešne dokončená.", "LXC conversion from unprivileged to privileged completed successfully!": "Konverzia LXC z neprivilegovaného na privilegovaný kontajner bola úspešne dokončená.", - "LXC entries outside the NVIDIA inventory of the journal": "LXC položiek mimo NVIDIA súpis časopisu", - "LXC entries outside the selected acceleration profile": "LXC položiek mimo zvoleného akceleračného profilu", - "LXC entry outside the read-only NVIDIA profile": "LXC vstup mimo profilu NVIDIA iba na čítanie", + "LXC entries outside the NVIDIA inventory of the journal": "Položky LXC mimo zoznamu zariadení NVIDIA v zázname operácie", + "LXC entries outside the selected acceleration profile": "Položky LXC mimo vybraného profilu zrýchlenia", + "LXC entry outside the read-only NVIDIA profile": "Položka LXC mimo profilu NVIDIA iba na čítanie", "LXC removed:": "LXC odstránený:", "LXC stopped": "LXC zastavený", "LXC update skipped by user.": "Aktualizácia LXC bola preskočená používateľom.", @@ -3643,7 +3706,7 @@ "Machine Type": "Typ stroja", "Machine learning": "Strojové učenie", "Machine learning container prepared": "Pripravený kontajner strojového učenia", - "Machine learning profile not implemented; it is not replaced by CPU:": "Strojový vzdelávací profil nie je implementovaný; nie je nahradený CPU:", + "Machine learning profile not implemented; it is not replaced by CPU:": "Profil strojového učenia nie je implementovaný; nenahradí sa CPU:", "Machine type: q35": "Typ stroja: q35", "Machine: q35": "Stroj: q35", "Main endpoint not yet defined": "Hlavný cieľ zatiaľ nedefinovaný", @@ -3725,10 +3788,10 @@ "Missing OCI metadata:": "Chýbajúce metaúdaje OCI:", "Missing commands after installation:": "Po inštalácii stále chýbajú tieto príkazy:", "Missing dependency": "Chýbajúca závislosť", - "Missing native directive:": "Chýbajúce domáce smernice:", + "Missing native directive:": "Chýbajúca natívna direktíva:", "Missing on target:": "Chýba na cieli:", "Missing or invalid parameter": "Parameter chýba alebo je neplatný", - "Missing required command:": "Chýba required príkaz:", + "Missing required command:": "Chýba požadovaný príkaz:", "Missing required parameter": "Chýba povinný parameter", "Mixed GPU Modes": "Rôzne režimy GPU", "Mixed current mode detected in selected GPU(s).": "Vybrané GPU sú v rôznych aktuálnych režimoch.", @@ -3790,12 +3853,12 @@ "Mount failed": "Pripojenie zlyhalo", "Mount mode applied": "Použitý režim montáže", "Mount name": "Názov pripojenia", - "Mount not authorized by the operation": "Pripojiť nie je povolené operation", + "Mount not authorized by the operation": "Toto pripojenie nie je operáciou povolené", "Mount options:": "Možnosti pripojenia:", "Mount or create it with its data and run the recovery again.": "Pripojte alebo vytvorte adresár s potrebnými údajmi a registráciu zopakujte.", "Mount path must be an absolute path starting with /": "Cesta pripojenia musí byť absolútna a začínať znakom /", "Mount path:": "Cesta pripojenia:", - "Mount paths must not overlap": "Pripojiť cesty sa nesmú prekrývať", + "Mount paths must not overlap": "Cesty pripojenia sa nesmú prekrývať", "Mount point created": "Mount point bol vytvorený", "Mount point created.": "Mount point bol vytvorený.", "Mount point is visible but NOT writable from inside the container": "Mount point je viditeľný, ale zvnútra kontajnera NIE JE zapisovateľný", @@ -3829,10 +3892,10 @@ "Move that copy offsite (USB, password manager, another host). Delete it from this path when done.": "Presuňte túto kópiu mimo servera (USB, správca hesiel, iný host). Po dokončení ju z tejto cesty odstráňte.", "Move to target VM (remove from source VM config)": "Presunúť do cieľovej VM (odstrániť zo zdrojovej VM)", "Moving the data volumes aside": "Presúvanie dátových zväzkov bokom", - "Moving the data volumes aside...": "Presunúť dáta nabok...", + "Moving the data volumes aside...": "Dátové zväzky sa presúvajú bokom...", "Multi-container application": "Aplikácia s viacerými kontajnermi", "Multi-container application (experimental)": "Použitie viacerých kontajnerov (experimentálne)", - "Multi-line variables are not supported": "Multi-line premenné nie sú podporované", + "Multi-line variables are not supported": "Viacriadkové premenné nie sú podporované", "Multiple networks or external networks are not yet supported": "Viaceré siete alebo externé siete zatiaľ nie sú podporované", "Multiple recovery groups found in PBS. Pick the one that originally created the keyfile:": "V PBS sa našlo viac obnovovacích skupín. Vyberte tú, ktorá pôvodne vytvorila keyfile:", "Multiple rootfs directories were found in this archive. Restore cannot continue automatically.": "V tomto archíve sa našlo viac priečinkov rootfs. Automatická obnova nemôže pokračovať.", @@ -3912,7 +3975,7 @@ "NVIDIA Actions": "Akcie pre NVIDIA", "NVIDIA CPU hiding already configured": "NVIDIA CPU skrytie už je nastavené", "NVIDIA Container Toolkit": "NVIDIA Container Toolkit", - "NVIDIA Container Toolkit could not generate the runtime inventory": "NVIDIA Container Toolkit nemohol vygenerovať časový inventár", + "NVIDIA Container Toolkit could not generate the runtime inventory": "NVIDIA Container Toolkit nedokázal vytvoriť zoznam súčastí prostredia NVIDIA", "NVIDIA Container Toolkit installed. GPU validation pending until the host restarts.": "Nainštalovaná súprava NVIDIA Container Toolkit. Čaká sa na overenie GPU, kým sa hostiteľ nereštartuje.", "NVIDIA Container Toolkit is incomplete. Missing:": "NVIDIA Container Toolkit je neúplná. Chýba:", "NVIDIA Container Toolkit is installed but its command line did not answer.": "NVIDIA Container Toolkit je nainštalovaný, ale jeho príkazový riadok neodpovedá.", @@ -3931,7 +3994,7 @@ "NVIDIA KVM hiding (cpu hidden=1)": "NVIDIA KVM skrytie (cpu hidden=1)", "NVIDIA KVM hiding already configured": "NVIDIA KVM skrytie už je nastavené", "NVIDIA Patch": "NVIDIA patch", - "NVIDIA device outside the expected native profile": "Zariadenie NVIDIA mimo očakávaného prirodzeného profilu", + "NVIDIA device outside the expected native profile": "Zariadenie NVIDIA mimo očakávaného natívneho profilu", "NVIDIA driver": "Ovládač NVIDIA", "NVIDIA driver installed successfully.": "Ovládač NVIDIA bol úspešne nainštalovaný.", "NVIDIA driver installed:": "Ovládač NVIDIA nainštalovaný:", @@ -3939,7 +4002,7 @@ "NVIDIA drivers are not installed or not loaded on this host.": "NVIDIA ovládače nie sú na tomto hostovi nainštalované alebo načítané.", "NVIDIA host services disabled for VFIO mode": "NVIDIA služby hosta vypnuté pre VFIO režim", "NVIDIA host services/autoload already aligned for native mode": "Služby/autoload NVIDIA na hoste už sú pripravené pre natívny režim", - "NVIDIA inside the container does not match the host driver or GPU": "NVIDIA vo vnútri kontajnera nezodpovedá hostiteľovi alebo GPU", + "NVIDIA inside the container does not match the host driver or GPU": "NVIDIA v kontajneri nezodpovedá ovládaču hostiteľa alebo GPU", "NVIDIA install incomplete. Check log:": "NVIDIA inštalácia nie je kompletná. Skontrolujte záznam:", "NVIDIA installer downloaded successfully": "NVIDIA inštalátor bol úspešne stiahnutý", "NVIDIA installer extracted.": "NVIDIA inštalátor rozbalený.", @@ -3965,7 +4028,7 @@ "NVIDIA uninstaller completed.": "NVIDIA odinštalovanie je dokončené.", "NVIDIA update failed for LXC": "Aktualizácia NVIDIA zlyhala pre LXC", "NVIDIA userspace libraries installed.": "NVIDIA userspace knižnice nainštalované.", - "NVML does not match the current host driver": "NVML nezodpovedá aktuálnemu hostiteľskému vodičovi", + "NVML does not match the current host driver": "NVML nezodpovedá aktuálnemu ovládaču hostiteľa", "NVMe Disk Detected": "Zistený NVMe disk", "NVMe critical_warning is 0 (no critical warnings reported).": "Kritické varovanie NVMe je 0 (žiadne kritické varovania nie sú hlásené).", "NVMe health status: PASSED": "Stav NVMe: V PORIADKU", @@ -4052,7 +4115,7 @@ "New backup job": "Nová úloha zálohy", "New backups on this host will be unencrypted until a new keyfile is set up.": "Nové zálohy na tomto hostovi budú nešifrované, kým nenastavíte nový keyfile.", "New image compatible:": "Nový obraz je kompatibilný:", - "New image installed": "Inštalovaný nový obrázok", + "New image installed": "Nový obraz je nainštalovaný", "New image installed, not verified yet": "Nový obraz je nainštalovaný, zatiaľ neoverený", "New image verified, not saved yet": "Nový obraz je overený, zatiaľ neuložený", "New kernel staged; rebuilding DKMS drivers:": "Nový kernel je pripravený; znovu zostavujem DKMS ovládače:", @@ -4246,7 +4309,7 @@ "No folders found in /mnt. Please create a new folder.": "V /mnt sa nenašli žiadne priečinky. Vytvorte nový priečinok.", "No folders found inside /mnt in the CT.": "V kontajneri sa v /mnt nenašli žiadne priečinky.", "No format-safe disks are available.": "Nie sú dostupné žiadne disky vhodné na bezpečné formátovanie.", - "No free ProxMenux private /24 network is available": "Nie je k dispozícii žiadna bezplatná sieť ProxMenux private /24", + "No free ProxMenux private /24 network is available": "Nie je dostupná žiadna voľná súkromná sieť ProxMenux /24", "No gasket DKMS registrations remain.": "Nezostávajú žiadne registrácie gasket DKMS.", "No group creation required — uses world-writable sticky bit permissions.": "Nie je potrebné vytvárať skupinu - používa sa zápis pre všetkých so sticky bitom.", "No guest selected.": "Nie je vybratý žiadny hosť.", @@ -4436,7 +4499,7 @@ "OVH server detection and RTM installation process completed": "Kontrola OVH servera a inštalácia RTM sú dokončené", "Object detector": "Detektor objektov", "Object detector for Frigate": "Detektor objektov pre Frigate", - "Observer is not responding on port 4357": "Pozorovateľ nereaguje na prístav 4357", + "Observer is not responding on port 4357": "Observer neodpovedá na porte 4357", "Obsidian is a note-taking app that lets you create, link, and organize your notes on your device, with hundreds of plugins and themes to customize your workflow. You can also publish your notes online, access them offline, and sync them securely with end-to-end encryption.": "Obsidian umožňuje vytvárať, prepájať a usporadúvať poznámky na vašom zariadení. Stovky doplnkov a tém prispôsobia pracovný postup. Poznámky môžete publikovať online, používať offline a bezpečne synchronizovať s koncovým šifrovaním.", "Offer as exit node?": "Ponúknuť ako exit node?", "Official Duplicati image: encrypted, incremental backups to local, network and cloud storage.": "Oficiálny obraz Duplicati: šifrované prírastkové zálohy do lokálneho, sieťového aj cloudového úložiska.", @@ -4496,8 +4559,8 @@ "OpenClaw is a personal AI assistant you run on your own devices": "OpenClaw je osobný asistent AI, ktorý prevádzkujete na vlastných zariadeniach", "OpenList": "OpenList", "OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.": "OpenShot Video Editor je ocenený bezplatný a open-source video editor pre Linux, Mac a Windows a je venovaný poskytovaniu kvalitných riešení pre editáciu videa a animácie svetu.", - "OpenVINO requires a CPU quota to keep the CPU topology": "OpenVINO requires a CPU kvóta pre udržanie topológie procesora", - "OpenVINO requires the render device of an Intel GPU": "OpenVINO requires zariadenie Intel GPU", + "OpenVINO requires a CPU quota to keep the CPU topology": "OpenVINO vyžaduje kvótu CPU na zachovanie topológie CPU", + "OpenVINO requires the render device of an Intel GPU": "OpenVINO vyžaduje vykresľovacie zariadenie GPU Intel", "OpenVSwitch installation could not be verified": "Inštaláciu OpenVSwitch sa nepodarilo overiť", "OpenVSwitch installed successfully": "OpenVSwitch bol úspešne nainštalovaný", "OpenVSwitch is ready to use": "OpenVSwitch je pripravený na použitie", @@ -4547,7 +4610,7 @@ "Original ZFS ARC config restored from .bak": "Pôvodné nastavenie ZFS ARC bolo obnovené zo súboru .bak", "Original bashrc restored": "Pôvodný bashrc bol obnovený", "Original logrotate configuration restored": "Pôvodné nastavenie logrotate bolo obnovené", - "Orphan stack contract archived:": "@ info: whatsthis", + "Orphan stack contract archived:": "Osirelá definícia zostavy bola archivovaná:", "Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client.": "OSCam je modul podmieneného prístupu s otvoreným zdrojovým kódom na dekódovanie vysielania DVB pomocou čipových kariet. Funguje ako server aj klient.", "Other Prebuilt Linux VMs": "Ďalšie pripravené Linux VM", "Output archive:": "Výstupný archív:", @@ -4687,7 +4750,7 @@ "Peers reach the server through the public address and the UDP port given during the installation, so that port must be forwarded to this container.": "Účastníci sa pripájajú k serveru cez verejnú adresu a port UDP zadané počas inštalácie. Tento port musí byť presmerovaný do kontajnera.", "Peers to create: a number (3) or a list of names (phone,laptop)": "Účastníci na vytvorenie: počet (3) alebo zoznam mien (phone,laptop)", "Pelorus is an AI navigator for Selkies-powered Linux desktops. Pelorus runs a FastAPI server that gives an LLM agent (Ollama, OpenAI-compatible, or Gemini) control over mouse, keyboard, screenshot, and window management via the Pixelflux computer-use backend, a Linux accessibility tree (AT-SPI), and optional KWin D-Bus integration.": "Pelorus je navigátor AI pre linuxové pracovné plochy využívajúce Selkies. Server FastAPI dáva agentovi LLM (Ollama, model kompatibilný s OpenAI alebo Gemini) ovládanie myši, klávesnice, snímok obrazovky a správy okien cez backend Pixelflux, strom prístupnosti Linuxu AT-SPI a voliteľnú integráciu KWin D-Bus.", - "Pending components:": "Trvalé komponenty:", + "Pending components:": "Čakajúce komponenty:", "Pending restore ID:": "ID čakajúcej obnovy:", "Pending restore dir:": "Priečinok čakajúcej obnovy:", "Pending restore prepared. A reboot is required to complete it.": "Čakajúca obnova je pripravená. Na jej dokončenie je potrebný reštart.", @@ -4838,7 +4901,7 @@ "Privacy-first finance app with envelope budgeting and multi-device sync.": "Finančná aplikácia s dôrazom na súkromie, obálkovým rozpočtom a synchronizáciou viacerých zariadení.", "Privacy-first, self-hosted PDF toolkit": "Súprava nástrojov PDF na vlastnom serveri s dôrazom na súkromie", "Private installation record saved": "Uložené súkromné záznamy o inštalácii", - "Private network assigned automatically:": "Privátne siete pridelené automaticky:", + "Private network assigned automatically:": "Automaticky pridelená súkromná sieť:", "Private network kept, because other containers still use it:": "Súkromná sieť ponechaná, pretože ju stále používajú iné kontajnery:", "Private network kept, because other guests still use it:": "Súkromná sieť zachovaná, pretože ju stále používajú iné VM alebo CT:", "Private network of the application released:": "Súkromná sieť uvoľnenej žiadosti:", @@ -4995,10 +5058,10 @@ "RawTherapee is a free, cross-platform raw image processing program!": "RawTherapee je bezplatný multiplatformový program na spracovanie fotografií vo formáte RAW.", "Rclone WebUI": "Rclone WebUI", "Rclone mount": "Pripojenie Rclone", - "Rclone mount active": "Comment", + "Rclone mount active": "Pripojenie Rclone je aktívne", "Rclone mount needs a privileged LXC with FUSE access. The container is dedicated to Rclone and its web UI must not be exposed to untrusted networks.": "Pripojenie Rclone vyžaduje privilegovaný kontajner LXC s prístupom k FUSE. Kontajner je vyhradený pre Rclone a jeho webové rozhranie nesmie byť prístupné z nedôveryhodných sietí.", "Rclone mount requires a privileged LXC with FUSE access. Use this profile only on a trusted node and network.": "Pripojenie cez Rclone vyžaduje privilegovaný kontajner LXC s prístupom k FUSE. Tento profil používajte iba na dôveryhodnom uzle a v dôveryhodnej sieti.", - "Rclone mount requires a privileged container": "Rclon mount requires privilegovaný kontajner", + "Rclone mount requires a privileged container": "Pripojenie Rclone vyžaduje privilegovaný kontajner", "Re-enter the BORG REPOKEY passphrase to confirm:": "Zadajte BORG REPOKEY frázu znova na potvrdenie:", "Re-running pre-check after repairs...": "Spúšťam predbežnú kontrolu znova po opravách...", "Reachable": "Dostupné", @@ -5097,9 +5160,9 @@ "Recreated stack checked": "Znovu vytvorené kontajnery aplikácie sú skontrolované", "Recreated:": "Znovu vytvorené:", "Recreating": "Znovu vytváram", - "Recreating requires a confirmed proposal": "Obnovenie requires potvrdený návrh", - "Recreating the container...": "Obnovenie kontajnera...", - "Recreating the container:": "Obnovenie nádoby:", + "Recreating requires a confirmed proposal": "Opätovné vytvorenie vyžaduje potvrdený návrh", + "Recreating the container...": "Kontajner sa znova vytvára...", + "Recreating the container:": "Kontajner sa znova vytvára:", "Recreation completed. Data kept.": "Rekreácia dokončená. Údaje uchovávané.", "Recreation prepared": "Pripravené rekreácie", "Refresh APT index and verify repositories:": "Obnovte APT index a overte repozitáre:", @@ -5109,7 +5172,7 @@ "Refresh your browser to see changes (server restart may be required)": "Obnovte stránku v prehliadači, aby ste videli zmeny (môže byť potrebný reštart servera)", "Refreshing apt cache...": "Obnovujem apt cache...", "Refreshing the NVIDIA runtime...": "Obnovenie prevádzky NVIDIA...", - "Refusing an unexpected rootfs path:": "Odmietnutie nečakanej cesty ku koreňom:", + "Refusing an unexpected rootfs path:": "Odmietnutá neočakávaná cesta koreňového súborového systému:", "Regenerating PVE package cache...": "Znovu vytváram cache PVE balíkov...", "Regenerating boot artifacts for the merged kernel-agnostic changes...": "Znovu vytváram boot súbory pre zlúčené zmeny nezávislé od kernelu...", "Regenerating certificates and restarting services...": "Znovu generujem certifikáty a reštartujem služby...", @@ -5140,10 +5203,10 @@ "Reminder: You must install the QEMU Guest Agent inside the Windows VM": "Pripomienka: QEMU Guest Agent musíte nainštalovať aj priamo vo Windows VM", "Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, SSH and EXEC are supported.": "Remmina je vzdialený desktopový klient napísaný v GTK, ktorého cieľom je byť užitočný pre správcov systémov a cestujúcich, ktorí musia pracovať s množstvom vzdialených počítačov pred veľkými alebo malými obrazovkami. Remmina podporuje viaceré sieťové protokoly v integrovanom a konzistentnom užívateľskom rozhraní. V súčasnosti sú podporované programy RDP, VNC, SPICE, SSH a EXEC.", "Remote Access & VPN": "Vzdialený prístup a VPN", - "Remote dry run completed; no container was created.": "Diaľkový suchý beh dokončený; nebola vytvorená žiadna nádoba.", + "Remote dry run completed; no container was created.": "Vzdialený skúšobný beh bol dokončený; žiadny kontajner sa nevytvoril.", "Remote repository path:": "Vzdialená cesta repozitára:", "Remote server via SSH (recommended — off-host, dedup across machines)": "Vzdialený server cez SSH (odporúčané - mimo hosta, deduplikácia medzi strojmi)", - "Remote verified:": "Diaľkové overenie:", + "Remote verified:": "Vzdialené úložisko je overené:", "Remounting CIFS share with open permissions...": "Znovu pripájam CIFS zdieľanie s otvorenými oprávneniami...", "Removal command finished; review any warnings above.": "Príkaz na odstránenie sa dokončil; skontrolujte všetky upozornenia vyššie.", "Remove CIFS Mount": "Odstrániť CIFS mount", @@ -5250,7 +5313,7 @@ "Removing storage from Proxmox...": "Odstraňujem úložisko z Proxmoxu...", "Removing system limits optimizations...": "Odstraňujem optimalizácie systémových limitov...", "Removing the containers...": "Odstránenie kontajnerov...", - "Removing the incomplete stack...": "Odstránenie neúplného zásobníka...", + "Removing the incomplete stack...": "Nedokončená zostava sa odstraňuje...", "Removing the previous container": "Odstránenie predchádzajúceho kontajnera", "Removing this path deletes its container volume and the data in it:": "Odstránením tejto cesty sa vymaže jej trvalé úložisko aj všetky údaje v ňom:", "Removing utilities installed by ProxMenux...": "Odstraňujú sa pomôcky nainštalované používateľom ProxMenux...", @@ -5286,11 +5349,11 @@ "Required if using a VirtIO or SCSI disk.": "Vyžaduje sa pri použití VirtIO alebo SCSI disku.", "Required install helpers not available.": "Potrební pomocníci na inštaláciu nie sú dostupní.", "Required new path cancelled": "Pridanie novej povinnej cesty bolo zrušené", - "Required persistent paths cannot be removed": "Required perzistentné cesty nemožno odstrániť", + "Required persistent paths cannot be removed": "Povinné cesty trvalého úložiska nemožno odstrániť", "Required update helpers unavailable. Update stopped.": "Požadovaní pomocníci s aktualizáciou nie sú k dispozícii. Aktualizácia zastavená.", "Requires acl package. Skip if setfacl is not available.": "Vyžaduje balík acl. Preskočte, ak setfacl nie je dostupný.", "Requires authentication": "Vyžaduje prihlásenie", - "Reserving a private network...": "Zachovanie súkromnej siete...", + "Reserving a private network...": "Rezervuje sa súkromná sieť...", "Reset Capability Blocked": "Reset zariadenia nie je použiteľný", "Reset Capability Warning": "Upozornenie na reset schopnosť", "Reset Monitor Password": "Obnoviť heslo Monitora", @@ -5379,7 +5442,7 @@ "Review what will be removed": "Skontrolujte, čo sa odstráni", "Rip DVD and Blu-ray media from a browser": "Kopírovanie médií DVD a Blu-ray cez prehliadač", "Rollback: nothing to remove (host matches backup)": "Rollback: nie je čo odstrániť (host zodpovedá zálohe)", - "Rolling back the incomplete container": "Zatáčanie nedokončenej nádoby", + "Rolling back the incomplete container": "Nedokončený kontajner sa odstraňuje v rámci návratu do pôvodného stavu", "RomM is a self-hosted ROM manager for managing and playing game collections.": "RomM je správca obrazov ROM na vlastnom serveri na správu a hranie herných zbierok.", "Root SSH keys/config": "SSH kľúče/nastavenie roota", "Root inside container = root on host system": "Root v kontajneri = root na hostiteľskom systéme", @@ -5402,7 +5465,7 @@ "Run a full security audit": "Spustiť úplnú bezpečnostnú kontrolu", "Run a job now": "Spustiť úlohu teraz", "Run apt-get install -f to complete any pending package configurations": "Spustite apt-get install -f na dokončenie všetkých čakajúcich konfigurácií balíkov", - "Run as root on the Proxmox node; the registry contains private data": "Spustiť ako koreň na uzle Proxmox; register obsahuje súkromné údaje", + "Run as root on the Proxmox node; the registry contains private data": "Spustite pod používateľom root na uzle Proxmox; register obsahuje súkromné údaje", "Run as server or client? [s/c]:": "Spustiť ako server alebo klient? [s/c]:", "Run checklist again to verify upgrade:": "Spustite kontrolný zoznam znova na overenie aktualizácie:", "Run from console, or SSH inside tmux/screen": "Spustiť z konzoly alebo cez SSH vo vnútri tmux/screen", @@ -5928,7 +5991,7 @@ "Skip — leave as-is": "Preskočiť - nechať bez zmeny", "Skipped (no disks of the pool are present on this host):": "Preskočené (na tomto hostovi nie sú prítomné žiadne disky poolu):", "Skipped (some disks missing):": "Preskočené (niektoré disky chýbajú):", - "Skipped because Jellyfin did not create encoding.xml:": "Preskočené, pretože Jellyfin nevytvoril kódovanie.xml:", + "Skipped because Jellyfin did not create encoding.xml:": "Preskočené, pretože Jellyfin nevytvoril encoding.xml:", "Skipped device": "Zariadenie bolo preskočené", "Skipped to protect target system (would cascade-remove packages)": "Preskočené na ochranu cieľového systému (odstránilo by to ďalšie balíky)", "Skipped, not in apt cache:": "Preskočené, nie je v apt cache:", @@ -5980,18 +6043,18 @@ "Stable (main branch)": "Stabilná verzia (vetva main)", "Stable monitor service normalized.": "Služba Monitora pre stabilnú verziu je upravená.", "Stack": "Stack", - "Stack adapter not recognized by the translator": "Stack adaptér nerozpoznal prekladateľ", + "Stack adapter not recognized by the translator": "Nástroj na prevod nerozpoznal adaptér zostavy", "Stack backups are missing; a partial restore is not allowed": "Chýbajú zálohy, čiastočná obnova nie je povolená.", "Stack checked:": "Aplikácia je skontrolovaná:", "Stack members are missing; recreate them after verifying their volumes": "Chýbajú kontajnery aplikácie; znova ich vytvorte až po overení ich dátových zväzkov", - "Stack members are updated together with their stack": "Členovia Stack sú aktualizované spolu s ich stack", + "Stack members are updated together with their stack": "Kontajnery zostavy sa aktualizujú spoločne s celou zostavou", "Stack name": "Názov zostavy", "Stack records restored": "Záznamy všetkých kontajnerov aplikácie sú obnovené", "Stack records saved": "Záznamy kontajnerov aplikácie sú uložené", - "Stack records saved; no container was reinstalled.": "Stack záznamy uložené; žiadny kontajner bol znovu nainštalovaný.", + "Stack records saved; no container was reinstalled.": "Záznamy zostavy boli uložené; žiadny kontajner nebol preinštalovaný.", "Stack recovery completed; every member is back to its previous installation.": "Obnova celej aplikácie je dokončená; všetky jej kontajnery sa vrátili k predchádzajúcej inštalácii.", "Stack recreation completed. Data kept.": "Opätovné vytvorenie kontajnerov aplikácie je dokončené. Údaje zostali zachované.", - "Stack startup hook installed": "Nainštalovaný štartovací hák Stack", + "Stack startup hook installed": "Spúšťací skript zostavy je nainštalovaný", "Stack stopped": "Kontajnery aplikácie sú zastavené", "Stack update completed. Data kept.": "Aktualizácia aplikácie je dokončená. Údaje zostali zachované.", "Stack:": "Stack:", @@ -6059,8 +6122,8 @@ "Starting the main container and its dependencies...": "Spustenie hlavného kontajnera a jeho závislosti...", "Starting the service:": "Spustenie služby:", "Starting unprivileged container...": "Spúšťam neprivilegovaný kontajner...", - "Startup: coordinated by the stack startup hook": "Štartovanie: koordinované stack štartovacím hákom", - "Startup: independent, without hookscript": "Spustenie: nezávislé, bez skriptu", + "Startup: coordinated by the stack startup hook": "Spúšťanie: koordinované spúšťacím skriptom zostavy", + "Startup: independent, without hookscript": "Spúšťanie: samostatné, bez hookscript", "Static IP": "Statické IP", "Static IPv4 address": "Statická IPv4 adresa", "Static IPv4 address for": "Statická IPv4 adresa pre", @@ -6078,7 +6141,7 @@ "Stop that VM, then choose:": "Zastavte VM a potom vyberte:", "Stop the CT, unmount the disk on the HOST, and remount with:": "Zastavte CT, odpojte disk na HOSTE a pripojte ho znova pomocou:", "Stop the VM/CT before formatting this disk.": "Pred formátovaním tohto disku zastavte VM/CT.", - "Stop the container before the NVIDIA refresh": "Zastavte nádobu pred obnovou NVIDIA", + "Stop the container before the NVIDIA refresh": "Pred obnovením NVIDIA zastavte kontajner", "Stop the container if it's running:": "Ak kontajner beží, zastavte ho:", "Stop them first and run this script again.": "Najprv ich zastavte a potom spustite skript znova.", "Stop uploading to PBS": "Zastaviť nahrávanie do PBS", @@ -6144,8 +6207,8 @@ "Subscription banner restored successfully (desktop and mobile)": "Hlásenie o predplatnom bolo úspešne obnovené (desktop aj mobil)", "Success": "Úspech", "Successful": "Úspešné", - "Supervisor does not confirm healthy and supported yet": "Dozorca zatiaľ nepotvrdil zdravie a podporu", - "Supervisor reports no connectivity; retrying to get versions and install components": "Supervízor nenahlási žiadnu konektivitu; znovu sa snaží získať verzie a inštalovať komponenty", + "Supervisor does not confirm healthy and supported yet": "Supervisor zatiaľ nepotvrdzuje zdravý a podporovaný stav", + "Supervisor reports no connectivity; retrying to get versions and install components": "Supervisor hlási neprítomnosť pripojenia; opakuje sa zisťovanie verzií a inštalácia komponentov", "Supported formats: .img, .qcow2, .vmdk, .raw": "Podporované formáty: .img, .qcow2, .vmdk, .raw", "Suspend - pauses the guest during backup": "Suspend – pozastaví hosťa počas zálohovania", "Swap": "Swap", @@ -6164,12 +6227,12 @@ "Switching to GPU -> VM mode requires exclusive VFIO binding.": "Prepnutie do režimu GPU -> VM vyžaduje výhradné VFIO naviazanie.", "Symbolic link in a restored volume path": "Symbolické spojenie v obnovenej ceste zväzku", "Symbolic link in the path of an adaptation": "Symbolický odkaz na ceste adaptácie", - "Symbolic link loop in the new image": "Symbolická slučka na novom obrázku", - "Symbolic link outside the rootfs of the new image": "Symbolický odkaz mimo rootfs nového obrázku", + "Symbolic link loop in the new image": "Slučka symbolických odkazov v novom obraze", + "Symbolic link outside the rootfs of the new image": "Symbolický odkaz smeruje mimo koreňového súborového systému nového obrazu", "Synchronize time automatically": "Automaticky synchronizovať čas", "Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are.": "Synclounge je nástroj tretej strany, ktorý umožňuje sledovať Plex v synchronizácii so svojimi priateľmi / rodinou, kdekoľvek ste.", "Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.": "Syncthing nahrádza proprietárnu synchronizáciu a cloudové služby niečím otvoreným, dôveryhodným a decentralizovaným. Vaše údaje sú len vaše údaje a zaslúžite si vybrať, kde sú uložené, ak sú zdieľané s nejakou treťou stranou a ako sa prenášajú cez internet.", - "Sysctl not namespaced or not valid:": "Sysctl nie je menovaný alebo neplatný:", + "Sysctl not namespaced or not valid:": "Nastavenie sysctl nie je oddelené menným priestorom alebo je neplatné:", "System": "Systém", "System CLI Tools": "Systémové CLI nástroje", "System Disk Size (GB)": "Veľkosť systémového disku (GB)", @@ -6223,7 +6286,7 @@ "Telegram is a cloud-based mobile and desktop messaging app.": "Telegram je mobilná a desktopová aplikácia na báze cloudových správ.", "Temporary data container:": "Dočasný dátový kontajner:", "Temporary login": "Dočasné prihlásenie", - "Temporary password retrieved": "Dočasné obnovenie hesla", + "Temporary password retrieved": "Dočasné heslo bolo získané", "Temporary working directory (if present):": "Dočasný pracovný priečinok (ak existuje):", "Terminal Multiplexers": "Terminálové multiplexery", "Terminal multiplexer (Ctrl+b then d to detach, or type exit)": "Terminálový multiplexer (Ctrl+b potom d na odpojenie, alebo napíšte exit)", @@ -6247,9 +6310,9 @@ "Thank you for using ProxMenux. Goodbye!": "Ďakujeme, že používate ProxMenux. Dovidenia!", "That VM is currently stopped, so the GPU can be reassigned now.": "Tá VM je momentálne zastavená, takže GPU sa teraz dá presunúť.", "That doesn't look like an SSH private key. Pick the private key file (no .pub extension, parseable by ssh-keygen).": "Toto nevyzerá ako súkromný SSH kľúč. Vyberte súbor súkromného kľúča (bez prípony .pub, čitateľný cez ssh-keygen).", - "The AMD GPU did not complete a test inference with ROCm": "AMD GPU nedokončil testovanie s ROCm", + "The AMD GPU did not complete a test inference with ROCm": "GPU AMD nedokončilo skúšobný výpočet pomocou ROCm", "The AMD driver does not offer its compute interface (/dev/kfd) on this host.": "Ovládač AMD neponúka svoje výpočtové rozhranie (/dev/kfd) na tomto hostiteľovi.", - "The AppArmor/seccomp relaxation does not include the required consent": "AppArmor/seccomp relaxácia nezahŕňa súhlas required", + "The AppArmor/seccomp relaxation does not include the required consent": "Uvoľnenie obmedzení AppArmor/seccomp nemá požadovaný súhlas", "The Bookmark Everything App": "Aplikácia na ukladanie záložiek všetkého druhu", "The Brave browser is a fast, private and secure web browser for PC, Mac and mobile.": "Prehliadač Brave je rýchly, súkromný a bezpečný webový prehliadač pre PC, Mac a mobil.", "The CT already exists:": "CT už existuje:", @@ -6259,15 +6322,15 @@ "The Compose file does not contain a Compose document": "Súbor neobsahuje dokument Compose", "The Compose file is not valid YAML:": "Súbor Compose nie je platný YAML:", "The Compose offers an optional AppArmor or seccomp relaxation; it will stay disabled unless the user selects it. Continue only if you trust the image and accept this risk.": "Súbor Compose ponúka voliteľné uvoľnenie obmedzení AppArmor alebo seccomp, ktoré zostane vypnuté, kým ho používateľ nevyberie. Pokračujte iba vtedy, ak obrazu dôverujete a riziko prijímate.", - "The Compose value must be text or a list:": "Kompozitná hodnota musí byť text alebo zoznam:", - "The DRM node is not an Intel or AMD GPU; NVIDIA requires its library profile": "DRM uzol nie je Intel ani AMD GPU; NVIDIA requires svoj profil knižnice", - "The Entrypoint/Cmd combination is empty": "Vstupný bod/Cmd combination je prázdny", + "The Compose value must be text or a list:": "Hodnota Compose musí byť text alebo zoznam:", + "The DRM node is not an Intel or AMD GPU; NVIDIA requires its library profile": "Uzol DRM nie je GPU Intel ani AMD; NVIDIA vyžaduje profil so svojimi knižnicami", + "The Entrypoint/Cmd combination is empty": "Kombinácia Entrypoint/Cmd je prázdna", "The FUSE publication helper was not found": "Pomocník FUSE nebol nájdený", "The GPU evidence does not match the verified devices": "Dôkazy GPU nezodpovedajú overeným zariadeniam", "The GPU has been moved out of VM": "GPU bola presunutá mimo VM", "The GPU identity or permissions changed; the container is not modified": "Identita alebo povolenia GPU sa zmenili; kontajner sa nemení", "The GPU is being detached from VM": "GPU sa odpája z VM", - "The GPU vendor differs from the requested profile": "Predajca GPU sa líši od požadovaného profilu", + "The GPU vendor differs from the requested profile": "Výrobca GPU nezodpovedá požadovanému profilu", "The GPU vendor does not match the selected GPU profile:": "Dodávateľ GPU nezodpovedá zvolenému profilu GPU:", "The Immich CPU quota cannot be reproduced": "Kvóta Immich CPU nemôže byť reprodukovaná", "The Immich library needs at least 8 GB": "Knižnica Immich potrebuje aspoň 8 GB", @@ -6276,7 +6339,7 @@ "The LXC changed while reviewing; nothing was adopted": "LXC sa zmenil počas kontroly;nič nebolo prijaté", "The LXC could not be started.": "LXC sa nepodarilo spustiť.", "The LXC has no Bash to run this script with. The addon was not run.": "LXC nemá Bash na spustenie tohto skriptu. Doplnok nebol spustený.", - "The LXC has stopped": "LXC zastavil", + "The LXC has stopped": "Kontajner LXC sa zastavil", "The LXC is stopped. Do you want to start it to run the addon?": "LXC je zastavený. Chcete ho spustiť, aby sa spustil doplnok?", "The Lounge starts in public mode: anyone who reaches the address opens the client without logging in, and the IRC networks added are lost when the session ends.": "The Lounge začína vo verejnom režime: každý s prístupom na adresu otvorí klienta bez prihlásenia. Pridané siete IRC sa po skončení relácie stratia.", "The MAC address of the container cannot be kept": "Adresa MAC kontajnera sa nemôže uchovávať", @@ -6284,10 +6347,10 @@ "The NVIDIA Container Toolkit signing key could not be read.": "Nepodarilo sa prečítať podpisový kľúč súpravy NVIDIA Container Toolkit.", "The NVIDIA Container Toolkit version cannot be identified": "Verzia NVIDIA Container Toolkit sa nedá identifikovať", "The NVIDIA destination cannot be replaced": "Miesto určenia NVIDIA nemožno nahradiť", - "The NVIDIA destination escapes the rootfs": "Cieľ NVIDIA unikne koreňom", + "The NVIDIA destination escapes the rootfs": "Cieľ NVIDIA smeruje mimo koreňového súborového systému", "The NVIDIA driver is installed, but the Container Toolkit phase did not complete. GPU support for OCI containers is unavailable until it does.": "Ovládač NVIDIA je nainštalovaný, ale fáza Container Toolkit sa nedokončila. Podpora GPU pre kontajnery OCI nie je k dispozícii, kým sa nestane.", - "The NVIDIA driver or inventory changed; the operation was stopped": "Ovládač NVIDIA alebo inventár sa zmenili; operation bol zastavený", - "The NVIDIA hook or environment differs from the declared one": "Háčik alebo prostredie NVIDIA sa líši od deklarovaného", + "The NVIDIA driver or inventory changed; the operation was stopped": "Ovládač alebo zoznam zariadení NVIDIA sa zmenil; operácia bola zastavená", + "The NVIDIA hook or environment differs from the declared one": "Spúšťací skript alebo prostredie NVIDIA sa líši od deklarovaného", "The NVIDIA hook path does not belong to the installer": "Cesta k háku NVIDIA nepatrí inštalátorovi", "The NVIDIA installer needs at least": "NVIDIA inštalátor potrebuje aspoň", "The NVIDIA runtime is up to date; the container is not modified or started": "Runtime NVIDIA je aktuálny; kontajner nie je upravený ani spustený", @@ -6297,13 +6360,13 @@ "The OCI archive does not exist or is empty:": "Archív OCI neexistuje alebo je prázdny:", "The OCI archive verifier was not found": "Archívový overovateľ OCI nebol nájdený", "The OCI catalog is not installed. Update ProxMenux and try again.": "Katalóg OCI nie je nainštalovaný. Aktualizujte ProxMenux a skúste to znova.", - "The OCI contract changed while reviewing; nothing was adopted": "Zmluva OCI sa zmenila počas kontroly;nič nebolo prijaté", - "The OCI engine is not installed. Update ProxMenux and try again.": "Motor OCI nie je nainštalovaný. Aktualizovať ProxMenux a skúste to znova.", + "The OCI contract changed while reviewing; nothing was adopted": "Definícia OCI sa počas kontroly zmenila; nič sa neprevzalo", + "The OCI engine is not installed. Update ProxMenux and try again.": "Engine OCI nie je nainštalovaný. Aktualizujte ProxMenux a skúste to znova.", "The OCI image storage was not kept": "Uskladnenie obrazu OCI nebolo uchované", "The OCR language must use Tesseract codes, for example eng or eng+spa": "Jazyk OCR musí používať kódy Tesseract, napríklad eng alebo eng+spa", - "The PATH of the new image is outside the reproducible profile": "PATH nového obrázku je mimo reprodukovateľného profilu", + "The PATH of the new image is outside the reproducible profile": "Premenná PATH nového obrazu je mimo profilu, ktorý možno zopakovať", "The Paperless persistent volumes need at least 8 GB": "Trvalé dátové zväzky aplikácie Paperless musia mať najmenej 8 GB", - "The PostgreSQL volume needs at least 4 GB": "Objem PostgreSQL potrebuje najmenej 4 GB", + "The PostgreSQL volume needs at least 4 GB": "Dátový zväzok PostgreSQL musí mať najmenej 4 GB", "The PostgreSQL volume needs at least 8 GB": "Dátový zväzok PostgreSQL musí mať najmenej 8 GB", "The ProxMenux Monitor update checker is not available. Start or update ProxMenux Monitor and try again.": "Kontrola aktualizácií v ProxMenux Monitor nie je dostupná. Spustite alebo aktualizujte ProxMenux Monitor a skúste to znova.", "The Proxmox VE 8 update did not finish. The upgrade to Proxmox VE 9 was not started.": "Aktualizácia Proxmox VE 8 sa nedokončila. Prechod na Proxmox VE 9 sa nespustil.", @@ -6324,11 +6387,11 @@ "The VM is powered on. Turn it off before adding disks.": "VM je zapnutá. Pred pridaním diskov ju vypnite.", "The VM/LXC will lose access to this disk after formatting.": "VM/LXC po formátovaní stratí prístup k tomuto disku.", "The VMID belongs to another container now and is not touched:": "VMID teraz patrí inému kontajneru; ten zostane nedotknutý:", - "The VMID or its contract is already in use; it is not adopted": "VMID alebo jeho zmluva sa už používa; nie je prijatá", + "The VMID or its contract is already in use; it is not adopted": "VMID alebo jeho definícia sa už používa; neprevezme sa", "The VMID was reused or its identity is unknown; the operation is blocked": "VMID bolo znova použité alebo identita kontajnera nie je známa; operácia je zablokovaná", "The VMID was reused or the container is on another node; it is not overwritten": "VMID bol opätovne použitý alebo kontajner je na inom uzle; nie je prepísaný", - "The VMID was taken during the installation:": "VMID bol vykonaný počas inštalácie:", - "The Valkey volume needs at least 1 GB": "Objem Valkey potrebuje aspoň 1 GB", + "The VMID was taken during the installation:": "VMID počas inštalácie obsadil iný proces:", + "The Valkey volume needs at least 1 GB": "Dátový zväzok Valkey musí mať najmenej 1 GB", "The acceleration evidence differs from the verified inventory": "Dôkazy zrýchlenia sa líšia od overeného súpisu", "The acceleration profile does not support this architecture:": "Profil zrýchlenia nepodporuje túto architektúru:", "The access rule added to this host directory is kept:": "Pravidlo prístupu pridané do tohto hostiteľského adresára sa zachová:", @@ -6336,7 +6399,7 @@ "The active kernel driver is not vfio-pci, but the entry will rebind the GPU to vfio-pci on the next reboot, breaking the LXC passthrough about to be configured.": "Aktívny ovládač jadra nie je vfio-pci, ale táto položka pri ďalšom reštarte znova naviaže GPU na vfio-pci, čím sa preruší prechod LXC, ktorý sa má konfigurovať.", "The active kernel driver is not vfio-pci, but the entry will rebind the GPU to vfio-pci on the next reboot.": "Aktívny ovládač jadra nie je vfio-pci, ale táto položka pri ďalšom reštarte znova pripojí GPU k vfio-pci.", "The adaptation content was modified": "Obsah úpravy bol upravený", - "The added disk needs a whole-GiB size recorded by Proxmox": "Pridaný disk potrebuje veľkosť celého GiB zaznamenanú Proxmox", + "The added disk needs a whole-GiB size recorded by Proxmox": "Pridaný disk musí mať v Proxmoxe zaznamenanú veľkosť v celých GiB", "The added disk size is not a whole GiB": "Pridaná veľkosť disku nie je celý GiB", "The additional path hides a system directory": "Ďalšia cesta skrýva systémový adresár", "The address is already assigned on this host or cluster:": "Adresa je už priradená na tomto hostiteľovi alebo v klastri:", @@ -6349,10 +6412,10 @@ "The application could not be modified:": "Aplikáciu nebolo možné upraviť:", "The application could not be recovered:": "Aplikáciu sa nepodarilo znova zaregistrovať:", "The application could not be recreated:": "Aplikáciu nebolo možné znova vytvoriť:", - "The application did not complete its initial setup:": "Žiadosť nevyplnila svoje pôvodné nastavenie:", + "The application did not complete its initial setup:": "Aplikácia nedokončila úvodné nastavenie:", "The application did not get an address on the access network:": "Aplikácia nedostala adresu v prístupovej sieti:", "The application did not pass its HTTP check:": "Aplikácia neprešla kontrolou HTTP:", - "The application did not respond in time:": "Žiadosť neodpovedala včas:", + "The application did not respond in time:": "Aplikácia neodpovedala včas:", "The application has been modified with the new options.": "Nastavenia aplikácie boli upravené.", "The application has been recreated with the new options.": "Aplikácia bola znovu vytvorená s novými možnosťami.", "The application needs it for": "Aplikácia to potrebuje pre", @@ -6361,7 +6424,7 @@ "The application was removed": "Aplikácia bola odstránená", "The archive could not be extracted.": "Archív sa nepodarilo rozbaliť.", "The archive destination directory is INSIDE one of the paths you are about to back up. Writing the archive there would copy the backup into itself — producing a corrupted archive, or growing without limit until the disk fills up.": "Cieľový priečinok archívu je VNÚTRI jednej z ciest, ktoré sa chystáte zálohovať. Zápis archívu na toto miesto by zálohu kopíroval samu do seba - vznikol by poškodený archív alebo by rástol, kým sa disk nezaplní.", - "The backup could not be identified; the image is not replaced": "Zálohovanie nebolo možné identifikovať; obrázok nie je nahradený", + "The backup could not be identified; the image is not replaced": "Zálohu sa nepodarilo identifikovať; obraz sa nenahradí", "The backup could not be started on node": "Zálohovanie nebolo možné spustiť na uzle", "The backup did not pass its integrity check; creating it again...": "Záloha neprešla kontrolou integrity;vytváram to znova...", "The backup made before changing the application does not fit on the system disk of the host.": "Záloha vytvorená pred zmenou aplikácie sa nezmestí na systémový disk hostiteľa.", @@ -6372,11 +6435,11 @@ "The backup storage does not exist:": "Úložisko záloh neexistuje:", "The backup was altered; recovery blocked": "Záloha bola zmenená; obnova zablokovaná", "The backup was taken on a different PVE or kernel major.minor. These paths will be SKIPPED to keep the boot safe:": "Záloha bola vytvorená na inom PVE alebo inom major.minor kerneli. Tieto cesty sa PRESKOČIA, aby zostal štart bezpečný:", - "The bind mount target escapes the rootfs:": "Záväzná pripojiť cieľ unikne koreňom:", - "The block device does not exist:": "Blokovacie zariadenie neexistuje:", + "The bind mount target escapes the rootfs:": "Cieľ pripojenia bind smeruje mimo koreňového súborového systému:", + "The block device does not exist:": "Blokové zariadenie neexistuje:", "The build could not be checked beforehand; continuing without that check.": "Zostavenie nebolo možné vopred skontrolovať;pokračovanie bez tejto kontroly.", "The cached image does not match the current digest": "Comment", - "The cached image is damaged; it will be downloaded again.": "Comment", + "The cached image is damaged; it will be downloaded again.": "Obraz vo vyrovnávacej pamäti je poškodený; stiahne sa znova.", "The changes need the application installer": "Zmeny vyžadujú inštalačný program aplikácie", "The character device does not exist:": "Znakové zariadenie neexistuje:", "The command asks for a password that is not echoed. After creating the users, the web interface asks for a user name and a password.": "Príkaz sa opýta na heslo, ktoré sa pri písaní nezobrazuje. Po vytvorení používateľov bude webové rozhranie vyžadovať používateľské meno a heslo.", @@ -6390,21 +6453,21 @@ "The configuration changed after the new container was validated": "Konfigurácia zmenená po overení nového kontajnera", "The configuration changed during the NVIDIA refresh": "Konfigurácia sa zmenila počas obnovovania NVIDIA", "The configuration evidence does not match": "Konfiguračný dôkaz nezodpovedá", - "The configuration must run as root on Proxmox VE": "Konfigurácia musí bežať ako koreň na Proxmox VE", + "The configuration must run as root on Proxmox VE": "Nastavenie musí bežať pod používateľom root na Proxmox VE", "The configuration of a new member changed after it was created": "Nastavenie nového kontajnera sa po jeho vytvorení zmenilo", "The configuration stopped because of an unexpected error": "Konfigurácia sa zastavila kvôli neočakávanej chybe", "The configured credential helper could not be used. Check its installation and credential store.": "Nakonfigurovaný pomocný program na správu prihlasovacích údajov sa nedá použiť. Skontrolujte jeho inštaláciu a úložisko prihlasovacích údajov.", "The console of the container could not be configured": "Konzolu kontajnera nebolo možné nakonfigurovať", "The consume/export volumes need at least 1 GB": "Dátové zväzky pre consume a export musia mať najmenej 1 GB", - "The container could not be removed automatically:": "Nádoba sa nedala automaticky odstrániť:", - "The container could not be started:": "Nádoba nemohla byť spustená:", + "The container could not be removed automatically:": "Kontajner sa nepodarilo automaticky odstrániť:", + "The container could not be started:": "Kontajner sa nepodarilo spustiť:", "The container creation does not match the prepared instance": "Vytvorenie kontajnera nezodpovedá pripravenej inštancii", "The container devices do not match the saved record": "Zariadenie kontajnera nezodpovedá uloženému záznamu", - "The container did not stop to update its persistent configuration:": "Kontajner neprestal aktualizovať svoju pretrvávajúcu konfiguráciu:", + "The container did not stop to update its persistent configuration:": "Kontajner sa nezastavil na aktualizáciu svojich trvalých nastavení:", "The container did not stop; its disks are not touched": "Kontajner sa nezastavil; jeho disky nie sú dotknuté", "The container disks do not match the saved record": "disky kontajnera nezodpovedajú uloženému záznamu", - "The container does not exist:": "Nádoba neexistuje:", - "The container does not have the fuse=1 feature enabled": "Kontajner nemá poistky = 1 zapnuté", + "The container does not exist:": "Kontajner neexistuje:", + "The container does not have the fuse=1 feature enabled": "Kontajner nemá zapnutú funkciu fuse=1", "The container does not need it any more; an update downloads the new version when there is one.": "Kontajner ho už nepotrebuje. Pri aktualizácii sa stiahne nový obraz, ak je dostupný.", "The container gets its own address and its own volumes, so the networks and volumes declared in the file are not used.": "Kontajner dostane vlastnú adresu a vlastné dátové úložiská, preto sa siete a úložiská definované v súbore nepoužijú.", "The container has advanced Proxmox settings outside the supported profile": "Kontajner má pokročilé nastavenia Proxmox mimo podporovaného profilu", @@ -6417,17 +6480,17 @@ "The container is not modified because a host directory is not available:": "Kontajner nie je modifikovaný, pretože adresár hostiteľa nie je k dispozícii:", "The container is restarted to apply the changes. Its own data, the database and the other containers of the application are not touched.": "Kontajner sa reštartuje, aby sa zmeny uplatnili. Jeho vlastné údaje, databáza a ostatné kontajnery aplikácie nie sú dotknuté.", "The container no longer exists:": "Kontajner už neexistuje:", - "The container of a member was replaced; the assembly is not resumed": "Zásobník člena bol nahradený; zhromaždenie sa neobnovuje", + "The container of a member was replaced; the assembly is not resumed": "Kontajner zostavy bol nahradený; zostavovanie nebude pokračovať", "The container runs on another node of the cluster; migrate it back to this node to remove it:": "Kontajner beží na inom uzle klastra; migrujte ho späť do tohto uzla, aby ste ho odstránili:", "The container should now start as privileged": "Kontajner by sa teraz mal spustiť ako privilegovaný", "The container should now start as unprivileged": "Kontajner by sa teraz mal spustiť ako neprivilegovaný", - "The container stopped after starting:": "Nádoba sa zastavila po začatí:", - "The container stopped before publishing the mount": "Kontajner sa zastavil pred zverejnením vrchu", + "The container stopped after starting:": "Kontajner sa po spustení zastavil:", + "The container stopped before publishing the mount": "Kontajner sa zastavil pred sprístupnením pripojenia", "The container stopped before the GPU permissions were verified:": "Kontajner sa zastavil pred overením povolení GPU:", - "The container stopped before the application responded:": "Nádobka sa pred podaním žiadosti zastavila:", + "The container stopped before the application responded:": "Kontajner sa zastavil pred odpoveďou aplikácie:", "The container stopped:": "Kontajner sa zastavil:", "The container takes its time zone from Proxmox, so the time files of the host are not attached to it.": "Kontajner preberá časové pásmo z Proxmoxu, preto sa doň nepripájajú súbory hostiteľa s nastavením času.", - "The container was changed outside ProxMenux and an update would discard those changes:": "Kontajner bol zmenený mimo ProxMenux a aktualizácia by sa zbaviť týchto zmien:", + "The container was changed outside ProxMenux and an update would discard those changes:": "Kontajner bol zmenený mimo ProxMenuxu a aktualizácia by tieto zmeny zahodila:", "The container was created from a downloaded OCI image": "Kontajner bol vytvorený zo stiahnutého obrazu OCI", "The containers do not need them any more; an update downloads the new versions when there are any.": "Kontajnery ich už nepotrebujú; aktualizácia stiahne nové verzie, ak nejaké existujú.", "The containers were created from downloaded OCI images": "Kontajnery boli vytvorené zo stiahnutých obrazov OCI", @@ -6441,17 +6504,17 @@ "The current template requires a new persistent path:": "Aktuálna šablóna vyžaduje nové trvalé úložisko pre cestu:", "The custom path cannot hide system directories": "Vlastná cesta nemôže skryť systémové adresáre", "The custom path overlaps another mount": "Vlastná cesta sa prekrýva s iným bodom pripojenia", - "The data and document volumes need at least 8 GB": "Údaje a objemy dokumentov potrebujú najmenej 8 GB", + "The data and document volumes need at least 8 GB": "Dátové zväzky pre údaje a dokumenty musia mať najmenej 8 GB", "The database server must accept connections from the IP address of this container, with a user that is not limited to localhost.": "Databázový server musí prijímať pripojenia z IP adresy tohto kontajnera s užívateľom, ktorý nie je obmedzený na localhost.", - "The dedicated adapter still requires replaying its rootfs changes": "Špecializovaný adaptér stále requires prehráva svoje rootfs zmeny", + "The dedicated adapter still requires replaying its rootfs changes": "Vyhradený adaptér stále vyžaduje zopakovanie zmien koreňového súborového systému", "The dependency hook and the stack recipe differ": "Spúšťací skript závislostí nezodpovedá konfigurácii aplikácie", "The dependency hook was modified; review it before updating": "Spúšťací skript závislostí bol zmenený; pred aktualizáciou ho skontrolujte", "The developer-friendly cloud platform for building and running LLM agents for AI-native applications.": "Cloudová platforma pre vývojárov na tvorbu a prevádzku agentov LLM v aplikáciách postavených na AI.", "The device directory does not exist:": "Adresár zariadenia neexistuje:", - "The device must keep its /dev path inside the LXC:": "Zariadenie musí udržať svoju / Dev cestu vnútri LXC:", + "The device must keep its /dev path inside the LXC:": "Zariadenie musí mať v LXC zachovanú svoju cestu /dev:", "The device must keep its native path without duplicates": "Zariadenie musí udržiavať svoju pôvodnú cestu bez duplikátov", "The device to remove is not attached:": "Zariadenie na odstránenie nie je pripojené:", - "The directory contains no character devices:": "Adresár neobsahuje žiadne znaky zariadenia:", + "The directory contains no character devices:": "Adresár neobsahuje žiadne znakové zariadenia:", "The directory does not exist in the CT.": "Priečinok v CT neexistuje.", "The disk": "Disk", "The disk does not belong to this CT; automatic adoption is unsafe": "Disk nepatrí k tomuto CT;automatická adopcia nie je bezpečná", @@ -6459,23 +6522,23 @@ "The disk usage of the container could not be read": "Použitie disku kontajnera nebolo možné prečítať", "The disks of the failed attempt could not be removed and stay in the temporary container:": "Disky neúspešného pokusu sa nepodarilo odstrániť a zostávajú v dočasnom kontajneri:", "The domain must resolve to the public address of this network before the certificate can be issued.": "Pred vydaním certifikátu musí doména smerovať na verejnú adresu tejto siete.", - "The download client still needs to be configured.": "Stiahnuť klienta ešte treba nakonfigurovať.", - "The download stopped progressing; cancelling this attempt.": "Sťahovanie zastavilo postup, zrušilo tento pokus.", + "The download client still needs to be configured.": "Klienta na sťahovanie ešte treba nastaviť.", + "The download stopped progressing; cancelling this attempt.": "Sťahovanie prestalo napredovať; tento pokus sa ruší.", "The downloaded image does not match its manifest": "Stiahnutý obrázok nezodpovedá jeho manifestu", - "The downloaded image is corrupt:": "Stiahnutý obrázok je poškodený:", + "The downloaded image is corrupt:": "Stiahnutý obraz je poškodený:", "The dpkg package database is clean.": "Databáza balíkov dpkg je čistá.", "The driver installed but does not drive this GPU.": "Ovládač nainštalovaný, ale nepoháňa tento GPU.", "The dynamic NVIDIA hook is missing": "Dynamický NVIDIA hák chýba", "The dynamic NVIDIA hook is missing or duplicated": "Dynamický NVIDIA hák chýba alebo sa zdvojí", - "The dynamic NVIDIA profile requires an unprivileged LXC": "Dynamický profil NVIDIA requires a unprivileged LXC", - "The dynamic profile does not support static driver mounts": "Dynamický profil nepodporuje statické zapojenia vodiča", + "The dynamic NVIDIA profile requires an unprivileged LXC": "Dynamický profil NVIDIA vyžaduje neprivilegovaný kontajner LXC", + "The dynamic profile does not support static driver mounts": "Dynamický profil nepodporuje statické pripojenia ovládača", "The file does not exist, is empty or is not readable.": "Súbor neexistuje, je prázdny alebo sa nedá čítať.", "The file does not exist:": "Súbor neexistuje:", "The file is not a ProxMenux oci-compose.": "Súbor nie je ProxMenux oci-compose.", "The file is too large to be a Compose file": "Súbor je príliš veľký na súbor Compose", "The file is too large to be an oci-compose": "Súbor je príliš veľký na to, aby bol oci-compose", "The filesystem": "Súborový systém", - "The final cleanup did not complete:": "Konečné vyčistenie nedokončilo:", + "The final cleanup did not complete:": "Záverečné upratovanie sa nedokončilo:", "The following DKMS-managed drivers will now be rebuilt against it so they keep working after reboot:": "Nasledujúce ovládače spravované cez DKMS sa teraz znovu zostavia pre nový kernel, aby fungovali aj po reštarte:", "The following LXC containers have NVIDIA passthrough configured:": "Tieto LXC kontajnery majú nastavený NVIDIA passthrough:", "The following backup paths are kernel-tied and are excluded from the picker to keep the target's boot safe. The operator's own tuning inside these paths (IOMMU cmdline, VFIO IDs, custom quirks) is merged back automatically via kernel-agnostic merge:": "Nasledujúce cesty zálohy sú viazané na kernel a sú vylúčené z výberu, aby zostal štart cieľa bezpečný. Vlastné ladenie správcu v týchto cestách (IOMMU cmdline, VFIO ID, vlastné úpravy) sa automaticky znovu zlúči spôsobom nezávislým od kernelu:", @@ -6502,15 +6565,15 @@ "The host has no IPv4 address on the selected bridge": "Hostiteľ nemá IPv4 adresu na vybranom moste", "The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "Hostiteľ k nim stratí prístup. Ak skupina obsahuje sieťový alebo úložný radič, ktorý hostiteľ potrebuje, zrušte to v súhrne.", "The host monitor does not see the real host memory": "Monitor hostiteľa nevidí skutočnú pamäť hostiteľa", - "The host monitor does not share this host namespace:": "Monitor hostiteľa nezdieľa tento menový priestor hostiteľa:", + "The host monitor does not share this host namespace:": "Monitor hostiteľa nezdieľa tento menný priestor hostiteľa:", "The host monitor include is unknown or differs from the saved record": "Include monitora hostiteľa je neznámy alebo sa líši od uloženého záznamu", "The host monitor needs consent for privileged access to the host": "Hostiteľský monitor potrebuje súhlas na privilegovaný prístup k hostiteľovi", - "The host monitor profile does not support another sysctl include": "Profil monitora hostiteľa nepodporuje ďalšie sysctl patrí", + "The host monitor profile does not support another sysctl include": "Profil monitora hostiteľa nepodporuje ďalší pripojený konfiguračný súbor sysctl", "The host monitor uses the host network, without DHCP or its own gateway": "Hostiteľský monitor využíva hostiteľskú sieť bez DHCP alebo vlastnej brány", "The host port is already in use:": "Hostiteľský port sa už používa:", "The host-monitor firewall bridge does not match the selected bridge": "Bridge firewallu pre monitor hostiteľa nezodpovedá vybranému bridgeu", "The host-monitor firewall declaration is invalid": "Deklarácia firewallu pre monitor hostiteľa je neplatná", - "The host-monitor firewall port does not match exactly one TCP port in the container contract": "Port firewallu hostiteľa a monitora sa nezhoduje presne s jedným portom TCP v zmluve o kontajneri", + "The host-monitor firewall port does not match exactly one TCP port in the container contract": "Port firewallu monitora hostiteľa sa nezhoduje s práve jedným portom TCP v definícii kontajnera", "The host-monitor firewall port is invalid": "Port firewallu pre monitor hostiteľa je neplatný", "The host-monitor firewall port is not declared as the web port": "Port firewallu pre monitor hostiteľa nie je deklarovaný ako webový port", "The host-monitor firewall port is not declared by this profile": "Port firewallu pre monitor hostiteľa nie je deklarovaný týmto profilom", @@ -6518,15 +6581,15 @@ "The host-monitor web interface uses the host network.": "Webové rozhranie monitora hostiteľa používa sieť hostiteľa.", "The identity of a member was replaced": "Identita člena bola nahradená", "The image cache path is unsafe. Check the template storage before trying again.": "Cesta k vyrovnávacej pamäti obrazov nie je bezpečná. Pred ďalším pokusom skontrolujte úložisko šablón.", - "The image changes the user expected by the adapter": "Obrázok mení používateľa očakávaný adaptérom", + "The image changes the user expected by the adapter": "Obraz mení používateľa očakávaného adaptérom", "The image could not be downloaded or verified. Check registry and storage access, then try again.": "Obraz sa nepodarilo stiahnuť alebo overiť. Skontrolujte prístup k registru a úložisku a skúste to znova.", "The image could not be read from its registry:": "Obraz sa nepodarilo načítať z jeho registra:", - "The image declares data paths that are still stored in the rootfs": "Obrázok deklaruje dátové cesty, ktoré sú stále uložené v rootfs", - "The image did not grant the application user access to the devices; check its native init. Host permissions were not relaxed.": "Obrázok neumožňoval používateľovi aplikácie prístup k zariadeniam; skontrolujte jeho rodený init. Povolenie hostiteľa nebolo uvoľnené.", - "The image did not pass the integrity check": "Obrázok neprešiel kontrolou integrity", + "The image declares data paths that are still stored in the rootfs": "Obraz deklaruje dátové cesty, ktoré sú stále uložené v koreňovom súborovom systéme", + "The image did not grant the application user access to the devices; check its native init. Host permissions were not relaxed.": "Obraz nesprístupnil zariadenia používateľovi aplikácie; skontrolujte jeho natívne spúšťanie. Oprávnenia hostiteľa sa neuvoľnili.", + "The image did not pass the integrity check": "Obraz neprešiel kontrolou integrity", "The image documentation describes them:": "Popis nájdete v dokumentácii obrazu:", "The image does not declare support for this architecture:": "Obraz nevyhlasuje podporu tejto architektúry:", - "The image download did not complete correctly; downloading it again...": "Sťahovanie obrázku nebolo správne dokončené; sťahovanie...", + "The image download did not complete correctly; downloading it again...": "Sťahovanie obrazu sa nedokončilo správne; sťahuje sa znova...", "The image expects files that are given to it one by one:": "Obrázok očakáva súbory, ktoré sú mu dané jeden po druhom:", "The image is already up to date; nothing was changed.": "Obraz je už aktuálny, nič sa nezmenilo.", "The image is in its registry, for one architecture.": "Obraz je vo svojom registri, pre jednu architektúru.", @@ -6534,7 +6597,7 @@ "The image is in its registry:": "Obraz je dostupný vo svojom registri:", "The image manifest failed integrity verification. Try again or contact the image publisher.": "Overenie integrity manifestu obrazu zlyhalo. Skúste to znova alebo kontaktujte vydavateľa obrazu.", "The image or tag was not found on {registry}, or this account cannot access it. Check the reference.": "Obraz alebo tag sa v registri {registry} nenašiel alebo k nemu tento účet nemá prístup. Skontrolujte odkaz na obraz.", - "The image requests NVIDIA, but the host has no working NVIDIA driver": "Obrázok požaduje NVIDIA, ale hostiteľ nemá žiadny funkčný ovládač NVIDIA", + "The image requests NVIDIA, but the host has no working NVIDIA driver": "Obraz požaduje NVIDIA, ale hostiteľ nemá funkčný ovládač NVIDIA", "The image requests disabling part of the AppArmor or seccomp confinement. Continue only if you trust the image and accept this risk.": "Obraz požaduje vypnutie časti obmedzení AppArmor alebo seccomp. Pokračujte iba vtedy, ak obrazu dôverujete a riziko prijímate.", "The image requests disabling part of the AppArmor or seccomp confinement. The Compose offers an optional AppArmor or seccomp relaxation; it will stay disabled unless the user selects it. Continue only if you trust the image and accept this risk.": "Obraz požaduje vypnutie časti obmedzení AppArmor alebo seccomp. Súbor Compose ponúka ich voliteľné uvoľnenie, ktoré zostane vypnuté, kým ho používateľ nevyberie. Pokračujte iba vtedy, ak obrazu dôverujete a riziko prijímate.", "The image was not found in its registry, or it is private:": "Obrázok nebol nájdený v jeho registri, alebo je súkromný:", @@ -6548,15 +6611,15 @@ "The installation runs on the Proxmox node itself, as root": "Inštalácia beží priamo na uzle Proxmox pod používateľom root", "The installation stopped because of an unexpected error": "Inštalácia zastavená kvôli neočakávanej chybe", "The installation/changes require a server restart to apply correctly. Do you want to reboot now?": "Aby sa inštalácia alebo zmeny správne použili, server treba reštartovať. Chcete reštartovať teraz?", - "The installer must run as root on Proxmox VE": "Inštalatér musí spustiť ako koreň na Proxmox VE", + "The installer must run as root on Proxmox VE": "Inštalátor musí bežať pod používateľom root na Proxmox VE", "The instance changed while it was being edited; configure Recreate again": "Inštancia sa zmenila počas editácie; znovu nakonfigurujte Recreate", "The instance changed while it was being edited; open Modify again": "Inštancia sa zmenila počas úpravy; znova otvorte Upraviť", - "The instance does not use NVIDIA": "Tento prípad nepoužíva NVIDIU", - "The instance has a pending operation": "Inštancia má prebiehajúci operation", + "The instance does not use NVIDIA": "Táto inštancia nepoužíva NVIDIA", + "The instance has a pending operation": "Inštancia má nedokončenú operáciu", "The instance identity or status must be reviewed before updating.": "Pred aktualizáciou treba preveriť identitu alebo stav inštancie.", - "The instance is not ready to be updated": "Prípad nie je pripravený na aktualizáciu", - "The instance is not ready; review its pending operation": "Inštancia nie je pripravená; preskúma svoju očakávanú operation", - "The instance record operation did not complete; no container was modified.": "Záznam o inštancii operation sa nedokončil; žiadna nádoba nebola zmenená.", + "The instance is not ready to be updated": "Inštancia nie je pripravená na aktualizáciu", + "The instance is not ready; review its pending operation": "Inštancia nie je pripravená; skontrolujte jej nedokončenú operáciu", + "The instance record operation did not complete; no container was modified.": "Operácia so záznamom inštancie sa nedokončila; žiadny kontajner sa nezmenil.", "The instance registry is not safe": "Inštančný register nie je bezpečný", "The journal belongs to another VMID": "Záznam operácie patrí inému VMID", "The journal belongs to another stack": "Záznam operácie patrí inej aplikácii s viacerými kontajnermi", @@ -6572,35 +6635,35 @@ "The main member must stop first and start last": "Hlavný kontajner sa musí zastaviť ako prvý a spustiť ako posledný", "The main member of the stack is missing": "Chýba hlavný kontajner aplikácie", "The managed host firewall rule could not be removed and was left unchanged.": "Spravované pravidlo firewallu hostiteľa sa nepodarilo odstrániť a zostalo bez zmeny.", - "The manifest does not match its digest": "Manifest nezodpovedá jeho tráveniu", + "The manifest does not match its digest": "Manifest nezodpovedá svojmu identifikátoru digest", "The member journal belongs to another stack operation": "Záznam operácie člena aplikácie patrí k inej operácii celej aplikácie", "The member journal is outside the registry": "Záznam operácie člena aplikácie je mimo registra", "The mode of this job is stop: its guests are shut down during the backup.": "Režim tejto úlohy je stop: jej hostia sú počas zálohovania vypnutí.", - "The mount evidence does not match the verified directories": "Pripojiť dôkazy nezodpovedá overených adresárov", + "The mount evidence does not match the verified directories": "Záznam o pripojení nezodpovedá overeným adresárom", "The mount source or options were not kept": "Zdroj alebo možnosti pripojenia neboli zachované", - "The mounted source differs from the configured directory": "Inštalovaný zdroj sa líši od nakonfigurovaného adresára", + "The mounted source differs from the configured directory": "Pripojený zdroj sa líši od nastaveného adresára", "The mounts of the new container do not match the proposal": "Pripojené cesty nového kontajnera nezodpovedajú návrhu", "The name must start with a lowercase letter and use only lowercase letters, digits, - or _": "Názov musí začínať malým písmenom a používať iba malé písmená, číslice, - alebo _", "The native GPU permissions were not kept": "Natívne povolenia GPU neboli ponechané", - "The native unprivileged idmap is required": "Natívne neprivilegované idmapa je required", + "The native unprivileged idmap is required": "Vyžaduje sa natívne mapovanie ID neprivilegovaného kontajnera", "The new SSH key was installed and is now authorized on the server.\nKey file:": "Nový SSH kľúč bol nainštalovaný a je teraz povolený na serveri.\nSúbor kľúča:", "The new SSH key was pushed to the LXC via 'pct exec' on": "Nový SSH kľúč bol odoslaný do LXC cez 'pct exec' na", - "The new Valkey volume contains unexpected data": "Nový Valkey objem obsahuje neočakávané dáta", - "The new container did not pass validation": "Nová nádoba neprešla validáciou", + "The new Valkey volume contains unexpected data": "Nový dátový zväzok Valkey obsahuje neočakávané údaje", + "The new container did not pass validation": "Nový kontajner neprešiel overením", "The new container is not authorized by the operation journal": "Záznam operácie nepovoľuje tento nový kontajner", - "The new image adds a symbolic link in a generated path": "Nový obrázok pridáva symbolické spojenie na generovanej ceste", + "The new image adds a symbolic link in a generated path": "Nový obraz pridáva symbolický odkaz do generovanej cesty", "The new image changes the PostgreSQL major version; the data must be migrated before updating": "Nový obraz mení hlavnú verziu PostgreSQL; pred aktualizáciou je potrebné migrovať údaje", - "The new image could not be installed": "Nový obrázok nemohol byť nainštalovaný", - "The new image could not be installed:": "Nový obrázok sa nepodarilo nainštalovať:", - "The new image does not fit on the storage where images are downloaded:": "Nový image sa nezmestí na úložisko, kam sa sťahujú image:", - "The new image does not keep a required executable": "Nový obrázok neudržuje spustiteľný required", + "The new image could not be installed": "Nový obraz sa nepodarilo nainštalovať", + "The new image could not be installed:": "Nový obraz sa nepodarilo nainštalovať:", + "The new image does not fit on the storage where images are downloaded:": "Nový obraz sa nezmestí na úložisko určené na sťahovanie obrazov:", + "The new image does not keep a required executable": "Nový obraz neobsahuje požadovaný spustiteľný súbor", "The new image is more recent than the minimum age set for scheduled updates; it is not installed yet.": "Nový obraz zatiaľ nedosiahol minimálny vek nastavený pre plánované aktualizácie, preto sa ešte nenainštaluje.", "The new image requires additional persistent paths": "Nový obraz vyžaduje ďalšie trvalé dátové adresáre", "The new image requires additional persistent paths; use Modify": "Nový obraz vyžaduje ďalšie trvalé cesty; použite Upraviť", "The new image requires additional persistent paths; use Recreate": "Nový obrázok requires ďalšie pretrvávajúce cesty; používať Recreate", "The new prompt will be used in new terminal sessions.": "Nový príkazový riadok sa použije v nových reláciách terminálu.", "The next visit to the dashboard will show the initial setup wizard.": "Pri ďalšom otvorení dashboardu sa zobrazí úvodný sprievodca nastavením.", - "The observed inventory differs from the validated runtime": "Pozorovaný inventár sa líši od overeného času", + "The observed inventory differs from the validated runtime": "Zistený zoznam zariadení sa líši od overeného prostredia NVIDIA", "The oci-compose has errors:": "oci-compose obsahuje chyby:", "The oci-compose is incomplete: it does not say which image to install.": "oci-compose je neúplný: nehovorí, ktorý obraz sa má nainštalovať.", "The oci-compose is not valid JSON:": "oci-compose nie je platný JSON:", @@ -6608,12 +6671,12 @@ "The official inventory contains no NVIDIA devices": "Oficiálny inventár neobsahuje žiadne zariadenia NVIDIA", "The official inventory contains no NVIDIA driver components": "Oficiálny inventár neobsahuje žiadne komponenty ovládača NVIDIA", "The official startup cannot be reproduced": "Oficiálny štart nie je možné reprodukovať", - "The official startup of the application is missing": "Chýba oficiálny začiatok aplikácie", + "The official startup of the application is missing": "Chýba oficiálny spôsob spustenia aplikácie", "The operation already finished; it is not restored automatically": "Operácia už bola dokončená; jej predchádzajúci stav sa automaticky neobnoví", "The operation could not be completed": "Operáciu sa nepodarilo dokončiť", "The operation stopped halfway. Choose \"Recover\" for this container in the OCI management menu to restore the previous installation.": "Operácia sa zastavila v polovici. Ak chcete obnoviť predchádzajúcu inštaláciu, v ponuke Správca OCI aplikácií pri tomto kontajneri vyberte \"Obnoviť\".", "The operation stopped halfway. Choose \"{choice}\" for this container in the OCI management menu.": "Operácia sa zastavila v polovici. V ponuke Správca OCI aplikácií pri tomto kontajneri vyberte \"{choice}\".", - "The operation was stopped because a shared directory changed its identity:": "operation bol zastavený, pretože zdieľaný adresár zmenil svoju identitu:", + "The operation was stopped because a shared directory changed its identity:": "Operácia bola zastavená, pretože zdieľaný adresár zmenil svoju identitu:", "The original MOTD backup is unavailable; no changes were made": "Pôvodná záloha MOTD nie je k dispozícii;neboli vykonané žiadne zmeny", "The original MOTD configuration has been restored": "Pôvodná konfigurácia MOTD bola obnovená", "The original MOTD state is unavailable; no changes were made": "Pôvodný stav MOTD nie je k dispozícii;neboli vykonané žiadne zmeny", @@ -6621,53 +6684,53 @@ "The original rpcbind state could not be restored completely": "Pôvodný stav rpcbind nebolo možné úplne obnoviť", "The original rpcbind state is unavailable; no service state was changed": "Pôvodný stav rpcbind nie je k dispozícii;žiadny servisný stav sa nezmenil", "The package is currently in a broken state and is blocking apt updates on this system.": "Balík je momentálne v nefunkčnom stave a blokuje aktualizácie apt v tomto systéme.", - "The parent of an NVIDIA destination is not a directory": "Materská destinácia NVIDIA nie je adresár", - "The parent of the target is not a directory:": "Materský cieľ nie je adresár:", + "The parent of an NVIDIA destination is not a directory": "Nadradená cesta cieľa NVIDIA nie je adresár", + "The parent of the target is not a directory:": "Nadradená cesta cieľa nie je adresár:", "The password could not be retrieved automatically": "Heslo nebolo možné získať automaticky", "The passwords do not match. Please try again.": "Heslá sa nezhodujú. Skúste to znova.", - "The path escapes the rootfs:": "Cesta uniká koreňom:", + "The path escapes the rootfs:": "Cesta smeruje mimo koreňového súborového systému:", "The path must be absolute and normalized": "Cesta musí byť absolútna a normalizovaná", "The path overlaps an existing mount": "Trasa sa prekrýva s existujúcou montážou", "The path to remove is not mounted:": "Cesta na odstránenie nie je pripojená:", "The persistent NVIDIA hook does not match the installer:": "Trvalý NVIDIA hák nezodpovedá inštalátorovi:", - "The persistent WebUI credentials were not found": "Trvalé WebUI credentials neboli nájdené", + "The persistent WebUI credentials were not found": "Trvalé prihlasovacie údaje webového rozhrania sa nenašli", "The physical NVIDIA selection changed": "Fyzický výber NVIDIA sa zmenil", "The post-start configuration cannot be applied with the LXC stopped": "Nastavenia po spustení nemožno použiť, keď je kontajner LXC zastavený", - "The postgres user was not found in the image": "Užívateľ postgres nebol nájdený v obrázku", - "The prepared directory escapes the rootfs:": "Pripravený adresár unikne koreňom:", + "The postgres user was not found in the image": "Používateľ postgres sa v obraze nenašiel", + "The prepared directory escapes the rootfs:": "Pripravený adresár smeruje mimo koreňového súborového systému:", "The preselected VMID does not exist on this host:": "Predvybrané VMID na tomto hostovi neexistuje:", "The previous native backup will be restored. Shared host directories are not reverted. Displaced disks are kept.": "Predchádzajúce domáce zálohy budú obnovené. Spoločné adresáre sa nevrátia. Zadržiavajú sa vypustené disky.", "The previous native backup will be restored. Shared host directories are not reverted. The disks of the failed attempt are removed.": "Obnoví sa predchádzajúca natívna záloha. Zdieľané hostiteľské adresáre sa nevrátia späť. Disky neúspešného pokusu sa odstránia.", "The previous recognition choice could not be put back:": "Pôvodné nastavenie CPU/GPU pre rozpoznávanie sa nepodarilo obnoviť:", - "The previous stack contract is not safe; review it before reusing it": "Predchádzajúca stack zmluva nie je bezpečná; pred opätovným použitím ju preskúmajte", + "The previous stack contract is not safe; review it before reusing it": "Predchádzajúca definícia zostavy nie je bezpečná; pred opätovným použitím ju skontrolujte", "The previous stack contract is not valid; it is not archived automatically": "Predchádzajúca zmluva nie je platná; nie je automaticky archivovaná", - "The previous stack contract still has containers or VMs:": "Predchádzajúca stack zmluva má stále kontajnery alebo VM:", + "The previous stack contract still has containers or VMs:": "K predchádzajúcej definícii zostavy stále patria kontajnery alebo VM:", "The private address is already assigned to another container:": "Súkromná adresa je už pridelená k inému kontajneru:", "The private bridge does not have the expected address:": "Súkromný most nemá očakávanú adresu:", "The private journal has an unsafe owner or permissions": "Súkromný záznam operácie má nebezpečného vlastníka alebo prístupové práva", - "The private network allocator was not found": "Private Network alocator nebol nájdený", + "The private network allocator was not found": "Nástroj na prideľovanie súkromných sietí sa nenašiel", "The private network is still used by another container and is kept:": "Súkromná sieť sa stále používa v inej nádobe a udržiava sa:", "The private network is still used by another guest and is kept:": "Súkromnú sieť stále používa iná VM alebo iný CT a zostáva zachovaná:", "The private network must be assigned automatically": "Súkromná sieť musí byť automaticky pridelená", "The private network of the application is already in use on this host:": "Súkromná sieť aplikácie sa už na tomto hostiteľovi používa:", "The privilege mode of the container does not match the saved record": "Režim oprávnení kontajnera sa nezhoduje s uloženým záznamom", - "The privileged deployment does not include the required explicit consent": "Privilegované nasadenie nezahŕňa required výslovný súhlas", - "The prlimit soft value exceeds the hard value": "Prlimit soft hodnota presahuje tvrdú hodnotu", + "The privileged deployment does not include the required explicit consent": "Privilegované nasadenie nemá požadovaný výslovný súhlas", + "The prlimit soft value exceeds the hard value": "Mäkký limit prlimit prekračuje pevný limit", "The profile sets SETUP_PORT=8123. Port 80 is only used when that variable is emptied.": "Profil nastavuje SETUP_PORT=8123. Port 80 sa používa iba vtedy, keď je táto premenná prázdna.", "The proposal changes the identity of the instance": "Návrh mení totožnosť inštancie", "The proposed ARC maximum is below Proxmox VE's pool-size guideline:": "Navrhované maximum ARC je nižšie ako smernica Proxmox VE pre veľkosť bazéna:", "The proposed changes no longer match; nothing was adopted": "Navrhované zmeny sa už nezhodujú;nič nebolo prijaté", - "The published views must be inside the common root": "Publikované názory musia byť vo vnútri spoločného koreňa", + "The published views must be inside the common root": "Sprístupnené pohľady musia byť v spoločnom koreňovom adresári", "The read-only view does not apply the expected protection": "Pohľad len na čítanie neuplatňuje očakávanú ochranu", - "The read-only view was not published": "Zobrazenie nebolo zverejnené", + "The read-only view was not published": "Pohľad iba na čítanie sa nesprístupnil", "The read/write view was not published": "Pohľad na čítanie/ zápis nebol zverejnený", "The recipe requires configuration at startup; its coordinated replay is not available": "Konfigurácia vyžaduje úpravy pri spustení, ktoré koordinovaná aktualizácia zatiaľ nevie zopakovať", "The recognition change of Immich did not complete:": "Zmenu CPU/GPU pre rozpoznávanie v Immichu sa nepodarilo dokončiť:", "The recognition of Immich was not changed:": "Spôsob rozpoznávania v Immichu sa nezmenil:", "The record belongs to another container": "Záznam patrí inému kontajneru", "The record does not belong to this operation": "Záznam nepatrí k tejto operácii", - "The record no longer belongs to this operation": "Záznam už nepatrí k tomuto operation", - "The record of a member was replaced; the assembly is not resumed": "Záznam o členovi bol nahradený; zhromaždenie sa neobnovuje", + "The record no longer belongs to this operation": "Záznam už nepatrí tejto operácii", + "The record of a member was replaced; the assembly is not resumed": "Záznam kontajnera bol nahradený; zostavovanie nebude pokračovať", "The record or diagnosis could not be completed; no update was run.": "Záznam alebo diagnóza nemohla byť dokončená; žiadna aktualizácia nebola spustená.", "The recovery did not complete. Review the log and choose \"Recover\" again for this container in the OCI management menu.": "Obnova sa nedokončila. Skontrolujte záznam a v ponuke Správca OCI aplikácií pri tomto kontajneri znova vyberte \"Obnoviť\".", "The recovery did not complete. Review the log and choose \"{choice}\" again for this container in the OCI management menu.": "Obnova sa nedokončila. Skontrolujte záznam a v ponuke Správca OCI aplikácií pri tomto kontajneri znova vyberte \"{choice}\".", @@ -6677,11 +6740,11 @@ "The registry authentication path cannot contain symbolic links.": "Cesta k súboru s prihlasovacími údajmi registrov nesmie obsahovať symbolické odkazy.", "The registry authentication path has an unsafe parent directory.": "Nadradený adresár súboru s prihlasovacími údajmi registrov nie je bezpečný.", "The registry credential directory must be owned by root with mode 700.": "Adresár s prihlasovacími údajmi registrov musí vlastniť root a musí mať oprávnenia 700.", - "The registry did not return the saved image digest": "Register nevrátil uložený image digest", + "The registry did not return the saved image digest": "Register nevrátil uložený identifikátor digest obrazu", "The registry returned incomplete or unsupported image metadata.": "Register vrátil neúplné alebo nepodporované metadáta obrazu.", "The registry returned invalid or unsupported image metadata.": "Register vrátil neplatné alebo nepodporované metadáta obrazu.", - "The remote does not exist; create and authorize it first in the WebUI:": "Vzdialenosť neexistuje; vytvoriť a schváliť ju ako prvý na WebUI:", - "The remote installer must run as root on Proxmox VE": "Diaľkový inštalátor musí bežať ako koreň na Proxmox VE", + "The remote does not exist; create and authorize it first in the WebUI:": "Vzdialené úložisko neexistuje; najprv ho vytvorte a autorizujte vo webovom rozhraní:", + "The remote installer must run as root on Proxmox VE": "Vzdialený inštalátor musí bežať pod používateľom root na Proxmox VE", "The remote must already be created and authorized in the Rclone web UI. This operation restarts the CT and publishes two FUSE views on the host.": "Vzdialený musí byť už vytvorený a schválený v Rclone web UI. Tento operation reštartuje CT a zverejňuje dva pohľady FUSE na hostiteľa.", "The remote path must be relative and cannot contain line breaks": "Cesta vo vzdialenom úložisku musí byť relatívna a nesmie obsahovať zalomenia riadkov", "The removal could not be prepared:": "Odstránenie nebolo možné pripraviť:", @@ -6689,15 +6752,15 @@ "The render device does not exist:": "Renderovacie zariadenie neexistuje:", "The repair must preserve the image dependencies:": "Oprava musí zachovať závislosť obrazu:", "The requested VMID block is already in use": "Požadovaný blok VMID sa už používa", - "The requested machine learning GPU profile is not working; it is not replaced by CPU": "Požadovaný profil strojového učenia sa GPU nefunguje; nie je nahradený CPU", + "The requested machine learning GPU profile is not working; it is not replaced by CPU": "Požadovaný profil GPU pre strojové učenie nefunguje; nenahradí sa CPU", "The resource edit could not be fully rolled back. Open Manage again to review and import the current Proxmox settings.": "Zmenu prostriedkov sa nepodarilo úplne vrátiť späť. Znova otvorte správu aplikácií, skontrolujte aktuálne nastavenia systému Proxmox a prevezmite ich.", "The restored service did not pass its health check": "Obnovená služba neprešla kontrolou stavu", "The restored service stopped; the recovery is not confirmed": "Obnovená služba sa zastavila; obnova sa nepotvrdila", "The reviewed Tandoor stack does not require a privileged LXC.": "Overená zostava Tandoor nevyžaduje privilegovaný kontajner LXC.", "The root password is asked for when connecting from another machine. Inside the container, the mariadb command opens as root without a password.": "Heslo používateľa root sa vyžaduje pri pripojení z iného počítača. Vnútri kontajnera sa príkaz mariadb otvorí ako root bez hesla.", - "The rootfs capture only belongs to the running installation": "Rootfs capture patrí len do bežiacej inštalácie", + "The rootfs capture only belongs to the running installation": "Zachytenie koreňového súborového systému patrí iba prebiehajúcej inštalácii", "The rootfs is not managed by Proxmox": "Rootfs nie je riadený Proxmox", - "The rootfs is not mounted": "Korene nie sú namontované", + "The rootfs is not mounted": "Koreňový súborový systém nie je pripojený", "The same GPU cannot be used by two VMs at the same time.": "Rovnakú GPU nemôžu používať dve VM naraz.", "The same connection can be given as container variables instead of the file: UN_SONARR_0_URL and UN_SONARR_0_API_KEY, or the UN_RADARR_0_ equivalents.": "Namiesto súboru možno pripojenie nastaviť premennými kontajnera: UN_SONARR_0_URL a UN_SONARR_0_API_KEY alebo zodpovedajúcimi premennými UN_RADARR_0_.", "The saved MOTD state is invalid; no changes were made": "Uložený stav MOTD je neplatný;neboli vykonané žiadne zmeny", @@ -6741,8 +6804,8 @@ "The selected configuration needs to start the LXC during the installation": "Vybraná konfigurácia musí spustiť LXC počas inštalácie", "The selected container is unprivileged. A privileged container is required for direct device passthrough.": "Vybraný kontajner je neprivilegovaný. Na priame priradenie zariadenia je potrebný privilegovaný kontajner.", "The selected device": "Vybrané zariadenie", - "The selected device is not a block device": "Vybrané zariadenie nie je blokovacie zariadenie", - "The selected device is not a character device": "Vybrané zariadenie nie je charakterové zariadenie", + "The selected device is not a block device": "Vybrané zariadenie nie je blokové zariadenie", + "The selected device is not a character device": "Vybrané zariadenie nie je znakové zariadenie", "The selected directory does not exist:": "Vybraný priečinok neexistuje:", "The selected disk has an active swap partition. Aborting.": "Vybraný disk má aktívny swap oddiel. Akcia sa ruší.", "The selected disk is currently used by a RUNNING VM or CT. Stop it before formatting.": "Vybraný disk práve používa BEŽIACA VM alebo CT. Pred formátovaním ju zastavte.", @@ -6770,34 +6833,34 @@ "The source VM also has these audio devices, likely added together with the GPU. Remove them too?": "Zdrojová VM má aj tieto audio zariadenia, pravdepodobne pridané spolu s GPU. Odstrániť aj tie?", "The specified directory does not exist:": "Zadaný priečinok neexistuje:", "The stability period must be shorter than the healthcheck timeout": "Obdobie stability musí byť kratšie ako časový limit pre kontrolu zdravotného stavu.", - "The stack contains devices or directives without a translation": "Stock obsahuje zariadenia alebo smernice bez prekladu", + "The stack contains devices or directives without a translation": "Zostava obsahuje zariadenia alebo direktívy bez podporovaného prevodu", "The stack does not have the expected native hook": "Aplikácia nemá očakávaný natívny spúšťací skript", "The stack journal is outside the registry": "Záznam operácie celej aplikácie je mimo registra", - "The stack member has no declared adaptation profile": "Stack člen nemá deklarovaný adaptačný profil", + "The stack member has no declared adaptation profile": "Kontajner zostavy nemá deklarovaný adaptačný profil", "The stack name only accepts lowercase letters, numbers and hyphens": "Názov zostavy môže obsahovať iba malé písmená, číslice a pomlčky", "The stack needs member adaptations or a verification of missing volumes": "Aplikácia vyžaduje úpravy svojich kontajnerov alebo overenie chýbajúcich dátových zväzkov", "The stack operation had already finished": "Operácia celej aplikácie už bola dokončená", "The stack operation has not finished yet": "Operácia celej aplikácie ešte nebola dokončená", "The stack operation stopped halfway. Select the stack again in the OCI management menu to recover it.": "Operácia celej aplikácie zostala nedokončená. Ak ju chcete obnoviť, v ponuke správy OCI znova vyberte danú aplikáciu.", - "The stack registry is incomplete; review the private contracts.": "Register stoh je neúplný; preskúma súkromné zmluvy.", - "The stack startup hook was not found": "Stack startup hák nebol nájdený", + "The stack registry is incomplete; review the private contracts.": "Register zostavy je neúplný; skontrolujte súkromné definície.", + "The stack startup hook was not found": "Spúšťací skript zostavy sa nenašiel", "The stack update was saved.": "Aktualizácia celej aplikácie bola uložená.", "The startup differs from the declared Nextcloud adapter": "Spustenie sa líši od deklarovaného Nextcloud adaptéra", "The startup differs from the declared adapter": "Spustenie sa líši od deklarovaného adaptéra", - "The staticfiles volume needs at least 1 GB": "Objem statických súborov potrebuje aspoň 1 GB", + "The staticfiles volume needs at least 1 GB": "Dátový zväzok staticfiles musí mať najmenej 1 GB", "The storage chosen for this backup cannot be written:": "Do úložiska vybratého pre túto zálohu sa nedá zapisovať:", "The storage chosen for this backup has no room either:": "Ani na úložisku vybratom pre túto zálohu nie je dostatok miesta:", "The storage does not accept backups:": "Úložisko neprijíma zálohy:", "The storage has been removed and the disk unmounted.": "Úložisko bolo odstránené a disk odpojený.", "The storage has less than 40 GB free for the ROCm image.": "Na úložisku je menej než 40 GB voľného miesta pre obraz ROCm.", "The sysctl content was modified outside the saved record": "Obsah sysctl bol upravený mimo uloženého záznamu", - "The sysctl include is a link:": "Sysctl patrí je odkaz:", - "The sysctl include is not a safe host file": "Sysctl patrí nie je bezpečný hostiteľský súbor", - "The sysctl include is not restored over a symbolic link": "Sysctl patrí nie je obnovený cez symbolické spojenie", - "The sysctl include is unknown or differs from the saved record": "Sysctl patrí nie je známe alebo sa líši od uloženého záznamu", + "The sysctl include is a link:": "Pripojený konfiguračný súbor sysctl je odkaz:", + "The sysctl include is not a safe host file": "Pripojený konfiguračný súbor sysctl nie je bezpečný súbor hostiteľa", + "The sysctl include is not restored over a symbolic link": "Konfiguračný súbor sysctl sa neobnovuje cez symbolický odkaz", + "The sysctl include is unknown or differs from the saved record": "Pripojený konfiguračný súbor sysctl je neznámy alebo sa líši od uloženého záznamu", "The temporary password could not be retrieved.": "Dočasné heslo nebolo možné získať späť.", "The test will continue even if you close this terminal.": "Test bude pokračovať aj po zatvorení tohto terminálu.", - "The tmpfs mounts of the container differ from the saved record": "Tmpfs držiaky kontajnera sa líšia od uloženého záznamu", + "The tmpfs mounts of the container differ from the saved record": "Pripojenia tmpfs v kontajneri sa líšia od uloženého záznamu", "The tmpfs path or size is outside the supported profile": "Tmpfs cesta alebo veľkosť je mimo podporovaný profil", "The translated recipe changed during the preparation": "Preložený recept sa počas prípravy zmenil", "The update check could not be completed. Try again later.": "Kontrolu aktualizácií sa nepodarilo dokončiť. Skúste to znova neskôr.", @@ -6805,7 +6868,7 @@ "The value must be a number:": "Hodnota musí byť číslo:", "The values do not match. Enter them again.": "Hodnoty sa nezhodujú. Zadajte ich znova.", "The variable contains control characters:": "Premenná obsahuje kontrolné znaky:", - "The variable contains line breaks:": "Premenná obsahuje prestávky na riadku:", + "The variable contains line breaks:": "Premenná obsahuje zalomenia riadkov:", "The vfio.conf entries have been removed and initramfs rebuilt.": "Položky vfio.conf boli odstránené a initramfs prebudované.", "The volume ID does not contain a disk name for this CT; automatic adoption is unsafe": "ID zväzku neobsahuje názov disku tohto CT; automatické prevzatie nie je bezpečné", "The watchdog could not be enabled. Turn it on from Manage installed OCI applications.": "Watchdog sa nepodarilo povoliť. Zapnite ho v Spravovať nainštalované aplikácie OCI.", @@ -6826,7 +6889,7 @@ "There is no temporary container of this operation to keep the current disks": "Chýba dočasný kontajner tejto operácie na zachovanie aktuálnych diskov", "There is no verified backup; a modified container is not touched": "Chýba overená záloha; zmenený kontajner zostáva nedotknutý", "These Proxmox resources were added outside ProxMenux:": "Tieto zdroje Proxmox boli pridané mimo ProxMenux:", - "These VMIDs are not free:": "Tieto VMID nie sú zadarmo:", + "These VMIDs are not free:": "Tieto VMID nie sú voľné:", "These are the changes that will be made": "Tieto zmeny sa vykonajú", "These changes were made in Proxmox outside ProxMenux:": "Tieto zmeny boli vykonané v Proxmox mimo ProxMenux:", "These container mount paths have an extension-like suffix:": "Tieto cesty pripojenia v kontajneri majú príponu podobnú koncovke súboru:", @@ -6861,7 +6924,7 @@ "This backup is encrypted.": "Táto záloha je šifrovaná.", "This backup was taken on kernel": "Táto záloha bola vytvorená na kerneli", "This cleanup will:": "Toto čistenie:", - "This container belongs to a stack; publish the whole stack": "Tento kontajner patrí do stohu; publikovať celý zásobník", + "This container belongs to a stack; publish the whole stack": "Tento kontajner patrí do zostavy; sprístupnite celú zostavu", "This container belongs to a stack; recover the whole stack": "Tento kontajner patrí do aplikácie s viacerými kontajnermi; obnovte celú aplikáciu", "This container does not have apt-get. NFS client installation only supports Debian/Ubuntu containers.": "Tento kontajner nemá apt-get. Inštalácia NFS klienta je podporovaná iba v Debian/Ubuntu kontajneroch.", "This container does not have apt-get. Samba client installation only supports Debian/Ubuntu containers.": "Tento kontajner nemá apt-get. Inštalácia Samba klienta je podporovaná iba v Debian/Ubuntu kontajneroch.", @@ -6943,7 +7006,7 @@ "This template requests the host PID namespace, which has no validated safe LXC translation yet": "Táto šablóna požaduje menný priestor PID hostiteľa, ktorý zatiaľ nemá overený bezpečný prevod do LXC", "This tool is designed for systems with AMD GPUs.": "Tento nástroj je určený pre systémy s AMD GPU.", "This tool is designed for systems with Intel GPUs.": "Tento nástroj je určený pre systémy s Intel GPU.", - "This translator only supports the Nextcloud stack": "Tento prekladateľ podporuje iba Nextcloud stack", + "This translator only supports the Nextcloud stack": "Tento nástroj na prevod podporuje iba zostavu Nextcloud", "This value is required.": "Táto hodnota je povinná.", "This variant requires the device": "Tento variant vyžaduje zariadenie", "This version does not build against the running kernel.": "Táto verzia nie je postavená proti bežiacemu jadru.", @@ -7064,7 +7127,7 @@ "Unapplied changes": "Nepoužité zmeny", "Understand the security implications of privileged containers": "Uistite sa, že rozumiete bezpečnostným dôsledkom privilegovaných kontajnerov", "Unexpected Proxmox inventory; recovery blocked": "Neočakávaný inventár Proxmox; zablokovaná obnova", - "Unexpected formatting directory in the new Valkey volume": "Neočakávaný formátovanie adresára v novom hlasitosti Valkey", + "Unexpected formatting directory in the new Valkey volume": "Neočakávaný adresár vytvorený formátovaním v novom dátovom zväzku Valkey", "Ungoogled Chromium is Google Chromium, sans dependency on Google web services.": "Ungoogled Chromium je Chromium bez závislosti od webových služieb Google.", "Unified LLM Fine-Tuning with 100+ Models": "Jednotné dolaďovanie viac ako 100 jazykových modelov LLM", "Uninstall Coral drivers and configuration": "Odinštalovať ovládače a nastavenie Coral", @@ -7118,7 +7181,7 @@ "Unpackerr configured": "Konfigurovaný Unpackerr", "Unpackerr has no web interface and extracts nothing until it is pointed at a Starr application. Uncomment the [sonarr.0] or [radarr.0] section in /config/unpackerr.conf inside the container, set its url and api_key, then restart the container.": "Unpackerr nemá webové rozhranie a nerozbaľuje nič, kým ho neprepojíte s aplikáciou Starr. V /config/unpackerr.conf v kontajneri odkomentujte sekciu [sonarr.0] alebo [radarr.0], nastavte url a api_key a kontajner reštartujte.", "Unpackerr requires Sonarr, Radarr or Lidarr in this suite": "Unpackerr v tejto zostave vyžaduje Sonarr, Radarr alebo Lidarr", - "Unpackerr stopped during its first start": "Unpackerr zastavil počas svojho prvého štartu", + "Unpackerr stopped during its first start": "Unpackerr sa počas prvého spustenia zastavil", "Unprivileged": "Neprivilegovaný", "Unprivileged Container Access": "Prístup neprivilegovaného kontajnera", "Unprivileged container": "Neprivilegovaný kontajner", @@ -7134,7 +7197,7 @@ "Unrecognized host monitor profile": "Nerozpoznaný profil monitora hostiteľa", "Unrecognized native configuration": "Nerozpoznaná natívna konfigurácia", "Unrecognized qBittorrent configuration format": "Nerozpoznaný formát konfigurácie qBittorrent", - "Unrecognized stack adapter or role": "Nerozpoznaný stack adaptér alebo role", + "Unrecognized stack adapter or role": "Nerozpoznaný adaptér alebo úloha kontajnera v zostave", "Unrecognized stack adapter:": "Nerozpoznaný adaptér aplikácie s viacerými kontajnermi:", "Unrecognized stack structure:": "Nerozpoznaná štruktúra aplikácie s viacerými kontajnermi:", "Unrecognized volume definition": "Nerozpoznaná definícia dátového zväzku", @@ -7143,7 +7206,7 @@ "Unsafe dependency contract": "Nebezpečné nastavenie závislostí", "Unsafe dependency hook contract": "Nebezpečné nastavenie spúšťacieho skriptu závislostí", "Unsafe instance directory": "Nebezpečný priečinok inštancie", - "Unsafe instance record": "Nebezpečný záznam o udalosti", + "Unsafe instance record": "Nebezpečný záznam inštancie", "Unsafe journal or lock file": "Nebezpečný súbor denníka alebo zámku", "Unsafe private configuration path": "Nebezpečná konfiguračná dráha", "Unsafe qBittorrent configuration path": "Nebezpečná konfiguračná dráha qBittorrent", @@ -7152,19 +7215,19 @@ "Unsafe registry directory": "Nebezpečný adresár registrov", "Unsafe registry lock": "Nebezpečný zámok registra", "Unsafe rootfs for the capture": "Nebezpečné rootfs pre zachytenie", - "Unsafe stack assembly": "Nebezpečná montáž zásobníka", - "Unsafe volume path": "Nebezpečná trasa objemu", + "Unsafe stack assembly": "Nebezpečné zostavenie aplikácie", + "Unsafe volume path": "Nebezpečná cesta dátového zväzku", "Unsupported CPU allocation mode:": "Nepodporovaný režim prideľovania CPU:", "Unsupported GID strategy:": "Nepodporovaná stratégia GID:", "Unsupported NVIDIA mode:": "Nepodporovaný režim NVIDIA:", - "Unsupported OCI digest:": "Nepodporovaná digescia OCI:", + "Unsupported OCI digest:": "Nepodporovaný identifikátor digest OCI:", "Unsupported OCI-LXC AppArmor profile:": "Nepodporovaný profil OCI-LXC AppArmor:", "Unsupported OCI-LXC seccomp profile:": "Nepodporovaný profil OCI-LXC seccomp:", "Unsupported Terminal": "Nepodporovaný terminál", "Unsupported architecture for Figurine:": "Nepodporovaná architektúra pre Figurine:", "Unsupported architecture:": "Nepodporovaná architektúra:", "Unsupported backup compression": "Nepodporovaná kompresia zálohy", - "Unsupported credential pattern:": "Nepodporovaný credential vzor:", + "Unsupported credential pattern:": "Nepodporovaný vzor prihlasovacích údajov:", "Unsupported declarative ostype:": "Nepodporovaný deklaratívny typ os:", "Unsupported device GID strategy": "Stratégia GID nepodporovaného zariadenia", "Unsupported device options": "Nepodporované možnosti zariadenia", @@ -7172,13 +7235,13 @@ "Unsupported dynamic NVIDIA capabilities:": "Nepodporované dynamické schopnosti NVIDIA:", "Unsupported format. Only .ova and .ovf files are supported.": "Nepodporovaný formát. Podporované sú iba .ova a .ovf súbory.", "Unsupported kept setting:": "Nepodporované uchované nastavenie:", - "Unsupported media storage mode:": "Nepodporovaný režim pamäťového média:", + "Unsupported media storage mode:": "Nepodporovaný režim úložiska médií:", "Unsupported mount options": "Nepodporované možnosti pripojenia", "Unsupported mount type": "Nepodporovaný typ pripojenia", "Unsupported mount type:": "Nepodporovaný typ pripojenia:", - "Unsupported native device type:": "Nepodporovaný natívne typ zariadenia:", + "Unsupported native device type:": "Nepodporovaný natívny typ zariadenia:", "Unsupported network settings": "Nepodporované sieťové nastavenia", - "Unsupported operation": "Nepodporovaná operation", + "Unsupported operation": "Nepodporovaná operácia", "Unsupported or unknown Proxmox version; no repository changed.": "Nepodporovaná alebo neznáma verzia Proxmox; žiadne úložisko sa nezmenilo.", "Unsupported output format:": "Nepodporovaný výstupný formát:", "Unsupported owner strategy:": "Nepodporovaná stratégia vlastníka:", @@ -7193,9 +7256,9 @@ "Until they are registered again they cannot be updated or managed from here. The recovery checks first that everything they need is on this host and changes nothing otherwise.": "Kým nie sú znova zaregistrované, nemožno ich aktualizovať ani spravovať odtiaľto. Obnova najprv skontroluje, či všetko, čo potrebujú, je na tomto hostiteľovi a inak nič nezmení.", "Until they are registered again they cannot be updated or managed from here. The recovery checks first that everything they need is on this host; an application that lacks something is not registered.": "Kým nie sú znova zaregistrované, nemožno ich aktualizovať ani spravovať odtiaľto. Obnova najprv skontroluje, či všetko, čo potrebujú, je na tomto hostiteľovi; aplikácia, ktorej niečo chýba, nie je zaregistrovaná.", "Until they are registered again they cannot be updated or managed from here. The recovery checks first what prevents their registration; an application with such a problem is not registered. A Rclone mount that has to be enabled again does not prevent it, but then the applications are not started automatically.": "Kým nie sú znova zaregistrované, nemožno ich odtiaľto aktualizovať ani spravovať. Pred opätovnou registráciou sa skontroluje, čo jej bráni. Aplikácia s takýmto problémom sa nezaregistruje. Pripojenie Rclone, ktoré treba znova povoliť, registrácii nebráni, ale aplikácie sa potom nespúšťajú automaticky.", - "Untrusted or modified NVIDIA hook": "Nespoľahlivý alebo modifikovaný háčik NVIDIA", + "Untrusted or modified NVIDIA hook": "Nedôveryhodný alebo zmenený spúšťací skript NVIDIA", "Unused image removed from the cache:": "Nepoužívaný obraz odstránený z vyrovnávacej pamäte:", - "Unused images removed from the cache:": "Nepoužité obrázky odstránené z vyrovnávacej pamäte:", + "Unused images removed from the cache:": "Nepoužívané obrazy odstránené z vyrovnávacej pamäte:", "Update": "Aktualizácia", "Update Available": "Dostupná aktualizácia", "Update Ceph repository (Only if using Ceph):": "Aktualizujte Ceph repozitár (iba ak používate Ceph):", @@ -7221,7 +7284,7 @@ "Update kernel to compatible version": "Aktualizovať kernel na kompatibilnú verziu", "Update now?": "Spustiť aktualizáciu?", "Update package index:": "Aktualizujte index balíkov:", - "Update prepared": "Aktualizácia", + "Update prepared": "Aktualizácia je pripravená", "Update selected OCI applications": "Aktualizovať vybrané aplikácie OCI", "Update system to latest PVE 8.4+ (if not done already):": "Aktualizujte systém na najnovšie PVE 8.4+ (ak to ešte nie je hotové):", "Update the image with the saved configuration": "Aktualizovať obraz s uloženými nastaveniami", @@ -7341,7 +7404,7 @@ "Using advanced configuration": "Používa sa pokročilé nastavenie", "Using default Proxmox logo...": "Používam predvolené logo Proxmoxu...", "Using existing encryption key:": "Používa sa existujúci šifrovací kľúč:", - "Using the image verified by the transaction": "Použitie obrázku overené transakcie", + "Using the image verified by the transaction": "Používa sa obraz overený transakciou", "Using the verified image from the cache": "Použitie overeného obrazu z vyrovnávacej pamäte", "Utilities": "Nástroje", "Utilities Installation Menu": "Menu inštalácie nástrojov", @@ -7481,8 +7544,8 @@ "Volume configuration cancelled": "Nastavenie dátového úložiska bolo zrušené", "Volume options are not yet supported": "Voľby dátových zväzkov zatiaľ nie sú podporované", "Volume size in GB": "Veľkosť dátového disku v GB", - "Volumes attached": "Pripojené objemy", - "Volumes prepared for the first start:": "Objemy pripravené na prvý začiatok:", + "Volumes attached": "Dátové zväzky sú pripojené", + "Volumes prepared for the first start:": "Dátové zväzky pripravené na prvé spustenie:", "Volumes shared between services are not yet supported": "Dátové zväzky zdieľané medzi službami zatiaľ nie sú podporované", "Vscodium-web is a community-driven, freely-licensed binary distribution of the remote host web component of Microsoft's editor VS Code.": "VSCodium Web je komunitne spravovaná binárna distribúcia vzdialenej webovej súčasti editora VS Code od Microsoftu so slobodnou licenciou.", "Vulnerability detection": "hľadania zraniteľností", @@ -7607,7 +7670,7 @@ "Write access verified for user:": "Prístup na zápis bol overený pre používateľa:", "Write the value it produces instead.": "Napíšte namiesto toho hodnotu, ktorú vytvára.", "Wrong SHA-256 in": "Nesprávne SHA-256 v", - "Wrong inherited registry lock": "Nesprávny zdedený register", + "Wrong inherited registry lock": "Nesprávny zdedený zámok registra", "Wrong passphrase": "Nesprávna fráza", "Wrong size in": "Nesprávna veľkosť", "Xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support.": "XBackBone je jednoduchý a nenáročný správca súborov v PHP na vlastnom serveri s podporou ShareX a systémov *NIX. Podporuje nahrávanie, zobrazovanie a sťahovanie obrázkov, GIF, videa, kódu a formátovaného textu. Webové rozhranie ponúka správu viacerých používateľov, históriu nahratých súborov a vyhľadávanie.", @@ -7721,7 +7784,7 @@ "apex group still has members; left in place:": "Skupina apex stále má členov, preto zostáva ponechaná:", "apex kernel module not loaded on host. Run \"Install Coral on Host\" first or the container will not see /dev/apex_0.": "Kernel modul apex nie je na hoste načítaný. Najprv spustite \"Install Coral on Host\", inak kontajner neuvidí /dev/apex_0.", "appears to be part of a": "vyzerá, že je súčasťou", - "apply requires the OCI archive of the resolved image": "aplikovať requires archív OCI vyriešeného obrazu", + "apply requires the OCI archive of the resolved image": "Akcia apply vyžaduje archív OCI určeného obrazu", "applying minimal banner patch": "používam minimálnu úpravu bannera", "apt cache refreshed.": "apt cache bola obnovená.", "apt-get exited": "apt-get skončil", @@ -7735,7 +7798,7 @@ "available in this same GPU and TPU menu.": "dostupnej v tomto istom GPU a TPU menu.", "backup at /etc/fstab.proxmenux.bak": "záloha v /etc/fstab.proxmenux.bak", "ban": "zákaz", - "belongs to another OCI installation": "patrí do iného zariadenia OCI", + "belongs to another OCI installation": "patrí do inej inštalácie OCI", "blocking issue(s).": "blokujúcich problémov.", "btrfs — Proxmox dir storage (snapshots, compression)": "btrfs — Proxmox dir úložisko (snapshoty, kompresia)", "btrfs — snapshots and compression": "btrfs - snapshoty a kompresia", @@ -7753,7 +7816,7 @@ "copyparty web interface": "Webové rozhranie copyparty", "could not be compiled for kernel": "nepodarilo sa skompilovať pre jadro", "could not validate NVIDIA; exit code": "nemohol potvrdiť NVIDIA; kód výstupu", - "cpuunits must be between 8 and 10000": "cpujednotky musia byť od 8 do 10000", + "cpuunits must be between 8 and 10000": "Hodnota cpuunits musí byť od 8 do 10000", "custom": "vlastné", "custom dependency commands are not yet supported": "Vlastné príkazy závislosti ešte nie sú podporované", "custom path(s) saved.": "uložených vlastných ciest.", @@ -7782,7 +7845,7 @@ "doplarr_rs starts from the example configuration and connects to nothing. Write the token of your Discord bot in discord_token in /config/config.toml inside the container.": "doplarr_rs začína s ukážkovým nastavením a k ničomu sa nepripája. Token robota Discord zapíšte do discord_token v /config/config.toml v kontajneri.", "downloaded Compose file": "stiahnutého súboru Compose", "dpkg still reports unfinished package work; review": "dpkg stále hlási nedokončenú prácu s balíkom;recenzia", - "driver components": "komponenty vodiča", + "driver components": "súčasti ovládača", "driver:": "ovládač:", "e.g.": "napr.", "empty = generate": "prázdne = generovať", @@ -8053,7 +8116,7 @@ "qBittorrent did not apply the category:": "qBittorrent neuplatnila kategóriu:", "qBittorrent did not apply the download paths": "qBittorrent nepoužila cesty na stiahnutie", "qBittorrent requires a non-empty password": "qBittorrent vyžaduje neprázdne heslo", - "qBittorrent: authenticated access to the preferences could not be verified": "qBittorrent: nemohol sa overiť overený prístup k preferenciám", + "qBittorrent: authenticated access to the preferences could not be verified": "qBittorrent: nepodarilo sa overiť prihlásený prístup k nastaveniam", "qBittorrent: invalid login response or missing session cookie": "qBittorrent: neplatná odpoveď prihlásenia alebo chýbajúci súbor cookie sedenia", "raw USB disk — no filesystem (will be FORMATTED)": "surový USB disk - bez súborového systému (bude NAformátovaný)", "read-only": "iba na čítanie", diff --git a/oci/remote/configure_jellyfin_encoding.py b/oci/remote/configure_jellyfin_encoding.py index a54d6707..a8b3d6e3 100644 --- a/oci/remote/configure_jellyfin_encoding.py +++ b/oci/remote/configure_jellyfin_encoding.py @@ -93,8 +93,8 @@ def main() -> None: rootfs = Path(sys.argv[1]) configuration = json.loads(sys.argv[2]) path, changed = update_encoding(rootfs, configuration) - state = "updated" if changed else "already applied" - print(f"Jellyfin configuration {state}: /{path.relative_to(rootfs.resolve())}") + state = translate("Jellyfin configuration updated:") if changed else translate("Jellyfin configuration already applied:") + print(f"{state} /{path.relative_to(rootfs.resolve())}") if __name__ == "__main__": diff --git a/oci/remote/oci_dhcp_lease.py b/oci/remote/oci_dhcp_lease.py index 92213719..6dd390e0 100644 --- a/oci/remote/oci_dhcp_lease.py +++ b/oci/remote/oci_dhcp_lease.py @@ -20,6 +20,7 @@ import re import subprocess import sys import time +from oci_ui import translate CONFIGS = Path('/etc/pve/lxc') HOOKS = Path('/var/lib/lxc') @@ -121,12 +122,13 @@ def check(vmid, settle=0): except BlockingIOError: return for name, version in repair(vmid, settle): - print(f'CT {vmid}: DHCP client of {name} (IPv{version}) started again', flush=True) + print(translate('CT {vmid}: DHCP client of {name} (IPv{version}) started again').format( + vmid=vmid, name=name, version=version), flush=True) def main(): if len(sys.argv) != 2 or not (sys.argv[1].isdigit() or sys.argv[1] == '--all'): - print('usage: oci_dhcp_lease.py | --all', file=sys.stderr) + print(translate('Usage:') + ' oci_dhcp_lease.py | --all', file=sys.stderr) return 2 LOCKS.mkdir(parents=True, exist_ok=True) if sys.argv[1] == '--all': diff --git a/oci/remote/oci_image_cache.py b/oci/remote/oci_image_cache.py index 34de491d..e8f05490 100644 --- a/oci/remote/oci_image_cache.py +++ b/oci/remote/oci_image_cache.py @@ -10,6 +10,7 @@ import sys import time import oci_instances as instances +from oci_ui import translate # Names given by the OCI installers and by updates; other archives are never touched. NAME = re.compile(r'(?:proxmenux-update-[a-z0-9]+-[0-9a-f]{64}' @@ -82,10 +83,10 @@ def main(arguments): command = arguments[0] if arguments else 'prune' if command == 'prune': for path, size in prune(): - print(f'removed unused image archive: {path} ({size} bytes)') + print(translate('removed unused image archive: {path} ({size} bytes)').format(path=path, size=size)) return 0 if command not in ('list', 'remove') or not all(a.isdigit() for a in arguments[1:]): - print('usage: oci_image_cache.py [prune | list VMID... | remove VMID...]', file=sys.stderr) + print(translate('Usage:') + ' oci_image_cache.py [prune | list VMID... | remove VMID...]', file=sys.stderr) return 2 with instances.locked(instances.ROOT): archives = archives_of([int(a) for a in arguments[1:]]) @@ -103,5 +104,5 @@ if __name__ == '__main__': try: sys.exit(main(sys.argv[1:])) except (OSError, ValueError, BlockingIOError) as error: - print(f'image cache: {error}', file=sys.stderr) + print(f"{translate('Image cache')}: {error}", file=sys.stderr) sys.exit(1) diff --git a/oci/remote/oci_immich_recognition.py b/oci/remote/oci_immich_recognition.py index 721b79ff..6dc5c615 100644 --- a/oci/remote/oci_immich_recognition.py +++ b/oci/remote/oci_immich_recognition.py @@ -284,7 +284,7 @@ def change(root, primary_id, acceleration, render_device=None, gfx_override=None def main(): parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('vmid', type=int, help='main container of the application') + parser.add_argument('vmid', type=int, help=translate('main container of the application')) parser.add_argument('--acceleration', required=True, choices=PROFILES) parser.add_argument('--render-device') parser.add_argument('--gfx-override') diff --git a/oci/remote/oci_installation_state.py b/oci/remote/oci_installation_state.py index ecc10691..344d88ac 100644 --- a/oci/remote/oci_installation_state.py +++ b/oci/remote/oci_installation_state.py @@ -301,7 +301,7 @@ def main(argv=None): diagnose = sub.add_parser('diagnose') diagnose.add_argument('vmid', type=int) diagnose.add_argument('--check-registry', action='store_true') - record = sub.add_parser('record', help='Internal installer operation; not legacy adoption') + record = sub.add_parser('record', help=translate('Internal installer operation; not legacy adoption')) record.add_argument('vmid', type=int) for flag in ('template', 'deployment', 'archive', 'digest'): record.add_argument('--' + flag, required=True) diff --git a/oci/remote/oci_restore_recovery.py b/oci/remote/oci_restore_recovery.py index ab1827df..ebab98a9 100644 --- a/oci/remote/oci_restore_recovery.py +++ b/oci/remote/oci_restore_recovery.py @@ -1029,9 +1029,9 @@ def main(): parser.add_argument('--root', type=Path, default=instances.ROOT) parser.add_argument('--start', action='store_true') parser.add_argument('--host-firewall', type=int, action='append', default=[], metavar='VMID', - help='Add the host firewall rule of this container; one option for each confirmed rule') + help=translate('Add the host firewall rule of this container; one option for each confirmed rule')) parser.add_argument('--automatic', action='store_true', - help='Only the applications that need no question: the ones the cluster keeps a record of') + help=translate('Only the applications that need no question: the ones the cluster keeps a record of')) args = parser.parse_args() if os.geteuid() != 0: parser.error(translate('Root privileges are required')) diff --git a/oci/remote/oci_rocm_check.py b/oci/remote/oci_rocm_check.py index d4725d9d..711df27a 100644 --- a/oci/remote/oci_rocm_check.py +++ b/oci/remote/oci_rocm_check.py @@ -12,6 +12,7 @@ import argparse import re import subprocess import sys +from oci_ui import translate # A model of five operators (convolution, pooling and a dense layer), enough # to make ROCm compile and run on the GPU without downloading anything. @@ -72,7 +73,8 @@ def main(): try: check(args.vmid) except RuntimeError as error: - print(error, file=sys.stderr) + message = translate('the GPU did not answer in time') if str(error) == 'the GPU did not answer in time' else str(error) + print(message, file=sys.stderr) return 1 return 0 diff --git a/oci/remote/oci_update_check.py b/oci/remote/oci_update_check.py index 3d2faa9b..a1572431 100644 --- a/oci/remote/oci_update_check.py +++ b/oci/remote/oci_update_check.py @@ -18,6 +18,7 @@ import time import oci_instances as instances from oci_installation_state import parse_config +from oci_ui import translate APPS = Path('/etc/proxmenux/apps') SOCKET = Path('/run/proxmenux-monitor/oci-check.sock') @@ -206,7 +207,7 @@ def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--root', type=Path, default=instances.ROOT) parser.add_argument('--configs', type=Path, default=Path('/etc/pve/lxc')) - parser.add_argument('--progress', action='store_true', help='Emit numeric progress for the OCI menu') + parser.add_argument('--progress', action='store_true', help=translate('Emit numeric progress for the OCI menu')) args = parser.parse_args() try: if args.progress: diff --git a/oci/remote/oci_watchdog.py b/oci/remote/oci_watchdog.py index cb14fdf9..743d7fb1 100644 --- a/oci/remote/oci_watchdog.py +++ b/oci/remote/oci_watchdog.py @@ -19,6 +19,7 @@ import time import oci_instances as instances import oci_operation_notice +from oci_ui import translate UNIT = 'proxmenux-oci-watchdog.service' UNIT_FILE = Path('/etc/systemd/system') / UNIT @@ -191,7 +192,8 @@ def look(states, now): lambda seen: stop_requested(read_tasks(), vmid, seen)) data = {'app_name': name, 'vmid': vmid, 'containers': f'CT {vmid}'} if action == 'start': - print(f'CT {vmid} ({name}) stopped on its own; starting it again (attempt {state["attempts"]})', flush=True) + print(translate('CT {vmid} ({name}) stopped on its own; starting it again (attempt {attempt})').format( + vmid=vmid, name=name, attempt=state['attempts']), flush=True) try: started = start(vmid) except (OSError, subprocess.SubprocessError): @@ -199,7 +201,8 @@ def look(states, now): if started and notice_due(state, now): oci_operation_notice.notify('oci_watchdog_restarted', data) elif action == 'give-up': - print(f'CT {vmid} ({name}) could not be kept running; it is left stopped', flush=True) + print(translate('CT {vmid} ({name}) could not be kept running; it is left stopped').format( + vmid=vmid, name=name), flush=True) oci_operation_notice.notify('oci_watchdog_failed', data) @@ -290,7 +293,7 @@ def main(): try: vmids = set_watchdog(instances.ROOT, args.vmid, args.state == 'on') except BlockingIOError: - print('Another OCI operation is using the instance registry.', file=sys.stderr) + print(translate('Another OCI operation is using the instance registry.'), file=sys.stderr) return 3 except (OSError, ValueError, KeyError) as error: print(str(error) or type(error).__name__, file=sys.stderr) diff --git a/oci/remote/rclone_mount_publish.py b/oci/remote/rclone_mount_publish.py index df79c67f..950241f1 100644 --- a/oci/remote/rclone_mount_publish.py +++ b/oci/remote/rclone_mount_publish.py @@ -4,9 +4,32 @@ from __future__ import annotations import ctypes +import json import os import platform import sys +from pathlib import Path +from functools import lru_cache + + +@lru_cache(maxsize=1) +def _messages() -> dict: + # This helper is also installed alone in libexec: importing oci_ui would + # break that existing caller. Read the same catalog using stdlib only. + base = Path(os.environ.get('PMX_BASE_DIR', '/usr/local/share/proxmenux')) + try: + language = json.loads((base / 'config.json').read_text(encoding='utf-8')).get('language', 'en') + if language == 'en' or not isinstance(language, str) or not language: + return {} + data = json.loads((base / 'lang' / (language + '.json')).read_text(encoding='utf-8')) + return data if isinstance(data, dict) else {} + except (OSError, ValueError, AttributeError): + return {} + + +def translate(text: str) -> str: + value = _messages().get(text) + return value if isinstance(value, str) and value else text AT_FDCWD = -100 @@ -41,14 +64,16 @@ def fail(step: str) -> None: def main() -> int: if len(sys.argv) != 5 or sys.argv[4] not in {"rw", "ro"}: - print(f"usage: {sys.argv[0]} PID SOURCE TARGET rw|ro", file=sys.stderr) + print(f"{translate('Usage:')} {sys.argv[0]} PID SOURCE TARGET rw|ro", file=sys.stderr) return 2 machine = platform.machine().lower() if machine not in SYSCALLS: - print(f"unsupported host architecture: {machine}", file=sys.stderr) + print(f"{translate('Unsupported host architecture:')} {machine}", file=sys.stderr) return 2 open_tree_nr, move_mount_nr, mount_setattr_nr = SYSCALLS[machine] pid, source, target, mode = sys.argv[1:] + # The host catalog is no longer reachable after chroot into the container. + _messages() libc = ctypes.CDLL(None, use_errno=True) libc.syscall.restype = ctypes.c_long libc.setns.argtypes = (ctypes.c_int, ctypes.c_int) @@ -60,7 +85,7 @@ def main() -> int: ct_root = os.open(f"/proc/{pid}/root", os.O_PATH | os.O_DIRECTORY | os.O_CLOEXEC) try: if libc.setns(ct_ns, CLONE_NEWNS) != 0: - fail("enter container namespace") + fail(translate("enter container namespace")) os.fchdir(ct_root) os.chroot(".") os.chdir("/") @@ -71,7 +96,7 @@ def main() -> int: OPEN_TREE_CLONE | os.O_CLOEXEC, ) if tree < 0: - fail("clone source mount tree") + fail(translate("clone source mount tree")) try: if mode == "ro": attributes = MountAttr(attr_set=MOUNT_ATTR_RDONLY) @@ -84,9 +109,9 @@ def main() -> int: ctypes.sizeof(attributes), ) if result != 0: - fail("make cloned mount tree read-only") + fail(translate("make cloned mount tree read-only")) if libc.setns(host_ns, CLONE_NEWNS) != 0: - fail("return to host namespace") + fail(translate("return to host namespace")) os.fchdir(host_root) os.chroot(".") os.chdir("/") @@ -99,7 +124,7 @@ def main() -> int: MOVE_MOUNT_F_EMPTY_PATH, ) if result != 0: - fail("publish mount tree") + fail(translate("publish mount tree")) finally: os.close(tree) finally: diff --git a/oci/remote/verify_oci_archive.py b/oci/remote/verify_oci_archive.py index 29cedede..782a8dc0 100755 --- a/oci/remote/verify_oci_archive.py +++ b/oci/remote/verify_oci_archive.py @@ -164,7 +164,7 @@ def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("archive", type=Path) parser.add_argument("--extracted-mib", action="store_true", - help="print the estimated unpacked size in MiB (0 when unknown)") + help=translate("print the estimated unpacked size in MiB (0 when unknown)")) args = parser.parse_args() if args.extracted_mib: try: diff --git a/oci/src/proxmenux_oci/cli.py b/oci/src/proxmenux_oci/cli.py index 7199a4dd..d2d2c25f 100644 --- a/oci/src/proxmenux_oci/cli.py +++ b/oci/src/proxmenux_oci/cli.py @@ -472,7 +472,7 @@ def _rclone_mount(catalog: Catalog, ui) -> None: if result: from .management import carry_records carry_records(PROJECT_ROOT, shown=True) - console.msg_ok(f"Remote: {result['remote']}:") + console.msg_ok(f"{translate('Rclone remote')}: {result['remote']}:") console.msg_ok(f"{translate('Read/write')}: {result['read_write_path']}") console.msg_ok(f"{translate('Read-only')}: {result['read_only_path']}") console.wait_for_enter(translate("Press Enter to return to the menu...")) @@ -623,52 +623,52 @@ def _template_summary_text(template: dict[str, Any]) -> str: contract = template["container_contract"] lines = [ source_text(template["catalog_ui"]["title"]), - f"Image: {contract['image']['reference']}", - f"Status: {template['status']}", - "Ports: " + (", ".join(f"{p['container_port']}/{p['protocol']}" for p in contract["ports"]) or "none"), - "Volumes: " + (", ".join(v["container_path"] for v in contract["volumes"]) or "none"), + f"{translate('Image')}: {contract['image']['reference']}", + f"{translate('Status')}: {template['status']}", + translate("Ports") + ": " + (", ".join(f"{p['container_port']}/{p['protocol']}" for p in contract["ports"]) or translate("none")), + translate("Volumes") + ": " + (", ".join(v["container_path"] for v in contract["volumes"]) or translate("none")), ] blockers = template["compatibility"]["untranslated_blockers"] if blockers: - lines.append(f"Blockers: {', '.join(blockers)}") + lines.append(f"{translate('Blockers')}: {', '.join(blockers)}") return "\n".join(lines) def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(prog="oci_manager_apps.sh", - description="ProxMenux OCI manager Apps (Technology Preview)") + description=translate("ProxMenux OCI manager Apps (Technology Preview)")) subparsers = parser.add_subparsers(dest="command") - subparsers.add_parser("sync", help="Refresh the index from the image sources") - list_parser = subparsers.add_parser("list", help="List applications") + subparsers.add_parser("sync", help=translate("Refresh the index from the image sources")) + list_parser = subparsers.add_parser("list", help=translate("List applications")) list_parser.add_argument("--filter", default="") - generate_parser = subparsers.add_parser("generate", help="Regenerate the template of one application") + generate_parser = subparsers.add_parser("generate", help=translate("Regenerate the template of one application")) generate_parser.add_argument("app") - generate_all_parser = subparsers.add_parser("generate-all", help="Regenerate the catalog templates") + generate_all_parser = subparsers.add_parser("generate-all", help=translate("Regenerate the catalog templates")) generate_all_parser.add_argument("--provider", choices=["all", "linuxserver.io", "imported", "curated"], default="all") - subparsers.add_parser("apply-icons", help="Resolve catalog icons against the jsdelivr icon sets") - show_parser = subparsers.add_parser("show", help="Show the summary of a template") + subparsers.add_parser("apply-icons", help=translate("Resolve catalog icons against the jsdelivr icon sets")) + show_parser = subparsers.add_parser("show", help=translate("Show the summary of a template")) show_parser.add_argument("app") - open_parser = subparsers.add_parser("open", help="Open the page of an application in the menu") + open_parser = subparsers.add_parser("open", help=translate("Open the page of an application in the menu")) open_parser.add_argument("app") - install_parser = subparsers.add_parser("install", help="Configure and install an application") + install_parser = subparsers.add_parser("install", help=translate("Configure and install an application")) install_parser.add_argument("app") - install_parser.add_argument("--host", default="auto", help="'auto'/'local', or root@IP for development") + install_parser.add_argument("--host", default="auto", help=translate("'auto'/'local', or root@IP for development")) install_parser.add_argument("--advanced", action="store_true") install_parser.add_argument("--dry-run", action="store_true") - rclone_parser = subparsers.add_parser("rclone-mount", help="Enable a mount on an installed Rclone OCI") + rclone_parser = subparsers.add_parser("rclone-mount", help=translate("Enable a mount on an installed Rclone OCI")) rclone_parser.add_argument("--host", default="auto") rclone_parser.add_argument("--dry-run", action="store_true") - subparsers.add_parser("recover", help="Register again the OCI applications restored from a backup") - manage_parser = subparsers.add_parser("manage", help="Update, modify or recreate one installed OCI instance") + subparsers.add_parser("recover", help=translate("Register again the OCI applications restored from a backup")) + manage_parser = subparsers.add_parser("manage", help=translate("Update, modify or recreate one installed OCI instance")) manage_parser.add_argument("vmid", type=int) manage_parser.add_argument("--action", choices=("update", "modify", "recreate"), required=True) manage_parser.add_argument("--keep-backup", metavar="STORAGE", - help="Keep the backup taken before the update in this Proxmox storage") + help=translate("Keep the backup taken before the update in this Proxmox storage")) manage_parser.add_argument("--unattended", action="store_true", - help="Scheduled run: no questions; stops where a person has to decide") + help=translate("Scheduled run: no questions; stops where a person has to decide")) manage_parser.add_argument("--acknowledge-external-data", action="store_true", - help="Host directories are not reverted by the backup (confirmed beforehand)") + help=translate("Host directories are not reverted by the backup (confirmed beforehand)")) manage_parser.add_argument("--min-image-age-days", type=int, default=0) return parser @@ -681,15 +681,15 @@ def main(argv: list[str] | None = None) -> int: return interactive(catalog) if args.command == "sync": payload = catalog.sync_index() - print(f"Index updated: {len(payload['applications'])} candidate applications") + print(translate('Index updated: {count} candidate applications').format(count=len(payload['applications']))) return 0 if args.command == "list": query = args.filter.casefold() for item in catalog.load_index()["applications"]: if not item.get("hidden", False) and query in item["id"].casefold(): candidate = item.get("automatic_install_candidate") - status = ("installable" if candidate else "pending adaptation" if candidate is False - else item.get("template_status") or "not generated") + status = (translate("installable") if candidate else translate("pending adaptation") if candidate is False + else item.get("template_status") or translate("not generated")) print(f"{item['id']:<30} {_display_architectures(item):<12} {publisher(item):<14} {status}") return 0 if args.command == "generate": @@ -702,13 +702,12 @@ def main(argv: list[str] | None = None) -> int: print(f"\r[{current:3}/{total}] {marker:<5} {app_id:<32}", end="", flush=True) report = catalog.generate_all(progress=progress, provider=args.provider) - print(f"\nGenerated: {report['generated_count']}; failed: {report['failed_count']}; " - f"family: {args.provider}") + print('\n' + translate('Generated: {generated}; failed: {failed}; family: {provider}').format( + generated=report['generated_count'], failed=report['failed_count'], provider=args.provider)) return 0 if not report["failed"] else 2 if args.command == "apply-icons": report = catalog.apply_icons() - print(f"Icons resolved: {report['resolved']}; cleared: {report['cleared']}; " - f"unchanged: {report['unchanged']}; with a theme variant: {report['themed']}") + print(translate('Icons resolved: {resolved}; cleared: {cleared}; unchanged: {unchanged}; with a theme variant: {themed}').format(**report)) return 0 if args.command == "show": print(_template_summary_text(catalog.compose(args.app))) @@ -728,14 +727,14 @@ def main(argv: list[str] | None = None) -> int: if args.command == "install": template = catalog.compose(args.app) if not template["compatibility"]["automatic_install_candidate"]: - raise InstallError("Installation blocked: " + ", ".join(template["compatibility"]["untranslated_blockers"])) + raise InstallError(translate("Installation blocked:") + " " + ", ".join(template["compatibility"]["untranslated_blockers"])) notice = external_services_notice(template) if notice: print(notice + "\n") deployment = build_deployment(template, None, ADVANCED_MODE if args.advanced else DEFAULT_MODE) print(_deployment_summary_text(template, deployment)) - if not args.dry_run and input("\nInstall? [y/N]: ").strip().casefold() not in {"y", "yes"}: - print("Installation cancelled.") + if not args.dry_run and input('\n' + translate('Install? [y/N]:') + ' ').strip().casefold() not in {"y", "yes"}: + print(translate("Installation cancelled.")) return 0 result = run_remote_install(PROJECT_ROOT, template, deployment, args.host, args.dry_run) if result: @@ -764,7 +763,7 @@ def main(argv: list[str] | None = None) -> int: print(json.dumps(deployment, ensure_ascii=False, indent=2)) result = run_remote_rclone_mount(PROJECT_ROOT, template, deployment, args.host, args.dry_run) if result: - print(f"Read/write: {result['read_write_path']}\nRead-only: {result['read_only_path']}") + print(f"{translate('Read/write')}: {result['read_write_path']}\n{translate('Read-only')}: {result['read_only_path']}") return 0 return 1 except (KeyboardInterrupt, UserCancelled): diff --git a/oci/src/proxmenux_oci/i18n.py b/oci/src/proxmenux_oci/i18n.py index 4efa371a..737ffb69 100644 --- a/oci/src/proxmenux_oci/i18n.py +++ b/oci/src/proxmenux_oci/i18n.py @@ -57,10 +57,55 @@ def diagnostic(error: Any) -> str: for pattern, source in ( (r"No template is available for '(.*)'", N_("No template is available for '{app_id}'")), (r"The application '(.*)' is not in the index", N_("The application '{app_id}' is not in the index")), + (r"The application '(.*)' does not come from LinuxServer", N_("The application '{app_id}' does not come from LinuxServer")), ): match = re.fullmatch(pattern, text) if match: return translate(source).format(app_id=match[1]) + exact = { + 'The CasaOS Compose file has no services': N_('The Compose file has no services.'), + 'The Compose file has no services': N_('The Compose file has no services.'), + 'x-casaos.main no identifica un servicio valido': N_('x-casaos.main must name an existing service.'), + 'The main CasaOS service declares no image': N_('The main Compose service has no image.'), + 'El servicio principal no declara una imagen': N_('The main Compose service has no image.'), + 'El servicio no declara una imagen': N_('The service declares no image:'), + 'The CasaOS document is not a Compose mapping': N_('The Compose document must be a mapping.'), + 'The Compose file has no x-casaos metadata': N_('The Compose file has no x-casaos metadata.'), + 'environment must be a list or a mapping': N_('Compose environment must be a list or a mapping.'), + 'volumes must be a list': N_('Compose volumes must be a list.'), + 'ports must be a list': N_('Compose ports must be a list.'), + 'The README has no recognisable docker-compose section': N_('The README has no recognisable docker-compose section'), + 'La seccion docker-compose no contiene un bloque de codigo': N_('The docker-compose section contains no code block'), + 'The docker-compose block is not closed': N_('The docker-compose block is not closed'), + 'The block found does not look like a Docker Compose file': N_('The block found does not look like a Docker Compose file'), + 'No se puede identificar la imagen principal del Compose': N_('The main Compose service cannot be identified unambiguously'), + 'No se puede identificar de forma univoca el servicio principal del Compose': N_('The main Compose service cannot be identified unambiguously'), + 'python3-jsonschema is required to generate templates': N_('python3-jsonschema is required to generate templates'), + 'Bulk generation requires GITHUB_TOKEN to obtain an immutable revision per application': N_('Bulk generation requires GITHUB_TOKEN to obtain an immutable revision per application'), + 'The ProxMenux application catalogue is not a list': N_('The ProxMenux application catalogue is not a list'), + 'GitHub returned a truncated tree for the CasaOS catalogue': N_('GitHub returned a truncated tree for the CasaOS catalogue'), + 'No Compose files were found in the CasaOS catalogue': N_('No Compose files were found in the CasaOS catalogue'), + } + if text in exact: + return translate(exact[text]) + for prefix, source in ( + ('Cannot normalise the CasaOS identifier:', N_('Invalid application identifier:')), + ('Cannot normalise the identifier:', N_('Invalid application identifier:')), + ('Docker Compose CasaOS no valido:', N_('The Compose file is not valid YAML:')), + ('Docker Compose no valido:', N_('The Compose file is not valid YAML:')), + ('La plantilla generada no cumple el esquema:', N_('The generated template does not match the schema:')), + ): + if text.startswith(prefix): + return translate(source) + text[len(prefix):] + match = re.fullmatch(r'GitHub returned HTTP 403 for (.+)\. Set GITHUB_TOKEN to raise the API rate limit\.', text) + if match: + return translate('GitHub returned HTTP 403 for {url}. Set GITHUB_TOKEN to raise the API rate limit.').format(url=match[1]) + match = re.fullmatch(r'GitHub returned HTTP ([0-9]{3}) (?:for|para) (.+)\.', text) + if match: + return translate('GitHub returned HTTP {status} for {url}.').format(status=match[1], url=match[2]) + match = re.fullmatch(r'No se pudo acceder a (.+) despues de 3 intentos: (.*)', text, re.S) + if match: + return translate('Could not reach {url} after 3 attempts: {reason}').format(url=match[1], reason=match[2]) return text