i18n: complete the other languages for the Slovak work

- Translate the new terminal and Monitor texts into es, de, fr, it, pt and sv
- Replace the machine fills of those new keys with reviewed translations
- Keep the complete terminal catalog check in CI
- Keep Machine learning in English in Spanish
- Fix the German Exit label
- Make the fallback tests use a locale without the keys
This commit is contained in:
MacRimi
2026-10-22 00:09:54 +02:00
parent c0046cb24f
commit 203496f14f
16 changed files with 3047 additions and 1409 deletions
@@ -69,21 +69,13 @@ class TerminalCatalogsTests(unittest.TestCase):
def test_shipped_active_catalogs_keep_literal_contracts(self):
result = subprocess.run(
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
'--root', str(ROOT)],
'--root', str(ROOT), '--require-complete'],
capture_output=True, text=True, timeout=60,
)
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
for locale in MODULE.DEFAULT_LANGUAGES:
self.assertIn(f'[{locale}] active=', result.stdout)
# New hand-reviewed Slovak keys ship with their source changes;
# other locales may use the runtime English fallback until translated.
result = subprocess.run(
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
'--root', str(ROOT), '--languages', 'sk', '--require-complete'],
capture_output=True, text=True, timeout=60,
)
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
self.assertIn('missing=0', result.stdout)
self.assertNotIn('missing=1', result.stdout)
def test_optional_completeness_still_rejects_invalid_present_translations(self):
with tempfile.TemporaryDirectory() as temporary:
+291 -131
View File
@@ -1231,7 +1231,9 @@
"update": "Aktualisieren",
"modify": "Ändern",
"recover": "Wiederherstellen",
"registerRestored": "Erneut registrieren",
"terminalTitleUpdate": "OCI-Anwendung aktualisieren",
"terminalTitleRecoverPrevious": "Vorherige OCI-Installation wiederherstellen",
"terminalTitleModify": "OCI-Anwendung ändern",
"terminalTitleRecover": "Wiederhergestellte OCI-Anwendung registrieren",
"terminalDescription": "Es läuft derselbe Vorgang wie im ProxMenux-Menü: OCI manager Apps → Installierte OCI-Anwendungen verwalten.",
@@ -1760,7 +1762,128 @@
"dockerEvidenceImage": "Image",
"dockerEvidencePort": "Veröffentlichter TCP-Port",
"dockerEvidenceProject": "Compose-Projekt",
"dockerEndpointReview": "Container mit veröffentlichten TCP-Ports. Bestätigen Sie Namen und Webadresse vor dem Speichern. Die Registrierung richtet keine Updates ein."
"dockerEndpointReview": "Container mit veröffentlichten TCP-Ports. Bestätigen Sie Namen und Webadresse vor dem Speichern. Die Registrierung richtet keine Updates ein.",
"confirmRemove": "Den Eintrag dieser Anwendung aus der Registerkarte App entfernen? Die Anwendung wird dadurch nicht deinstalliert.",
"packageExample": "z. B. {package}",
"packageHelpBefore": "Automatisch aus dem Namen ausgefüllt. Prüfen Sie dies mit",
"packageHelpAfter": "innerhalb des CT.",
"binaryHelpBefore": "Absoluter Pfad. Ermitteln Sie ihn mit",
"binaryHelpOr": "oder",
"errors": {
"ociBusy": "ein OCI-Vorgang an diesem Container läuft",
"dpkgMissing": "{package} ist nicht über dpkg installiert",
"dpkgFailed": "dpkg-query ist fehlgeschlagen",
"dpkgNoVersion": "keine passende Version in der dpkg-Ausgabe",
"apkFailed": "apk info ist fehlgeschlagen",
"apkNoVersion": "keine passende Version in der apk-Ausgabe",
"fileRead": "{path} konnte nicht gelesen werden",
"fileNoMatch": "file_regex hat in {path} keine Übereinstimmung gefunden",
"binaryFailed": "Aufruf der Binärdatei fehlgeschlagen",
"binaryNoVersion": "keine passende Version in der Ausgabe der Binärdatei",
"pythonFailed": "python -c importlib.metadata ist fehlgeschlagen",
"pythonNoVersion": "keine passende Version in der Ausgabe der Python-Distribution",
"dockerImageResolve": "das installierte Image des Containers konnte nicht ermittelt werden",
"dockerInspectFailed": "docker inspect ist fehlgeschlagen",
"dockerLabelMissing": "der Container hat kein Label {label}",
"dockerLabelMutable": "das Docker-Label meldet {tag} (veränderlicher Tag, keine Version)",
"dockerLabelNoVersion": "keine passende Version in der Ausgabe des Docker-Labels",
"dockerExecFailed": "docker exec ist fehlgeschlagen",
"dockerExecNoVersion": "keine passende Version in der Ausgabe von docker exec",
"commandEmpty": "command_argv ist leer",
"commandFailed": "Befehl fehlgeschlagen",
"commandNoVersion": "keine passende Version in der Befehlsausgabe",
"unsupportedMethod": "nicht unterstützte Methode: {method}",
"unknownUpstream": "unbekannter upstream_type: {type}",
"githubNotFound": "{repo}: nicht gefunden",
"githubRejected": "GitHub hat die Anfrage abgelehnt (403)",
"githubError": "GitHub-Fehler {code}",
"noRelease": "kein Tag / Release-Name in der Antwort",
"tagNoMatch": "tag_regex passt nicht auf '{tag}'",
"httpError": "HTTP-Fehler {code}",
"invalidJson": "ungültige JSON-Antwort: {detail}",
"jsonPathUnresolved": "json_path '{path}' konnte nicht aufgelöst werden",
"jsonEmpty": "leerer Wert bei json_path",
"dockerNoTags": "keine passenden Tags (docker_hub)",
"dockerMovingOnly": "tag_regex passt nur auf bewegliche Tags; verwenden Sie die Digest-Verfolgung der Docker-Images",
"dockerHubError": "Docker-Hub-Fehler {code}",
"dockerHubJson": "ungültiges JSON von Docker Hub: {detail}",
"dockerHubEmpty": "Docker Hub hat keine Tags zurückgegeben",
"payload": "die Nutzdaten müssen ein JSON-Objekt sein",
"name": "name ist erforderlich und muss 1-64 Zeichen aus Buchstaben/Ziffern/Leerzeichen/._+-()/ enthalten",
"method": "installed_via muss einer der folgenden Werte sein: {values} oder leer",
"package": "package ist erforderlich (Buchstaben/Ziffern/._+@:/ bis zu 127 Zeichen)",
"filePath": "file_path ist erforderlich und muss ein absoluter Pfad sein",
"fileRegex": "file_regex ist erforderlich",
"fileRegexInvalid": "file_regex ist kein gültiger regulärer Ausdruck: {detail}",
"binaryPath": "binary_path ist erforderlich und muss ein absoluter Pfad sein",
"pythonPath": "python_path ist erforderlich und muss ein absoluter Pfad sein",
"distribution": "distribution ist erforderlich (Name nach PEP 503)",
"container": "container_name ist erforderlich (Docker-Namensregeln)",
"label": "label ist erforderlich (OCI-Namensregeln für Labels)",
"dockerBinary": "binary_path ist erforderlich (absoluter Pfad oder bloßer Befehl)",
"manualVersion": "installed_version ist für die manuelle Methode erforderlich",
"versionLength": "installed_version überschreitet {max} Zeichen",
"versionControl": "installed_version enthält ein unzulässiges Steuerzeichen",
"installedRegexInvalid": "installed_regex ist kein gültiger regulärer Ausdruck: {detail}",
"upstreamType": "upstream_type muss einer der folgenden Werte sein: {values}",
"tagRegexInvalid": "tag_regex ist kein gültiger regulärer Ausdruck: {detail}",
"repoRequired": "repo ist für upstream_type=github erforderlich",
"repoFormat": "repo muss 'owner/name' sein",
"githubSource": "github_source muss einer der folgenden Werte sein: {values}",
"upstreamUrlRequired": "upstream_url ist für upstream_type=http_json erforderlich",
"upstreamUrl": "upstream_url muss eine http(s)-URL sein",
"upstreamUrlLength": "upstream_url überschreitet {max} Zeichen",
"jsonPathRequired": "upstream_json_path ist für upstream_type=http_json erforderlich",
"jsonPathLength": "upstream_json_path überschreitet {max} Zeichen",
"jsonPathCharacters": "upstream_json_path verwendet unzulässige Zeichen",
"dockerImageRequired": "docker_image ist für upstream_type=docker_hub erforderlich",
"dockerImageLength": "docker_image überschreitet {max} Zeichen",
"dockerImageFormat": "docker_image muss der Docker-Hub-Benennung entsprechen (owner/name oder name)",
"healthPath": "health_path muss ein gültiger URL-Pfad sein (max. 255 Zeichen)",
"logoUrl": "logo_url muss eine http(s)-URL oder das lokal zwischengespeicherte Symbol dieser VM sein",
"discoveryId": "ungültige discovery_id",
"helperSlug": "helper_slug muss ein Slug in Kleinbuchstaben sein (Buchstaben/Ziffern/._-)",
"updateVia": "update_via akzeptiert nur 'docker'",
"dockerDetector": "update_via=docker erfordert einen Detektor docker_label oder docker_exec",
"dockerConflict": "update_via=docker kann nicht mit {field} kombiniert werden",
"updateCommandType": "update_command muss eine Zeichenkette sein",
"updateCommandLength": "update_command überschreitet {max} Zeichen",
"updateCommandNull": "update_command enthält ein Null-Byte",
"updateMethod": "update_method muss none, helper oder custom sein",
"updateCommandRequired": "update_command ist für update_method=custom erforderlich",
"updateCommandOnlyCustom": "update_command ist nur für update_method=custom zulässig",
"helperRequired": "für update_method=helper ist ein unterstützter helper_slug erforderlich",
"dockerUpdater": "An Docker delegierte Apps werden über ihr Image aktualisiert, nicht über einen separaten App-Updater",
"commandRequired": "command_argv ist erforderlich (nicht leere Liste)",
"commandList": "command_argv muss eine nicht leere Liste von Zeichenketten sein",
"commandCount": "command_argv akzeptiert höchstens {max} Einträge",
"commandEntry": "command_argv[{index}] muss eine nicht leere Zeichenkette sein",
"commandEntryLength": "command_argv[{index}] überschreitet {max} Zeichen",
"commandEntryControl": "command_argv[{index}] enthält ein unzulässiges Steuerzeichen",
"binaryArgsList": "binary_args muss eine Liste von Zeichenketten sein",
"binaryArgsCount": "binary_args akzeptiert höchstens {max} Einträge",
"binaryArgEntry": "binary_args[{index}] muss eine nicht leere Zeichenkette sein",
"binaryArgLength": "binary_args[{index}] überschreitet {max} Zeichen",
"binaryArgControl": "binary_args[{index}] enthält ein unzulässiges Steuerzeichen",
"portsList": "ports muss eine Liste von {port, description, scheme} sein",
"portObject": "ports[{index}] muss ein Objekt sein",
"portRequired": "ports[{index}].port ist erforderlich",
"portInteger": "ports[{index}].port muss eine Ganzzahl sein",
"portRange": "ports[{index}].port muss zwischen 1 und 65535 liegen",
"portDuplicate": "Port {port} kommt für diese App mehrfach vor",
"portDescription": "ports[{index}].description enthält ungültige Zeichen",
"portScheme": "ports[{index}].scheme muss 'http' oder 'https' sein",
"portPath": "ports[{index}].web_path muss ein gültiger URL-Pfad sein (max. 255 Zeichen)",
"portLogo": "ports[{index}].logo_url muss eine http(s)-URL sein (max. 512 Zeichen)",
"portCategory": "ports[{index}].category enthält ungültige Zeichen oder ist zu lang",
"portCustomUrl": "ports[{index}].custom_url muss eine http(s)-URL sein (max. 512 Zeichen)",
"tagRegexLength": "tag_regex überschreitet 512 Zeichen",
"persistPermission": "Sidecar konnte nicht gespeichert werden (Berechtigung?)",
"persist": "Sidecar konnte nicht gespeichert werden",
"noApps": "für diese vmid sind keine Apps registriert",
"appMissing": "app_id '{appId}' nicht gefunden",
"appNotFound": "App nicht gefunden"
}
},
"statusFilter": {
"ariaLabel": "Virtuelle Maschinen und Container filtern",
@@ -2294,6 +2417,42 @@
"updateManyDescription": "Wiederholen Sie die Nachinstallationsfunktionen von {count} nacheinander.",
"legacySourceTitle": "Legacy-Optimierung – klicken Sie, um die Quelle anzuzeigen",
"sourceTitle": "Klicken Sie hier, um den Quellcode anzuzeigen",
"sourceDialogTitle": "Quellcode: {name}",
"sourceLoading": "Quellcode wird geladen…",
"sourceUnavailable": "Der Quellcode ist nicht verfügbar.",
"sourceLoadFailed": "Der Quellcode konnte nicht geladen werden. Versuchen Sie es erneut.",
"sourceFunctionMissing": "Die Funktion wurde in den verfügbaren Skripten nicht gefunden.",
"sourceUnknownTool": "Unbekanntes Tool: {tool}",
"sourceNoMapping": "Dem Tool {tool} ist keine Funktion zugeordnet.",
"sourceToolNames": {
"subscription_banner": "Entfernung des Abonnementbanners",
"time_sync": "Zeitsynchronisierung",
"apt_languages": "APT-Sprachdateien überspringen",
"journald": "Journald-Optimierung",
"logrotate": "Logrotate-Optimierung",
"system_limits": "Erhöhung der Systemlimits",
"memory_settings": "Optimierung der Speichereinstellungen",
"zram_swap": "ZRAM-Swap-Profil",
"kernel_panic": "Konfiguration bei Kernel Panic",
"apt_ipv4": "APT IPv4 erzwingen",
"kexec": "kexec für schnelle Neustarts",
"rpc": "RPC / rpcbind deaktivieren",
"motd": "Benutzerdefiniertes MOTD-Banner",
"system_utils": "Systemdienstprogramme",
"network_optimization": "Netzwerkoptimierungen",
"bashrc_custom": "Bashrc-Anpassung",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (SSD-Schutz)",
"zfs_autotrim": "ZFS Autotrim",
"amd_fixes": "Korrekturen für AMD-CPUs (Ryzen/EPYC)",
"persistent_network": "Persistente Netzwerkschnittstellen festlegen",
"vfio_iommu": "VFIO/IOMMU-Passthrough",
"lvm_repair": "Reparatur der LVM-PV-Header",
"repo_cleanup": "Repository-Bereinigung",
"proxmox_repos": "Proxmox-APT-Repositorys",
"entropy": "Entropie-Erzeugung (haveged)"
},
"legacy": "Vermächtnis",
"updateToolTitle": "Aktualisieren Sie {name} auf v{version}",
"availableUpdates": "Verfügbare Updates",
@@ -4823,121 +4982,121 @@
},
"apiErrors": {
"requestFailed": "Die Anfrage ist fehlgeschlagen.",
"absolutePath": "Pfad muss absolut sein",
"pathConfigured": "Dieser Pfad ist bereits konfiguriert",
"pathRequired": "Pfad ist erforderlich",
"pathQuery": "path query parameter is required",
"absolutePath": "der Pfad muss absolut sein",
"pathConfigured": "dieser Pfad ist bereits konfiguriert",
"pathRequired": "der Pfad ist erforderlich",
"pathQuery": "der Abfrageparameter path ist erforderlich",
"pathNotFound": "Pfad nicht gefunden",
"invalidJobId": "ungültige Job-ID",
"jobNotFound": "Job nicht gefunden",
"runnerMissing": "Runner-Skript nicht installiert",
"noRestore": "Kein Wiederherstellungsstatus zum Verwerfen",
"invalidJobId": "ungültige Auftrags-ID",
"jobNotFound": "Auftrag nicht gefunden",
"runnerMissing": "Ausführungsskript nicht installiert",
"noRestore": "kein Wiederherstellungsstatus zum Verwerfen vorhanden",
"invalidFile": "ungültiger Dateiname",
"notFound": "not found",
"notFound": "nicht gefunden",
"logOutside": "Protokollpfad außerhalb des zulässigen Verzeichnisses",
"targetsList": "Ziele müssen eine Liste sein",
"targetsList": "targets muss eine Liste sein",
"emptyExpression": "leerer Ausdruck",
"invalidId": "ungültige ID (verwenden Sie Buchstaben, Ziffern, _ oder -)",
"backend": "backend must be pbs, local or borg",
"remoteBackend": "Backend muss pbs oder borg sein",
"remoteBackendQuoted": "Backend muss „pbs“ oder „borg“ sein.",
"profileMode": "„profile_mode“ muss „Standard“ oder „Benutzerdefiniert“ sein",
"borgAttached": "Borg kann nicht angehängt werden (PVE vzdump schreibt nur auf PBS/lokale Speicher)",
"borgAttachedLong": "Borg ist kein gültiges Backend für angehängte Jobs (PVE vzdump schreibt nur in PBS/lokale Speicher)",
"parentRequired": "pve_parent_job_id und pve_storage sind zum Anhängen erforderlich",
"absolutePaths": "Pfade müssen eine Liste absoluter Pfade sein",
"customPath": "Benutzerdefiniertes Profil benötigt mindestens einen Pfad",
"defaultPaths": "Standardprofilpfade konnten nicht aufgelöst werden",
"retentionObject": "retention must be an object",
"invalidId": "ungültige ID (Buchstaben, Ziffern, _ oder - verwenden)",
"backend": "backend muss pbs, local oder borg sein",
"remoteBackend": "backend muss pbs oder borg sein",
"remoteBackendQuoted": "backend muss 'pbs' oder 'borg' sein",
"profileMode": "profile_mode muss default oder custom sein",
"borgAttached": "borg kann nicht angehängt werden (PVE vzdump schreibt nur auf pbs/local-Speicher)",
"borgAttachedLong": "borg ist kein gültiges Backend für angehängte Aufträge (PVE vzdump schreibt nur auf pbs/local-Speicher)",
"parentRequired": "pve_parent_job_id und pve_storage sind für attached erforderlich",
"absolutePaths": "paths muss eine Liste absoluter Pfade sein",
"customPath": "das benutzerdefinierte Profil benötigt mindestens einen Pfad",
"defaultPaths": "die Pfade des Standardprofils konnten nicht ermittelt werden",
"retentionObject": "retention muss ein Objekt sein",
"pbsRepository": "pbs_repository ist erforderlich",
"pbsEncryption": "pbs_encrypt_mode muss „none“, „new“ oder „existing“ sein.",
"pbsKeyFailed": "failed to create PBS encryption keyfile",
"pbsClientMissing": "PBS-Verschlüsselungsschlüsseldatei konnte nicht erstellt werden (ist proxmox-backup-client installiert?)",
"pbsEncryption": "pbs_encrypt_mode muss 'none', 'new' oder 'existing' sein",
"pbsKeyFailed": "die PBS-Verschlüsselungsschlüsseldatei konnte nicht erstellt werden",
"pbsClientMissing": "die PBS-Verschlüsselungsschlüsseldatei konnte nicht erstellt werden (ist proxmox-backup-client installiert?)",
"borgRepository": "borg_repo ist erforderlich",
"borgEncryption": "borg_encrypt_mode muss einer der folgenden Werte sein: none, repokey, keyfile, Authenticated",
"encryption": "encrypt_mode muss einer von „none“, „repokey“, „keyfile“ und „authentifiziert“ sein",
"borgPassphrase": "borg_passphrase ist erforderlich, wenn die Verschlüsselung aktiviert ist (speichern Sie sie am Ziel oder übergeben Sie eine in der Anfrage).",
"passphrase": "passphrase is required when encryption is enabled",
"password": "Passwort ist erforderlich",
"deviceConfirmation": "bestätigen_Gerät muss genau mit dem Gerät übereinstimmen (Tippfehler/Sicherheitsüberprüfung)",
"borgEncryption": "borg_encrypt_mode muss einer der folgenden Werte sein: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode muss einer der folgenden Werte sein: none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase ist erforderlich, wenn die Verschlüsselung aktiviert ist (am Ziel speichern oder in der Anfrage übergeben)",
"passphrase": "die Passphrase ist erforderlich, wenn die Verschlüsselung aktiviert ist",
"password": "das Passwort ist erforderlich",
"deviceConfirmation": "confirm_device muss exakt mit device übereinstimmen (Tippfehler-/Sicherheitsprüfung)",
"invalidDevice": "ungültiger Gerätepfad",
"absoluteMountpoint": "Absoluter Mountpoint erforderlich",
"archiveLayout": "Archivlayout nicht erkannt – kein rootfs/ gefunden",
"absoluteMountpoint": "absoluter Einhängepunkt erforderlich",
"archiveLayout": "Archivstruktur nicht erkannt – kein rootfs/ gefunden",
"archiveMissing": "Archiv nicht gefunden",
"archiveNotFile": "Archivpfad ist keine reguläre Datei",
"invalidName": "invalid name",
"archiveNotFile": "der Archivpfad ist keine reguläre Datei",
"invalidName": "ungültiger Name",
"invalidStaging": "ungültiger staging_path",
"jobRename": "Jobname kann nicht geändert werden (löschen + neu erstellen, um umzubenennen)",
"jobRename": "der Auftragsname kann nicht geändert werden (zum Umbenennen löschen und neu erstellen)",
"absoluteKey": "key_path muss absolut sein",
"mode": "Der Modus muss „lokal“ oder „ssh“ sein.",
"nameRequired": "Name ist erforderlich (Buchstaben, Ziffern, _ oder -)",
"noLog": "Für diesen Job ist noch kein Protokoll verfügbar",
"noPbsConfig": "keine manuelle PBS-Konfigurationsdatei",
"mode": "mode muss \"local\" oder \"ssh\" sein",
"nameRequired": "der Name ist erforderlich (Buchstaben, Ziffern, _ oder -)",
"noLog": "für diesen Auftrag ist noch kein Protokoll verfügbar",
"noPbsConfig": "keine Datei mit manuellen PBS-Konfigurationen",
"outputMissing": "Ausgabedatei fehlt",
"parserJson": "Parser-Ausgabe war kein gültiges JSON",
"restoreJson": "Die Ausgabe von run_restore war kein gültiger JSON-Code",
"repoRequired": "Repo ist erforderlich",
"parserJson": "die Ausgabe des Parsers war kein gültiges JSON",
"restoreJson": "die Ausgabe von run_restore war kein gültiges JSON",
"repoRequired": "repo ist erforderlich",
"repoSnapshot": "repo_name und snapshot sind erforderlich",
"borgRepoSnapshot": "Repo-Name und Snapshot sind für Borg erforderlich",
"borgRepoSnapshot": "repo_name und snapshot sind für borg erforderlich",
"pbsRepoSnapshot": "repo_name und snapshot sind für pbs erforderlich",
"repoName": "repo_name ist erforderlich",
"restoreMissing": "Wiederherstellungstool ist auf diesem Host nicht installiert",
"serverDatastore": "server and datastore are required",
"snapshotRequired": "Schnappschuss ist erforderlich",
"source": "Quelle muss pbs, borg oder lokal sein",
"restoreMissing": "die Wiederherstellungswerkzeuge sind auf diesem Host nicht installiert",
"serverDatastore": "server und datastore sind erforderlich",
"snapshotRequired": "snapshot ist erforderlich",
"source": "source muss pbs, borg oder local sein",
"sshPort": "ssh_port muss eine Ganzzahl zwischen 1 und 65535 sein",
"sshRequired": "ssh_user, ssh_host und ssh_remote_path sind für den ssh-Modus erforderlich",
"repositoryPath": "Ziel hat keinen Repository-Pfad",
"taskExpired": "task not found or expired",
"repositoryPath": "das Ziel hat keinen Repository-Pfad",
"taskExpired": "Aufgabe nicht gefunden oder abgelaufen",
"invalidExpression": "ungültiger Ausdruck",
"noReport": "Kein Bericht ausgegeben",
"parseManifestFailed": "parse_manifest exited non-zero",
"jobExists": "Job existiert bereits: {value}",
"noReport": "kein Bericht ausgegeben",
"parseManifestFailed": "parse_manifest wurde mit einem Fehlercode beendet",
"jobExists": "Auftrag existiert bereits: {value}",
"pathMissing": "Pfad existiert auf diesem Host nicht: {value}",
"deviceMissing": "device does not exist: {value}",
"mountpoint": "kein Mountpunkt: {value}",
"localArchiveMissing": "local archive not found: {value}",
"borgDestination": "Borg-Ziel „{value}“ nicht gefunden",
"pbsDestination": "PBS-Ziel „{value}“ nicht gefunden",
"pbsPassword": "Für PBS-Repo „{value}“ ist kein Passwort verfügbar.",
"borgRepoMissing": "Borg-Repo „{value}“ nicht konfiguriert",
"pbsRepoMissing": "PBS-Repo „{value}“ nicht konfiguriert",
"deviceMissing": "Gerät existiert nicht: {value}",
"mountpoint": "kein Einhängepunkt: {value}",
"localArchiveMissing": "lokales Archiv nicht gefunden: {value}",
"borgDestination": "Borg-Ziel '{value}' nicht gefunden",
"pbsDestination": "PBS-Ziel '{value}' nicht gefunden",
"pbsPassword": "kein Passwort für das PBS-Repo '{value}' verfügbar",
"borgRepoMissing": "Borg-Repo \"{value}\" nicht konfiguriert",
"pbsRepoMissing": "PBS-Repo \"{value}\" nicht konfiguriert",
"borgTargetMissing": "Borg-Ziel nicht gefunden: {value}",
"pbsTargetMissing": "PBS-Repo nicht gefunden: {value}",
"pveJobMissing": "PVE vzdump-Job nicht gefunden: {value}",
"statePersist": "Zustand kann nicht beibehalten werden: {value}",
"sshDirectory": "ssh-Verzeichnis: {value} kann nicht vorbereitet werden",
"pveJobMissing": "PVE-vzdump-Auftrag nicht gefunden: {value}",
"statePersist": "Status kann nicht gespeichert werden: {value}",
"sshDirectory": "SSH-Verzeichnis kann nicht vorbereitet werden: {value}",
"logRead": "Protokoll kann nicht gelesen werden: {value}",
"envUpdate": ".env: {value} konnte nicht aktualisiert werden",
"pbsConfigWrite": "PBS-Konfiguration konnte nicht beibehalten werden: {value}",
"persist": "konnte nicht beibehalten werden: {value}",
"envUpdate": ".env konnte nicht aktualisiert werden: {value}",
"pbsConfigWrite": "PBS-Konfiguration konnte nicht gespeichert werden: {value}",
"persist": "Speichern fehlgeschlagen: {value}",
"archiveRemove": "Archiv konnte nicht entfernt werden: {value}",
"start": "konnte nicht gestartet werden: {value}",
"start": "Start fehlgeschlagen: {value}",
"borgTargetsUpdate": "borg-targets.txt konnte nicht aktualisiert werden: {value}",
"pbsTargetsUpdate": "Aktualisierung von pbs-manual-configs.txt fehlgeschlagen: {value}",
"unitsUpdate": "Systemd-Einheiten konnten nicht aktualisiert werden: {value}",
"borgTargetsWrite": "failed to write borg-targets.txt: {value}",
"jobWrite": "Jobdateien konnten nicht geschrieben werden: {value}",
"pbsTargetsUpdate": "pbs-manual-configs.txt konnte nicht aktualisiert werden: {value}",
"unitsUpdate": "systemd-Units konnten nicht aktualisiert werden: {value}",
"borgTargetsWrite": "borg-targets.txt konnte nicht geschrieben werden: {value}",
"jobWrite": "Auftragsdateien konnten nicht geschrieben werden: {value}",
"localTargetWrite": "local-target.conf konnte nicht geschrieben werden: {value}",
"unitsWrite": "Systemd-Einheiten konnten nicht geschrieben werden: {value}",
"format": "Formatierung fehlgeschlagen: {value}",
"calendar": "ungültig am_Kalender: {value}",
"mount": "mount failed: {value}",
"parserInvocation": "Parser-Aufruf fehlgeschlagen: {value}",
"preflightInvocation": "Preflight-Aufruf fehlgeschlagen: {value}",
"publicKeyMissing": "public key not found after generation: {value}",
"retentionInteger": "„retention.{value}“ muss eine Ganzzahl sein",
"retentionNegative": "„retention.{value}“ darf nicht negativ sein",
"unitsWrite": "systemd-Units konnten nicht geschrieben werden: {value}",
"format": "Formatieren fehlgeschlagen: {value}",
"calendar": "ungültiger on_calendar-Wert: {value}",
"mount": "Einhängen fehlgeschlagen: {value}",
"parserInvocation": "Aufruf des Parsers fehlgeschlagen: {value}",
"preflightInvocation": "Aufruf der Vorabprüfung fehlgeschlagen: {value}",
"publicKeyMissing": "öffentlicher Schlüssel nach der Erzeugung nicht gefunden: {value}",
"retentionInteger": "retention.{value} muss eine Ganzzahl sein",
"retentionNegative": "retention.{value} darf nicht negativ sein",
"keygen": "ssh-keygen fehlgeschlagen: {value}",
"systemctl": "systemctl fehlgeschlagen: {value}",
"unmount": "umount fehlgeschlagen: {value}",
"taskIncomplete": "Aufgabe befindet sich im Status „{value}“ und ist nicht abgeschlossen",
"unknownKind": "unknown kind: {value}",
"unknownMode": "unbekannter Modus „{value}“",
"defaultRemove": "{value} ist die integrierte Standardeinstellung und kann nicht entfernt werden",
"defaultAdd": "{value} is the built-in default; no need to add it",
"keyImport": "Auf {value} ist keine PBS-Schlüsseldatei installiert.Importieren Sie zuerst die Schlüsseldatei.",
"storageMismatch": "PVE-Auftragsspeicher stimmt nicht überein (Auftrag verwendet {value}, Nutzlast sagt {other})"
"taskIncomplete": "die Aufgabe ist im Status \"{value}\", nicht abgeschlossen",
"unknownKind": "unbekannte Art: {value}",
"unknownMode": "unbekannter Modus \"{value}\"",
"defaultRemove": "{value} ist der integrierte Standard und kann nicht entfernt werden",
"defaultAdd": "{value} ist der integrierte Standard; er muss nicht hinzugefügt werden",
"keyImport": "Unter {value} ist keine PBS-Schlüsseldatei installiert. Importieren Sie zuerst die Schlüsseldatei.",
"storageMismatch": "Speicher des PVE-Auftrags stimmt nicht überein (Auftrag verwendet {value}, Nutzdaten geben {other} an)"
}
},
"healthStatus": {
@@ -5438,6 +5597,7 @@
"websocketError": "Es ist ein WebSocket-Fehler aufgetreten",
"connectionClosed": "Verbindung geschlossen",
"completedSuccessfully": "Skript erfolgreich abgeschlossen",
"cancelled": "Vorgang abgebrochen.",
"completedWithError": "Skript mit Fehlercode {code} beendet",
"yes": "Ja",
"yourInput": "Ihr Beitrag:",
@@ -7429,7 +7589,7 @@
"signInWith": "Anmelden mit",
"methodPassword": "Benutzer und Passwort",
"methodToken": "API-Token",
"username": "Benutzer (benutzer@realm)",
"username": "Benutzer",
"password": "Passwort",
"passwordHelp": "Das Passwort wird nur einmal verwendet, um ein schreibgeschütztes API-Token (Rolle Audit) für diesen Monitor zu erstellen. Gespeichert wird nur dieses Token, nie das Passwort. Aktivieren Sie zuerst die Monitor-Authentifizierung.",
"cancel": "Abbrechen",
@@ -7442,10 +7602,10 @@
"editConnection": "Zu bearbeitende Verbindung",
"add": "Neue Verbindung hinzufügen",
"name": "Name",
"url": "HTTPS-URL (für den nativen PBS-Port :8007 angeben)",
"token_id": "API-Token-ID (user@realm!token)",
"token_secret": "API-Token-Geheimnis (leer lassen, um das gespeicherte Geheimnis beizubehalten)",
"fingerprint": "SHA256-Zertifikatfingerabdruck (optional)",
"url": "HTTPS-Adresse",
"token_id": "API-Token-ID",
"token_secret": "API-Token-Geheimnis",
"fingerprint": "SHA256-Fingerabdruck (optional)",
"tlsHelp": "Lassen Sie den Fingerabdruck für die normale Prüfung von Zertifizierungsstelle und Hostname leer. Kopieren Sie bei einem selbstsignierten Zertifikat dessen SHA256-Fingerabdruck aus der PBS-Konsole oder einem anderen vertrauenswürdigen Kanal. Der Fingerabdruck wird vor der Übermittlung von Zugangsdaten geprüft.",
"saved": "PBS-Verbindung geprüft und gespeichert.",
"saveFailed": "PBS-Verbindung konnte nicht gespeichert werden.",
@@ -7489,47 +7649,47 @@
"duration": "Dauer",
"noJobs": "Es sind keine Synchronisierungs-, Überprüfungs- oder Löschzeitpläne konfiguriert.",
"errors": {
"configRead": "Could not read the saved PBS connections. Check the configuration file and permissions.",
"invalidConfig": "Die PBS-Verbindungseinstellungen sind ungültig.Überprüfen Sie das Formular und versuchen Sie es erneut.",
"invalidField": "A connection field is not valid or is too long.",
"invalidUrl": "Verwenden Sie eine HTTPS-PBS-Adresse ohne eingebettete Anmeldeinformationen, Abfrageparameter oder ein Fragment.",
"nameRequired": "Geben Sie einen Servernamen mit maximal 128 Zeichen ein.",
"tokenIdFormat": "Geben Sie die PBS-API-Token-ID im Format „user@realm!token“ ein.",
"configRead": "Die gespeicherten PBS-Verbindungen konnten nicht gelesen werden. Prüfen Sie die Konfigurationsdatei und die Berechtigungen.",
"invalidConfig": "Die Einstellungen der PBS-Verbindung sind ungültig. Prüfen Sie das Formular und versuchen Sie es erneut.",
"invalidField": "Ein Verbindungsfeld ist ungültig oder zu lang.",
"invalidUrl": "Verwenden Sie eine HTTPS-Adresse des PBS ohne eingebettete Zugangsdaten, Abfrageparameter oder Fragment.",
"nameRequired": "Geben Sie einen Servernamen mit höchstens 128 Zeichen ein.",
"tokenIdFormat": "Geben Sie die PBS-API-Token-ID im Format user@realm!token ein.",
"tokenSecret": "Geben Sie ein gültiges API-Token-Geheimnis ohne Leerzeichen oder Steuerzeichen ein.",
"invalidTokenId": "The API token ID must contain only ASCII characters.",
"invalidTokenId": "Die API-Token-ID darf nur ASCII-Zeichen enthalten.",
"invalidFingerprint": "Geben Sie den SHA256-Fingerabdruck des Zertifikats ein: 64 Hexadezimalzeichen, optional durch Doppelpunkte getrennt.",
"fingerprintMismatch": "Das PBS-Zertifikat stimmt nicht mit dem Fingerabdruck überein.Es wurden keine Anmeldeinformationen gesendet.",
"tokenRejected": "PBS hat das API-Token oder seine Berechtigungen abgelehnt.Überprüfen Sie die ACLs sowohl des Benutzers als auch des Tokens.",
"invalidResponse": "PBS hat eine unerwartete Antwort zurückgegeben.Weiterleitungen werden nicht befolgt.",
"fingerprintMismatch": "Das PBS-Zertifikat stimmt nicht mit dem Fingerabdruck überein. Es wurden keine Zugangsdaten gesendet.",
"tokenRejected": "PBS hat das API-Token oder seine Berechtigungen abgelehnt. Prüfen Sie die ACLs sowohl des Benutzers als auch des Tokens.",
"invalidResponse": "PBS hat eine unerwartete Antwort zurückgegeben. Weiterleitungen werden nicht verfolgt.",
"invalidJson": "PBS hat ein ungültiges JSON-Dokument zurückgegeben.",
"connectFailed": "Es konnte keine Verbindung zu PBS über verifiziertes HTTPS hergestellt werden.Überprüfen Sie Adresse, Zertifikat und Service.",
"invalidId": "Die PBS-Verbindungs-ID ist ungültig.Laden Sie die Verbindungsliste neu.",
"connectFailed": "Über verifiziertes HTTPS konnte keine Verbindung zu PBS hergestellt werden. Prüfen Sie Adresse, Zertifikat und Dienst.",
"invalidId": "Die ID der PBS-Verbindung ist ungültig. Laden Sie die Verbindungsliste neu.",
"invalidDatastores": "PBS hat eine ungültige Datenspeicherliste zurückgegeben.",
"connectionLimit": "Es können maximal {count} PBS-Verbindungen konfiguriert werden.",
"connectionLimit": "Es können höchstens {count} PBS-Verbindungen konfiguriert werden.",
"username": "Geben Sie den PBS-Benutzer im Format user@realm ein, zum Beispiel root@pam.",
"password": "Geben Sie das Passwort des PBS-Benutzers ein.",
"loginRejected": "PBS hat den Benutzernamen oder das Passwort abgelehnt.",
"invalidLogin": "PBS hat eine ungültige Anmeldeantwort zurückgegeben.",
"tokenCreateDenied": "Dieser PBS-Benutzer kann keine API-Token erstellen.",
"tokenCreateDenied": "Dieser PBS-Benutzer kann keine API-Tokens erstellen.",
"invalidToken": "PBS hat ein ungültiges API-Token zurückgegeben.",
"auditRoleDenied": "Dieser PBS-Benutzer kann die Audit-Rolle nicht gewähren.Melden Sie sich als root@pam oder ein anderer Administrator an.",
"notFound": "The PBS connection was not found. Reload the connection list.",
"readFailed": "PBS-Daten konnten nicht gelesen werden.Überprüfen Sie den Dienst und die Berechtigungen.",
"invalidList": "PBS returned an invalid data list.",
"auditRoleDenied": "Dieser PBS-Benutzer kann die Rolle Audit nicht vergeben. Melden Sie sich als root@pam oder als anderer Administrator an.",
"notFound": "Die PBS-Verbindung wurde nicht gefunden. Laden Sie die Verbindungsliste neu.",
"readFailed": "PBS-Daten konnten nicht gelesen werden. Prüfen Sie den Dienst und die Berechtigungen.",
"invalidList": "PBS hat eine ungültige Datenliste zurückgegeben.",
"localUnavailable": "PBS ist auf diesem Host nicht verfügbar.",
"authRequired": "Aktivieren Sie die lokale Authentifizierung in Monitor, bevor Sie Remote-PBS-Verbindungen verwalten.",
"datastoreOffline": "Der Datenspeicher ist offline, im Wartungsmodus oder sein Sicherungsgerät ist nicht gemountet.",
"datastoreUnavailable": "Das Datenspeicherdateisystem ist nicht verfügbar."
"authRequired": "Aktivieren Sie die lokale Authentifizierung im Monitor, bevor Sie entfernte PBS-Verbindungen verwalten.",
"datastoreOffline": "Der Datenspeicher ist offline, im Wartungsmodus oder sein zugrunde liegendes Gerät ist nicht eingehängt.",
"datastoreUnavailable": "Das Dateisystem des Datenspeichers ist nicht verfügbar."
},
"taskTypes": {
"backup": "Backup",
"restore": "Wiederherstellen",
"restore": "Wiederherstellung",
"verify": "Verifizierung",
"verifyGroup": "Überprüfung der Sicherungsgruppe",
"verifySnapshot": "Snapshot-Überprüfung",
"prune": "Beschneiden",
"garbageCollection": "Müllabfuhr",
"sync": "Synchronization",
"verifyGroup": "Verifizierung der Backup-Gruppe",
"verifySnapshot": "Verifizierung des Snapshots",
"prune": "Bereinigung",
"garbageCollection": "Garbage Collection",
"sync": "Synchronisierung",
"updateCheck": "Nach Updates suchen",
"terminal": "Terminal",
"createDatastore": "Datenspeicher erstellen",
@@ -7546,23 +7706,23 @@
"active": "Aktiv",
"inactive": "Inaktiv",
"failed": "Fehlgeschlagen",
"activating": "Beginnt",
"deactivating": "Anhalten",
"activating": "Wird gestartet",
"deactivating": "Wird gestoppt",
"unknown": "Unbekannt"
},
"durationUnits": {
"seconds": "{count} s",
"minutes": "{count} min",
"hours": "{count} h",
"days": "{count} d"
"days": "{count} T"
},
"urlHelp": "Geben Sie :8007 für den Standard-PBS-Port ein, zum Beispiel https://pbs.example:8007.",
"urlHelp": "Geben Sie :8007 für den Standard-PBS-Port an, zum Beispiel https://pbs.example:8007.",
"usernameHelp": "Verwenden Sie user@realm, zum Beispiel root@pam.",
"tokenIdHelp": "Verwenden Sie user@realm!token, zum Beispiel monitor@pbs!proxmenux.",
"tokenSecretHelp": "Geben Sie das Geheimnis dieses API-Tokens ein.",
"tokenSecretKeepHelp": "Leer lassen, um das gespeicherte Token geheim zu halten.",
"tokenSecretKeepHelp": "Leer lassen, um das gespeicherte Token-Geheimnis beizubehalten.",
"removeFailed": "Die PBS-Verbindung konnte nicht entfernt werden.",
"savedRefreshFailed": "Die PBS-Verbindung wurde gespeichert, aber die Verbindungsliste konnte nicht aktualisiert werden.Laden Sie die Seite neu, bevor Sie eine weitere Änderung versuchen.",
"savedRefreshFailed": "Die PBS-Verbindung wurde gespeichert, aber die Verbindungsliste konnte nicht aktualisiert werden. Laden Sie die Seite neu, bevor Sie eine weitere Änderung vornehmen.",
"removedRefreshFailed": "Die PBS-Verbindung wurde entfernt, aber die Verbindungsliste konnte nicht aktualisiert werden. Laden Sie die Seite neu.",
"technicalDetails": "Technische Details",
"datastoreType": "Datenspeicher"
@@ -7607,11 +7767,11 @@
"cancel": "Abbrechen",
"errors": {
"addressRequired": "Geben Sie die Adresse des Monitors ein.",
"invalidAddress": "Die Adresse muss mit http:// oder https:// beginnen und einen Host benennen.",
"addressCredentials": "Die Adresse darf weder einen Benutzer noch ein Passwort enthalten.",
"invalidPort": "The port of the address is not valid.",
"invalidAddress": "Die Adresse muss mit http:// oder https:// beginnen und einen Host angeben.",
"addressCredentials": "Die Adresse darf keinen Benutzer und kein Passwort enthalten.",
"invalidPort": "Der Port der Adresse ist ungültig.",
"invalidRequest": "Die Anfrage ist ungültig. Laden Sie die Seite neu und versuchen Sie es erneut.",
"limit": "Es können höchstens {count}-Knoten hinzugefügt werden.",
"limit": "Es können höchstens {count} Knoten hinzugefügt werden.",
"duplicate": "Diese Adresse ist bereits in der Liste.",
"notFound": "Der Knoten wurde nicht gefunden. Laden Sie die Liste neu und versuchen Sie es erneut.",
"detectedRemove": "Nur manuell hinzugefügte Knoten können entfernt werden. Erkannte Knoten können ausgeblendet werden."
+308 -148
View File
@@ -14,7 +14,7 @@
"signInWith": "Iniciar sesión con",
"methodPassword": "Usuario y contraseña",
"methodToken": "Token API",
"username": "Usuario (usuario@realm)",
"username": "Usuario",
"password": "Contraseña",
"passwordHelp": "La contraseña se usa una sola vez para crear un token API de solo lectura (rol Audit) para este Monitor. Solo se guarda ese token, nunca la contraseña. Activa antes la autenticación del Monitor.",
"cancel": "Cancelar",
@@ -27,10 +27,10 @@
"editConnection": "Conexión que deseas editar",
"add": "Añadir una conexión",
"name": "Nombre",
"url": "URL HTTPS (incluye :8007 para el puerto nativo de PBS)",
"token_id": "ID del token API (usuario@realm!token)",
"token_secret": "Secreto del token API (vacío para conservar el guardado)",
"fingerprint": "Huella SHA256 del certificado (opcional)",
"url": "Dirección HTTPS",
"token_id": "ID del token API",
"token_secret": "Secreto del token API",
"fingerprint": "Huella SHA256 (opcional)",
"tlsHelp": "Deja la huella vacía para verificar la CA y el nombre del servidor. Si el certificado es autofirmado, copia su huella SHA256 desde la consola de PBS u otro canal fiable. Se verifica antes de enviar las credenciales.",
"saved": "Conexión PBS verificada y guardada.",
"saveFailed": "No se pudo guardar la conexión PBS.",
@@ -74,50 +74,50 @@
"duration": "Duración",
"noJobs": "No hay programaciones de sincronización, verificación ni prune.",
"errors": {
"configRead": "Could not read the saved PBS connections. Check the configuration file and permissions.",
"invalidConfig": "La configuración de conexión de PBS no es válida.Revisa el formulario y vuelve a intentarlo.",
"invalidField": "un campo de conexión no es válido o es demasiado largo.",
"invalidUrl": "use una dirección HTTPS PBS sin credenciales integradas, parámetros de consulta o un fragmento.",
"nameRequired": "ingrese un nombre de servidor de como máximo 128 caracteres.",
"tokenIdFormat": "Ingrese el ID del token API de PBS en formato usuario@reino!token.",
"tokenSecret": "ingrese un token secreto de API válido sin espacios ni caracteres de control.",
"invalidTokenId": "el ID del token de API debe contener solo caracteres ASCII.",
"invalidFingerprint": "ingrese la huella digital SHA256 del certificado: 64 caracteres hexadecimales, opcionalmente separados por dos puntos.",
"fingerprintMismatch": "El certificado de PBS no coincide con la huella digital.No se enviaron credenciales.",
"tokenRejected": "PBS rechazó el token API o sus permisos.Verifique las ACL tanto del usuario como del token.",
"invalidResponse": "PBS returned an unexpected response. Redirects are not followed.",
"invalidJson": "PBS devolvió un documento JSON no válido.",
"connectFailed": "No se pudo conectar a PBS a través de HTTPS verificado.Consulta la dirección, certificado y servicio.",
"invalidId": "El ID de conexión de PBS no es válido.Vuelva a cargar la lista de conexiones.",
"invalidDatastores": "PBS devolvió una lista de almacenes de datos no válida.",
"connectionLimit": "Como máximo se pueden configurar conexiones PBS {count}.",
"username": "ingrese el usuario de PBS en formato usuario@reino, por ejemplo raíz@pam.",
"password": "ingrese la contraseña del usuario de PBS.",
"loginRejected": "PBS rechazó el nombre de usuario o la contraseña.",
"invalidLogin": "PBS devolvió una respuesta de inicio de sesión no válida.",
"tokenCreateDenied": "este usuario de PBS no puede crear tokens API.",
"invalidToken": "PBS devolvió un token API no válido.",
"auditRoleDenied": "este usuario de PBS no puede otorgar la función de auditoría.Inicie sesión como root@pam u otro administrador.",
"notFound": "No se encontró la conexión PBS.Vuelva a cargar la lista de conexiones.",
"readFailed": "No se pudieron leer los datos de PBS.Consulta su servicio y permisos.",
"invalidList": "PBS devolvió una lista de datos no válidos.",
"configRead": "No se pudieron leer las conexiones PBS guardadas. Revisa el archivo de configuración y los permisos.",
"invalidConfig": "La configuración de la conexión PBS no es válida. Revisa el formulario y vuelve a intentarlo.",
"invalidField": "Un campo de la conexión no es válido o es demasiado largo.",
"invalidUrl": "Usa una dirección HTTPS de PBS sin credenciales incrustadas, parámetros de consulta ni fragmento.",
"nameRequired": "Introduce un nombre de servidor de 128 caracteres como máximo.",
"tokenIdFormat": "Introduce el ID del token API de PBS con el formato usuario@realm!token.",
"tokenSecret": "Introduce un secreto de token API válido, sin espacios ni caracteres de control.",
"invalidTokenId": "El ID del token API solo puede contener caracteres ASCII.",
"invalidFingerprint": "Introduce la huella SHA256 del certificado: 64 caracteres hexadecimales, opcionalmente separados por dos puntos.",
"fingerprintMismatch": "El certificado de PBS no coincide con la huella. No se ha enviado ninguna credencial.",
"tokenRejected": "PBS ha rechazado el token API o sus permisos. Revisa las ACL del usuario y del token.",
"invalidResponse": "PBS ha devuelto una respuesta inesperada. No se siguen las redirecciones.",
"invalidJson": "PBS ha devuelto un documento JSON no válido.",
"connectFailed": "No se pudo conectar con PBS mediante HTTPS verificado. Revisa la dirección, el certificado y el servicio.",
"invalidId": "El ID de la conexión PBS no es válido. Recarga la lista de conexiones.",
"invalidDatastores": "PBS ha devuelto una lista de datastores no válida.",
"connectionLimit": "Se pueden configurar como máximo {count} conexiones PBS.",
"username": "Introduce el usuario de PBS con el formato usuario@realm, por ejemplo root@pam.",
"password": "Introduce la contraseña del usuario de PBS.",
"loginRejected": "PBS ha rechazado el usuario o la contraseña.",
"invalidLogin": "PBS ha devuelto una respuesta de inicio de sesión no válida.",
"tokenCreateDenied": "Este usuario de PBS no puede crear tokens API.",
"invalidToken": "PBS ha devuelto un token API no válido.",
"auditRoleDenied": "Este usuario de PBS no puede conceder el rol Audit. Inicia sesión como root@pam u otro administrador.",
"notFound": "No se encontró la conexión PBS. Recarga la lista de conexiones.",
"readFailed": "No se pudieron leer los datos de PBS. Revisa su servicio y los permisos.",
"invalidList": "PBS ha devuelto una lista de datos no válida.",
"localUnavailable": "PBS no está disponible en este host.",
"authRequired": "habilite la autenticación local en Monitor antes de administrar conexiones PBS remotas.",
"datastoreOffline": "el almacén de datos está fuera de línea, en modo de mantenimiento o su dispositivo de respaldo no está montado.",
"datastoreUnavailable": "el sistema de archivos del almacén de datos no está disponible."
"authRequired": "Activa la autenticación local en Monitor antes de gestionar conexiones PBS remotas.",
"datastoreOffline": "El datastore está desconectado, en modo de mantenimiento o su dispositivo no está montado.",
"datastoreUnavailable": "El sistema de archivos del datastore no está disponible."
},
"taskTypes": {
"backup": "copia de seguridad",
"restore": "Restaurar",
"backup": "Backup",
"restore": "Restauración",
"verify": "Verificación",
"verifyGroup": "verificación del grupo de respaldo",
"verifySnapshot": "verificación de instantáneas",
"prune": "podar",
"garbageCollection": "recolección de basura",
"sync": "sincronización",
"updateCheck": "buscar actualizaciones",
"terminal": "terminal",
"createDatastore": "crear almacén de datos",
"verifyGroup": "Verificación de grupo de backups",
"verifySnapshot": "Verificación de snapshot",
"prune": "Prune",
"garbageCollection": "Recolección de basura",
"sync": "Sincronización",
"updateCheck": "Comprobación de actualizaciones",
"terminal": "Terminal",
"createDatastore": "Creación de datastore",
"other": "Otra tarea ({type})"
},
"states": {
@@ -130,9 +130,9 @@
"serviceStates": {
"active": "Activo",
"inactive": "Inactivo",
"failed": "fallido",
"activating": "Comenzando",
"deactivating": "Detener",
"failed": "Fallido",
"activating": "Iniciando",
"deactivating": "Deteniendo",
"unknown": "Desconocido"
},
"durationUnits": {
@@ -141,14 +141,14 @@
"hours": "{count} h",
"days": "{count} d"
},
"urlHelp": "incluya :8007 para el puerto PBS predeterminado, por ejemplo https://pbs.example:8007.",
"usernameHelp": "utilice usuario@reino, por ejemplo raíz@pam.",
"tokenIdHelp": "utilice el token usuario@reino, por ejemplo monitor@pbs!proxmenux.",
"tokenSecretHelp": "ingrese el secreto de este token API.",
"tokenSecretKeepHelp": "déjelo en blanco para mantener en secreto el token guardado.",
"removeFailed": "Could not remove the PBS connection.",
"savedRefreshFailed": "la conexión PBS se guardó, pero la lista de conexiones no se pudo actualizar.Vuelva a cargar la página antes de intentar otro cambio.",
"removedRefreshFailed": "The PBS connection was removed, but the connection list could not be refreshed. Reload the page.",
"urlHelp": "Incluye :8007 para el puerto predeterminado de PBS, por ejemplo https://pbs.example:8007.",
"usernameHelp": "Usa usuario@realm, por ejemplo root@pam.",
"tokenIdHelp": "Usa usuario@realm!token, por ejemplo monitor@pbs!proxmenux.",
"tokenSecretHelp": "Introduce el secreto de este token API.",
"tokenSecretKeepHelp": "Déjalo vacío para conservar el secreto del token guardado.",
"removeFailed": "No se pudo eliminar la conexión PBS.",
"savedRefreshFailed": "La conexión PBS se ha guardado, pero no se pudo actualizar la lista de conexiones. Recarga la página antes de hacer otro cambio.",
"removedRefreshFailed": "La conexión PBS se ha eliminado, pero no se pudo actualizar la lista de conexiones. Recarga la página.",
"technicalDetails": "Detalles técnicos",
"datastoreType": "Datastore"
},
@@ -1384,7 +1384,9 @@
"update": "Actualizar",
"modify": "Modificar",
"recover": "Recuperar",
"registerRestored": "Registrar de nuevo",
"terminalTitleUpdate": "Actualizar aplicación OCI",
"terminalTitleRecoverPrevious": "Recuperar la instalación OCI anterior",
"terminalTitleModify": "Modificar aplicación OCI",
"terminalTitleRecover": "Recuperar aplicación OCI restaurada",
"terminalDescription": "Se ejecuta el mismo proceso que en el menú de ProxMenux: OCI manager Apps → Gestionar aplicaciones OCI instaladas.",
@@ -1913,7 +1915,128 @@
"ociNewImage": "Nueva imagen",
"ociImageCurrent": "Versión",
"refreshData": "Actualizar datos",
"refreshingData": "Actualizando…"
"refreshingData": "Actualizando…",
"confirmRemove": "¿Eliminar el registro de esta aplicación de la pestaña App? Esto no desinstala la aplicación.",
"packageExample": "por ejemplo, {package}",
"packageHelpBefore": "Se rellena automáticamente a partir del nombre. Compruébalo con",
"packageHelpAfter": "dentro del CT.",
"binaryHelpBefore": "Ruta absoluta. Búscala con",
"binaryHelpOr": "o",
"errors": {
"ociBusy": "hay una operación OCI en curso en este contenedor",
"dpkgMissing": "{package} no está instalado mediante dpkg",
"dpkgFailed": "dpkg-query falló",
"dpkgNoVersion": "ninguna versión coincide en la salida de dpkg",
"apkFailed": "apk info falló",
"apkNoVersion": "ninguna versión coincide en la salida de apk",
"fileRead": "no se pudo leer {path}",
"fileNoMatch": "file_regex no coincide con {path}",
"binaryFailed": "falló la invocación del binario",
"binaryNoVersion": "ninguna versión coincide en la salida del binario",
"pythonFailed": "python -c importlib.metadata falló",
"pythonNoVersion": "ninguna versión coincide en la salida de la distribución de Python",
"dockerImageResolve": "no se pudo resolver la imagen instalada del contenedor",
"dockerInspectFailed": "docker inspect falló",
"dockerLabelMissing": "el contenedor no tiene la etiqueta {label}",
"dockerLabelMutable": "la etiqueta de docker indica {tag} (tag mutable, no una versión)",
"dockerLabelNoVersion": "ninguna versión coincide en la salida de la etiqueta de docker",
"dockerExecFailed": "docker exec falló",
"dockerExecNoVersion": "ninguna versión coincide en la salida de docker exec",
"commandEmpty": "command_argv está vacío",
"commandFailed": "el comando falló",
"commandNoVersion": "ninguna versión coincide en la salida del comando",
"unsupportedMethod": "método no compatible: {method}",
"unknownUpstream": "upstream_type desconocido: {type}",
"githubNotFound": "{repo}: no encontrado",
"githubRejected": "github rechazó la solicitud (403)",
"githubError": "error de github {code}",
"noRelease": "no hay tag ni nombre de release en la respuesta",
"tagNoMatch": "tag_regex no coincide con '{tag}'",
"httpError": "error http {code}",
"invalidJson": "respuesta JSON no válida: {detail}",
"jsonPathUnresolved": "json_path '{path}' no se pudo resolver",
"jsonEmpty": "valor vacío en json_path",
"dockerNoTags": "ningún tag coincide (docker_hub)",
"dockerMovingOnly": "tag_regex solo coincide con tags móviles; usa el seguimiento por digest de la imagen Docker",
"dockerHubError": "error de docker hub {code}",
"dockerHubJson": "JSON de docker hub no válido: {detail}",
"dockerHubEmpty": "docker hub no devolvió ningún tag",
"payload": "el payload debe ser un objeto JSON",
"name": "name es obligatorio y debe tener 1-64 caracteres de letras/dígitos/espacios/._+-()/",
"method": "installed_via debe ser uno de: {values} o vacío",
"package": "package es obligatorio (letras/dígitos/._+@:/ hasta 127 caracteres)",
"filePath": "file_path es obligatorio y debe ser una ruta absoluta",
"fileRegex": "file_regex es obligatorio",
"fileRegexInvalid": "file_regex no es una regex válida: {detail}",
"binaryPath": "binary_path es obligatorio y debe ser una ruta absoluta",
"pythonPath": "python_path es obligatorio y debe ser una ruta absoluta",
"distribution": "distribution es obligatorio (nombre PEP 503)",
"container": "container_name es obligatorio (reglas de nombres de docker)",
"label": "label es obligatorio (reglas de nombres de etiquetas OCI)",
"dockerBinary": "binary_path es obligatorio (ruta absoluta o comando simple)",
"manualVersion": "installed_version es obligatorio para el método manual",
"versionLength": "installed_version supera {max} caracteres",
"versionControl": "installed_version contiene un carácter de control no permitido",
"installedRegexInvalid": "installed_regex no es una regex válida: {detail}",
"upstreamType": "upstream_type debe ser uno de: {values}",
"tagRegexInvalid": "tag_regex no es una regex válida: {detail}",
"repoRequired": "repo es obligatorio para upstream_type=github",
"repoFormat": "repo debe tener el formato 'owner/name'",
"githubSource": "github_source debe ser uno de: {values}",
"upstreamUrlRequired": "upstream_url es obligatorio para upstream_type=http_json",
"upstreamUrl": "upstream_url debe ser una URL http(s)",
"upstreamUrlLength": "upstream_url supera {max} caracteres",
"jsonPathRequired": "upstream_json_path es obligatorio para upstream_type=http_json",
"jsonPathLength": "upstream_json_path supera {max} caracteres",
"jsonPathCharacters": "upstream_json_path usa caracteres no permitidos",
"dockerImageRequired": "docker_image es obligatorio para upstream_type=docker_hub",
"dockerImageLength": "docker_image supera {max} caracteres",
"dockerImageFormat": "docker_image debe seguir el formato de nombres de Docker Hub (owner/name o name)",
"healthPath": "health_path debe ser una ruta URL válida (máx. 255 caracteres)",
"logoUrl": "logo_url debe ser una URL http(s) o el icono local en caché de esta VM",
"discoveryId": "discovery_id no válido",
"helperSlug": "helper_slug debe ser un slug en minúsculas (letras/dígitos/._-)",
"updateVia": "update_via solo acepta 'docker'",
"dockerDetector": "update_via=docker requiere un detector docker_label o docker_exec",
"dockerConflict": "update_via=docker no se puede combinar con {field}",
"updateCommandType": "update_command debe ser una cadena",
"updateCommandLength": "update_command supera {max} caracteres",
"updateCommandNull": "update_command contiene un byte nulo",
"updateMethod": "update_method debe ser none, helper o custom",
"updateCommandRequired": "update_command es obligatorio para update_method=custom",
"updateCommandOnlyCustom": "update_command solo se permite con update_method=custom",
"helperRequired": "se requiere un helper_slug compatible para update_method=helper",
"dockerUpdater": "las aplicaciones delegadas en Docker se actualizan mediante su imagen, no con un actualizador de aplicación aparte",
"commandRequired": "command_argv es obligatorio (lista no vacía)",
"commandList": "command_argv debe ser una lista no vacía de cadenas",
"commandCount": "command_argv admite como máximo {max} entradas",
"commandEntry": "command_argv[{index}] debe ser una cadena no vacía",
"commandEntryLength": "command_argv[{index}] supera {max} caracteres",
"commandEntryControl": "command_argv[{index}] contiene un carácter de control no permitido",
"binaryArgsList": "binary_args debe ser una lista de cadenas",
"binaryArgsCount": "binary_args admite como máximo {max} entradas",
"binaryArgEntry": "binary_args[{index}] debe ser una cadena no vacía",
"binaryArgLength": "binary_args[{index}] supera {max} caracteres",
"binaryArgControl": "binary_args[{index}] contiene un carácter de control no permitido",
"portsList": "ports debe ser una lista de {port, description, scheme}",
"portObject": "ports[{index}] debe ser un objeto",
"portRequired": "ports[{index}].port es obligatorio",
"portInteger": "ports[{index}].port debe ser un número entero",
"portRange": "ports[{index}].port debe estar en el rango 1-65535",
"portDuplicate": "el puerto {port} aparece más de una vez en esta aplicación",
"portDescription": "ports[{index}].description tiene caracteres no válidos",
"portScheme": "ports[{index}].scheme debe ser 'http' o 'https'",
"portPath": "ports[{index}].web_path debe ser una ruta URL válida (máx. 255 caracteres)",
"portLogo": "ports[{index}].logo_url debe ser una URL http(s) (máx. 512 caracteres)",
"portCategory": "ports[{index}].category tiene caracteres no válidos o es demasiado largo",
"portCustomUrl": "ports[{index}].custom_url debe ser una URL http(s) (máx. 512 caracteres)",
"tagRegexLength": "tag_regex supera 512 caracteres",
"persistPermission": "no se pudo guardar el sidecar (¿permisos?)",
"persist": "no se pudo guardar el sidecar",
"noApps": "no hay aplicaciones registradas para este vmid",
"appMissing": "no se encontró app_id '{appId}'",
"appNotFound": "aplicación no encontrada"
}
},
"statusFilter": {
"ariaLabel": "Filtrar máquinas virtuales y contenedores",
@@ -2447,6 +2570,42 @@
"updateManyDescription": "Volver a ejecutar {count} funciones posteriores a la instalación en secuencia.",
"legacySourceTitle": "Optimización heredada: haz clic para ver la fuente",
"sourceTitle": "Haz clic para ver el código fuente",
"sourceDialogTitle": "Código fuente: {name}",
"sourceLoading": "Cargando el código fuente…",
"sourceUnavailable": "El código fuente no está disponible.",
"sourceLoadFailed": "No se pudo cargar el código fuente. Vuelve a intentarlo.",
"sourceFunctionMissing": "No se encontró la función en los scripts disponibles.",
"sourceUnknownTool": "Herramienta desconocida: {tool}",
"sourceNoMapping": "No hay ninguna función asignada a la herramienta {tool}.",
"sourceToolNames": {
"subscription_banner": "Eliminación del banner de suscripción",
"time_sync": "Sincronización horaria",
"apt_languages": "Omitir idiomas de APT",
"journald": "Optimización de Journald",
"logrotate": "Optimización de Logrotate",
"system_limits": "Aumento de los límites del sistema",
"memory_settings": "Optimización de la configuración de memoria",
"zram_swap": "Perfil de swap con ZRAM",
"kernel_panic": "Configuración de kernel panic",
"apt_ipv4": "Forzar IPv4 en APT",
"kexec": "kexec para reinicios rápidos",
"rpc": "Desactivar RPC / rpcbind",
"motd": "Banner MOTD personalizado",
"system_utils": "Utilidades del sistema",
"network_optimization": "Optimizaciones de red",
"bashrc_custom": "Personalización de Bashrc",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (protección de SSD)",
"zfs_autotrim": "ZFS Autotrim",
"amd_fixes": "Correcciones para CPU AMD (Ryzen/EPYC)",
"persistent_network": "Configurar interfaces de red persistentes",
"vfio_iommu": "Passthrough VFIO/IOMMU",
"lvm_repair": "Reparación de cabeceras PV de LVM",
"repo_cleanup": "Limpieza de repositorios",
"proxmox_repos": "Repositorios APT de Proxmox",
"entropy": "Generación de entropía (haveged)"
},
"legacy": "legado",
"updateToolTitle": "Actualizar {name} a v{version}",
"availableUpdates": "Actualizaciones disponibles",
@@ -4975,122 +5134,122 @@
"save": "Guardar retención"
},
"apiErrors": {
"requestFailed": "La solicitud falló.",
"requestFailed": "La solicitud ha fallado.",
"absolutePath": "la ruta debe ser absoluta",
"pathConfigured": "esta ruta ya está configurada",
"pathRequired": "se requiere ruta",
"pathQuery": "se requiere el parámetro de consulta de ruta",
"pathRequired": "la ruta es obligatoria",
"pathQuery": "el parámetro de consulta path es obligatorio",
"pathNotFound": "ruta no encontrada",
"invalidJobId": "identificación de trabajo no válida",
"jobNotFound": "trabajo no encontrado",
"runnerMissing": "script de ejecución no instalado",
"noRestore": "no restaurar el estado para descartar",
"invalidFile": "invalid file name",
"invalidJobId": "id de tarea no válido",
"jobNotFound": "tarea no encontrada",
"runnerMissing": "el script de ejecución no está instalado",
"noRestore": "no hay ningún estado de restauración que descartar",
"invalidFile": "nombre de archivo no válido",
"notFound": "no encontrado",
"logOutside": "ruta de registro fuera del directorio permitido",
"targetsList": "los objetivos deben ser una lista",
"logOutside": "la ruta del log está fuera del directorio permitido",
"targetsList": "targets debe ser una lista",
"emptyExpression": "expresión vacía",
"invalidId": "identificación no válida (use letras, dígitos, _ o -)",
"backend": "el backend debe ser pbs, local o borg",
"remoteBackend": "el backend debe ser pbs o borg",
"remoteBackendQuoted": "el backend debe ser 'pbs' o 'borg'",
"profileMode": "perfil_mode debe ser predeterminado o personalizado",
"borgAttached": "borg no se puede adjuntar (PVE vzdump solo escribe en pbs/almacenamiento local)",
"borgAttachedLong": "borg no es un backend válido para trabajos adjuntos (PVE vzdump solo escribe en pbs/almacenamiento local)",
"parentRequired": "se requieren pve_parent_job_id y pve_storage para adjuntar",
"absolutePaths": "las rutas deben ser una lista de rutas absolutas",
"invalidId": "id no válido (usa letras, dígitos, _ o -)",
"backend": "backend debe ser pbs, local o borg",
"remoteBackend": "backend debe ser pbs o borg",
"remoteBackendQuoted": "backend debe ser 'pbs' o 'borg'",
"profileMode": "profile_mode debe ser default o custom",
"borgAttached": "borg no se puede vincular (vzdump de PVE solo escribe en almacenamientos pbs/local)",
"borgAttachedLong": "borg no es un backend válido para tareas vinculadas (vzdump de PVE solo escribe en almacenamientos pbs/local)",
"parentRequired": "pve_parent_job_id y pve_storage son obligatorios para attached",
"absolutePaths": "paths debe ser una lista de rutas absolutas",
"customPath": "el perfil personalizado necesita al menos una ruta",
"defaultPaths": "no se pudieron resolver las rutas de perfil predeterminadas",
"retentionObject": "la retención debe ser un objeto",
"pbsRepository": "se requiere pbs_repository",
"pbsEncryption": "pbs_encrypt_mode debe ser 'ninguno', 'nuevo' o 'existente'",
"pbsKeyFailed": "no se pudo crear el archivo de claves de cifrado PBS",
"pbsClientMissing": "no se pudo crear el archivo de claves de cifrado PBS (¿está instalado el cliente de respaldo proxmox?)",
"borgRepository": "se requiere borg_repo",
"borgEncryption": "borg_encrypt_mode debe ser uno de: ninguno, repokey, archivo de claves, autenticado",
"defaultPaths": "no se pudieron resolver las rutas del perfil predeterminado",
"retentionObject": "retention debe ser un objeto",
"pbsRepository": "pbs_repository es obligatorio",
"pbsEncryption": "pbs_encrypt_mode debe ser 'none', 'new' o 'existing'",
"pbsKeyFailed": "no se pudo crear el archivo de claves de cifrado de PBS",
"pbsClientMissing": "no se pudo crear el archivo de claves de cifrado de PBS (¿está instalado proxmox-backup-client?)",
"borgRepository": "borg_repo es obligatorio",
"borgEncryption": "borg_encrypt_mode debe ser uno de: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode debe ser uno de: none, repokey, keyfile, authenticated",
"borgPassphrase": "se requiere borg_passphrase cuando el cifrado está habilitado (guárdelo en el destino o pase uno en la solicitud)",
"passphrase": "se requiere una frase de contraseña cuando el cifrado está habilitado",
"password": "password is required",
"deviceConfirmation": "confirm_device debe coincidir exactamente con el dispositivo (error tipográfico/verificación de seguridad)",
"borgPassphrase": "borg_passphrase es obligatorio cuando el cifrado está activado (guárdala en el destino o indica una en la solicitud)",
"passphrase": "la frase de contraseña es obligatoria cuando el cifrado está activado",
"password": "la contraseña es obligatoria",
"deviceConfirmation": "confirm_device debe coincidir exactamente con device (comprobación de errores tipográficos / seguridad)",
"invalidDevice": "ruta de dispositivo no válida",
"absoluteMountpoint": "absolute mountpoint required",
"archiveLayout": "diseño de archivo no reconocido - no se encontraron rootfs/",
"absoluteMountpoint": "se requiere un punto de montaje absoluto",
"archiveLayout": "estructura del archivo no reconocida: no se encontró rootfs/",
"archiveMissing": "archivo no encontrado",
"archiveNotFile": "la ruta del archivo no es un archivo normal",
"archiveNotFile": "la ruta del archivo no es un archivo regular",
"invalidName": "nombre no válido",
"invalidStaging": "staging_path no válido",
"jobRename": "job name cannot be changed (delete + recreate to rename)",
"absoluteKey": "key_path debe ser absoluto",
"mode": "el modo debe ser \"local\" o \"ssh\"",
"jobRename": "no se puede cambiar el nombre de la tarea (elimínala y vuelve a crearla para renombrarla)",
"absoluteKey": "key_path debe ser absoluta",
"mode": "mode debe ser \"local\" o \"ssh\"",
"nameRequired": "el nombre es obligatorio (letras, dígitos, _ o -)",
"noLog": "todavía no hay registros disponibles para este trabajo",
"noPbsConfig": "no hay archivo de configuración manual de PBS",
"noLog": "aún no hay ningún log disponible para esta tarea",
"noPbsConfig": "no hay archivo de configuraciones manuales de PBS",
"outputMissing": "falta el archivo de salida",
"parserJson": "la salida del analizador no era JSON válido",
"restoreJson": "la salida de run_restore no era JSON válido",
"repoRequired": "se requiere repositorio",
"repoSnapshot": "repo_name and snapshot are required",
"borgRepoSnapshot": "se requieren repo_name y snapshot para borg",
"pbsRepoSnapshot": "se requieren repo_name y snapshot para pbs",
"repoName": "se requiere nombre_repo",
"restoreMissing": "restaurar herramientas no instaladas en este host",
"serverDatastore": "se requieren servidor y almacén de datos",
"snapshotRequired": "se requiere una instantánea",
"source": "la fuente debe ser pbs, borg o local",
"parserJson": "la salida del analizador no era un JSON válido",
"restoreJson": "la salida de run_restore no era un JSON válido",
"repoRequired": "repo es obligatorio",
"repoSnapshot": "repo_name y snapshot son obligatorios",
"borgRepoSnapshot": "repo_name y snapshot son obligatorios para borg",
"pbsRepoSnapshot": "repo_name y snapshot son obligatorios para pbs",
"repoName": "repo_name es obligatorio",
"restoreMissing": "las herramientas de restauración no están instaladas en este host",
"serverDatastore": "el servidor y el datastore son obligatorios",
"snapshotRequired": "el snapshot es obligatorio",
"source": "source debe ser pbs, borg o local",
"sshPort": "ssh_port debe ser un número entero entre 1 y 65535",
"sshRequired": "ssh_user, ssh_host y ssh_remote_path son necesarios para el modo ssh",
"repositoryPath": "el objetivo no tiene ruta de repositorio",
"sshRequired": "ssh_user, ssh_host y ssh_remote_path son obligatorios en el modo ssh",
"repositoryPath": "el destino no tiene ruta de repositorio",
"taskExpired": "tarea no encontrada o caducada",
"invalidExpression": "expresión no válida",
"noReport": "no se emitió ningún informe",
"parseManifestFailed": "parse_manifest salió de un valor distinto de cero",
"jobExists": "el trabajo ya existe: {value}",
"noReport": "no se ha emitido ningún informe",
"parseManifestFailed": "parse_manifest terminó con un código distinto de cero",
"jobExists": "la tarea ya existe: {value}",
"pathMissing": "la ruta no existe en este host: {value}",
"deviceMissing": "el dispositivo no existe: {value}",
"mountpoint": "no es un punto de montaje: {value}",
"localArchiveMissing": "archivo local no encontrado: {value}",
"borgDestination": "Destino Borg '{value}' no encontrado",
"pbsDestination": "destino PBS '{value}' no encontrado",
"pbsPassword": "no hay contraseña disponible para el repositorio de PBS '{value}'",
"borgRepoMissing": "El repositorio de Borg \"{value}\" no está configurado",
"pbsRepoMissing": "repositorio de PBS \"{value}\" no configurado",
"borgTargetMissing": "Borg target not found: {value}",
"pbsTargetMissing": "repositorio de PBS no encontrado: {value}",
"pveJobMissing": "PVE vzdump trabajo no encontrado: {value}",
"statePersist": "no se puede conservar el estado: {value}",
"borgDestination": "no se encontró el destino Borg '{value}'",
"pbsDestination": "no se encontró el destino PBS '{value}'",
"pbsPassword": "no hay contraseña disponible para el repo PBS '{value}'",
"borgRepoMissing": "el repo Borg \"{value}\" no está configurado",
"pbsRepoMissing": "el repo PBS \"{value}\" no está configurado",
"borgTargetMissing": "destino Borg no encontrado: {value}",
"pbsTargetMissing": "repo PBS no encontrado: {value}",
"pveJobMissing": "tarea vzdump de PVE no encontrada: {value}",
"statePersist": "no se puede guardar el estado: {value}",
"sshDirectory": "no se puede preparar el directorio ssh: {value}",
"logRead": "no se puede leer el registro: {value}",
"logRead": "no se puede leer el log: {value}",
"envUpdate": "no se pudo actualizar .env: {value}",
"pbsConfigWrite": "no se pudo conservar la configuración de PBS: {value}",
"persist": "no se pudo persistir: {value}",
"pbsConfigWrite": "no se pudo guardar la configuración de PBS: {value}",
"persist": "no se pudo guardar: {value}",
"archiveRemove": "no se pudo eliminar el archivo: {value}",
"start": "no se pudo iniciar: {value}",
"borgTargetsUpdate": "no se pudo actualizar borg-targets.txt: {value}",
"pbsTargetsUpdate": "no se pudo actualizar pbs-manual-configs.txt: {value}",
"unitsUpdate": "no se pudieron actualizar las unidades systemd: {value}",
"unitsUpdate": "no se pudieron actualizar las unidades de systemd: {value}",
"borgTargetsWrite": "no se pudo escribir borg-targets.txt: {value}",
"jobWrite": "no se pudieron escribir archivos de trabajo: {value}",
"jobWrite": "no se pudieron escribir los archivos de la tarea: {value}",
"localTargetWrite": "no se pudo escribir local-target.conf: {value}",
"unitsWrite": "no se pudieron escribir unidades systemd: {value}",
"format": "formato fallido: {value}",
"calendar": "no válido en_calendario: {value}",
"mount": "montaje fallido: {value}",
"unitsWrite": "no se pudieron escribir las unidades de systemd: {value}",
"format": "falló el formateo: {value}",
"calendar": "on_calendar no válido: {value}",
"mount": "falló el montaje: {value}",
"parserInvocation": "falló la invocación del analizador: {value}",
"preflightInvocation": "error en la invocación de verificación previa: {value}",
"publicKeyMissing": "clave pública no encontrada después de la generación: {value}",
"retentionInteger": "retención.{value} debe ser un número entero",
"retentionNegative": "retención.{value} no debe ser negativo",
"preflightInvocation": "falló la invocación de la verificación previa: {value}",
"publicKeyMissing": "no se encontró la clave pública tras generarla: {value}",
"retentionInteger": "retention.{value} debe ser un número entero",
"retentionNegative": "retention.{value} no puede ser negativo",
"keygen": "ssh-keygen falló: {value}",
"systemctl": "systemctl falló: {value}",
"unmount": "error de desmontaje: {value}",
"taskIncomplete": "la tarea está en el estado \"{value}\", no completada",
"unmount": "umount falló: {value}",
"taskIncomplete": "la tarea está en estado \"{value}\", no completada",
"unknownKind": "tipo desconocido: {value}",
"unknownMode": "modo desconocido \"{value}\"",
"defaultRemove": "{value} is the built-in default and cannot be removed",
"defaultAdd": "{value} es el valor predeterminado integrado;no es necesario agregarlo",
"keyImport": "No hay ningún archivo de claves PBS instalado en {value}.Importe el archivo clave primero.",
"storageMismatch": "el almacenamiento de trabajos PVE no coincide (el trabajo usa {value}, la carga útil dice {other})"
"defaultRemove": "{value} es el valor predeterminado integrado y no se puede eliminar",
"defaultAdd": "{value} es el valor predeterminado integrado; no hace falta añadirlo",
"keyImport": "No hay ningún archivo de claves de PBS instalado en {value}. Importa primero el archivo de claves.",
"storageMismatch": "el almacenamiento de la tarea de PVE no coincide (la tarea usa {value}, el payload indica {other})"
}
},
"healthStatus": {
@@ -5592,6 +5751,7 @@
"websocketError": "Ocurrió un error en WebSocket",
"connectionClosed": "Conexión cerrada",
"completedSuccessfully": "Guión completado con éxito",
"cancelled": "Operación cancelada.",
"completedWithError": "Script terminado con el código de error {code}",
"yes": "Sí",
"yourInput": "Su entrada:",
@@ -7606,15 +7766,15 @@
"changeAddress": "Cambiar dirección",
"cancel": "Cancelar",
"errors": {
"addressRequired": "Ingrese la dirección del Monitor.",
"invalidAddress": "la dirección debe comenzar con http:// o https:// y nombrar un host.",
"addressCredentials": "La dirección no debe contener usuario ni contraseña.",
"addressRequired": "Introduce la dirección del Monitor.",
"invalidAddress": "La dirección debe empezar por http:// o https:// e indicar un host.",
"addressCredentials": "La dirección no debe contener un usuario ni una contraseña.",
"invalidPort": "El puerto de la dirección no es válido.",
"invalidRequest": "La solicitud no es válida.Vuelve a cargar la página e inténtalo de nuevo.",
"limit": "como máximo se pueden agregar nodos {count}.",
"duplicate": "esta dirección ya está en la lista.",
"notFound": "No se encontró el nodo.Vuelva a cargar la lista e inténtelo de nuevo.",
"detectedRemove": "solo se pueden eliminar los nodos agregados manualmente.Los nodos detectados se pueden ocultar."
"invalidRequest": "La solicitud no es válida. Recarga la página y vuelve a intentarlo.",
"limit": "Se pueden añadir como máximo {count} nodos.",
"duplicate": "Esta dirección ya está en la lista.",
"notFound": "No se encontró el nodo. Recarga la lista y vuelve a intentarlo.",
"detectedRemove": "Solo se pueden eliminar los nodos añadidos a mano. Los nodos detectados se pueden ocultar."
}
}
}
+297 -137
View File
@@ -1231,7 +1231,9 @@
"update": "Mettre à jour",
"modify": "Modifier",
"recover": "Récupérer",
"registerRestored": "Enregistrer à nouveau",
"terminalTitleUpdate": "Mettre à jour l'application OCI",
"terminalTitleRecoverPrevious": "Récupérer l'installation OCI précédente",
"terminalTitleModify": "Modifier l'application OCI",
"terminalTitleRecover": "Récupérer l'application OCI restaurée",
"terminalDescription": "Le même processus que dans le menu ProxMenux s'exécute : OCI manager Apps → Gérer les applications OCI installées.",
@@ -1760,7 +1762,128 @@
"dockerEvidenceImage": "Image",
"dockerEvidencePort": "Port TCP publié",
"dockerEvidenceProject": "Projet Compose",
"dockerEndpointReview": "Conteneur avec des ports TCP publiés. Confirmez le nom et l'adresse web avant d'enregistrer. L'enregistrement ne configure pas les mises à jour."
"dockerEndpointReview": "Conteneur avec des ports TCP publiés. Confirmez le nom et l'adresse web avant d'enregistrer. L'enregistrement ne configure pas les mises à jour.",
"confirmRemove": "Supprimer l'enregistrement de cette application de l'onglet App ? Cela ne désinstalle pas l'application.",
"packageExample": "par ex. {package}",
"packageHelpBefore": "Rempli automatiquement à partir du nom. Vérifiez avec",
"packageHelpAfter": "dans le CT.",
"binaryHelpBefore": "Chemin absolu. Trouvez-le avec",
"binaryHelpOr": "ou",
"errors": {
"ociBusy": "une opération OCI est en cours sur ce conteneur",
"dpkgMissing": "{package} n'est pas installé via dpkg",
"dpkgFailed": "échec de dpkg-query",
"dpkgNoVersion": "aucune version trouvée dans la sortie de dpkg",
"apkFailed": "échec de apk info",
"apkNoVersion": "aucune version trouvée dans la sortie de apk",
"fileRead": "impossible de lire {path}",
"fileNoMatch": "file_regex ne correspond pas à {path}",
"binaryFailed": "échec de l'appel du binaire",
"binaryNoVersion": "aucune version trouvée dans la sortie du binaire",
"pythonFailed": "échec de python -c importlib.metadata",
"pythonNoVersion": "aucune version trouvée dans la sortie de la distribution Python",
"dockerImageResolve": "impossible de déterminer l'image installée du conteneur",
"dockerInspectFailed": "échec de docker inspect",
"dockerLabelMissing": "le conteneur n'a pas d'étiquette {label}",
"dockerLabelMutable": "l'étiquette docker indique {tag} (tag mobile, pas une version)",
"dockerLabelNoVersion": "aucune version trouvée dans la sortie de l'étiquette docker",
"dockerExecFailed": "échec de docker exec",
"dockerExecNoVersion": "aucune version trouvée dans la sortie de docker exec",
"commandEmpty": "command_argv est vide",
"commandFailed": "échec de la commande",
"commandNoVersion": "aucune version trouvée dans la sortie de la commande",
"unsupportedMethod": "méthode non prise en charge : {method}",
"unknownUpstream": "upstream_type inconnu : {type}",
"githubNotFound": "{repo} : introuvable",
"githubRejected": "github a refusé la requête (403)",
"githubError": "erreur github {code}",
"noRelease": "aucun tag ni nom de release dans la réponse",
"tagNoMatch": "tag_regex ne correspond pas à '{tag}'",
"httpError": "erreur http {code}",
"invalidJson": "réponse JSON non valide : {detail}",
"jsonPathUnresolved": "json_path '{path}' n'a pas pu être résolu",
"jsonEmpty": "valeur vide à json_path",
"dockerNoTags": "aucun tag ne correspond (docker_hub)",
"dockerMovingOnly": "tag_regex ne correspond qu'à des tags mobiles ; utilisez le suivi par digest de l'image Docker",
"dockerHubError": "erreur docker hub {code}",
"dockerHubJson": "JSON docker hub non valide : {detail}",
"dockerHubEmpty": "aucun tag renvoyé par docker hub",
"payload": "la charge utile doit être un objet JSON",
"name": "name est obligatoire et doit comporter de 1 à 64 caractères parmi lettres/chiffres/espaces/._+-()/",
"method": "installed_via doit être l'une des valeurs suivantes : {values} ou vide",
"package": "package est obligatoire (lettres/chiffres/._+@:/, 127 caractères max.)",
"filePath": "file_path est obligatoire et doit être un chemin absolu",
"fileRegex": "file_regex est obligatoire",
"fileRegexInvalid": "file_regex n'est pas une regex valide : {detail}",
"binaryPath": "binary_path est obligatoire et doit être un chemin absolu",
"pythonPath": "python_path est obligatoire et doit être un chemin absolu",
"distribution": "distribution est obligatoire (nom PEP 503)",
"container": "container_name est obligatoire (règles de nommage docker)",
"label": "label est obligatoire (règles de nommage des étiquettes OCI)",
"dockerBinary": "binary_path est obligatoire (chemin absolu ou commande seule)",
"manualVersion": "installed_version est obligatoire pour la méthode manuelle",
"versionLength": "installed_version dépasse {max} caractères",
"versionControl": "installed_version contient un caractère de contrôle interdit",
"installedRegexInvalid": "installed_regex n'est pas une regex valide : {detail}",
"upstreamType": "upstream_type doit être l'une des valeurs suivantes : {values}",
"tagRegexInvalid": "tag_regex n'est pas une regex valide : {detail}",
"repoRequired": "repo est obligatoire pour upstream_type=github",
"repoFormat": "repo doit être au format 'owner/name'",
"githubSource": "github_source doit être l'une des valeurs suivantes : {values}",
"upstreamUrlRequired": "upstream_url est obligatoire pour upstream_type=http_json",
"upstreamUrl": "upstream_url doit être une URL http(s)",
"upstreamUrlLength": "upstream_url dépasse {max} caractères",
"jsonPathRequired": "upstream_json_path est obligatoire pour upstream_type=http_json",
"jsonPathLength": "upstream_json_path dépasse {max} caractères",
"jsonPathCharacters": "upstream_json_path utilise des caractères interdits",
"dockerImageRequired": "docker_image est obligatoire pour upstream_type=docker_hub",
"dockerImageLength": "docker_image dépasse {max} caractères",
"dockerImageFormat": "docker_image doit respecter le nommage Docker Hub (owner/name ou name)",
"healthPath": "health_path doit être un chemin d'URL valide (255 caractères max.)",
"logoUrl": "logo_url doit être une URL http(s) ou l'icône locale en cache de cette VM",
"discoveryId": "discovery_id non valide",
"helperSlug": "helper_slug doit être un slug en minuscules (lettres/chiffres/._-)",
"updateVia": "update_via n'accepte que 'docker'",
"dockerDetector": "update_via=docker nécessite un détecteur docker_label ou docker_exec",
"dockerConflict": "update_via=docker ne peut pas être combiné avec {field}",
"updateCommandType": "update_command doit être une chaîne",
"updateCommandLength": "update_command dépasse {max} caractères",
"updateCommandNull": "update_command contient un octet nul",
"updateMethod": "update_method doit être none, helper ou custom",
"updateCommandRequired": "update_command est obligatoire pour update_method=custom",
"updateCommandOnlyCustom": "update_command n'est autorisé que pour update_method=custom",
"helperRequired": "un helper_slug pris en charge est obligatoire pour update_method=helper",
"dockerUpdater": "Les applications déléguées à Docker se mettent à jour via leur image, pas via un outil de mise à jour d'application distinct",
"commandRequired": "command_argv est obligatoire (liste non vide)",
"commandList": "command_argv doit être une liste non vide de chaînes",
"commandCount": "command_argv accepte au maximum {max} entrées",
"commandEntry": "command_argv[{index}] doit être une chaîne non vide",
"commandEntryLength": "command_argv[{index}] dépasse {max} caractères",
"commandEntryControl": "command_argv[{index}] contient un caractère de contrôle interdit",
"binaryArgsList": "binary_args doit être une liste de chaînes",
"binaryArgsCount": "binary_args accepte au maximum {max} entrées",
"binaryArgEntry": "binary_args[{index}] doit être une chaîne non vide",
"binaryArgLength": "binary_args[{index}] dépasse {max} caractères",
"binaryArgControl": "binary_args[{index}] contient un caractère de contrôle interdit",
"portsList": "ports doit être une liste de {port, description, scheme}",
"portObject": "ports[{index}] doit être un objet",
"portRequired": "ports[{index}].port est obligatoire",
"portInteger": "ports[{index}].port doit être un entier",
"portRange": "ports[{index}].port doit être compris entre 1 et 65535",
"portDuplicate": "le port {port} apparaît plusieurs fois pour cette application",
"portDescription": "ports[{index}].description contient des caractères non valides",
"portScheme": "ports[{index}].scheme doit être 'http' ou 'https'",
"portPath": "ports[{index}].web_path doit être un chemin d'URL valide (255 caractères max.)",
"portLogo": "ports[{index}].logo_url doit être une URL http(s) (512 caractères max.)",
"portCategory": "ports[{index}].category contient des caractères non valides ou est trop long",
"portCustomUrl": "ports[{index}].custom_url doit être une URL http(s) (512 caractères max.)",
"tagRegexLength": "tag_regex dépasse 512 caractères",
"persistPermission": "impossible d'enregistrer le fichier sidecar (problème de permissions ?)",
"persist": "impossible d'enregistrer le fichier sidecar",
"noApps": "aucune application enregistrée pour ce vmid",
"appMissing": "app_id '{appId}' introuvable",
"appNotFound": "application introuvable"
}
},
"statusFilter": {
"ariaLabel": "Filtrer les machines virtuelles et les conteneurs",
@@ -2294,6 +2417,42 @@
"updateManyDescription": "Réexécution des fonctions de post-installation {count} dans l'ordre.",
"legacySourceTitle": "Optimisation héritée – cliquez pour afficher la source",
"sourceTitle": "Cliquez pour voir le code source",
"sourceDialogTitle": "Code source : {name}",
"sourceLoading": "Chargement du code source…",
"sourceUnavailable": "Le code source n'est pas disponible.",
"sourceLoadFailed": "Impossible de charger le code source. Réessayez.",
"sourceFunctionMissing": "La fonction est introuvable dans les scripts disponibles.",
"sourceUnknownTool": "Outil inconnu : {tool}",
"sourceNoMapping": "Aucune fonction n'est associée à l'outil {tool}.",
"sourceToolNames": {
"subscription_banner": "Suppression de la bannière d'abonnement",
"time_sync": "Synchronisation de l'heure",
"apt_languages": "Ignorer les langues APT",
"journald": "Optimisation de journald",
"logrotate": "Optimisation de logrotate",
"system_limits": "Augmentation des limites du système",
"memory_settings": "Optimisation des paramètres de mémoire",
"zram_swap": "Profil d'échange ZRAM",
"kernel_panic": "Configuration de la panique du noyau",
"apt_ipv4": "Forcer IPv4 pour APT",
"kexec": "kexec pour des redémarrages rapides",
"rpc": "Désactivation de RPC / rpcbind",
"motd": "Bannière MOTD personnalisée",
"system_utils": "Utilitaires système",
"network_optimization": "Optimisations du réseau",
"bashrc_custom": "Personnalisation de Bashrc",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (protection SSD)",
"zfs_autotrim": "Autotrim ZFS",
"amd_fixes": "Correctifs CPU AMD (Ryzen/EPYC)",
"persistent_network": "Configuration d'interfaces réseau persistantes",
"vfio_iommu": "Passthrough VFIO/IOMMU",
"lvm_repair": "Réparation des en-têtes PV LVM",
"repo_cleanup": "Nettoyage des référentiels",
"proxmox_repos": "Référentiels APT Proxmox",
"entropy": "Génération d'entropie (haveged)"
},
"legacy": "héritage",
"updateToolTitle": "Mettez à jour {name} vers v{version}",
"availableUpdates": "Mises à jour disponibles",
@@ -4822,122 +4981,122 @@
"useDefault": "Utiliser la valeur par défaut de Proxmox (aucune politique sur ce stockage)"
},
"apiErrors": {
"requestFailed": "La demande a échoué.",
"requestFailed": "La requête a échoué.",
"absolutePath": "le chemin doit être absolu",
"pathConfigured": "ce chemin est déjà configuré",
"pathRequired": "le chemin est obligatoire",
"pathQuery": "le paramètre de requête de chemin est requis",
"pathQuery": "le paramètre de requête path est obligatoire",
"pathNotFound": "chemin introuvable",
"invalidJobId": "ID de travail invalide",
"jobNotFound": "emploi introuvable",
"runnerMissing": "le script d'exécution n'est pas installé",
"invalidJobId": "ID de tâche non valide",
"jobNotFound": "tâche introuvable",
"runnerMissing": "script d'exécution non installé",
"noRestore": "aucun état de restauration à ignorer",
"invalidFile": "nom de fichier invalide",
"notFound": "pas trouvé",
"logOutside": "log path outside allowed directory",
"targetsList": "les cibles doivent être une liste",
"invalidFile": "nom de fichier non valide",
"notFound": "introuvable",
"logOutside": "chemin du journal hors du répertoire autorisé",
"targetsList": "targets doit être une liste",
"emptyExpression": "expression vide",
"invalidId": "identifiant invalide (utilisez des lettres, des chiffres, _ ou -)",
"invalidId": "ID non valide (utilisez des lettres, des chiffres, _ ou -)",
"backend": "le backend doit être pbs, local ou borg",
"remoteBackend": "le backend doit être pbs ou borg",
"remoteBackendQuoted": "le backend doit être \"pbs\" ou \"borg\"",
"profileMode": "profile_mode doit être par défaut ou personnalisé",
"borgAttached": "borg ne peut pas être attaché (PVE vzdump écrit uniquement sur les stockages pbs/locaux)",
"borgAttachedLong": "borg n'est pas un backend valide pour les tâches attachées (PVE vzdump écrit uniquement sur les stockages pbs/locaux)",
"parentRequired": "pve_parent_job_id et pve_storage sont requis pour les pièces jointes",
"absolutePaths": "les chemins doivent être une liste de chemins absolus",
"remoteBackendQuoted": "le backend doit être 'pbs' ou 'borg'",
"profileMode": "profile_mode doit être default ou custom",
"borgAttached": "borg ne peut pas être rattaché (vzdump de PVE n'écrit que sur des stockages pbs/local)",
"borgAttachedLong": "borg n'est pas un backend valide pour les tâches rattachées (vzdump de PVE n'écrit que sur des stockages pbs/local)",
"parentRequired": "pve_parent_job_id et pve_storage sont obligatoires pour une tâche rattachée",
"absolutePaths": "paths doit être une liste de chemins absolus",
"customPath": "le profil personnalisé nécessite au moins un chemin",
"defaultPaths": "impossible de résoudre les chemins de profil par défaut",
"retentionObject": "la rétention doit être un objet",
"pbsRepository": "pbs_repository est requis",
"pbsEncryption": "pbs_encrypt_mode doit être \"aucun\", \"nouveau\" ou \"existant\"",
"pbsKeyFailed": "échec de la création du fichier de clés de chiffrement PBS",
"defaultPaths": "impossible de déterminer les chemins du profil par défaut",
"retentionObject": "retention doit être un objet",
"pbsRepository": "pbs_repository est obligatoire",
"pbsEncryption": "pbs_encrypt_mode doit être 'none', 'new' ou 'existing'",
"pbsKeyFailed": "échec de la création du fichier de clé de chiffrement PBS",
"pbsClientMissing": "échec de la création du fichier de clé de chiffrement PBS (proxmox-backup-client est-il installé ?)",
"borgRepository": "borg_repo est requis",
"borgEncryption": "borg_encrypt_mode doit être l'un des suivants : aucun, repokey, keyfile, authentifié",
"encryption": "encrypt_mode doit être l'un des suivants : aucun, repokey, keyfile, authentifié",
"borgPassphrase": "borg_passphrase est requis lorsque le cryptage est activé (enregistrez-le sur la destination ou transmettez-en un dans la requête)",
"passphrase": "la phrase secrète est requise lorsque le cryptage est activé",
"password": "le mot de passe est requis",
"deviceConfirmation": "confirm_device doit correspondre exactement à l'appareil (faute de frappe / contrôle de sécurité)",
"invalidDevice": "chemin d'accès au périphérique non valide",
"borgRepository": "borg_repo est obligatoire",
"borgEncryption": "borg_encrypt_mode doit être l'une des valeurs suivantes : none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode doit être l'une des valeurs suivantes : none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase est obligatoire lorsque le chiffrement est activé (enregistrez-la sur la destination ou transmettez-en une dans la requête)",
"passphrase": "la phrase secrète est obligatoire lorsque le chiffrement est activé",
"password": "le mot de passe est obligatoire",
"deviceConfirmation": "confirm_device doit correspondre exactement au périphérique (contrôle de frappe / sécurité)",
"invalidDevice": "chemin de périphérique non valide",
"absoluteMountpoint": "point de montage absolu requis",
"archiveLayout": "mise en page d'archive non reconnue – aucun rootfs/trouvé",
"archiveLayout": "structure d'archive non reconnue — aucun rootfs/ trouvé",
"archiveMissing": "archive introuvable",
"archiveNotFile": "le chemin de l'archive n'est pas un fichier normal",
"invalidName": "nom invalide",
"invalidStaging": "staging_path invalide",
"jobRename": "le nom du travail ne peut pas être modifié (supprimer + recréer pour renommer)",
"archiveNotFile": "le chemin de l'archive n'est pas un fichier ordinaire",
"invalidName": "nom non valide",
"invalidStaging": "staging_path non valide",
"jobRename": "le nom de la tâche ne peut pas être modifié (supprimez-la puis recréez-la pour la renommer)",
"absoluteKey": "key_path doit être absolu",
"mode": "le mode doit être \"local\" ou \"ssh\"",
"mode": "mode doit être \"local\" ou \"ssh\"",
"nameRequired": "le nom est obligatoire (lettres, chiffres, _ ou -)",
"noLog": "aucun journal n'est encore disponible pour cette tâche",
"noPbsConfig": "pas de fichier de configuration PBS manuel",
"noLog": "aucun journal disponible pour cette tâche pour le moment",
"noPbsConfig": "aucun fichier de configurations PBS manuelles",
"outputMissing": "fichier de sortie manquant",
"parserJson": "la sortie de l'analyseur n'était pas un JSON valide",
"restoreJson": "la sortie run_restore n'était pas un JSON valide",
"repoRequired": "le dépôt est requis",
"repoSnapshot": "repo_name et snapshot sont requis",
"borgRepoSnapshot": "repo_name et snapshot sont requis pour borg",
"pbsRepoSnapshot": "repo_name et snapshot sont requis pour pbs",
"repoName": "repo_name est requis",
"restoreMissing": "restaurer les outils non installés sur cet hôte",
"serverDatastore": "le serveur et la banque de données sont requis",
"snapshotRequired": "un instantané est requis",
"source": "la source doit être pbs, borg ou locale",
"sshPort": "ssh_port doit être un entier compris entre 1 et 65 535",
"sshRequired": "ssh_user, ssh_host et ssh_remote_path sont requis pour le mode ssh",
"repositoryPath": "la cible n'a pas de chemin de dépôt",
"restoreJson": "la sortie de run_restore n'était pas un JSON valide",
"repoRequired": "repo est obligatoire",
"repoSnapshot": "repo_name et snapshot sont obligatoires",
"borgRepoSnapshot": "repo_name et snapshot sont obligatoires pour borg",
"pbsRepoSnapshot": "repo_name et snapshot sont obligatoires pour pbs",
"repoName": "repo_name est obligatoire",
"restoreMissing": "outils de restauration non installés sur cet hôte",
"serverDatastore": "server et datastore sont obligatoires",
"snapshotRequired": "snapshot est obligatoire",
"source": "source doit être pbs, borg ou local",
"sshPort": "ssh_port doit être un entier compris entre 1 et 65535",
"sshRequired": "ssh_user, ssh_host et ssh_remote_path sont obligatoires pour le mode ssh",
"repositoryPath": "la cible n'a pas de chemin de référentiel",
"taskExpired": "tâche introuvable ou expirée",
"invalidExpression": "expression invalide",
"invalidExpression": "expression non valide",
"noReport": "aucun rapport émis",
"parseManifestFailed": "parse_manifest est sorti différent de zéro",
"jobExists": "le travail existe déjà : {value}",
"parseManifestFailed": "parse_manifest s'est terminé avec un code non nul",
"jobExists": "la tâche existe déjà : {value}",
"pathMissing": "le chemin n'existe pas sur cet hôte : {value}",
"deviceMissing": "l'appareil n'existe pas : {value}",
"deviceMissing": "le périphérique n'existe pas : {value}",
"mountpoint": "pas un point de montage : {value}",
"localArchiveMissing": "archive locale introuvable : {value}",
"borgDestination": "La destination Borg '{value}' est introuvable",
"pbsDestination": "La destination PBS '{value}' est introuvable",
"pbsPassword": "aucun mot de passe disponible pour le dépôt PBS '{value}'",
"borgRepoMissing": "le dépôt Borg \"{value}\" n'est pas configuré",
"pbsRepoMissing": "le dépôt PBS \"{value}\" n'est pas configuré",
"borgTargetMissing": "cible Borg introuvable : {value}",
"pbsTargetMissing": "dépôt PBS introuvable : {value}",
"borgDestination": "Destination Borg '{value}' introuvable",
"pbsDestination": "Destination PBS '{value}' introuvable",
"pbsPassword": "aucun mot de passe disponible pour le référentiel PBS '{value}'",
"borgRepoMissing": "Référentiel Borg \"{value}\" non configuré",
"pbsRepoMissing": "Référentiel PBS \"{value}\" non configuré",
"borgTargetMissing": "Cible Borg introuvable : {value}",
"pbsTargetMissing": "Référentiel PBS introuvable : {value}",
"pveJobMissing": "Tâche vzdump PVE introuvable : {value}",
"statePersist": "impossible de conserver l'état : {value}",
"sshDirectory": "impossible de préparer ssh dir : {value}",
"statePersist": "impossible d'enregistrer l'état : {value}",
"sshDirectory": "impossible de préparer le répertoire ssh : {value}",
"logRead": "impossible de lire le journal : {value}",
"envUpdate": "impossible de mettre à jour le .env : {value}",
"pbsConfigWrite": "échec de la persistance de la configuration PBS : {value}",
"persist": "échec de la persistance : {value}",
"envUpdate": "impossible de mettre à jour .env : {value}",
"pbsConfigWrite": "échec de l'enregistrement de la configuration PBS : {value}",
"persist": "échec de l'enregistrement : {value}",
"archiveRemove": "échec de la suppression de l'archive : {value}",
"start": "échec du démarrage : {value}",
"borgTargetsUpdate": "échec de la mise à jour de borg-targets.txt : {value}",
"pbsTargetsUpdate": "échec de la mise à jour de pbs-manual-configs.txt : {value}",
"unitsUpdate": "échec de la mise à jour des unités systemd : {value}",
"borgTargetsWrite": "échec de l'écriture de borg-targets.txt : {value}",
"jobWrite": "échec de l'écriture des fichiers de travail : {value}",
"jobWrite": "échec de l'écriture des fichiers de la tâche : {value}",
"localTargetWrite": "échec de l'écriture de local-target.conf : {value}",
"unitsWrite": "échec de l'écriture des unités systemd : {value}",
"format": "échec du formatage : {value}",
"calendar": "invalide sur_calendar : {value}",
"calendar": "on_calendar non valide : {value}",
"mount": "échec du montage : {value}",
"parserInvocation": "échec de l'appel de l'analyseur : {value}",
"preflightInvocation": "échec de l'appel de contrôle en amont : {value}",
"publicKeyMissing": "clé publique introuvable après génération : {value}",
"retentionInteger": "rétention.{value} doit être un nombre entier",
"retentionNegative": "rétention.{value} doit être non négatif",
"keygen": "Échec de ssh-keygen : {value}",
"systemctl": "Échec de systemctl : {value}",
"unmount": "échec du démontage : {value}",
"taskIncomplete": "la tâche est dans l'état \"{value}\", non terminée",
"preflightInvocation": "échec de l'appel de la vérification préalable : {value}",
"publicKeyMissing": "clé publique introuvable après la génération : {value}",
"retentionInteger": "retention.{value} doit être un entier",
"retentionNegative": "retention.{value} doit être positif ou nul",
"keygen": "échec de ssh-keygen : {value}",
"systemctl": "échec de systemctl : {value}",
"unmount": "échec de umount : {value}",
"taskIncomplete": "la tâche est dans l'état \"{value}\", et non terminée",
"unknownKind": "type inconnu : {value}",
"unknownMode": "mode inconnu \"{value}\"",
"defaultRemove": "{value} est la valeur par défaut intégrée et ne peut pas être supprimé",
"defaultAdd": "{value} est la valeur par défaut intégrée ;pas besoin de l'ajouter",
"keyImport": "Aucun fichier de clé PBS n'est installé sur {value}.Importez d’abord le fichier de clés.",
"storageMismatch": "Incompatibilité de stockage des tâches PVE (la tâche utilise {value}, la charge utile indique {other})"
"defaultAdd": "{value} est la valeur par défaut intégrée ; inutile de l'ajouter",
"keyImport": "Aucun fichier de clé PBS n'est installé dans {value}. Importez d'abord le fichier de clé.",
"storageMismatch": "Incohérence du stockage de la tâche PVE (la tâche utilise {value}, la requête indique {other})"
}
},
"healthStatus": {
@@ -5438,6 +5597,7 @@
"websocketError": "Une erreur WebSocket s'est produite",
"connectionClosed": "Connexion fermée",
"completedSuccessfully": "Script terminé avec succès",
"cancelled": "Opération annulée.",
"completedWithError": "Script terminé avec le code d'erreur {code}",
"yes": "Oui",
"yourInput": "Votre contribution :",
@@ -7429,7 +7589,7 @@
"signInWith": "Se connecter avec",
"methodPassword": "Utilisateur et mot de passe",
"methodToken": "Jeton API",
"username": "Utilisateur (utilisateur@realm)",
"username": "Utilisateur",
"password": "Mot de passe",
"passwordHelp": "Le mot de passe n'est utilisé qu'une fois pour créer un jeton API en lecture seule (rôle Audit) pour ce Monitor. Seul ce jeton est enregistré, jamais le mot de passe. Activez d'abord l'authentification du Monitor.",
"cancel": "Annuler",
@@ -7442,10 +7602,10 @@
"editConnection": "Connexion à modifier",
"add": "Ajouter une connexion",
"name": "Nom",
"url": "URL HTTPS (inclure :8007 pour le port natif de PBS)",
"token_id": "Identifiant du jeton API (user@realm!token)",
"token_secret": "Secret du jeton API (laisser vide pour conserver le secret enregistré)",
"fingerprint": "Empreinte SHA256 du certificat (facultative)",
"url": "Adresse HTTPS",
"token_id": "ID du jeton API",
"token_secret": "Secret du jeton API",
"fingerprint": "Empreinte SHA256 (facultative)",
"tlsHelp": "Laissez l'empreinte vide pour la vérification habituelle de l'autorité de certification et du nom d'hôte. Pour un certificat autosigné, copiez son empreinte SHA256 depuis la console PBS ou un autre canal de confiance. L'empreinte est vérifiée avant l'envoi des identifiants.",
"saved": "Connexion PBS vérifiée et enregistrée.",
"saveFailed": "Impossible d'enregistrer la connexion PBS.",
@@ -7489,50 +7649,50 @@
"duration": "Durée",
"noJobs": "Aucune planification de synchronisation, de vérification ou d'élagage n'est configurée.",
"errors": {
"configRead": "Impossible de lire les connexions PBS enregistrées.Vérifiez le fichier de configuration et les autorisations.",
"configRead": "Impossible de lire les connexions PBS enregistrées. Vérifiez le fichier de configuration et les permissions.",
"invalidConfig": "Les paramètres de connexion PBS ne sont pas valides. Vérifiez le formulaire et réessayez.",
"invalidField": "Un champ de connexion n’est pas valide ou est trop long.",
"invalidUrl": "Use an HTTPS PBS address without embedded credentials, query parameters or a fragment.",
"nameRequired": "Enter a server name of at most 128 characters.",
"tokenIdFormat": "saisissez l'ID du jeton de l'API PBS au format user@realm!token.",
"tokenSecret": "saisissez un secret de jeton d'API valide, sans espaces ni caractères de contrôle.",
"invalidTokenId": "The API token ID must contain only ASCII characters.",
"invalidFingerprint": "saisissez l'empreinte digitale SHA256 du certificat : 64 caractères hexadécimaux, éventuellement séparés par des deux-points.",
"fingerprintMismatch": "Le certificat PBS ne correspond pas à l’empreinte digitale.Aucune information d'identification n'a été envoyée.",
"tokenRejected": "PBS a rejeté le jeton API ou ses autorisations.Vérifiez les ACL de l'utilisateur et du jeton.",
"invalidField": "Un champ de la connexion n'est pas valide ou est trop long.",
"invalidUrl": "Utilisez une adresse PBS HTTPS sans identifiants intégrés, paramètres de requête ni fragment.",
"nameRequired": "Saisissez un nom de serveur de 128 caractères au maximum.",
"tokenIdFormat": "Saisissez l'ID du jeton API PBS au format user@realm!token.",
"tokenSecret": "Saisissez un secret de jeton API valide, sans espaces ni caractères de contrôle.",
"invalidTokenId": "L'ID du jeton API ne doit contenir que des caractères ASCII.",
"invalidFingerprint": "Saisissez l'empreinte SHA256 du certificat : 64 caractères hexadécimaux, éventuellement séparés par des deux-points.",
"fingerprintMismatch": "Le certificat PBS ne correspond pas à l'empreinte. Aucun identifiant n'a été envoyé.",
"tokenRejected": "PBS a refusé le jeton API ou ses permissions. Vérifiez les ACL de l'utilisateur et du jeton.",
"invalidResponse": "PBS a renvoyé une réponse inattendue. Les redirections ne sont pas suivies.",
"invalidJson": "PBS a renvoyé un document JSON non valide.",
"connectFailed": "Impossible de se connecter à PBS via HTTPS vérifié.Vérifiez l'adresse, le certificat et le service.",
"invalidId": "L'ID de connexion PBS n'est pas valide.Rechargez la liste de connexions.",
"invalidDatastores": "PBS a renvoyé une liste de banques de données non valide.",
"connectionLimit": "La plupart des connexions PBS {count} peuvent être configurées.",
"username": "saisissez l'utilisateur PBS au format user@realm, par exemple root@pam.",
"password": "saisissez le mot de passe de l'utilisateur PBS.",
"loginRejected": "PBS a rejeté le nom d'utilisateur ou le mot de passe.",
"connectFailed": "Impossible de se connecter à PBS en HTTPS vérifié. Vérifiez l'adresse, le certificat et le service.",
"invalidId": "L'ID de la connexion PBS n'est pas valide. Rechargez la liste des connexions.",
"invalidDatastores": "PBS a renvoyé une liste de magasins de données non valide.",
"connectionLimit": "Vous pouvez configurer au maximum {count} connexions PBS.",
"username": "Saisissez l'utilisateur PBS au format user@realm, par exemple root@pam.",
"password": "Saisissez le mot de passe de l'utilisateur PBS.",
"loginRejected": "PBS a refusé le nom d'utilisateur ou le mot de passe.",
"invalidLogin": "PBS a renvoyé une réponse de connexion non valide.",
"tokenCreateDenied": "Cet utilisateur PBS ne peut pas créer de jetons API.",
"invalidToken": "PBS a renvoyé un jeton API non valide.",
"auditRoleDenied": "cet utilisateur PBS ne peut pas accorder le rôle d'audit.Connectez-vous en tant que root@pam ou un autre administrateur.",
"notFound": "La connexion PBS n’a pas été trouvée.Rechargez la liste de connexions.",
"readFailed": "Impossible de lire les données PBS.Vérifiez son service et ses autorisations.",
"auditRoleDenied": "Cet utilisateur PBS ne peut pas attribuer le rôle Audit. Connectez-vous en tant que root@pam ou avec un autre administrateur.",
"notFound": "La connexion PBS est introuvable. Rechargez la liste des connexions.",
"readFailed": "Impossible de lire les données PBS. Vérifiez son service et les permissions.",
"invalidList": "PBS a renvoyé une liste de données non valide.",
"localUnavailable": "PBS n'est pas disponible sur cet hôte.",
"authRequired": "activez l'authentification locale dans Monitor avant de gérer les connexions PBS distantes.",
"datastoreOffline": "La banque de données est hors ligne, en mode maintenance ou son périphérique de support n'est pas monté.",
"datastoreUnavailable": "Le système de fichiers de la banque de données n'est pas disponible."
"authRequired": "Activez l'authentification locale dans Monitor avant de gérer des connexions PBS distantes.",
"datastoreOffline": "Le magasin de données est hors ligne, en mode maintenance, ou son périphérique de stockage n'est pas monté.",
"datastoreUnavailable": "Le système de fichiers du magasin de données n'est pas disponible."
},
"taskTypes": {
"backup": "Backup",
"restore": "Restaurer",
"backup": "Sauvegarde",
"restore": "Restauration",
"verify": "Vérification",
"verifyGroup": "Vérification du groupe de sauvegarde",
"verifySnapshot": "Vérification d'instantané",
"prune": "Prune",
"garbageCollection": "Collecte des déchets",
"sync": "Synchronization",
"updateCheck": "vérifier les mises à jour",
"verifyGroup": "Vérification du groupe de sauvegardes",
"verifySnapshot": "Vérification de l'instantané",
"prune": "Purge",
"garbageCollection": "Ramasse-miettes",
"sync": "Synchronisation",
"updateCheck": "Recherche de mises à jour",
"terminal": "Terminal",
"createDatastore": "Create datastore",
"createDatastore": "Créer un magasin de données",
"other": "Autre tâche ({type})"
},
"states": {
@@ -7545,27 +7705,27 @@
"serviceStates": {
"active": "Actif",
"inactive": "Inactif",
"failed": "Failed",
"failed": "Échoué",
"activating": "Démarrage",
"deactivating": "Arrêter",
"deactivating": "Arrêt",
"unknown": "Inconnu"
},
"durationUnits": {
"seconds": "{count} s",
"minutes": "{count} min",
"hours": "{count} h",
"days": "{count} d"
"days": "{count} j"
},
"urlHelp": "Incluez :8007 pour le port PBS par défaut, par exemple https://pbs.example:8007.",
"usernameHelp": "utilisez user@realm, par exemple root@pam.",
"tokenIdHelp": "Use user@realm!token, for example monitor@pbs!proxmenux.",
"tokenSecretHelp": "saisissez le secret de ce jeton API.",
"tokenSecretKeepHelp": "laissez vide pour garder secret le jeton enregistré.",
"urlHelp": "Incluez :8007 pour le port PBS par défaut, par exemple https://pbs.example:8007.",
"usernameHelp": "Utilisez user@realm, par exemple root@pam.",
"tokenIdHelp": "Utilisez user@realm!token, par exemple monitor@pbs!proxmenux.",
"tokenSecretHelp": "Saisissez le secret de ce jeton API.",
"tokenSecretKeepHelp": "Laissez vide pour conserver le secret du jeton enregistré.",
"removeFailed": "Impossible de supprimer la connexion PBS.",
"savedRefreshFailed": "La connexion PBS a été enregistrée, mais la liste des connexions n'a pas pu être actualisée.Rechargez la page avant d'essayer une autre modification.",
"removedRefreshFailed": "The PBS connection was removed, but the connection list could not be refreshed. Reload the page.",
"savedRefreshFailed": "La connexion PBS a été enregistrée, mais la liste des connexions n'a pas pu être actualisée. Rechargez la page avant de tenter une autre modification.",
"removedRefreshFailed": "La connexion PBS a été supprimée, mais la liste des connexions n'a pas pu être actualisée. Rechargez la page.",
"technicalDetails": "Détails techniques",
"datastoreType": "banque de données"
"datastoreType": "Magasin de données"
},
"monitorLinks": {
"groups": {
@@ -7606,15 +7766,15 @@
"changeAddress": "Modifier l'adresse",
"cancel": "Annuler",
"errors": {
"addressRequired": "saisissez l'adresse du moniteur.",
"invalidAddress": "L'adresse doit commencer par http:// ou https:// et nommer un hôte.",
"addressCredentials": "L'adresse ne doit pas contenir d'utilisateur ou de mot de passe.",
"invalidPort": "Le port de l’adresse n’est pas valide.",
"invalidRequest": "La demande n'est pas valide.Actualisez la page et réessayez.",
"limit": "Au maximum des nœuds {count} peuvent être ajoutés.",
"duplicate": "Cette adresse est déjà dans la liste.",
"notFound": "Le nœud n’a pas été trouvé.Rechargez la liste et réessayez.",
"detectedRemove": "seuls les nœuds ajoutés manuellement peuvent être supprimés.Les nœuds détectés peuvent être masqués."
"addressRequired": "Saisissez l'adresse du Monitor.",
"invalidAddress": "L'adresse doit commencer par http:// ou https:// et indiquer un hôte.",
"addressCredentials": "L'adresse ne doit contenir ni utilisateur ni mot de passe.",
"invalidPort": "Le port de l'adresse n'est pas valide.",
"invalidRequest": "La requête n'est pas valide. Rechargez la page et réessayez.",
"limit": "Vous pouvez ajouter au maximum {count} nœuds.",
"duplicate": "Cette adresse figure déjà dans la liste.",
"notFound": "Le nœud est introuvable. Rechargez la liste et réessayez.",
"detectedRemove": "Seuls les nœuds ajoutés manuellement peuvent être supprimés. Les nœuds détectés peuvent être masqués."
}
}
}
+300 -140
View File
@@ -1231,7 +1231,9 @@
"update": "Aggiorna",
"modify": "Modifica",
"recover": "Recupera",
"registerRestored": "Registra di nuovo",
"terminalTitleUpdate": "Aggiorna applicazione OCI",
"terminalTitleRecoverPrevious": "Ripristina l'installazione OCI precedente",
"terminalTitleModify": "Modifica applicazione OCI",
"terminalTitleRecover": "Recupera applicazione OCI ripristinata",
"terminalDescription": "Lo stesso percorso di OCI manager Apps → Gestisci le applicazioni OCI installate.",
@@ -1760,7 +1762,128 @@
"dockerEvidenceImage": "Immagine",
"dockerEvidencePort": "Porta TCP pubblicata",
"dockerEvidenceProject": "Progetto Compose",
"dockerEndpointReview": "Container con porte TCP pubblicate. Conferma il nome e l'indirizzo web prima di salvare. La registrazione non configura gli aggiornamenti."
"dockerEndpointReview": "Container con porte TCP pubblicate. Conferma il nome e l'indirizzo web prima di salvare. La registrazione non configura gli aggiornamenti.",
"confirmRemove": "Rimuovere il record di questa applicazione dalla scheda App? L'applicazione non viene disinstallata.",
"packageExample": "es. {package}",
"packageHelpBefore": "Compilato automaticamente dal nome. Verifica con",
"packageHelpAfter": "all'interno del CT.",
"binaryHelpBefore": "Percorso assoluto. Trovalo con",
"binaryHelpOr": "o",
"errors": {
"ociBusy": "è in corso un'operazione OCI su questo container",
"dpkgMissing": "{package} non è installato tramite dpkg",
"dpkgFailed": "dpkg-query non riuscito",
"dpkgNoVersion": "nessuna versione trovata nell'output di dpkg",
"apkFailed": "apk info non riuscito",
"apkNoVersion": "nessuna versione trovata nell'output di apk",
"fileRead": "impossibile leggere {path}",
"fileNoMatch": "file_regex non corrisponde a {path}",
"binaryFailed": "invocazione del binario non riuscita",
"binaryNoVersion": "nessuna versione trovata nell'output del binario",
"pythonFailed": "python -c importlib.metadata non riuscito",
"pythonNoVersion": "nessuna versione trovata nell'output della distribuzione Python",
"dockerImageResolve": "impossibile risolvere l'immagine installata del container",
"dockerInspectFailed": "docker inspect non riuscito",
"dockerLabelMissing": "il container non ha l'etichetta {label}",
"dockerLabelMutable": "l'etichetta Docker riporta {tag} (tag mobile, non una versione)",
"dockerLabelNoVersion": "nessuna versione trovata nell'output dell'etichetta Docker",
"dockerExecFailed": "docker exec non riuscito",
"dockerExecNoVersion": "nessuna versione trovata nell'output di docker exec",
"commandEmpty": "command_argv è vuoto",
"commandFailed": "comando non riuscito",
"commandNoVersion": "nessuna versione trovata nell'output del comando",
"unsupportedMethod": "metodo non supportato: {method}",
"unknownUpstream": "upstream_type sconosciuto: {type}",
"githubNotFound": "{repo}: non trovato",
"githubRejected": "GitHub ha rifiutato la richiesta (403)",
"githubError": "errore GitHub {code}",
"noRelease": "nessun nome di tag / release nella risposta",
"tagNoMatch": "tag_regex non corrisponde a '{tag}'",
"httpError": "errore HTTP {code}",
"invalidJson": "risposta JSON non valida: {detail}",
"jsonPathUnresolved": "json_path '{path}' non è stato risolto",
"jsonEmpty": "valore vuoto in json_path",
"dockerNoTags": "nessun tag corrispondente (docker_hub)",
"dockerMovingOnly": "tag_regex corrisponde solo a tag mobili; usa il monitoraggio tramite digest dell'immagine Docker",
"dockerHubError": "errore Docker Hub {code}",
"dockerHubJson": "JSON di Docker Hub non valido: {detail}",
"dockerHubEmpty": "nessun tag restituito da Docker Hub",
"payload": "il payload deve essere un oggetto JSON",
"name": "il nome è obbligatorio e deve contenere da 1 a 64 caratteri tra lettere/cifre/spazi/._+-()/",
"method": "installed_via deve essere uno tra: {values} oppure vuoto",
"package": "il pacchetto è obbligatorio (lettere/cifre/._+@:/ fino a 127 caratteri)",
"filePath": "file_path è obbligatorio e deve essere un percorso assoluto",
"fileRegex": "file_regex è obbligatorio",
"fileRegexInvalid": "file_regex non è una regex valida: {detail}",
"binaryPath": "binary_path è obbligatorio e deve essere un percorso assoluto",
"pythonPath": "python_path è obbligatorio e deve essere un percorso assoluto",
"distribution": "la distribuzione è obbligatoria (nome PEP 503)",
"container": "container_name è obbligatorio (regole di denominazione Docker)",
"label": "l'etichetta è obbligatoria (regole di denominazione delle etichette OCI)",
"dockerBinary": "binary_path è obbligatorio (percorso assoluto o comando semplice)",
"manualVersion": "installed_version è obbligatorio per il metodo manuale",
"versionLength": "installed_version supera {max} caratteri",
"versionControl": "installed_version contiene un carattere di controllo non consentito",
"installedRegexInvalid": "installed_regex non è una regex valida: {detail}",
"upstreamType": "upstream_type deve essere uno tra: {values}",
"tagRegexInvalid": "tag_regex non è una regex valida: {detail}",
"repoRequired": "repo è obbligatorio per upstream_type=github",
"repoFormat": "repo deve essere nel formato 'owner/name'",
"githubSource": "github_source deve essere uno tra: {values}",
"upstreamUrlRequired": "upstream_url è obbligatorio per upstream_type=http_json",
"upstreamUrl": "upstream_url deve essere un URL http(s)",
"upstreamUrlLength": "upstream_url supera {max} caratteri",
"jsonPathRequired": "upstream_json_path è obbligatorio per upstream_type=http_json",
"jsonPathLength": "upstream_json_path supera {max} caratteri",
"jsonPathCharacters": "upstream_json_path usa caratteri non consentiti",
"dockerImageRequired": "docker_image è obbligatorio per upstream_type=docker_hub",
"dockerImageLength": "docker_image supera {max} caratteri",
"dockerImageFormat": "docker_image deve rispettare la denominazione di Docker Hub (owner/name o name)",
"healthPath": "health_path deve essere un percorso URL valido (max 255 caratteri)",
"logoUrl": "logo_url deve essere un URL http(s) o l'icona locale in cache di questa VM",
"discoveryId": "discovery_id non valido",
"helperSlug": "helper_slug deve essere uno slug in minuscolo (lettere/cifre/._-)",
"updateVia": "update_via accetta solo 'docker'",
"dockerDetector": "update_via=docker richiede un rilevatore docker_label o docker_exec",
"dockerConflict": "update_via=docker non può essere combinato con {field}",
"updateCommandType": "update_command deve essere una stringa",
"updateCommandLength": "update_command supera {max} caratteri",
"updateCommandNull": "update_command contiene un byte nullo",
"updateMethod": "update_method deve essere none, helper o custom",
"updateCommandRequired": "update_command è obbligatorio per update_method=custom",
"updateCommandOnlyCustom": "update_command è consentito solo per update_method=custom",
"helperRequired": "per update_method=helper è obbligatorio un helper_slug supportato",
"dockerUpdater": "Le app delegate a Docker si aggiornano tramite la loro immagine, non con un programma di aggiornamento separato",
"commandRequired": "command_argv è obbligatorio (elenco non vuoto)",
"commandList": "command_argv deve essere un elenco non vuoto di stringhe",
"commandCount": "command_argv accetta al massimo {max} voci",
"commandEntry": "command_argv[{index}] deve essere una stringa non vuota",
"commandEntryLength": "command_argv[{index}] supera {max} caratteri",
"commandEntryControl": "command_argv[{index}] contiene un carattere di controllo non consentito",
"binaryArgsList": "binary_args deve essere un elenco di stringhe",
"binaryArgsCount": "binary_args accetta al massimo {max} voci",
"binaryArgEntry": "binary_args[{index}] deve essere una stringa non vuota",
"binaryArgLength": "binary_args[{index}] supera {max} caratteri",
"binaryArgControl": "binary_args[{index}] contiene un carattere di controllo non consentito",
"portsList": "ports deve essere un elenco di {port, description, scheme}",
"portObject": "ports[{index}] deve essere un oggetto",
"portRequired": "ports[{index}].port è obbligatorio",
"portInteger": "ports[{index}].port deve essere un numero intero",
"portRange": "ports[{index}].port deve essere compreso tra 1 e 65535",
"portDuplicate": "la porta {port} compare più di una volta per questa app",
"portDescription": "ports[{index}].description contiene caratteri non validi",
"portScheme": "ports[{index}].scheme deve essere 'http' o 'https'",
"portPath": "ports[{index}].web_path deve essere un percorso URL valido (max 255 caratteri)",
"portLogo": "ports[{index}].logo_url deve essere un URL http(s) (max 512 caratteri)",
"portCategory": "ports[{index}].category contiene caratteri non validi o è troppo lungo",
"portCustomUrl": "ports[{index}].custom_url deve essere un URL http(s) (max 512 caratteri)",
"tagRegexLength": "tag_regex supera 512 caratteri",
"persistPermission": "impossibile salvare il file sidecar (permessi?)",
"persist": "impossibile salvare il file sidecar",
"noApps": "nessuna app registrata per questo vmid",
"appMissing": "app_id '{appId}' non trovato",
"appNotFound": "app non trovata"
}
},
"statusFilter": {
"ariaLabel": "Filtra macchine virtuali e container",
@@ -2294,6 +2417,42 @@
"updateManyDescription": "Riesecuzione di {count} funzioni di post-installazione in sequenza.",
"legacySourceTitle": "Ottimizzazione legacy: fai clic per visualizzare il sorgente",
"sourceTitle": "Fai clic per vedere il codice sorgente",
"sourceDialogTitle": "Codice sorgente: {name}",
"sourceLoading": "Caricamento del codice sorgente…",
"sourceUnavailable": "Il codice sorgente non è disponibile.",
"sourceLoadFailed": "Impossibile caricare il codice sorgente. Riprova.",
"sourceFunctionMissing": "La funzione non è stata trovata negli script disponibili.",
"sourceUnknownTool": "Strumento sconosciuto: {tool}",
"sourceNoMapping": "Nessuna funzione è assegnata allo strumento {tool}.",
"sourceToolNames": {
"subscription_banner": "Rimozione del banner di abbonamento",
"time_sync": "Sincronizzazione dell'ora",
"apt_languages": "Salto delle lingue APT",
"journald": "Ottimizzazione di Journald",
"logrotate": "Ottimizzazione di Logrotate",
"system_limits": "Aumento dei limiti di sistema",
"memory_settings": "Ottimizzazione delle impostazioni di memoria",
"zram_swap": "Profilo di scambio ZRAM",
"kernel_panic": "Configurazione del kernel panic",
"apt_ipv4": "Forzatura IPv4 per APT",
"kexec": "kexec per riavvii rapidi",
"rpc": "Disattivazione di RPC / rpcbind",
"motd": "Banner MOTD personalizzato",
"system_utils": "Utilità di sistema",
"network_optimization": "Ottimizzazioni di rete",
"bashrc_custom": "Personalizzazione di Bashrc",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (protezione SSD)",
"zfs_autotrim": "ZFS Autotrim",
"amd_fixes": "Correzioni CPU AMD (Ryzen/EPYC)",
"persistent_network": "Configurazione di interfacce di rete persistenti",
"vfio_iommu": "Passthrough VFIO/IOMMU",
"lvm_repair": "Riparazione delle intestazioni PV LVM",
"repo_cleanup": "Pulizia dei repository",
"proxmox_repos": "Repository APT di Proxmox",
"entropy": "Generazione di entropia (haveged)"
},
"legacy": "legacy",
"updateToolTitle": "Aggiorna {name} a v{version}",
"availableUpdates": "Aggiornamenti disponibili",
@@ -4822,122 +4981,122 @@
"useDefault": "Usa l'impostazione predefinita di Proxmox (nessuna policy su questo storage)"
},
"apiErrors": {
"requestFailed": "la richiesta non è riuscita.",
"requestFailed": "La richiesta non è riuscita.",
"absolutePath": "il percorso deve essere assoluto",
"pathConfigured": "questo percorso è già configurato",
"pathRequired": "il percorso è obbligatorio",
"pathQuery": "il parametro di query del percorso è obbligatorio",
"pathQuery": "il parametro di query path è obbligatorio",
"pathNotFound": "percorso non trovato",
"invalidJobId": "ID lavoro non valido",
"jobNotFound": "lavoro non trovato",
"runnerMissing": "script runner non installato",
"noRestore": "nessuno stato di ripristino da eliminare",
"invalidJobId": "ID del job non valido",
"jobNotFound": "job non trovato",
"runnerMissing": "script di esecuzione non installato",
"noRestore": "nessuno stato di ripristino da chiudere",
"invalidFile": "nome file non valido",
"notFound": "non trovato",
"logOutside": "percorso di registro esterno alla directory consentita",
"targetsList": "gli obiettivi devono essere un elenco",
"logOutside": "percorso del log al di fuori della directory consentita",
"targetsList": "targets deve essere un elenco",
"emptyExpression": "espressione vuota",
"invalidId": "ID non valido (utilizza lettere, cifre, _ o -)",
"invalidId": "ID non valido (usa lettere, cifre, _ o -)",
"backend": "il backend deve essere pbs, local o borg",
"remoteBackend": "il backend deve essere pbs o borg",
"remoteBackendQuoted": "il backend deve essere 'pbs' o 'borg'",
"profileMode": "profile_mode deve essere predefinito o personalizzato",
"borgAttached": "borg non può essere collegato (PVE vzdump scrive solo su archivi pbs/locali)",
"borgAttachedLong": "borg non è un backend valido per i lavori allegati (PVE vzdump scrive solo su archivi pbs/locali)",
"parentRequired": "pve_parent_job_id e pve_storage sono richiesti per attach",
"absolutePaths": "i percorsi devono essere un elenco di percorsi assoluti",
"profileMode": "profile_mode deve essere default o custom",
"borgAttached": "borg non può essere collegato (vzdump di PVE scrive solo su storage pbs/local)",
"borgAttachedLong": "borg non è un backend valido per i job collegati (vzdump di PVE scrive solo su storage pbs/local)",
"parentRequired": "pve_parent_job_id e pve_storage sono obbligatori per attached",
"absolutePaths": "paths deve essere un elenco di percorsi assoluti",
"customPath": "il profilo personalizzato richiede almeno un percorso",
"defaultPaths": "impossibile risolvere i percorsi dei profili predefiniti",
"retentionObject": "la conservazione deve essere un oggetto",
"defaultPaths": "impossibile determinare i percorsi del profilo predefinito",
"retentionObject": "retention deve essere un oggetto",
"pbsRepository": "pbs_repository è obbligatorio",
"pbsEncryption": "pbs_encrypt_mode deve essere \"none\", \"new\" o \"existing\"",
"pbsEncryption": "pbs_encrypt_mode deve essere 'none', 'new' o 'existing'",
"pbsKeyFailed": "impossibile creare il file di chiavi di crittografia PBS",
"pbsClientMissing": "impossibile creare il file chiave di crittografia PBS (è installato il client di backup proxmox?)",
"pbsClientMissing": "impossibile creare il file di chiavi di crittografia PBS (proxmox-backup-client è installato?)",
"borgRepository": "borg_repo è obbligatorio",
"borgEncryption": "borg_encrypt_mode deve essere uno tra: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode deve essere uno tra: none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase è richiesto quando la crittografia è abilitata (salvalo sulla destinazione o passane uno nella richiesta)",
"passphrase": "la passphrase è richiesta quando la crittografia è abilitata",
"password": "è richiesta la password",
"deviceConfirmation": "confirm_device deve corrispondere esattamente al dispositivo (errore di battitura/controllo di sicurezza)",
"borgPassphrase": "borg_passphrase è obbligatoria quando la crittografia è abilitata (salvala nella destinazione o passane una nella richiesta)",
"passphrase": "la passphrase è obbligatoria quando la crittografia è abilitata",
"password": "la password è obbligatoria",
"deviceConfirmation": "confirm_device deve corrispondere esattamente a device (controllo di sicurezza / refusi)",
"invalidDevice": "percorso del dispositivo non valido",
"absoluteMountpoint": "punto di montaggio assoluto richiesto",
"archiveLayout": "layout dell'archivio non riconosciuto: nessun rootfs/trovato",
"absoluteMountpoint": "è richiesto un punto di montaggio assoluto",
"archiveLayout": "struttura dell'archivio non riconosciuta: nessuna rootfs/ trovata",
"archiveMissing": "archivio non trovato",
"archiveNotFile": "il percorso dell'archivio non è un file normale",
"archiveNotFile": "il percorso dell'archivio non è un file regolare",
"invalidName": "nome non valido",
"invalidStaging": "percorso_staging non valido",
"jobRename": "il nome del lavoro non può essere modificato (elimina + ricrea per rinominare)",
"invalidStaging": "staging_path non valido",
"jobRename": "il nome del job non può essere modificato (elimina e ricrea per rinominarlo)",
"absoluteKey": "key_path deve essere assoluto",
"mode": "la modalità deve essere \"locale\" o \"ssh\"",
"mode": "mode deve essere \"local\" o \"ssh\"",
"nameRequired": "il nome è obbligatorio (lettere, cifre, _ o -)",
"noLog": "nessun registro ancora disponibile per questo lavoro",
"noPbsConfig": "nessun file di configurazione PBS manuale",
"noLog": "ancora nessun log disponibile per questo job",
"noPbsConfig": "nessun file di configurazioni PBS manuali",
"outputMissing": "file di output mancante",
"parserJson": "l'output del parser non era JSON valido",
"restoreJson": "l'output run_restore non era un JSON valido",
"repoRequired": "il repository è obbligatorio",
"repoSnapshot": "nome_repo e snapshot sono obbligatori",
"borgRepoSnapshot": "repo_name e snapshot sono richiesti per borg",
"pbsRepoSnapshot": "nome_repo e snapshot sono richiesti per pbs",
"parserJson": "l'output del parser non era un JSON valido",
"restoreJson": "l'output di run_restore non era un JSON valido",
"repoRequired": "repo è obbligatorio",
"repoSnapshot": "repo_name e snapshot sono obbligatori",
"borgRepoSnapshot": "repo_name e snapshot sono obbligatori per borg",
"pbsRepoSnapshot": "repo_name e snapshot sono obbligatori per pbs",
"repoName": "repo_name è obbligatorio",
"restoreMissing": "strumenti di ripristino non installati su questo host",
"serverDatastore": "sono richiesti server e archivio dati",
"snapshotRequired": "è richiesta l'istantanea",
"source": "la fonte deve essere pbs, borg o locale",
"sshPort": "ssh_port deve essere un numero intero compreso tra 1 e 65535",
"sshRequired": "ssh_user, ssh_host e ssh_remote_path sono richiesti per la modalità ssh",
"serverDatastore": "server e datastore sono obbligatori",
"snapshotRequired": "lo snapshot è obbligatorio",
"source": "source deve essere pbs, borg o local",
"sshPort": "ssh_port deve essere un numero intero tra 1 e 65535",
"sshRequired": "ssh_user, ssh_host e ssh_remote_path sono obbligatori per la modalità ssh",
"repositoryPath": "la destinazione non ha un percorso di repository",
"taskExpired": "attività non trovata o scaduta",
"invalidExpression": "espressione non valida",
"noReport": "nessun rapporto emesso",
"parseManifestFailed": "parse_manifest è uscito diverso da zero",
"jobExists": "il lavoro esiste già: {value}",
"noReport": "nessun report generato",
"parseManifestFailed": "parse_manifest è terminato con un codice diverso da zero",
"jobExists": "il job esiste già: {value}",
"pathMissing": "il percorso non esiste su questo host: {value}",
"deviceMissing": "il dispositivo non esiste: {value}",
"mountpoint": "non un punto di montaggio: {value}",
"mountpoint": "non è un punto di montaggio: {value}",
"localArchiveMissing": "archivio locale non trovato: {value}",
"borgDestination": "destinazione Borg '{value}' non trovata",
"pbsDestination": "destinazione PBS '{value}' non trovata",
"borgDestination": "Destinazione Borg '{value}' non trovata",
"pbsDestination": "Destinazione PBS '{value}' non trovata",
"pbsPassword": "nessuna password disponibile per il repository PBS '{value}'",
"borgRepoMissing": "repository Borg \"{value}\" non configurato",
"pbsRepoMissing": "repository PBS \"{value}\" non configurato",
"borgTargetMissing": "target Borg non trovato: {value}",
"pbsTargetMissing": "repository PBS non trovato: {value}",
"pveJobMissing": "lavoro PVE vzdump non trovato: {value}",
"statePersist": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile persistere nello stato: {value}",
"sshDirectory": "impossibile preparare ssh dir: {value}",
"logRead": "impossibile leggere il registro: {value}",
"borgRepoMissing": "Repository Borg \"{value}\" non configurato",
"pbsRepoMissing": "Repository PBS \"{value}\" non configurato",
"borgTargetMissing": "Destinazione Borg non trovata: {value}",
"pbsTargetMissing": "Repository PBS non trovato: {value}",
"pveJobMissing": "Job vzdump di PVE non trovato: {value}",
"statePersist": "impossibile salvare lo stato: {value}",
"sshDirectory": "impossibile preparare la directory ssh: {value}",
"logRead": "impossibile leggere il log: {value}",
"envUpdate": "impossibile aggiornare .env: {value}",
"pbsConfigWrite": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile mantenere la configurazione PBS: {value}",
"persist": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile persistere: {value}",
"archiveRemove": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile rimuovere l'archivio: {value}",
"start": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: avvio non riuscito: {value}",
"pbsConfigWrite": "impossibile salvare la configurazione PBS: {value}",
"persist": "impossibile salvare: {value}",
"archiveRemove": "impossibile rimuovere l'archivio: {value}",
"start": "impossibile avviare: {value}",
"borgTargetsUpdate": "impossibile aggiornare borg-targets.txt: {value}",
"pbsTargetsUpdate": "impossibile aggiornare pbs-manual-configs.txt: {value}",
"unitsUpdate": "impossibile aggiornare le unità systemd: {value}",
"borgTargetsWrite": "impossibile scrivere borg-targets.txt: {value}",
"jobWrite": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile scrivere i file di lavoro: {value}",
"localTargetWrite": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: impossibile scrivere local-target.conf: {value}",
"jobWrite": "impossibile scrivere i file del job: {value}",
"localTargetWrite": "impossibile scrivere local-target.conf: {value}",
"unitsWrite": "impossibile scrivere le unità systemd: {value}",
"format": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: formato non riuscito: {value}",
"format": "formattazione non riuscita: {value}",
"calendar": "on_calendar non valido: {value}",
"mount": "montaggio non riuscito: {value}",
"parserInvocation": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: invocazione del parser non riuscita: {value}",
"preflightInvocation": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: chiamata di preflight non riuscita: {value}",
"parserInvocation": "invocazione del parser non riuscita: {value}",
"preflightInvocation": "invocazione della verifica preliminare non riuscita: {value}",
"publicKeyMissing": "chiave pubblica non trovata dopo la generazione: {value}",
"retentionInteger": "tention.{value} deve essere un numero intero",
"retentionNegative": "ritenzione.{value} deve essere non negativo",
"keygen": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: ssh-keygen non riuscita: {value}",
"systemctl": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: systemctl non riuscita: {value}",
"unmount": "smontaggio non riuscito: {value}",
"retentionInteger": "retention.{value} deve essere un numero intero",
"retentionNegative": "retention.{value} non deve essere negativo",
"keygen": "ssh-keygen non riuscito: {value}",
"systemctl": "systemctl non riuscito: {value}",
"unmount": "umount non riuscito: {value}",
"taskIncomplete": "l'attività è nello stato \"{value}\", non completata",
"unknownKind": "tipo sconosciuto: {value}",
"unknownMode": "modalità sconosciuta \"{value}\"",
"defaultRemove": "{value} è l'impostazione predefinita integrata e non può essere rimossa",
"defaultAdd": "{value} è l'impostazione predefinita integrata;non c'è bisogno di aggiungerlo",
"keyImport": "su {value} non è installato alcun file di chiavi PBS.Importa prima il file di chiavi.",
"storageMismatch": "mancata corrispondenza dell'archiviazione del lavoro PVE (il lavoro utilizza {value}, il payload dice {other})"
"defaultRemove": "{value} è il valore predefinito integrato e non può essere rimosso",
"defaultAdd": "{value} è il valore predefinito integrato; non è necessario aggiungerlo",
"keyImport": "Nessun file di chiavi PBS è installato in {value}. Importa prima il file di chiavi.",
"storageMismatch": "Lo storage del job PVE non corrisponde (il job usa {value}, il payload indica {other})"
}
},
"healthStatus": {
@@ -5438,6 +5597,7 @@
"websocketError": "Errore WebSocket",
"connectionClosed": "Connessione chiusa",
"completedSuccessfully": "Script completato con successo",
"cancelled": "Operazione annullata.",
"completedWithError": "Script terminato con codice di errore {code}",
"yes": "Sì",
"yourInput": "Input:",
@@ -7429,7 +7589,7 @@
"signInWith": "Accedi con",
"methodPassword": "Utente e password",
"methodToken": "Token API",
"username": "Utente (utente@realm)",
"username": "Utente",
"password": "Password",
"passwordHelp": "La password viene usata una sola volta per creare un token API di sola lettura (ruolo Audit) per questo Monitor. Viene salvato solo quel token, mai la password. Attiva prima l'autenticazione del Monitor.",
"cancel": "Annulla",
@@ -7442,10 +7602,10 @@
"editConnection": "Connessione da modificare",
"add": "Aggiungi una nuova connessione",
"name": "Nome",
"url": "URL HTTPS (includere :8007 per la porta nativa di PBS)",
"token_id": "ID del token API (user@realm!token)",
"token_secret": "Segreto del token API (lasciare vuoto per mantenere quello salvato)",
"fingerprint": "Impronta SHA256 del certificato (facoltativa)",
"url": "Indirizzo HTTPS",
"token_id": "ID del token API",
"token_secret": "Segreto del token API",
"fingerprint": "Impronta SHA256 (facoltativa)",
"tlsHelp": "Lascia vuota l'impronta per la normale verifica dell'autorità di certificazione e del nome host. Per un certificato autofirmato, copia la sua impronta SHA256 dalla console PBS o da un altro canale attendibile. L'impronta viene verificata prima dell'invio delle credenziali.",
"saved": "Connessione PBS verificata e salvata.",
"saveFailed": "Impossibile salvare la connessione PBS.",
@@ -7489,83 +7649,83 @@
"duration": "Durata",
"noJobs": "non è configurata alcuna pianificazione di sincronizzazione, verifica o eliminazione.",
"errors": {
"configRead": "impossibile leggere le connessioni PBS salvate.Controlla il file di configurazione e le autorizzazioni.",
"invalidConfig": "le impostazioni di connessione PBS non sono valide.Controlla il modulo e riprova.",
"invalidField": "un campo di connessione non è valido o è troppo lungo.",
"invalidUrl": "utilizza un indirizzo PBS HTTPS senza credenziali incorporate, parametri di query o un frammento.",
"nameRequired": "inserisci un nome server di massimo 128 caratteri.",
"tokenIdFormat": "inserisci l'ID token API PBS nel formato user@realm!token.",
"tokenSecret": "inserisci un segreto del token API valido senza spazi o caratteri di controllo.",
"invalidTokenId": "testo tecnico dell'interfaccia utente per una dashboard di gestione Proxmox.Traduzione: l'ID token API deve contenere solo caratteri ASCII.",
"invalidFingerprint": "inserisci l'impronta digitale SHA256 del certificato: 64 caratteri esadecimali, facoltativamente separati da due punti.",
"fingerprintMismatch": "il certificato PBS non corrisponde all'impronta digitale.Non sono state inviate credenziali.",
"tokenRejected": "PBS ha rifiutato il token API o le sue autorizzazioni.Controlla gli ACL sia dell'utente che del token.",
"invalidResponse": "PBS ha restituito una risposta inaspettata.I reindirizzamenti non vengono seguiti.",
"configRead": "Impossibile leggere le connessioni PBS salvate. Controlla il file di configurazione e i permessi.",
"invalidConfig": "Le impostazioni della connessione PBS non sono valide. Controlla il modulo e riprova.",
"invalidField": "Un campo della connessione non è valido o è troppo lungo.",
"invalidUrl": "Usa un indirizzo PBS HTTPS senza credenziali incorporate, parametri di query o frammento.",
"nameRequired": "Inserisci un nome del server di massimo 128 caratteri.",
"tokenIdFormat": "Inserisci l'ID del token API PBS nel formato user@realm!token.",
"tokenSecret": "Inserisci un segreto del token API valido, senza spazi né caratteri di controllo.",
"invalidTokenId": "L'ID del token API deve contenere solo caratteri ASCII.",
"invalidFingerprint": "Inserisci l'impronta SHA256 del certificato: 64 caratteri esadecimali, facoltativamente separati da due punti.",
"fingerprintMismatch": "Il certificato PBS non corrisponde all'impronta. Non sono state inviate credenziali.",
"tokenRejected": "PBS ha rifiutato il token API o i suoi permessi. Controlla le ACL sia dell'utente sia del token.",
"invalidResponse": "PBS ha restituito una risposta inattesa. I reindirizzamenti non vengono seguiti.",
"invalidJson": "PBS ha restituito un documento JSON non valido.",
"connectFailed": "impossibile connettersi a PBS tramite HTTPS verificato.Controlla l'indirizzo, il certificato e il servizio.",
"invalidId": "l'ID di connessione PBS non è valido.Ricaricare l'elenco delle connessioni.",
"invalidDatastores": "PBS ha restituito un elenco di archivi dati non valido.",
"connectionLimit": "È possibile configurare al massimo connessioni PBS {count}.",
"username": "inserisci l'utente PBS nel formato utente@realm, ad esempio root@pam.",
"password": "inserisci la password dell'utente PBS.",
"connectFailed": "Impossibile connettersi a PBS tramite HTTPS verificato. Controlla l'indirizzo, il certificato e il servizio.",
"invalidId": "L'ID della connessione PBS non è valido. Ricarica l'elenco delle connessioni.",
"invalidDatastores": "PBS ha restituito un elenco di datastore non valido.",
"connectionLimit": "Si possono configurare al massimo {count} connessioni PBS.",
"username": "Inserisci l'utente PBS nel formato user@realm, ad esempio root@pam.",
"password": "Inserisci la password dell'utente PBS.",
"loginRejected": "PBS ha rifiutato il nome utente o la password.",
"invalidLogin": "PBS ha restituito una risposta di accesso non valida.",
"tokenCreateDenied": "questo utente PBS non può creare token API.",
"tokenCreateDenied": "Questo utente PBS non può creare token API.",
"invalidToken": "PBS ha restituito un token API non valido.",
"auditRoleDenied": "questo utente PBS non può concedere il ruolo di controllo.Accedi come root@pam o un altro amministratore.",
"notFound": "la connessione PBS non è stata trovata.Ricaricare l'elenco delle connessioni.",
"readFailed": "impossibile leggere i dati PBS.Controlla il suo servizio e le autorizzazioni.",
"auditRoleDenied": "Questo utente PBS non può assegnare il ruolo Audit. Accedi come root@pam o con un altro amministratore.",
"notFound": "Connessione PBS non trovata. Ricarica l'elenco delle connessioni.",
"readFailed": "Impossibile leggere i dati PBS. Controlla il servizio e i permessi.",
"invalidList": "PBS ha restituito un elenco di dati non valido.",
"localUnavailable": "PBS non è disponibile su questo host.",
"authRequired": "abilita l'autenticazione locale in Monitor prima di gestire le connessioni PBS remote.",
"datastoreOffline": "l'archivio dati è offline, in modalità di manutenzione oppure il relativo dispositivo di supporto non è montato.",
"datastoreUnavailable": "il filesystem del datastore non è disponibile."
"authRequired": "Abilita l'autenticazione locale in Monitor prima di gestire le connessioni PBS remote.",
"datastoreOffline": "Il datastore è offline, in modalità manutenzione oppure il dispositivo su cui si basa non è montato.",
"datastoreUnavailable": "Il filesystem del datastore non è disponibile."
},
"taskTypes": {
"backup": "backup",
"restore": "ripristinare",
"backup": "Backup",
"restore": "Ripristino",
"verify": "Verifica",
"verifyGroup": "verifica del gruppo di backup",
"verifySnapshot": "verifica dell'istantanea",
"prune": "potare",
"verifyGroup": "Verifica del gruppo di backup",
"verifySnapshot": "Verifica dello snapshot",
"prune": "Pulizia",
"garbageCollection": "Garbage collection",
"sync": "sincronizzazione",
"updateCheck": "controlla gli aggiornamenti",
"terminal": "terminale",
"createDatastore": "crea archivio dati",
"sync": "Sincronizzazione",
"updateCheck": "Controllo aggiornamenti",
"terminal": "Terminale",
"createDatastore": "Creazione datastore",
"other": "Altra attività ({type})"
},
"states": {
"ok": "OK",
"unknown": "sconosciuto",
"warnings": "Avvertenze: {count}",
"warning": "Avvertimento",
"unknown": "Sconosciuto",
"warnings": "Avvisi: {count}",
"warning": "Avviso",
"error": "Errore"
},
"serviceStates": {
"active": "attivo",
"inactive": "inattivo",
"failed": "fallito",
"activating": "Inizio",
"deactivating": "Fermarsi",
"unknown": "sconosciuto"
"active": "Attivo",
"inactive": "Inattivo",
"failed": "Non riuscito",
"activating": "Avvio in corso",
"deactivating": "Arresto in corso",
"unknown": "Sconosciuto"
},
"durationUnits": {
"seconds": "{count} s",
"minutes": "{count} min",
"hours": "{count} h",
"days": "{count} d"
"days": "{count} g"
},
"urlHelp": "includi :8007 per la porta PBS predefinita, ad esempio https://pbs.example:8007.",
"usernameHelp": "utilizza user@realm, ad esempio root@pam.",
"tokenIdHelp": "utilizza user@realm!token, ad esempio monitor@pbs!proxmenux.",
"tokenSecretHelp": "inserisci il segreto di questo token API.",
"tokenSecretKeepHelp": "lascia vuoto per mantenere segreto il token salvato.",
"removeFailed": "impossibile rimuovere la connessione PBS.",
"savedRefreshFailed": "la connessione PBS è stata salvata, ma non è stato possibile aggiornare l'elenco delle connessioni.Ricarica la pagina prima di provare un'altra modifica.",
"removedRefreshFailed": "la connessione PBS è stata rimossa, ma non è stato possibile aggiornare l'elenco delle connessioni.Ricarica la pagina.",
"urlHelp": "Includi :8007 per la porta predefinita di PBS, ad esempio https://pbs.example:8007.",
"usernameHelp": "Usa utente@realm, ad esempio root@pam.",
"tokenIdHelp": "Usa utente@realm!token, ad esempio monitor@pbs!proxmenux.",
"tokenSecretHelp": "Inserisci il segreto di questo token API.",
"tokenSecretKeepHelp": "Lascia vuoto per mantenere il segreto del token salvato.",
"removeFailed": "Impossibile rimuovere la connessione PBS.",
"savedRefreshFailed": "La connessione PBS è stata salvata, ma non è stato possibile aggiornare l'elenco delle connessioni. Ricarica la pagina prima di fare un'altra modifica.",
"removedRefreshFailed": "La connessione PBS è stata rimossa, ma non è stato possibile aggiornare l'elenco delle connessioni. Ricarica la pagina.",
"technicalDetails": "Dettagli tecnici",
"datastoreType": "archivio dati"
"datastoreType": "Datastore"
},
"monitorLinks": {
"groups": {
@@ -7606,15 +7766,15 @@
"changeAddress": "Cambia indirizzo",
"cancel": "Annulla",
"errors": {
"addressRequired": "inserisci l'indirizzo del monitor.",
"invalidAddress": "l'indirizzo deve iniziare con http:// o https:// e nominare un host.",
"addressCredentials": "l'indirizzo non deve contenere un utente o una password.",
"invalidPort": "la porta dell'indirizzo non è valida.",
"addressRequired": "Inserisci l'indirizzo del Monitor.",
"invalidAddress": "L'indirizzo deve iniziare con http:// o https:// e indicare un host.",
"addressCredentials": "L'indirizzo non deve contenere un utente o una password.",
"invalidPort": "La porta dell'indirizzo non è valida.",
"invalidRequest": "La richiesta non è valida. Ricarica la pagina e riprova.",
"limit": "è possibile aggiungere al massimo nodi {count}.",
"duplicate": "questo indirizzo è già nell'elenco.",
"notFound": "il nodo non è stato trovato.Ricaricare l'elenco e riprovare.",
"detectedRemove": "solo i nodi aggiunti manualmente possono essere rimossi.I nodi rilevati possono essere nascosti."
"limit": "Si possono aggiungere al massimo {count} nodi.",
"duplicate": "Questo indirizzo è già nell'elenco.",
"notFound": "Nodo non trovato. Ricarica l'elenco e riprova.",
"detectedRemove": "Si possono rimuovere solo i nodi aggiunti manualmente. I nodi rilevati possono essere nascosti."
}
}
}
+296 -136
View File
@@ -1231,7 +1231,9 @@
"update": "Atualizar",
"modify": "Modificar",
"recover": "Recuperar",
"registerRestored": "Registar novamente",
"terminalTitleUpdate": "Atualizar aplicação OCI",
"terminalTitleRecoverPrevious": "Recuperar a instalação OCI anterior",
"terminalTitleModify": "Modificar aplicação OCI",
"terminalTitleRecover": "Recuperar aplicação OCI restaurada",
"terminalDescription": "É executado o mesmo processo que no menu do ProxMenux: OCI manager Apps → Gerir aplicações OCI instaladas.",
@@ -1760,7 +1762,128 @@
"dockerEvidenceImage": "Imagem",
"dockerEvidencePort": "Porta TCP publicada",
"dockerEvidenceProject": "Projeto Compose",
"dockerEndpointReview": "Contentor com portas TCP publicadas. Confirme o nome e o endereço web antes de guardar. O registo não configura atualizações."
"dockerEndpointReview": "Contentor com portas TCP publicadas. Confirme o nome e o endereço web antes de guardar. O registo não configura atualizações.",
"confirmRemove": "Eliminar o registo desta aplicação do separador App? A aplicação não é desinstalada.",
"packageExample": "p. ex. {package}",
"packageHelpBefore": "Preenchido automaticamente a partir do Nome. Verifique com",
"packageHelpAfter": "dentro do CT.",
"binaryHelpBefore": "Caminho absoluto. Encontre-o com",
"binaryHelpOr": "ou",
"errors": {
"ociBusy": "está em curso uma operação OCI neste contentor",
"dpkgMissing": "{package} não está instalado através do dpkg",
"dpkgFailed": "dpkg-query falhou",
"dpkgNoVersion": "nenhuma versão encontrada na saída do dpkg",
"apkFailed": "apk info falhou",
"apkNoVersion": "nenhuma versão encontrada na saída do apk",
"fileRead": "não foi possível ler {path}",
"fileNoMatch": "file_regex não encontrou correspondência em {path}",
"binaryFailed": "a invocação do binário falhou",
"binaryNoVersion": "nenhuma versão encontrada na saída do binário",
"pythonFailed": "python -c importlib.metadata falhou",
"pythonNoVersion": "nenhuma versão encontrada na saída da distribuição Python",
"dockerImageResolve": "não foi possível resolver a imagem instalada do contentor",
"dockerInspectFailed": "docker inspect falhou",
"dockerLabelMissing": "o contentor não tem a etiqueta {label}",
"dockerLabelMutable": "a etiqueta do docker indica {tag} (tag mutável, não é uma versão)",
"dockerLabelNoVersion": "nenhuma versão encontrada na saída da etiqueta do docker",
"dockerExecFailed": "docker exec falhou",
"dockerExecNoVersion": "nenhuma versão encontrada na saída do docker exec",
"commandEmpty": "command_argv está vazio",
"commandFailed": "o comando falhou",
"commandNoVersion": "nenhuma versão encontrada na saída do comando",
"unsupportedMethod": "método não suportado: {method}",
"unknownUpstream": "upstream_type desconhecido: {type}",
"githubNotFound": "{repo}: não encontrado",
"githubRejected": "o github rejeitou o pedido (403)",
"githubError": "erro do github {code}",
"noRelease": "nenhuma tag / nome de release na resposta",
"tagNoMatch": "tag_regex não encontrou correspondência em '{tag}'",
"httpError": "erro http {code}",
"invalidJson": "resposta JSON inválida: {detail}",
"jsonPathUnresolved": "json_path '{path}' não foi resolvido",
"jsonEmpty": "valor vazio em json_path",
"dockerNoTags": "nenhuma tag encontrada (docker_hub)",
"dockerMovingOnly": "tag_regex só encontrou tags móveis; utilize o seguimento do digest da imagem Docker",
"dockerHubError": "erro do docker hub {code}",
"dockerHubJson": "JSON do docker hub inválido: {detail}",
"dockerHubEmpty": "o docker hub não devolveu nenhuma tag",
"payload": "o payload deve ser um objeto JSON",
"name": "name é obrigatório e deve ter 1-64 caracteres entre letras/dígitos/espaços/._+-()/",
"method": "installed_via deve ser um de: {values} ou vazio",
"package": "package é obrigatório (letras/dígitos/._+@:/ até 127 caracteres)",
"filePath": "file_path é obrigatório e deve ser um caminho absoluto",
"fileRegex": "file_regex é obrigatório",
"fileRegexInvalid": "file_regex não é uma regex válida: {detail}",
"binaryPath": "binary_path é obrigatório e deve ser um caminho absoluto",
"pythonPath": "python_path é obrigatório e deve ser um caminho absoluto",
"distribution": "distribution é obrigatório (nome PEP 503)",
"container": "container_name é obrigatório (regras de nomes do docker)",
"label": "label é obrigatório (regras de nomes de etiquetas OCI)",
"dockerBinary": "binary_path é obrigatório (caminho absoluto ou comando simples)",
"manualVersion": "installed_version é obrigatório para o método manual",
"versionLength": "installed_version excede {max} caracteres",
"versionControl": "installed_version contém um carácter de controlo proibido",
"installedRegexInvalid": "installed_regex não é uma regex válida: {detail}",
"upstreamType": "upstream_type deve ser um de: {values}",
"tagRegexInvalid": "tag_regex não é uma regex válida: {detail}",
"repoRequired": "repo é obrigatório para upstream_type=github",
"repoFormat": "repo deve ter o formato 'owner/name'",
"githubSource": "github_source deve ser um de: {values}",
"upstreamUrlRequired": "upstream_url é obrigatório para upstream_type=http_json",
"upstreamUrl": "upstream_url deve ser um URL http(s)",
"upstreamUrlLength": "upstream_url excede {max} caracteres",
"jsonPathRequired": "upstream_json_path é obrigatório para upstream_type=http_json",
"jsonPathLength": "upstream_json_path excede {max} caracteres",
"jsonPathCharacters": "upstream_json_path utiliza caracteres proibidos",
"dockerImageRequired": "docker_image é obrigatório para upstream_type=docker_hub",
"dockerImageLength": "docker_image excede {max} caracteres",
"dockerImageFormat": "docker_image deve seguir os nomes do Docker Hub (owner/name ou name)",
"healthPath": "health_path deve ser um caminho de URL válido (máx. 255 caracteres)",
"logoUrl": "logo_url deve ser um URL http(s) ou o ícone local em cache desta VM",
"discoveryId": "discovery_id inválido",
"helperSlug": "helper_slug deve ser um slug em minúsculas (letras/dígitos/._-)",
"updateVia": "update_via só aceita 'docker'",
"dockerDetector": "update_via=docker requer um detetor docker_label ou docker_exec",
"dockerConflict": "update_via=docker não pode ser combinado com {field}",
"updateCommandType": "update_command deve ser uma cadeia de texto",
"updateCommandLength": "update_command excede {max} caracteres",
"updateCommandNull": "update_command contém um byte nulo",
"updateMethod": "update_method deve ser none, helper ou custom",
"updateCommandRequired": "update_command é obrigatório para update_method=custom",
"updateCommandOnlyCustom": "update_command só é permitido para update_method=custom",
"helperRequired": "é necessário um helper_slug suportado para update_method=helper",
"dockerUpdater": "As aplicações delegadas no Docker atualizam-se através da sua imagem, não com um atualizador de aplicação separado",
"commandRequired": "command_argv é obrigatório (lista não vazia)",
"commandList": "command_argv deve ser uma lista não vazia de cadeias de texto",
"commandCount": "command_argv aceita no máximo {max} entradas",
"commandEntry": "command_argv[{index}] deve ser uma cadeia de texto não vazia",
"commandEntryLength": "command_argv[{index}] excede {max} caracteres",
"commandEntryControl": "command_argv[{index}] contém um carácter de controlo proibido",
"binaryArgsList": "binary_args deve ser uma lista de cadeias de texto",
"binaryArgsCount": "binary_args aceita no máximo {max} entradas",
"binaryArgEntry": "binary_args[{index}] deve ser uma cadeia de texto não vazia",
"binaryArgLength": "binary_args[{index}] excede {max} caracteres",
"binaryArgControl": "binary_args[{index}] contém um carácter de controlo proibido",
"portsList": "ports deve ser uma lista de {port, description, scheme}",
"portObject": "ports[{index}] deve ser um objeto",
"portRequired": "ports[{index}].port é obrigatório",
"portInteger": "ports[{index}].port deve ser um número inteiro",
"portRange": "ports[{index}].port deve estar entre 1 e 65535",
"portDuplicate": "a porta {port} aparece mais de uma vez para esta aplicação",
"portDescription": "ports[{index}].description tem caracteres inválidos",
"portScheme": "ports[{index}].scheme deve ser 'http' ou 'https'",
"portPath": "ports[{index}].web_path deve ser um caminho de URL válido (máx. 255 caracteres)",
"portLogo": "ports[{index}].logo_url deve ser um URL http(s) (máx. 512 caracteres)",
"portCategory": "ports[{index}].category tem caracteres inválidos ou é demasiado longo",
"portCustomUrl": "ports[{index}].custom_url deve ser um URL http(s) (máx. 512 caracteres)",
"tagRegexLength": "tag_regex excede 512 caracteres",
"persistPermission": "não foi possível guardar o sidecar (permissões?)",
"persist": "não foi possível guardar o sidecar",
"noApps": "nenhuma aplicação registada para este vmid",
"appMissing": "app_id '{appId}' não encontrado",
"appNotFound": "aplicação não encontrada"
}
},
"statusFilter": {
"ariaLabel": "Filtrar máquinas virtuais e contêineres",
@@ -2294,6 +2417,42 @@
"updateManyDescription": "Executando novamente as funções pós-instalação {count} em sequência.",
"legacySourceTitle": "Otimização legada – clique para ver a fonte",
"sourceTitle": "Clique para visualizar o código fonte",
"sourceDialogTitle": "Código-fonte: {name}",
"sourceLoading": "A carregar o código-fonte…",
"sourceUnavailable": "O código-fonte não está disponível.",
"sourceLoadFailed": "Não foi possível carregar o código-fonte. Tente novamente.",
"sourceFunctionMissing": "A função não foi encontrada nos scripts disponíveis.",
"sourceUnknownTool": "Ferramenta desconhecida: {tool}",
"sourceNoMapping": "Nenhuma função está atribuída à ferramenta {tool}.",
"sourceToolNames": {
"subscription_banner": "Remoção do banner de subscrição",
"time_sync": "Sincronização da hora",
"apt_languages": "Omitir idiomas do APT",
"journald": "Otimização do journald",
"logrotate": "Otimização do logrotate",
"system_limits": "Aumento dos limites do sistema",
"memory_settings": "Otimização das definições de memória",
"zram_swap": "Perfil de swap ZRAM",
"kernel_panic": "Configuração de kernel panic",
"apt_ipv4": "Forçar IPv4 no APT",
"kexec": "kexec para reinícios rápidos",
"rpc": "Desativar RPC / rpcbind",
"motd": "Banner MOTD personalizado",
"system_utils": "Utilitários do sistema",
"network_optimization": "Otimizações de rede",
"bashrc_custom": "Personalização do bashrc",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (proteção do SSD)",
"zfs_autotrim": "ZFS Autotrim",
"amd_fixes": "Correções para CPU AMD (Ryzen/EPYC)",
"persistent_network": "Definir interfaces de rede persistentes",
"vfio_iommu": "Passthrough VFIO/IOMMU",
"lvm_repair": "Reparação de cabeçalhos LVM PV",
"repo_cleanup": "Limpeza de repositórios",
"proxmox_repos": "Repositórios APT do Proxmox",
"entropy": "Geração de entropia (haveged)"
},
"legacy": "legado",
"updateToolTitle": "Atualizar {name} para v{version}",
"availableUpdates": "Atualizações disponíveis",
@@ -4822,122 +4981,122 @@
"useDefault": "Use o padrão Proxmox (nenhuma política neste armazenamento)"
},
"apiErrors": {
"requestFailed": "a solicitação falhou.",
"requestFailed": "O pedido falhou.",
"absolutePath": "o caminho deve ser absoluto",
"pathConfigured": "este caminho já está configurado",
"pathRequired": "o caminho é obrigatório",
"pathQuery": "o parâmetro de consulta de caminho é obrigatório",
"pathQuery": "o parâmetro de consulta path é obrigatório",
"pathNotFound": "caminho não encontrado",
"invalidJobId": "ID de trabalho inválido",
"jobNotFound": "trabalho não encontrado",
"runnerMissing": "script do executor não instalado",
"noRestore": "nenhum estado de restauração para descartar",
"invalidFile": "nome de arquivo inválido",
"runnerMissing": "o script de execução não está instalado",
"noRestore": "nenhum estado de restauro para descartar",
"invalidFile": "nome de ficheiro inválido",
"notFound": "não encontrado",
"logOutside": "caminho de log fora do diretório permitido",
"targetsList": "Texto técnico da UI para um painel de gerenciamento do Proxmox.Traduza: os alvos devem ser uma lista",
"logOutside": "caminho do registo fora do diretório permitido",
"targetsList": "targets deve ser uma lista",
"emptyExpression": "expressão vazia",
"invalidId": "id inválido (use letras, dígitos, _ ou -)",
"backend": "backend deve ser pbs, local ou borg",
"remoteBackend": "backend deve ser pbs ou borg",
"remoteBackendQuoted": "backend deve ser 'pbs' ou 'borg'",
"profileMode": "profile_mode deve ser padrão ou personalizado",
"borgAttached": "borg não pode ser anexado (PVE vzdump grava apenas em pbs/armazenamentos locais)",
"borgAttachedLong": "borg não é um back-end válido para trabalhos anexados (PVE vzdump grava apenas em pbs/armazenamentos locais)",
"parentRequired": "pve_parent_job_id e pve_storage são necessários para anexo",
"absolutePaths": "os caminhos devem ser uma lista de caminhos absolutos",
"invalidId": "ID inválido (utilize letras, dígitos, _ ou -)",
"backend": "o backend deve ser pbs, local ou borg",
"remoteBackend": "o backend deve ser pbs ou borg",
"remoteBackendQuoted": "o backend deve ser 'pbs' ou 'borg'",
"profileMode": "profile_mode deve ser default ou custom",
"borgAttached": "o borg não pode ser anexado (o vzdump do PVE só escreve em armazenamentos pbs/local)",
"borgAttachedLong": "o borg não é um backend válido para trabalhos anexados (o vzdump do PVE só escreve em armazenamentos pbs/local)",
"parentRequired": "pve_parent_job_id e pve_storage são obrigatórios para attached",
"absolutePaths": "paths deve ser uma lista de caminhos absolutos",
"customPath": "o perfil personalizado precisa de pelo menos um caminho",
"defaultPaths": "não foi possível resolver os caminhos de perfil padrão",
"retentionObject": "Texto técnico da UI para um painel de gerenciamento do Proxmox.Traduza: a retenção deve ser um objeto",
"defaultPaths": "não foi possível resolver os caminhos do perfil predefinido",
"retentionObject": "retention deve ser um objeto",
"pbsRepository": "pbs_repository é obrigatório",
"pbsEncryption": "pbs_encrypt_mode deve ser 'nenhum', 'novo' ou 'existente'",
"pbsKeyFailed": "falha ao criar o arquivo-chave de criptografia PBS",
"pbsClientMissing": "falha ao criar o arquivo-chave de criptografia PBS (o proxmox-backup-client está instalado?)",
"pbsEncryption": "pbs_encrypt_mode deve ser 'none', 'new' ou 'existing'",
"pbsKeyFailed": "falha ao criar o ficheiro de chave de encriptação do PBS",
"pbsClientMissing": "falha ao criar o ficheiro de chave de encriptação do PBS (o proxmox-backup-client está instalado?)",
"borgRepository": "borg_repo é obrigatório",
"borgEncryption": "borg_encrypt_mode deve ser um dos seguintes: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode deve ser um dos seguintes: none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase é necessário quando a criptografia está habilitada (salve-a no destino ou passe uma na solicitação)",
"passphrase": "a senha é necessária quando a criptografia está habilitada",
"password": "a senha é obrigatória",
"deviceConfirmation": "confirm_device deve corresponder exatamente ao dispositivo (erro de digitação/verificação de segurança)",
"borgEncryption": "borg_encrypt_mode deve ser um de: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode deve ser um de: none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase é obrigatório quando a encriptação está ativada (guarde-o no destino ou indique um no pedido)",
"passphrase": "a frase-passe é obrigatória quando a encriptação está ativada",
"password": "a palavra-passe é obrigatória",
"deviceConfirmation": "confirm_device deve corresponder exatamente ao dispositivo (verificação de gralhas / segurança)",
"invalidDevice": "caminho de dispositivo inválido",
"absoluteMountpoint": "ponto de montagem absoluto necessário",
"archiveLayout": "layout de arquivo não reconhecido — nenhum rootfs/ encontrado",
"absoluteMountpoint": "é necessário um ponto de montagem absoluto",
"archiveLayout": "estrutura do arquivo não reconhecida — não foi encontrado rootfs/",
"archiveMissing": "arquivo não encontrado",
"archiveNotFile": "o caminho do arquivo não é um arquivo normal",
"archiveNotFile": "o caminho do arquivo não é um ficheiro normal",
"invalidName": "nome inválido",
"invalidStaging": "staging_path inválido",
"jobRename": "o nome do trabalho não pode ser alterado (excluir + recriar para renomear)",
"jobRename": "o nome do trabalho não pode ser alterado (elimine e volte a criar para mudar o nome)",
"absoluteKey": "key_path deve ser absoluto",
"mode": "o modo deve ser \"local\" ou \"ssh\"",
"mode": "mode deve ser \"local\" ou \"ssh\"",
"nameRequired": "o nome é obrigatório (letras, dígitos, _ ou -)",
"noLog": "nenhum registro disponível para este trabalho ainda",
"noPbsConfig": "nenhum arquivo de configuração manual do PBS",
"outputMissing": "arquivo de saída ausente",
"parserJson": "a saída do analisador não era JSON válido",
"restoreJson": "a saída run_restore não era JSON válida",
"noLog": "ainda não há registo disponível para este trabalho",
"noPbsConfig": "não existe ficheiro de configurações PBS manuais",
"outputMissing": "ficheiro de saída em falta",
"parserJson": "a saída do parser não era JSON válido",
"restoreJson": "a saída de run_restore não era JSON válido",
"repoRequired": "repo é obrigatório",
"repoSnapshot": "repo_name e snapshot são obrigatórios",
"borgRepoSnapshot": "repo_name e snapshot são necessários para borg",
"pbsRepoSnapshot": "repo_name e snapshot são necessários para pbs",
"borgRepoSnapshot": "repo_name e snapshot são obrigatórios para borg",
"pbsRepoSnapshot": "repo_name e snapshot são obrigatórios para pbs",
"repoName": "repo_name é obrigatório",
"restoreMissing": "ferramentas de restauração não instaladas neste host",
"serverDatastore": "servidor e armazenamento de dados são necessários",
"snapshotRequired": "o instantâneo é obrigatório",
"source": "a fonte deve ser pbs, borg ou local",
"restoreMissing": "as ferramentas de restauro não estão instaladas neste host",
"serverDatastore": "server e datastore são obrigatórios",
"snapshotRequired": "snapshot é obrigatório",
"source": "source deve ser pbs, borg ou local",
"sshPort": "ssh_port deve ser um número inteiro entre 1 e 65535",
"sshRequired": "ssh_user, ssh_host e ssh_remote_path são necessários para o modo ssh",
"sshRequired": "ssh_user, ssh_host e ssh_remote_path são obrigatórios para o modo ssh",
"repositoryPath": "o destino não tem caminho de repositório",
"taskExpired": "tarefa não encontrada ou expirada",
"invalidExpression": "expressão inválida",
"noReport": "nenhum relatório emitido",
"parseManifestFailed": "parse_manifest saiu diferente de zero",
"parseManifestFailed": "parse_manifest terminou com um código diferente de zero",
"jobExists": "o trabalho já existe: {value}",
"pathMissing": "o caminho não existe neste host: {value}",
"deviceMissing": "dispositivo não existe: {value}",
"deviceMissing": "o dispositivo não existe: {value}",
"mountpoint": "não é um ponto de montagem: {value}",
"localArchiveMissing": "arquivo local não encontrado: {value}",
"borgDestination": "Destino Borg '{value}' não encontrado",
"pbsDestination": "destino PBS '{value}' não encontrado",
"pbsPassword": "nenhuma senha disponível para o repositório PBS '{value}'",
"borgRepoMissing": "repositório Borg \"{value}\" não configurado",
"pbsRepoMissing": "repositório PBS \"{value}\" não configurado",
"borgTargetMissing": "alvo Borg não encontrado: {value}",
"pbsTargetMissing": "repositório PBS não encontrado: {value}",
"pveJobMissing": "Trabalho PVE vzdump não encontrado: {value}",
"statePersist": "não é possível persistir no estado: {value}",
"pbsDestination": "Destino PBS '{value}' não encontrado",
"pbsPassword": "nenhuma palavra-passe disponível para o repositório PBS '{value}'",
"borgRepoMissing": "Repositório Borg \"{value}\" não configurado",
"pbsRepoMissing": "Repositório PBS \"{value}\" não configurado",
"borgTargetMissing": "Destino Borg não encontrado: {value}",
"pbsTargetMissing": "Repositório PBS não encontrado: {value}",
"pveJobMissing": "Trabalho vzdump do PVE não encontrado: {value}",
"statePersist": "não é possível guardar o estado: {value}",
"sshDirectory": "não é possível preparar o diretório ssh: {value}",
"logRead": "não é possível ler o log: {value}",
"envUpdate": "não foi possível atualizar .env: {value}",
"pbsConfigWrite": "falha ao persistir a configuração do PBS: {value}",
"persist": "falha ao persistir: {value}",
"archiveRemove": "falha ao remover arquivo: {value}",
"logRead": "não é possível ler o registo: {value}",
"envUpdate": "não foi possível atualizar o .env: {value}",
"pbsConfigWrite": "falha ao guardar a configuração PBS: {value}",
"persist": "falha ao guardar: {value}",
"archiveRemove": "falha ao eliminar o arquivo: {value}",
"start": "falha ao iniciar: {value}",
"borgTargetsUpdate": "falha ao atualizar borg-targets.txt: {value}",
"pbsTargetsUpdate": "falha ao atualizar pbs-manual-configs.txt: {value}",
"unitsUpdate": "falha ao atualizar unidades systemd: {value}",
"unitsUpdate": "falha ao atualizar as unidades systemd: {value}",
"borgTargetsWrite": "falha ao escrever borg-targets.txt: {value}",
"jobWrite": "falha ao gravar arquivos de trabalho: {value}",
"localTargetWrite": "falha ao gravar local-target.conf: {value}",
"unitsWrite": "falha ao gravar unidades do systemd: {value}",
"format": "Texto técnico da UI para um painel de gerenciamento do Proxmox.Tradução: falha na formatação: {value}",
"jobWrite": "falha ao escrever os ficheiros do trabalho: {value}",
"localTargetWrite": "falha ao escrever local-target.conf: {value}",
"unitsWrite": "falha ao escrever as unidades systemd: {value}",
"format": "a formatação falhou: {value}",
"calendar": "on_calendar inválido: {value}",
"mount": "falha na montagem: {value}",
"parserInvocation": "falha na invocação do analisador: {value}",
"preflightInvocation": "falha na chamada de simulação: {value}",
"publicKeyMissing": "chave pública não encontrada após geração: {value}",
"retentionInteger": "retenção.{value} deve ser um número inteiro",
"retentionNegative": "retenção.{value} deve ser não negativo",
"mount": "a montagem falhou: {value}",
"parserInvocation": "a invocação do parser falhou: {value}",
"preflightInvocation": "a invocação da verificação prévia falhou: {value}",
"publicKeyMissing": "chave pública não encontrada após a geração: {value}",
"retentionInteger": "retention.{value} deve ser um número inteiro",
"retentionNegative": "retention.{value} não pode ser negativo",
"keygen": "ssh-keygen falhou: {value}",
"systemctl": "systemctl falhou: {value}",
"unmount": "falha na quantidade: {value}",
"unmount": "umount falhou: {value}",
"taskIncomplete": "a tarefa está no estado \"{value}\", não concluída",
"unknownKind": "tipo desconhecido: {value}",
"unknownMode": "modo desconhecido \"{value}\"",
"defaultRemove": "{value} é o padrão integrado e não pode ser removido",
"defaultAdd": "{value} é o padrão integrado;não há necessidade de adicioná-lo",
"keyImport": "Nenhum arquivo-chave PBS está instalado em {value}.Importe o arquivo-chave primeiro.",
"storageMismatch": "incompatibilidade de armazenamento de trabalho PVE (o trabalho usa {value}, a carga diz {other})"
"defaultRemove": "{value} é a predefinição integrada e não pode ser eliminado",
"defaultAdd": "{value} é a predefinição integrada; não é necessário adicioná-lo",
"keyImport": "Não existe nenhum ficheiro de chave PBS instalado em {value}. Importe primeiro o ficheiro de chave.",
"storageMismatch": "O armazenamento do trabalho do PVE não corresponde (o trabalho utiliza {value}, o payload indica {other})"
}
},
"healthStatus": {
@@ -5438,6 +5597,7 @@
"websocketError": "Ocorreu um erro de WebSocket",
"connectionClosed": "Conexão fechada",
"completedSuccessfully": "Script concluído com sucesso",
"cancelled": "Operação cancelada.",
"completedWithError": "Script concluído com código de erro {code}",
"yes": "Sim",
"yourInput": "Sua entrada:",
@@ -7429,7 +7589,7 @@
"signInWith": "Iniciar sessão com",
"methodPassword": "Utilizador e palavra-passe",
"methodToken": "Token API",
"username": "Utilizador (utilizador@realm)",
"username": "Utilizador",
"password": "Palavra-passe",
"passwordHelp": "A palavra-passe é usada uma única vez para criar um token API só de leitura (função Audit) para este Monitor. Só esse token é guardado, nunca a palavra-passe. Ative primeiro a autenticação do Monitor.",
"cancel": "Cancelar",
@@ -7442,10 +7602,10 @@
"editConnection": "Ligação a editar",
"add": "Adicionar uma nova ligação",
"name": "Nome",
"url": "URL HTTPS (inclua :8007 para a porta nativa do PBS)",
"token_id": "ID do token API (user@realm!token)",
"token_secret": "Segredo do token API (deixe vazio para manter o segredo guardado)",
"fingerprint": "Impressão digital SHA256 do certificado (opcional)",
"url": "Endereço HTTPS",
"token_id": "ID do token API",
"token_secret": "Segredo do token API",
"fingerprint": "Impressão digital SHA256 (opcional)",
"tlsHelp": "Deixe a impressão digital vazia para a verificação normal da autoridade de certificação e do nome de anfitrião. Para um certificado autoassinado, copie a sua impressão digital SHA256 da consola PBS ou de outro canal de confiança. A impressão digital é verificada antes do envio de credenciais.",
"saved": "Ligação PBS verificada e guardada.",
"saveFailed": "Não foi possível guardar a ligação PBS.",
@@ -7489,48 +7649,48 @@
"duration": "Duração",
"noJobs": "nenhuma programação de sincronização, verificação ou remoção está configurada.",
"errors": {
"configRead": "Não foi possível ler as conexões PBS salvas.Verifique o arquivo de configuração e as permissões.",
"invalidConfig": "As configurações de conexão PBS não são válidas.Verifique o formulário e tente novamente.",
"invalidField": "Um campo de conexão não é válido ou é muito longo.",
"invalidUrl": "Use um endereço HTTPS PBS sem credenciais incorporadas, parâmetros de consulta ou fragmento.",
"nameRequired": "Insira um nome de servidor com no máximo 128 caracteres.",
"tokenIdFormat": "Insira o ID do token da API PBS no formato user@realm!token.",
"tokenSecret": "insira um segredo de token de API válido sem espaços ou caracteres de controle.",
"invalidTokenId": "O ID do token API deve conter apenas caracteres ASCII.",
"invalidFingerprint": "Insira a impressão digital SHA256 do certificado: 64 caracteres hexadecimais, opcionalmente separados por dois pontos.",
"fingerprintMismatch": "O certificado PBS não corresponde à impressão digital.Nenhuma credencial foi enviada.",
"tokenRejected": "o PBS rejeitou o token da API ou suas permissões.Verifique as ACLs do usuário e do token.",
"invalidResponse": "PBS retornou uma resposta inesperada.Redirecionamentos não são seguidos.",
"invalidJson": "PBS retornou um documento JSON inválido.",
"connectFailed": "não foi possível conectar-se ao PBS por meio de HTTPS verificado.Verifique o endereço, certificado e serviço.",
"invalidId": "O ID de conexão PBS não é válido.Recarregue a lista de conexões.",
"invalidDatastores": "PBS retornou uma lista de armazenamento de dados inválida.",
"connectionLimit": "No máximo conexões {count} PBS podem ser configuradas.",
"username": "Insira o usuário PBS no formato user@realm, por exemplo root@pam.",
"password": "Digite a senha do usuário PBS.",
"loginRejected": "PBS rejeitou o nome de usuário ou senha.",
"invalidLogin": "o PBS retornou uma resposta de login inválida.",
"tokenCreateDenied": "Este usuário PBS não pode criar tokens de API.",
"invalidToken": "PBS retornou um token de API inválido.",
"auditRoleDenied": "Este usuário do PBS não pode conceder a função de Auditoria.Faça login como root@pam ou outro administrador.",
"notFound": "A conexão PBS não foi encontrada.Recarregue a lista de conexões.",
"readFailed": "Não foi possível ler os dados do PBS.Verifique seu serviço e permissões.",
"invalidList": "o PBS retornou uma lista de dados inválida.",
"localUnavailable": "PBS não está disponível neste host.",
"authRequired": "Habilite a autenticação local no Monitor antes de gerenciar conexões PBS remotas.",
"datastoreOffline": "O armazenamento de dados está offline, em modo de manutenção ou seu dispositivo auxiliar não está montado.",
"datastoreUnavailable": "O sistema de arquivos do armazenamento de dados não está disponível."
"configRead": "Não foi possível ler as ligações PBS guardadas. Verifique o ficheiro de configuração e as permissões.",
"invalidConfig": "As definições da ligação PBS não são válidas. Verifique o formulário e tente novamente.",
"invalidField": "Um campo da ligação não é válido ou é demasiado longo.",
"invalidUrl": "Utilize um endereço PBS HTTPS sem credenciais incorporadas, parâmetros de consulta nem fragmento.",
"nameRequired": "Introduza um nome de servidor com 128 caracteres no máximo.",
"tokenIdFormat": "Introduza o ID do token API do PBS no formato utilizador@realm!token.",
"tokenSecret": "Introduza um segredo de token API válido, sem espaços nem caracteres de controlo.",
"invalidTokenId": "O ID do token API só pode conter caracteres ASCII.",
"invalidFingerprint": "Introduza a impressão digital SHA256 do certificado: 64 caracteres hexadecimais, opcionalmente separados por dois pontos.",
"fingerprintMismatch": "O certificado do PBS não corresponde à impressão digital. Não foram enviadas credenciais.",
"tokenRejected": "O PBS rejeitou o token API ou as suas permissões. Verifique as ACL do utilizador e do token.",
"invalidResponse": "O PBS devolveu uma resposta inesperada. Os redirecionamentos não são seguidos.",
"invalidJson": "O PBS devolveu um documento JSON inválido.",
"connectFailed": "Não foi possível ligar ao PBS através de HTTPS verificado. Verifique o endereço, o certificado e o serviço.",
"invalidId": "O ID da ligação PBS não é válido. Recarregue a lista de ligações.",
"invalidDatastores": "O PBS devolveu uma lista de armazenamentos de dados inválida.",
"connectionLimit": "Podem ser configuradas no máximo {count} ligações PBS.",
"username": "Introduza o utilizador do PBS no formato utilizador@realm, por exemplo root@pam.",
"password": "Introduza a palavra-passe do utilizador do PBS.",
"loginRejected": "O PBS rejeitou o nome de utilizador ou a palavra-passe.",
"invalidLogin": "O PBS devolveu uma resposta de início de sessão inválida.",
"tokenCreateDenied": "Este utilizador do PBS não pode criar tokens API.",
"invalidToken": "O PBS devolveu um token API inválido.",
"auditRoleDenied": "Este utilizador do PBS não pode conceder a função Audit. Inicie sessão como root@pam ou outro administrador.",
"notFound": "A ligação PBS não foi encontrada. Recarregue a lista de ligações.",
"readFailed": "Não foi possível ler os dados do PBS. Verifique o seu serviço e as permissões.",
"invalidList": "O PBS devolveu uma lista de dados inválida.",
"localUnavailable": "O PBS não está disponível neste host.",
"authRequired": "Ative a autenticação local no Monitor antes de gerir ligações PBS remotas.",
"datastoreOffline": "O armazenamento de dados está offline, em modo de manutenção ou o seu dispositivo de suporte não está montado.",
"datastoreUnavailable": "O sistema de ficheiros do armazenamento de dados não está disponível."
},
"taskTypes": {
"backup": "Backup",
"restore": "Restaurar",
"restore": "Restauro",
"verify": "Verificação",
"verifyGroup": "verificação de grupo de backup",
"verifySnapshot": "verificação de instantâneo",
"prune": "Prune",
"garbageCollection": "Coleta de lixo",
"verifyGroup": "Verificação do grupo de backups",
"verifySnapshot": "Verificação do snapshot",
"prune": "Limpeza (prune)",
"garbageCollection": "Recolha de lixo",
"sync": "Sincronização",
"updateCheck": "verifique se há atualizações",
"updateCheck": "Procurar atualizações",
"terminal": "Terminal",
"createDatastore": "Criar armazenamento de dados",
"other": "Outra tarefa ({type})"
@@ -7545,9 +7705,9 @@
"serviceStates": {
"active": "Ativo",
"inactive": "Inativo",
"failed": "falhou",
"activating": "começando",
"deactivating": "Parando",
"failed": "Com falha",
"activating": "A iniciar",
"deactivating": "A parar",
"unknown": "Desconhecido"
},
"durationUnits": {
@@ -7556,16 +7716,16 @@
"hours": "{count} h",
"days": "{count} d"
},
"urlHelp": "inclua :8007 para a porta PBS padrão, por exemplo https://pbs.example:8007.",
"usernameHelp": "Use user@realm, por exemplo root@pam.",
"tokenIdHelp": "Use user@realm!token, por exemplo monitor@pbs!proxmenux.",
"tokenSecretHelp": "insira o segredo deste token de API.",
"tokenSecretKeepHelp": "Deixe em branco para manter o token salvo em segredo.",
"removeFailed": "Não foi possível remover a conexão PBS.",
"savedRefreshFailed": "A conexão PBS foi salva, mas a lista de conexões não pôde ser atualizada.Atualize a página antes de tentar outra alteração.",
"removedRefreshFailed": "A conexão PBS foi removida, mas a lista de conexões não pôde ser atualizada.Recarregue a página.",
"urlHelp": "Inclua :8007 para a porta predefinida do PBS, por exemplo https://pbs.example:8007.",
"usernameHelp": "Utilize utilizador@realm, por exemplo root@pam.",
"tokenIdHelp": "Utilize utilizador@realm!token, por exemplo monitor@pbs!proxmenux.",
"tokenSecretHelp": "Introduza o segredo deste token API.",
"tokenSecretKeepHelp": "Deixe vazio para manter o segredo do token guardado.",
"removeFailed": "Não foi possível eliminar a ligação PBS.",
"savedRefreshFailed": "A ligação PBS foi guardada, mas não foi possível atualizar a lista de ligações. Recarregue a página antes de tentar outra alteração.",
"removedRefreshFailed": "A ligação PBS foi eliminada, mas não foi possível atualizar a lista de ligações. Recarregue a página.",
"technicalDetails": "Detalhes técnicos",
"datastoreType": "armazenamento de dados"
"datastoreType": "Armazenamento de dados"
},
"monitorLinks": {
"groups": {
@@ -7606,15 +7766,15 @@
"changeAddress": "Alterar endereço",
"cancel": "Cancelar",
"errors": {
"addressRequired": "Digite o endereço do Monitor.",
"invalidAddress": "O endereço deve começar com http:// ou https:// e nomear um host.",
"addressCredentials": "O endereço não deve conter usuário ou senha.",
"addressRequired": "Introduza o endereço do Monitor.",
"invalidAddress": "O endereço deve começar por http:// ou https:// e indicar um host.",
"addressCredentials": "O endereço não pode conter um utilizador nem uma palavra-passe.",
"invalidPort": "A porta do endereço não é válida.",
"invalidRequest": "A solicitação não é válida.Atualize a página e tente novamente.",
"limit": "No máximo nós {count} podem ser adicionados.",
"invalidRequest": "O pedido não é válido. Recarregue a página e tente novamente.",
"limit": "Podem ser adicionados no máximo {count} nós.",
"duplicate": "Este endereço já está na lista.",
"notFound": "O nó não foi encontrado. Recarregue a lista e tente novamente.",
"detectedRemove": "Somente nós adicionados manualmente podem ser removidos.Os nós detectados podem ser ocultados."
"detectedRemove": "Só podem ser eliminados os nós adicionados manualmente. Os nós detetados podem ser ocultados."
}
}
}
+287 -127
View File
@@ -1231,7 +1231,9 @@
"update": "Uppdatera",
"modify": "Ändra",
"recover": "Återställ",
"registerRestored": "Registrera igen",
"terminalTitleUpdate": "Uppdatera OCI-applikation",
"terminalTitleRecoverPrevious": "Återställ den tidigare OCI-installationen",
"terminalTitleModify": "Ändra OCI-applikation",
"terminalTitleRecover": "Återställ återställd OCI-applikation",
"terminalDescription": "Samma process körs som i ProxMenux-menyn: OCI manager Apps → Hantera installerade OCI-applikationer.",
@@ -1760,7 +1762,128 @@
"dockerEvidenceImage": "Avbild",
"dockerEvidencePort": "Publicerad TCP-port",
"dockerEvidenceProject": "Compose-projekt",
"dockerEndpointReview": "Container med publicerade TCP-portar. Bekräfta namnet och webbadressen innan du sparar. Registreringen konfigurerar inga uppdateringar."
"dockerEndpointReview": "Container med publicerade TCP-portar. Bekräfta namnet och webbadressen innan du sparar. Registreringen konfigurerar inga uppdateringar.",
"confirmRemove": "Ta bort applikationens post från fliken App? Detta avinstallerar inte applikationen.",
"packageExample": "t.ex. {package}",
"packageHelpBefore": "Fylls i automatiskt från Namn. Kontrollera med",
"packageHelpAfter": "i CT:n.",
"binaryHelpBefore": "Absolut sökväg. Hitta den med",
"binaryHelpOr": "eller",
"errors": {
"ociBusy": "en OCI-åtgärd pågår på den här containern",
"dpkgMissing": "{package} är inte installerat via dpkg",
"dpkgFailed": "dpkg-query misslyckades",
"dpkgNoVersion": "ingen version matchade i utdata från dpkg",
"apkFailed": "apk info misslyckades",
"apkNoVersion": "ingen version matchade i utdata från apk",
"fileRead": "kunde inte läsa {path}",
"fileNoMatch": "file_regex matchade inte {path}",
"binaryFailed": "anropet av binärfilen misslyckades",
"binaryNoVersion": "ingen version matchade i utdata från binärfilen",
"pythonFailed": "python -c importlib.metadata misslyckades",
"pythonNoVersion": "ingen version matchade i utdata från Python-distributionen",
"dockerImageResolve": "kunde inte lösa containerns installerade avbild",
"dockerInspectFailed": "docker inspect misslyckades",
"dockerLabelMissing": "containern saknar etiketten {label}",
"dockerLabelMutable": "docker-etiketten rapporterar {tag} (föränderlig tagg, inte en version)",
"dockerLabelNoVersion": "ingen version matchade i utdata från docker-etiketten",
"dockerExecFailed": "docker exec misslyckades",
"dockerExecNoVersion": "ingen version matchade i utdata från docker exec",
"commandEmpty": "command_argv är tom",
"commandFailed": "kommandot misslyckades",
"commandNoVersion": "ingen version matchade i kommandots utdata",
"unsupportedMethod": "metod som inte stöds: {method}",
"unknownUpstream": "okänd upstream_type: {type}",
"githubNotFound": "{repo}: hittades inte",
"githubRejected": "github avvisade förfrågan (403)",
"githubError": "github-fel {code}",
"noRelease": "inget tagg- eller releasenamn i svaret",
"tagNoMatch": "tag_regex matchade inte '{tag}'",
"httpError": "http-fel {code}",
"invalidJson": "ogiltigt JSON-svar: {detail}",
"jsonPathUnresolved": "json_path '{path}' kunde inte lösas",
"jsonEmpty": "tomt värde vid json_path",
"dockerNoTags": "inga taggar matchade (docker_hub)",
"dockerMovingOnly": "tag_regex matchade bara rörliga taggar; använd spårning av Docker-avbildens digest",
"dockerHubError": "docker hub-fel {code}",
"dockerHubJson": "ogiltig JSON från docker hub: {detail}",
"dockerHubEmpty": "docker hub returnerade inga taggar",
"payload": "payload måste vara ett JSON-objekt",
"name": "name krävs och måste vara 1–64 tecken av bokstäver/siffror/mellanslag/._+-()/",
"method": "installed_via måste vara en av: {values} eller tom",
"package": "package krävs (bokstäver/siffror/._+@:/ upp till 127 tecken)",
"filePath": "file_path krävs och måste vara en absolut sökväg",
"fileRegex": "file_regex krävs",
"fileRegexInvalid": "file_regex är inte ett giltigt reguljärt uttryck: {detail}",
"binaryPath": "binary_path krävs och måste vara en absolut sökväg",
"pythonPath": "python_path krävs och måste vara en absolut sökväg",
"distribution": "distribution krävs (namn enligt PEP 503)",
"container": "container_name krävs (Dockers namngivningsregler)",
"label": "label krävs (namngivningsregler för OCI-etiketter)",
"dockerBinary": "binary_path krävs (absolut sökväg eller enbart kommando)",
"manualVersion": "installed_version krävs för den manuella metoden",
"versionLength": "installed_version överskrider {max} tecken",
"versionControl": "installed_version innehåller ett otillåtet kontrolltecken",
"installedRegexInvalid": "installed_regex är inte ett giltigt reguljärt uttryck: {detail}",
"upstreamType": "upstream_type måste vara en av: {values}",
"tagRegexInvalid": "tag_regex är inte ett giltigt reguljärt uttryck: {detail}",
"repoRequired": "repo krävs för upstream_type=github",
"repoFormat": "repo måste vara 'owner/name'",
"githubSource": "github_source måste vara en av: {values}",
"upstreamUrlRequired": "upstream_url krävs för upstream_type=http_json",
"upstreamUrl": "upstream_url måste vara en http(s)-URL",
"upstreamUrlLength": "upstream_url överskrider {max} tecken",
"jsonPathRequired": "upstream_json_path krävs för upstream_type=http_json",
"jsonPathLength": "upstream_json_path överskrider {max} tecken",
"jsonPathCharacters": "upstream_json_path använder otillåtna tecken",
"dockerImageRequired": "docker_image krävs för upstream_type=docker_hub",
"dockerImageLength": "docker_image överskrider {max} tecken",
"dockerImageFormat": "docker_image måste följa Docker Hubs namngivning (owner/name eller name)",
"healthPath": "health_path måste vara en giltig URL-sökväg (högst 255 tecken)",
"logoUrl": "logo_url måste vara en http(s)-URL eller den här VM:ens lokalt cachade ikon",
"discoveryId": "ogiltigt discovery_id",
"helperSlug": "helper_slug måste vara en slug med gemener (bokstäver/siffror/._-)",
"updateVia": "update_via accepterar bara 'docker'",
"dockerDetector": "update_via=docker kräver en detektor av typen docker_label eller docker_exec",
"dockerConflict": "update_via=docker kan inte kombineras med {field}",
"updateCommandType": "update_command måste vara en sträng",
"updateCommandLength": "update_command överskrider {max} tecken",
"updateCommandNull": "update_command innehåller en null-byte",
"updateMethod": "update_method måste vara none, helper eller custom",
"updateCommandRequired": "update_command krävs för update_method=custom",
"updateCommandOnlyCustom": "update_command tillåts bara för update_method=custom",
"helperRequired": "en helper_slug som stöds krävs för update_method=helper",
"dockerUpdater": "Docker-delegerade appar uppdateras via sin avbild, inte via en separat appuppdaterare",
"commandRequired": "command_argv krävs (lista som inte är tom)",
"commandList": "command_argv måste vara en lista med strängar som inte är tom",
"commandCount": "command_argv accepterar högst {max} poster",
"commandEntry": "command_argv[{index}] måste vara en sträng som inte är tom",
"commandEntryLength": "command_argv[{index}] överskrider {max} tecken",
"commandEntryControl": "command_argv[{index}] innehåller ett otillåtet kontrolltecken",
"binaryArgsList": "binary_args måste vara en lista med strängar",
"binaryArgsCount": "binary_args accepterar högst {max} poster",
"binaryArgEntry": "binary_args[{index}] måste vara en sträng som inte är tom",
"binaryArgLength": "binary_args[{index}] överskrider {max} tecken",
"binaryArgControl": "binary_args[{index}] innehåller ett otillåtet kontrolltecken",
"portsList": "ports måste vara en lista med {port, description, scheme}",
"portObject": "ports[{index}] måste vara ett objekt",
"portRequired": "ports[{index}].port krävs",
"portInteger": "ports[{index}].port måste vara ett heltal",
"portRange": "ports[{index}].port måste vara 1–65535",
"portDuplicate": "porten {port} förekommer mer än en gång för den här appen",
"portDescription": "ports[{index}].description innehåller ogiltiga tecken",
"portScheme": "ports[{index}].scheme måste vara 'http' eller 'https'",
"portPath": "ports[{index}].web_path måste vara en giltig URL-sökväg (högst 255 tecken)",
"portLogo": "ports[{index}].logo_url måste vara en http(s)-URL (högst 512 tecken)",
"portCategory": "ports[{index}].category innehåller ogiltiga tecken eller är för lång",
"portCustomUrl": "ports[{index}].custom_url måste vara en http(s)-URL (högst 512 tecken)",
"tagRegexLength": "tag_regex överskrider 512 tecken",
"persistPermission": "kunde inte spara sidecar-filen (behörighet?)",
"persist": "kunde inte spara sidecar-filen",
"noApps": "inga appar registrerade för detta vmid",
"appMissing": "app_id '{appId}' hittades inte",
"appNotFound": "appen hittades inte"
}
},
"statusFilter": {
"ariaLabel": "Filtrera virtuella maskiner och containrar",
@@ -2294,6 +2417,42 @@
"updateManyDescription": "Kör om {count} efterinstallationsfunktioner i följd.",
"legacySourceTitle": "Äldre optimering – klicka för att se källan",
"sourceTitle": "Klicka för att se källkoden",
"sourceDialogTitle": "Källkod: {name}",
"sourceLoading": "Läser in källkod…",
"sourceUnavailable": "Källkoden är inte tillgänglig.",
"sourceLoadFailed": "Det gick inte att läsa in källkoden. Försök igen.",
"sourceFunctionMissing": "Funktionen hittades inte i de tillgängliga skripten.",
"sourceUnknownTool": "Okänt verktyg: {tool}",
"sourceNoMapping": "Ingen funktion är kopplad till verktyget {tool}.",
"sourceToolNames": {
"subscription_banner": "Borttagning av prenumerationsbanner",
"time_sync": "Tidssynkronisering",
"apt_languages": "Hoppa över APT-språk",
"journald": "Optimering av journald",
"logrotate": "Optimering av logrotate",
"system_limits": "Höjda systemgränser",
"memory_settings": "Optimering av minnesinställningar",
"zram_swap": "ZRAM-swapprofil",
"kernel_panic": "Konfiguration av kernel panic",
"apt_ipv4": "Tvinga IPv4 för APT",
"kexec": "kexec för snabba omstarter",
"rpc": "Inaktivera RPC / rpcbind",
"motd": "Anpassad MOTD-banner",
"system_utils": "Systemverktyg",
"network_optimization": "Nätverksoptimeringar",
"bashrc_custom": "Anpassning av bashrc",
"figurine": "Figurine",
"fastfetch": "Fastfetch",
"log2ram": "Log2ram (SSD-skydd)",
"zfs_autotrim": "ZFS Autotrim",
"amd_fixes": "Korrigeringar för AMD CPU (Ryzen/EPYC)",
"persistent_network": "Beständiga namn på nätverksgränssnitt",
"vfio_iommu": "VFIO/IOMMU-passthrough",
"lvm_repair": "Reparation av LVM PV-huvuden",
"repo_cleanup": "Rensning av arkiv",
"proxmox_repos": "Proxmox APT-arkiv",
"entropy": "Entropigenerering (haveged)"
},
"legacy": "arv",
"updateToolTitle": "Uppdatera {name} till v{version}",
"availableUpdates": "Tillgängliga uppdateringar",
@@ -4822,122 +4981,122 @@
"useDefault": "Använd Proxmox-standard (ingen policy för denna lagring)"
},
"apiErrors": {
"requestFailed": "Begäran misslyckades.",
"requestFailed": "Förfrågan misslyckades.",
"absolutePath": "sökvägen måste vara absolut",
"pathConfigured": "den här sökvägen är redan konfigurerad",
"pathRequired": "sökväg krävs",
"pathQuery": "sökvägsfrågeparameter krävs",
"pathNotFound": "sökväg hittades inte",
"invalidJobId": "ogiltigt jobb-id",
"jobNotFound": "jobb hittades inte",
"runnerMissing": "löparskriptet är inte installerat",
"noRestore": "inget återställningstillstånd att avvisa",
"pathQuery": "frågeparametern path krävs",
"pathNotFound": "sökvägen hittades inte",
"invalidJobId": "ogiltigt jobb-ID",
"jobNotFound": "jobbet hittades inte",
"runnerMissing": "körskriptet är inte installerat",
"noRestore": "inget återställningstillstånd att avfärda",
"invalidFile": "ogiltigt filnamn",
"notFound": "hittades inte",
"logOutside": "loggsökväg utanför tillåten katalog",
"targetsList": "mål måste vara en lista",
"logOutside": "loggsökvägen ligger utanför den tillåtna katalogen",
"targetsList": "targets måste vara en lista",
"emptyExpression": "tomt uttryck",
"invalidId": "ogiltigt id (använd bokstäver, siffror, _ eller -)",
"backend": "backend måste vara pbs, lokal eller borg",
"invalidId": "ogiltigt ID (använd bokstäver, siffror, _ eller -)",
"backend": "backend måste vara pbs, local eller borg",
"remoteBackend": "backend måste vara pbs eller borg",
"remoteBackendQuoted": "backend måste vara 'pbs' eller 'borg'",
"profileMode": "profile_mode måste vara standard eller anpassat",
"borgAttached": "borg kan inte bifogas (PVE vzdump skriver bara till pbs/lokala lagringar)",
"borgAttachedLong": "borg är inte en giltig backend för bifogade jobb (PVE vzdump skriver bara till pbs/lokala lagringar)",
"parentRequired": "pve_parent_job_id och pve_storage krävs för bifogade",
"absolutePaths": "sökvägar måste vara en lista med absoluta sökvägar",
"customPath": "anpassad profil behöver minst en sökväg",
"profileMode": "profile_mode måste vara default eller custom",
"borgAttached": "borg kan inte kopplas (PVE vzdump skriver bara till pbs/local-lagringar)",
"borgAttachedLong": "borg är inte en giltig backend för kopplade jobb (PVE vzdump skriver bara till pbs/local-lagringar)",
"parentRequired": "pve_parent_job_id och pve_storage krävs för attached",
"absolutePaths": "paths måste vara en lista med absoluta sökvägar",
"customPath": "en anpassad profil behöver minst en sökväg",
"defaultPaths": "kunde inte lösa standardprofilens sökvägar",
"retentionObject": "retention måste vara ett objekt",
"pbsRepository": "pbs_repository krävs",
"pbsEncryption": "pbs_encrypt_mode måste vara 'ingen', 'ny' eller 'existerande'",
"pbsKeyFailed": "misslyckades med att skapa PBS-krypteringsnyckelfil",
"pbsClientMissing": "misslyckades med att skapa PBS-krypteringsnyckelfil (är proxmox-backup-client installerad?)",
"pbsEncryption": "pbs_encrypt_mode måste vara 'none', 'new' eller 'existing'",
"pbsKeyFailed": "det gick inte att skapa PBS-krypteringsnyckelfilen",
"pbsClientMissing": "det gick inte att skapa PBS-krypteringsnyckelfilen (är proxmox-backup-client installerat?)",
"borgRepository": "borg_repo krävs",
"borgEncryption": "borg_encrypt_mode måste vara en av: none, repokey, keyfile, authenticated",
"encryption": "encrypt_mode måste vara en av: none, repokey, keyfile, authenticated",
"borgPassphrase": "borg_passphrase krävs när kryptering är aktiverad (spara den på destinationen eller skicka en i begäran)",
"passphrase": "lösenordsfras krävs när kryptering är aktiverad",
"borgPassphrase": "borg_passphrase krävs när kryptering är aktiverad (spara den på destinationen eller skicka med en i förfrågan)",
"passphrase": "lösenfras krävs när kryptering är aktiverad",
"password": "lösenord krävs",
"deviceConfirmation": "confirm_device måste matcha enheten exakt (stavfel / säkerhetskontroll)",
"deviceConfirmation": "confirm_device måste exakt matcha device (skydd mot felskrivning)",
"invalidDevice": "ogiltig enhetssökväg",
"absoluteMountpoint": "absolut monteringspunkt krävs",
"archiveLayout": "arkivlayouten känns inte igen — inga rootfs/ hittades",
"absoluteMountpoint": "en absolut monteringspunkt krävs",
"archiveLayout": "arkivets struktur känns inte igen — ingen rootfs/ hittades",
"archiveMissing": "arkivet hittades inte",
"archiveNotFile": "arkivsökväg är inte en vanlig fil",
"archiveNotFile": "arkivsökvägen är inte en vanlig fil",
"invalidName": "ogiltigt namn",
"invalidStaging": "ogiltig staging_path",
"jobRename": "jobbnamnet kan inte ändras (radera + återskapa för att byta namn)",
"absoluteKey": "nyckelväg måste vara absolut",
"mode": "läget måste vara \"lokalt\" eller \"ssh\"",
"jobRename": "jobbets namn kan inte ändras (ta bort och skapa på nytt för att byta namn)",
"absoluteKey": "key_path måste vara absolut",
"mode": "mode måste vara \"local\" eller \"ssh\"",
"nameRequired": "namn krävs (bokstäver, siffror, _ eller -)",
"noLog": "ingen logg tillgänglig för det här jobbet ännu",
"noPbsConfig": "ingen manuell PBS-konfigurationsfil",
"outputMissing": "utdatafil saknas",
"parserJson": "parserutgången var inte giltig JSON",
"restoreJson": "run_restore-utgången var inte giltig JSON",
"noLog": "ingen logg finns ännu för det här jobbet",
"noPbsConfig": "ingen fil med manuella PBS-konfigurationer",
"outputMissing": "utdatafilen saknas",
"parserJson": "parserns utdata var inte giltig JSON",
"restoreJson": "utdata från run_restore var inte giltig JSON",
"repoRequired": "repo krävs",
"repoSnapshot": "repo_name och ögonblicksbild krävs",
"borgRepoSnapshot": "repo_name och ögonblicksbild krävs för borg",
"pbsRepoSnapshot": "repo_name och ögonblicksbild krävs för pbs",
"repoSnapshot": "repo_name och snapshot krävs",
"borgRepoSnapshot": "repo_name och snapshot krävs för borg",
"pbsRepoSnapshot": "repo_name och snapshot krävs för pbs",
"repoName": "repo_name krävs",
"restoreMissing": "återställningsverktyg är inte installerat på denna värd",
"serverDatastore": "server och datalagring krävs",
"snapshotRequired": "ögonblicksbild krävs",
"source": "källan måste vara pbs, borg eller lokal",
"restoreMissing": "återställningsverktygen är inte installerade på den här värden",
"serverDatastore": "server och datalager krävs",
"snapshotRequired": "snapshot krävs",
"source": "source måste vara pbs, borg eller local",
"sshPort": "ssh_port måste vara ett heltal mellan 1 och 65535",
"sshRequired": "ssh_user, ssh_host och ssh_remote_path krävs för ssh-läge",
"repositoryPath": "målet har ingen förvarssökväg",
"taskExpired": "uppgiften hittades inte eller har löpt ut",
"repositoryPath": "målet saknar arkivsökväg",
"taskExpired": "uppgiften hittades inte eller har gått ut",
"invalidExpression": "ogiltigt uttryck",
"noReport": "ingen rapport sänds ut",
"parseManifestFailed": "parse_manifest avslutade från noll",
"jobExists": "job already exists: {value}",
"pathMissing": "sökvägen finns inte på denna värd: {value}",
"noReport": "ingen rapport skapades",
"parseManifestFailed": "parse_manifest avslutades med en annan kod än noll",
"jobExists": "jobbet finns redan: {value}",
"pathMissing": "sökvägen finns inte på den här värden: {value}",
"deviceMissing": "enheten finns inte: {value}",
"mountpoint": "not a mountpoint: {value}",
"mountpoint": "inte en monteringspunkt: {value}",
"localArchiveMissing": "lokalt arkiv hittades inte: {value}",
"borgDestination": "Borg destination '{value}' hittades inte",
"borgDestination": "Borg-destinationen '{value}' hittades inte",
"pbsDestination": "PBS-destinationen '{value}' hittades inte",
"pbsPassword": "inget lösenord tillgängligt för PBS repo '{value}'",
"borgRepoMissing": "Borg repo \"{value}\" inte konfigurerad",
"pbsRepoMissing": "PBS repo \"{value}\" inte konfigurerad",
"borgTargetMissing": "Borgmål hittades inte: {value}",
"pbsTargetMissing": "PBS-repo hittades inte: {value}",
"pveJobMissing": "PVE vzdump jobb hittades inte: {value}",
"statePersist": "kan inte bestå tillstånd: {value}",
"sshDirectory": "kan inte förbereda ssh dir: {value}",
"logRead": "kan inte läsa logg: {value}",
"pbsPassword": "inget lösenord tillgängligt för PBS-arkivet '{value}'",
"borgRepoMissing": "Borg-arkivet \"{value}\" är inte konfigurerat",
"pbsRepoMissing": "PBS-arkivet \"{value}\" är inte konfigurerat",
"borgTargetMissing": "Borg-målet hittades inte: {value}",
"pbsTargetMissing": "PBS-arkivet hittades inte: {value}",
"pveJobMissing": "PVE vzdump-jobbet hittades inte: {value}",
"statePersist": "kan inte spara tillståndet: {value}",
"sshDirectory": "kan inte förbereda ssh-katalogen: {value}",
"logRead": "kan inte läsa loggen: {value}",
"envUpdate": "kunde inte uppdatera .env: {value}",
"pbsConfigWrite": "kunde inte bestå PBS-konfiguration: {value}",
"persist": "kunde inte bestå: {value}",
"archiveRemove": "misslyckades med att ta bort arkiv: {value}",
"start": "kunde inte starta: {value}",
"borgTargetsUpdate": "misslyckades med att uppdatera borg-targets.txt: {value}",
"pbsTargetsUpdate": "misslyckades med att uppdatera pbs-manual-configs.txt: {value}",
"unitsUpdate": "misslyckades med att uppdatera systemenheter: {value}",
"borgTargetsWrite": "misslyckades med att skriva borg-targets.txt: {value}",
"jobWrite": "misslyckades med att skriva jobbfiler: {value}",
"localTargetWrite": "failed to write local-target.conf: {value}",
"unitsWrite": "misslyckades med att skriva systemd-enheter: {value}",
"format": "format misslyckades: {value}",
"pbsConfigWrite": "det gick inte att spara PBS-konfigurationen: {value}",
"persist": "det gick inte att spara: {value}",
"archiveRemove": "det gick inte att ta bort arkivet: {value}",
"start": "det gick inte att starta: {value}",
"borgTargetsUpdate": "det gick inte att uppdatera borg-targets.txt: {value}",
"pbsTargetsUpdate": "det gick inte att uppdatera pbs-manual-configs.txt: {value}",
"unitsUpdate": "det gick inte att uppdatera systemd-enheter: {value}",
"borgTargetsWrite": "det gick inte att skriva borg-targets.txt: {value}",
"jobWrite": "det gick inte att skriva jobbfiler: {value}",
"localTargetWrite": "det gick inte att skriva local-target.conf: {value}",
"unitsWrite": "det gick inte att skriva systemd-enheter: {value}",
"format": "formateringen misslyckades: {value}",
"calendar": "ogiltig on_calendar: {value}",
"mount": "montering misslyckades: {value}",
"parserInvocation": "parseranrop misslyckades: {value}",
"preflightInvocation": "preflight-anrop misslyckades: {value}",
"publicKeyMissing": "public key not found after generation: {value}",
"mount": "monteringen misslyckades: {value}",
"parserInvocation": "anropet av parsern misslyckades: {value}",
"preflightInvocation": "anropet av preflight misslyckades: {value}",
"publicKeyMissing": "den publika nyckeln hittades inte efter generering: {value}",
"retentionInteger": "retention.{value} måste vara ett heltal",
"retentionNegative": "retention.{value} måste vara icke-negativ",
"retentionNegative": "retention.{value} får inte vara negativt",
"keygen": "ssh-keygen misslyckades: {value}",
"systemctl": "systemctl misslyckades: {value}",
"unmount": "umount misslyckades: {value}",
"taskIncomplete": "uppgiften är i tillståndet \"{value}\", inte slutförd",
"taskIncomplete": "uppgiften har tillståndet \"{value}\", inte slutförd",
"unknownKind": "okänd typ: {value}",
"unknownMode": "okänt läge \"{value}\"",
"defaultRemove": "{value} är den inbyggda standardinställningen och kan inte tas bort",
"defaultAdd": "{value} is the built-in default; no need to add it",
"keyImport": "Ingen PBS-nyckelfil är installerad på {value}.Importera nyckelfilen först.",
"storageMismatch": "PVE-jobblagring missmatchar (jobbet använder {value}, nyttolasten säger {other})"
"defaultRemove": "{value} är den inbyggda standarden och kan inte tas bort",
"defaultAdd": "{value} är den inbyggda standarden; den behöver inte läggas till",
"keyImport": "Ingen PBS-nyckelfil är installerad i {value}. Importera nyckelfilen först.",
"storageMismatch": "lagringen för PVE-jobbet stämmer inte (jobbet använder {value}, payload anger {other})"
}
},
"healthStatus": {
@@ -5438,6 +5597,7 @@
"websocketError": "WebSocket-fel uppstod",
"connectionClosed": "Anslutning stängd",
"completedSuccessfully": "Skriptet har slutförts",
"cancelled": "Åtgärden avbröts.",
"completedWithError": "Skriptet avslutat med felkoden {code}",
"yes": "Ja",
"yourInput": "Din inmatning:",
@@ -7429,7 +7589,7 @@
"signInWith": "Logga in med",
"methodPassword": "Användare och lösenord",
"methodToken": "API-token",
"username": "Användare (användare@realm)",
"username": "Användare",
"password": "Lösenord",
"passwordHelp": "Lösenordet används en gång för att skapa en skrivskyddad API-token (rollen Audit) för den här Monitorn. Bara den token sparas, aldrig lösenordet. Aktivera först autentiseringen i Monitor.",
"cancel": "Avbryt",
@@ -7442,10 +7602,10 @@
"editConnection": "Anslutning att redigera",
"add": "Lägg till en ny anslutning",
"name": "Namn",
"url": "HTTPS-URL (ta med :8007 för PBS ordinarie port)",
"token_id": "API-token-ID (user@realm!token)",
"token_secret": "API-tokenhemlighet (lämna tomt för att behålla den sparade hemligheten)",
"fingerprint": "Certifikatets SHA256-fingeravtryck (valfritt)",
"url": "HTTPS-adress",
"token_id": "API-token-ID",
"token_secret": "API-tokenhemlighet",
"fingerprint": "SHA256-fingeravtryck (valfritt)",
"tlsHelp": "Lämna fingeravtrycket tomt för vanlig kontroll av certifikatutfärdare och värdnamn. För ett självsignerat certifikat kopierar du dess SHA256-fingeravtryck från PBS-konsolen eller en annan betrodd kanal. Fingeravtrycket kontrolleras innan inloggningsuppgifter skickas.",
"saved": "PBS-anslutningen har verifierats och sparats.",
"saveFailed": "Det gick inte att spara PBS-anslutningen.",
@@ -7489,46 +7649,46 @@
"duration": "Varaktighet",
"noJobs": "Inga synkroniserings-, verifierings- eller beskärningsscheman är konfigurerade.",
"errors": {
"configRead": "Kunde inte läsa de sparade PBS-anslutningarna.Kontrollera konfigurationsfilen och behörigheterna.",
"invalidConfig": "PBS-anslutningsinställningarna är inte giltiga.Kontrollera formuläret och försök igen.",
"invalidField": "Ett anslutningsfält är inte giltigt eller är för långt.",
"invalidUrl": "Använd en HTTPS PBS-adress utan inbäddade autentiseringsuppgifter, frågeparametrar eller ett fragment.",
"configRead": "Det gick inte att läsa de sparade PBS-anslutningarna. Kontrollera konfigurationsfilen och behörigheterna.",
"invalidConfig": "Inställningarna för PBS-anslutningen är inte giltiga. Kontrollera formuläret och försök igen.",
"invalidField": "Ett anslutningsfält är ogiltigt eller för långt.",
"invalidUrl": "Använd en HTTPS-adress till PBS utan inbäddade inloggningsuppgifter, frågeparametrar eller fragment.",
"nameRequired": "Ange ett servernamn på högst 128 tecken.",
"tokenIdFormat": "Ange PBS API-token-ID i user@realm!token-format.",
"tokenIdFormat": "Ange ID för PBS API-token i formatet user@realm!token.",
"tokenSecret": "Ange en giltig API-tokenhemlighet utan mellanslag eller kontrolltecken.",
"invalidTokenId": "API-token-ID får endast innehålla ASCII-tecken.",
"invalidFingerprint": "Ange certifikatets SHA256-fingeravtryck: 64 hexadecimala tecken, eventuellt separerade med kolon.",
"invalidTokenId": "API-token-ID får bara innehålla ASCII-tecken.",
"invalidFingerprint": "Ange certifikatets SHA256-fingeravtryck: 64 hexadecimala tecken, eventuellt avgränsade med kolon.",
"fingerprintMismatch": "PBS-certifikatet matchar inte fingeravtrycket. Inga inloggningsuppgifter skickades.",
"tokenRejected": "PBS avvisade API-token eller dess behörigheter. Kontrollera ACL:erna för både användaren och token.",
"invalidResponse": "PBS returnerade ett oväntat svar. Omdirigeringar följs inte.",
"invalidJson": "PBS returnerade ett ogiltigt JSON-dokument.",
"connectFailed": "Kunde inte ansluta till PBS över verifierad HTTPS.Kontrollera adress, certifikat och tjänst.",
"invalidId": "PBS-anslutnings-ID är inte giltigt.Ladda om anslutningslistan.",
"invalidDatastores": "PBS returnerade en ogiltig datalagringslista.",
"connectionLimit": "Som mest {count} PBS-anslutningar kan konfigureras.",
"connectFailed": "Det gick inte att ansluta till PBS via verifierad HTTPS. Kontrollera adressen, certifikatet och tjänsten.",
"invalidId": "ID:t för PBS-anslutningen är inte giltigt. Läs in anslutningslistan igen.",
"invalidDatastores": "PBS returnerade en ogiltig lista över datalager.",
"connectionLimit": "Högst {count} PBS-anslutningar kan konfigureras.",
"username": "Ange PBS-användaren i formatet user@realm, till exempel root@pam.",
"password": "Ange PBS-användarens lösenord.",
"loginRejected": "PBS avvisade användarnamnet eller lösenordet.",
"invalidLogin": "PBS returned an invalid sign-in response.",
"tokenCreateDenied": "Denna PBS-användare kan inte skapa API-tokens.",
"invalidToken": "PBS returned an invalid API token.",
"auditRoleDenied": "Denna PBS-användare kan inte bevilja revisionsrollen.Logga in som root@pam eller annan administratör.",
"notFound": "PBS-anslutningen hittades inte.Ladda om anslutningslistan.",
"readFailed": "Kunde inte läsa PBS-data.Kontrollera dess tjänst och behörigheter.",
"invalidLogin": "PBS returnerade ett ogiltigt inloggningssvar.",
"tokenCreateDenied": "Den här PBS-användaren kan inte skapa API-tokens.",
"invalidToken": "PBS returnerade en ogiltig API-token.",
"auditRoleDenied": "Den här PBS-användaren kan inte tilldela rollen Audit. Logga in som root@pam eller en annan administratör.",
"notFound": "PBS-anslutningen hittades inte. Läs in anslutningslistan igen.",
"readFailed": "Det gick inte att läsa PBS-data. Kontrollera tjänsten och behörigheterna.",
"invalidList": "PBS returnerade en ogiltig datalista.",
"localUnavailable": "PBS är inte tillgängligt på denna värd.",
"authRequired": "Aktivera lokal autentisering i Monitor innan du hanterar fjärranslutna PBS-anslutningar.",
"datastoreOffline": "Datalagret är offline, i underhållsläge eller dess stödenhet är inte monterad.",
"datastoreUnavailable": "Datalagringsfilsystemet är inte tillgängligt."
"localUnavailable": "PBS är inte tillgänglig på den här värden.",
"authRequired": "Aktivera lokal autentisering i Monitor innan du hanterar fjärranslutningar till PBS.",
"datastoreOffline": "Datalagret är offline, i underhållsläge eller så är dess underliggande enhet inte monterad.",
"datastoreUnavailable": "Datalagrets filsystem är inte tillgängligt."
},
"taskTypes": {
"backup": "Säkerhetskopiering",
"restore": "Återställ",
"restore": "Återställning",
"verify": "Verifiering",
"verifyGroup": "Backup-gruppverifiering",
"verifyGroup": "Verifiering av säkerhetskopiegrupp",
"verifySnapshot": "Verifiering av ögonblicksbild",
"prune": "Beskär",
"garbageCollection": "Sophämtning",
"prune": "Gallring",
"garbageCollection": "Skräpinsamling",
"sync": "Synkronisering",
"updateCheck": "Sök efter uppdateringar",
"terminal": "Terminal",
@@ -7545,9 +7705,9 @@
"serviceStates": {
"active": "Aktiv",
"inactive": "Inaktiv",
"failed": "Misslyckades",
"failed": "Misslyckad",
"activating": "Startar",
"deactivating": "Stoppa",
"deactivating": "Stoppar",
"unknown": "Okänd"
},
"durationUnits": {
@@ -7556,16 +7716,16 @@
"hours": "{count} h",
"days": "{count} d"
},
"urlHelp": "Inkludera :8007 för PBS-standardporten, till exempel https://pbs.example:8007.",
"urlHelp": "Ta med :8007 för PBS standardport, till exempel https://pbs.example:8007.",
"usernameHelp": "Använd user@realm, till exempel root@pam.",
"tokenIdHelp": "Använd user@realm!token, till exempel monitor@pbs!proxmenux.",
"tokenSecretHelp": "Ange hemligheten för denna API-token.",
"tokenSecretKeepHelp": "Lämna tomt för att hålla den sparade token hemlig.",
"removeFailed": "Kunde inte ta bort PBS-anslutningen.",
"savedRefreshFailed": "PBS-anslutningen sparades, men anslutningslistan kunde inte uppdateras.Ladda om sidan innan du försöker en annan ändring.",
"removedRefreshFailed": "PBS-anslutningen togs bort, men anslutningslistan kunde inte uppdateras.Ladda om sidan.",
"tokenSecretHelp": "Ange hemligheten för den här API-token.",
"tokenSecretKeepHelp": "Lämna tomt för att behålla den sparade tokenhemligheten.",
"removeFailed": "Det gick inte att ta bort PBS-anslutningen.",
"savedRefreshFailed": "PBS-anslutningen sparades, men anslutningslistan kunde inte uppdateras. Läs in sidan igen innan du gör en annan ändring.",
"removedRefreshFailed": "PBS-anslutningen togs bort, men anslutningslistan kunde inte uppdateras. Läs in sidan igen.",
"technicalDetails": "Tekniska detaljer",
"datastoreType": "Datastore"
"datastoreType": "Datalager"
},
"monitorLinks": {
"groups": {
@@ -7606,15 +7766,15 @@
"changeAddress": "Ändra adress",
"cancel": "Avbryt",
"errors": {
"addressRequired": "Ange monitorns adress.",
"invalidAddress": "Adressen måste börja med http:// eller https:// och namnge en värd.",
"addressCredentials": "Adressen får inte innehålla en användare eller lösenord.",
"addressRequired": "Ange adressen till Monitor.",
"invalidAddress": "Adressen måste börja med http:// eller https:// och ange en värd.",
"addressCredentials": "Adressen får inte innehålla användare eller lösenord.",
"invalidPort": "Adressens port är inte giltig.",
"invalidRequest": "Förfrågan är inte giltig.Ladda om sidan och försök igen.",
"limit": "Som mest kan {count}-noder läggas till.",
"invalidRequest": "Förfrågan är inte giltig. Läs in sidan igen och försök igen.",
"limit": "Högst {count} noder kan läggas till.",
"duplicate": "Den här adressen finns redan i listan.",
"notFound": "The node was not found. Reload the list and try again.",
"detectedRemove": "Endast noder som lagts till för hand kan tas bort.Upptäckta noder kan döljas."
"notFound": "Noden hittades inte. Läs in listan igen och försök igen.",
"detectedRemove": "Endast noder som lagts till manuellt kan tas bort. Identifierade noder kan döljas."
}
}
}
+204 -92
View File
File diff suppressed because it is too large Load Diff
+207 -95
View File
File diff suppressed because it is too large Load Diff
+198 -86
View File
File diff suppressed because it is too large Load Diff
+216 -104
View File
File diff suppressed because it is too large Load Diff
+213 -101
View File
File diff suppressed because it is too large Load Diff
+199 -85
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -173,6 +173,9 @@ class ImmichAccelerationTests(unittest.TestCase):
with patch.object(i18n, 'language', return_value='sk'), patch.object(i18n, '_cache', json.loads((ROOT.parent / 'lang/sk.json').read_text())):
self.assertEqual(_service_kind(service), 'Strojové učenie')
_, _, plan = self.plan(NOTHING, DEFAULT_MODE)
# Spanish keeps the English name of the service.
with patch.object(i18n, 'language', return_value='es'), patch.object(i18n, '_cache', json.loads((ROOT.parent / 'lang/es.json').read_text())):
self.assertEqual(_service_kind(service), 'Machine learning')
self.assertIn('machine_learning', plan)
self.assertEqual(service, original)
+3 -1
View File
@@ -25,6 +25,8 @@ const translate = locale => (key, params = {}) => {
assert.equal(typeof template, 'string', 'Missing translation ' + key)
return template.replace(/\{(\w+)\}/g, (all, key) => params[key] ?? all)
}
// A locale without these keys must show the English backend text.
catalogs.missing = {}
const en = translate('en'), sk = translate('sk')
// Enumerate only pure validator ASTs; importing lxc_apps would access host state.
const contract = JSON.parse(execFileSync('python3', ['-c', String.raw`
@@ -64,7 +66,7 @@ assert.equal(contract.templates.length, 69, 'Update the contract inventory when
for (const message of [...contract.templates, ...contract.actual]) {
assert.equal(localize(message, en), message, 'EN must preserve the exact backend message')
assert.notEqual(localize(message, sk), message, 'Untranslated backend validation: ' + message)
assert.equal(localize(message, translate('de')), message, 'Missing locale falls back to EN')
assert.equal(localize(message, translate('missing')), message, 'Missing locale falls back to EN')
}
// Every supported message, including detector errors, preserves interpolated data.
const enErrors = catalogs.en.vmLxc.appEditor.errors, skErrors = catalogs.sk.vmLxc.appEditor.errors
+9 -2
View File
@@ -4,6 +4,8 @@ const {execFileSync}=require('node:child_process')
const root=path.resolve(__dirname,'..'),app=path.join(root,'AppImage')
const ts=require(path.join(app,'node_modules/typescript'))
const catalogs=Object.fromEntries(['en','sk','de'].map(locale=>[locale,JSON.parse(fs.readFileSync(path.join(app,`messages/${locale}/common.json`)))]))
// A locale without these keys must show the English name.
catalogs.missing={}
const translate=locale=>(key,params={})=>{
const find=data=>key.split('.').reduce((item,name)=>item?.[name],data)
return (find(catalogs[locale])??find(catalogs.en)??key).replace(/\{(\w+)\}/g,(all,key)=>params[key]??all)
@@ -13,6 +15,8 @@ const text=node=>node==null||node===false?'':typeof node!=='object'?String(node)
const compile=source=>ts.transpileModule(source,{compilerOptions:{module:ts.ModuleKind.CommonJS,target:ts.ScriptTarget.ES2020,jsx:ts.JsxEmit.ReactJSX}}).outputText
const source=process.argv.includes('--baseline')?execFileSync('git',['show','e826680c:AppImage/components/settings.tsx'],{cwd:root,encoding:'utf8'}):fs.readFileSync(path.join(app,'components/settings.tsx'),'utf8')
const formatter={exports:{}};vm.runInNewContext(compile(fs.readFileSync(path.join(app,'lib/optimization-source-errors.ts'),'utf8')),formatter)
const descriptionsPath=path.join(app,'lib/optimization-descriptions.ts')
const descriptions={exports:{},require:name=>({default:require(path.resolve(app,'lib',name))})};if(fs.existsSync(descriptionsPath))vm.runInNewContext(compile(fs.readFileSync(descriptionsPath,'utf8')),descriptions)
const tools=['one','two'].map(key=>({key,name:'Demo '+key,enabled:true,has_source:true,version:'1.0',available_version:'1.1'}))
const sourceBody={success:true,function:'demo',script:'demo.sh',source:'demo() {\n echo "<tag>& $HOME"\n}\n',deprecated:false}
function fixture(locale='sk',catalog=tools){
@@ -42,6 +46,7 @@ function fixture(locale='sk',catalog=tools){
if(name==='react')return react
if(name==='react/jsx-runtime')return{jsx:(type,props)=>({type,props}),jsxs:(type,props)=>({type,props})}
if(name.includes('optimization-source-errors'))return formatter.exports
if(name.includes('optimization-descriptions'))return descriptions.exports
if(name.includes('api-config'))return api.exports
if(name.includes('i18n/provider'))return{SUPPORTED_LANGUAGES:[],useI18n:()=>({t,language,setLanguage:value=>language=value})}
if(name.includes('use-platform'))return{useIsPbs:()=>false}
@@ -51,7 +56,9 @@ function fixture(locale='sk',catalog=tools){
vm.runInNewContext(compile(source),context)
const render=()=>{cursor=0;effects=[];tree=context.exports.Settings();for(const effect of effects)effect();return tree}
const settle=async()=>{for(let i=0;i<24;i++)await Promise.resolve();render()}
const tool=name=>flatten(tree).find(node=>node.props?.title===t('settings.optimizations.sourceTitle')&&text(node).includes(catalog.find(tool=>tool.key===name)?.name||'Demo '+name))
// Rows show the localized tool name when the catalog has one.
const label=name=>{const fallback=catalog.find(tool=>tool.key===name)?.name||'Demo '+name;return descriptions.exports.optimizationToolName?descriptions.exports.optimizationToolName(name,fallback,t):fallback}
const tool=name=>flatten(tree).find(node=>node.props?.title===t('settings.optimizations.sourceTitle')&&text(node).includes(label(name)))
const dialog=()=>flatten(tree).find(node=>node.props?.role==='dialog')
const close=()=>flatten(tree).find(node=>node.props?.['aria-label']===t('actions.close')).props.onClick()
return{render,settle,tool,dialog,close,calls,copies,timers,tree:()=>tree,setReply:value=>reply=value,t,
@@ -90,7 +97,7 @@ async function main(){
for(const [key,name]of Object.entries(names)){
assert.equal(formatter.exports.optimizationSourceName(key,name,translate('en')),name)
assert.equal(formatter.exports.optimizationSourceName(key,name,translate('sk')),catalogs.sk.settings.optimizations.sourceToolNames[key])
assert.equal(formatter.exports.optimizationSourceName(key,name,translate('de')),name)
assert.equal(formatter.exports.optimizationSourceName(key,name,translate('missing')),name)
}
assert.equal(Object.keys(names).length,27)
assert.equal(formatter.exports.optimizationSourceName('future','Future tool',translate('sk')),'Future tool')