mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-09-29 10:06:41 +00:00
Fix offline i18n tests: refresh semantics and complete Monitor catalogs
- Web docs test no longer passes the removed refresh argument. - i18n messages tests assert that --refresh keeps existing values and that only keys listed in --refresh-keys are re-translated. - Add the new Monitor keys to de, fr, it, pt, sk and sv. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
e8a7ba6f47
commit
91e62b16e0
@@ -97,10 +97,23 @@ class I18nMessagesTests(unittest.TestCase):
|
|||||||
if text == "Two":
|
if text == "Two":
|
||||||
raise RuntimeError("offline fixture failure")
|
raise RuntimeError("offline fixture failure")
|
||||||
return "IT " + text
|
return "IT " + text
|
||||||
|
# --refresh alone never replaces an existing translation.
|
||||||
result, actual, calls, output, _ = self.run_generator(
|
result, actual, calls, output, _ = self.run_generator(
|
||||||
{"items": ["One", "Two", "Three"]}, {"items": ["Uno", "Due"]},
|
{"items": ["One", "Two", "Three"]}, {"items": ["Uno", "Due"]},
|
||||||
"--refresh", "--save-every", "1", provider=provider)
|
"--refresh", "--save-every", "1", provider=provider)
|
||||||
self.assertEqual(result, 0)
|
self.assertEqual(result, 0)
|
||||||
|
self.assertEqual(actual, {"items": ["Uno", "Due", "IT Three"]})
|
||||||
|
self.assertEqual(len(calls), 1)
|
||||||
|
# Named keys are retranslated; a provider failure keeps the value.
|
||||||
|
with tempfile.NamedTemporaryFile("w", suffix=".txt", delete=False) as keys:
|
||||||
|
keys.write("items.0\nitems.1\n")
|
||||||
|
try:
|
||||||
|
result, actual, calls, output, _ = self.run_generator(
|
||||||
|
{"items": ["One", "Two", "Three"]}, {"items": ["Uno", "Due"]},
|
||||||
|
"--refresh", "--refresh-keys", keys.name, "--save-every", "1", provider=provider)
|
||||||
|
finally:
|
||||||
|
Path(keys.name).unlink()
|
||||||
|
self.assertEqual(result, 0)
|
||||||
self.assertEqual(actual, {"items": ["IT One", "Due", "IT Three"]})
|
self.assertEqual(actual, {"items": ["IT One", "Due", "IT Three"]})
|
||||||
self.assertEqual(len(calls), 3)
|
self.assertEqual(len(calls), 3)
|
||||||
self.assertIn("1 translation failures", output)
|
self.assertIn("1 translation failures", output)
|
||||||
@@ -178,9 +191,10 @@ class I18nMessagesTests(unittest.TestCase):
|
|||||||
mock.patch.object(MODULE, "write_json", wraps=MODULE.write_json) as writer, \
|
mock.patch.object(MODULE, "write_json", wraps=MODULE.write_json) as writer, \
|
||||||
redirect_stderr(output), redirect_stdout(output):
|
redirect_stderr(output), redirect_stdout(output):
|
||||||
self.assertEqual(MODULE.main(), 1)
|
self.assertEqual(MODULE.main(), 1)
|
||||||
|
# --refresh without --refresh-keys keeps the existing value.
|
||||||
self.assertEqual(json.loads((root / "sk/common.json").read_text()),
|
self.assertEqual(json.loads((root / "sk/common.json").read_text()),
|
||||||
{"items": ["SK One" if options else "Human", "SK Two"]})
|
{"items": ["Human", "SK Two"]})
|
||||||
self.assertEqual(provider.call_count, 2 if options else 1)
|
self.assertEqual(provider.call_count, 1)
|
||||||
self.assertTrue(all(call.args[0].parent.name == "sk" for call in writer.call_args_list))
|
self.assertTrue(all(call.args[0].parent.name == "sk" for call in writer.call_args_list))
|
||||||
for lang in ["en", "it", "de"]:
|
for lang in ["en", "it", "de"]:
|
||||||
self.assertEqual((root / lang / "common.json").read_bytes(), before[lang])
|
self.assertEqual((root / lang / "common.json").read_bytes(), before[lang])
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class WebDocsI18nTests(unittest.TestCase):
|
|||||||
def test_human_translation_is_not_pending(self):
|
def test_human_translation_is_not_pending(self):
|
||||||
source = {"title": "Updates", "url": "https://example.com"}
|
source = {"title": "Updates", "url": "https://example.com"}
|
||||||
target = {"title": "Actualizaciones", "url": "https://example.com"}
|
target = {"title": "Actualizaciones", "url": "https://example.com"}
|
||||||
self.assertEqual(MODULE.pending_leaves(source, target, refresh=False), [])
|
self.assertEqual(MODULE.pending_leaves(source, target), [])
|
||||||
|
|
||||||
def test_changed_source_text_is_pending_even_with_existing_translation(self):
|
def test_changed_source_text_is_pending_even_with_existing_translation(self):
|
||||||
source = {"title": "Updated installation guidance"}
|
source = {"title": "Updated installation guidance"}
|
||||||
@@ -67,7 +67,6 @@ class WebDocsI18nTests(unittest.TestCase):
|
|||||||
leaves = MODULE.pending_leaves(
|
leaves = MODULE.pending_leaves(
|
||||||
source,
|
source,
|
||||||
target,
|
target,
|
||||||
refresh=False,
|
|
||||||
forced_tokens={token},
|
forced_tokens={token},
|
||||||
)
|
)
|
||||||
self.assertEqual([leaf.path for leaf in leaves], [("title",)])
|
self.assertEqual([leaf.path for leaf in leaves], [("title",)])
|
||||||
|
|||||||
@@ -1069,7 +1069,8 @@
|
|||||||
"backups": "Backups",
|
"backups": "Backups",
|
||||||
"updates": "Aktualisierungen",
|
"updates": "Aktualisierungen",
|
||||||
"firewall": "Firewall",
|
"firewall": "Firewall",
|
||||||
"app": "App"
|
"app": "App",
|
||||||
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Start",
|
"start": "Start",
|
||||||
@@ -1169,6 +1170,44 @@
|
|||||||
"empty": "Es wurden noch keine Firewall-Ereignisse aufgezeichnet.",
|
"empty": "Es wurden noch keine Firewall-Ereignisse aufgezeichnet.",
|
||||||
"emptyHint": "Regeln mit log:info oder höher füllen diese Ansicht, wenn Pakete eintreffen."
|
"emptyHint": "Regeln mit log:info oder höher füllen diese Ansicht, wenn Pakete eintreffen."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Konsolenausgabe",
|
||||||
|
"description": "Standardausgabe und Fehlerausgabe des Hauptprozesses des Images.",
|
||||||
|
"stopped": "Der Container ist gestoppt; das Log enthält die Ausgabe seiner vorherigen Läufe.",
|
||||||
|
"lastLines": "Letzte {count} Zeilen",
|
||||||
|
"follow": "Folgen",
|
||||||
|
"pause": "Pausieren",
|
||||||
|
"refresh": "Aktualisieren",
|
||||||
|
"download": "Herunterladen",
|
||||||
|
"filter": "Zeilen filtern",
|
||||||
|
"loading": "Konsolenausgabe wird geladen...",
|
||||||
|
"empty": "Noch keine Ausgabe aufgezeichnet.",
|
||||||
|
"emptyHint": "Zeilen erscheinen hier, sobald der Container auf seine Konsole schreibt.",
|
||||||
|
"noMatches": "Keine Zeile entspricht dem Filter.",
|
||||||
|
"readFailed": "Das Konsolen-Log konnte nicht gelesen werden",
|
||||||
|
"notAvailableTitle": "Dieser Container hat kein Konsolen-Log",
|
||||||
|
"notAvailableHint": "Das Konsolen-Log wird eingerichtet, wenn ProxMenux den Container aus seinem OCI-Image installiert."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "Wird die Anwendung in der App-Registerkarte registriert, wird ihr Image hier verfolgt.",
|
||||||
|
"installedImage": "Installiertes Image",
|
||||||
|
"newImage": "Neues Image {image} verfügbar",
|
||||||
|
"stackNote": "Teil einer Multi-Container-Anwendung (Haupt-CT {primary}, {count} Container): Das Update umfasst alle.",
|
||||||
|
"pendingNote": "Ein Vorgang an diesem Container wurde unterbrochen; Wiederherstellen öffnet seine Wiederherstellung.",
|
||||||
|
"update": "Aktualisieren",
|
||||||
|
"recreate": "Neu erstellen",
|
||||||
|
"recover": "Wiederherstellen",
|
||||||
|
"terminalTitleUpdate": "OCI-Anwendung aktualisieren",
|
||||||
|
"terminalTitleRecreate": "OCI-Anwendung neu erstellen",
|
||||||
|
"terminalDescription": "Derselbe Ablauf wie OCI manager Apps → Installierte OCI-Anwendungen verwalten.",
|
||||||
|
"keepBackup": "Das vor dem Update erstellte Backup behalten",
|
||||||
|
"noKeepBackup": "Das vor dem Update erstellte Backup wird nicht behalten",
|
||||||
|
"keepBackupHelp": "Jedes Update sichert den Container, bevor sein Image ersetzt wird, um ihn wiederherzustellen, falls das Update fehlschlägt. Mit dieser Option wird dieses Backup im gewählten Speicher behalten; auf Proxmox Backup Server wird vor dem Update ein Backup geschrieben.",
|
||||||
|
"scheduleHelp": "Nur das Image wird aktualisiert, und nur wenn seine Registry ein neues veröffentlicht.",
|
||||||
|
"releaseDelayHelp": "Ein neues Image wird erst installiert, wenn es mindestens so alt ist.",
|
||||||
|
"ackExternal": "Host-Verzeichnisse werden durch das Backup nicht zurückgesetzt",
|
||||||
|
"ackExternalHelp": "Dieser Container nutzt Host-Verzeichnisse. Ein geplantes Update läuft nur, wenn dies bestätigt ist."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Optionen",
|
"title": "Optionen",
|
||||||
"snapshotBefore": "Schnappschuss vor der Bewerbung",
|
"snapshotBefore": "Schnappschuss vor der Bewerbung",
|
||||||
@@ -1429,6 +1468,14 @@
|
|||||||
"loadFailed": "Die Massenaktualisierungskonfiguration konnte nicht geladen werden."
|
"loadFailed": "Die Massenaktualisierungskonfiguration konnte nicht geladen werden."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "OCI-Image (von ProxMenux installiert)",
|
||||||
|
"ociImageHelp": "Version und Updates werden aus dem Image gelesen, aus dem dieser Container erstellt wurde. ProxMenux hat ihn installiert, daher gibt es nichts zu konfigurieren: Das installierte Image wird mit dem verglichen, das seine Registry heute veröffentlicht.",
|
||||||
|
"ociAppVersion": "Anwendung",
|
||||||
|
"ociImage": "Image",
|
||||||
|
"ociNewImage": "Neues Image",
|
||||||
|
"ociImageCurrent": "Version",
|
||||||
|
"refreshData": "Daten aktualisieren",
|
||||||
|
"refreshingData": "Wird aktualisiert…",
|
||||||
"dockerDetectedWithWorkloads": "Docker mit {count} Anwendungen in Containern erkannt",
|
"dockerDetectedWithWorkloads": "Docker mit {count} Anwendungen in Containern erkannt",
|
||||||
"dockerWorkloadsHeading": "Anwendungen in Docker",
|
"dockerWorkloadsHeading": "Anwendungen in Docker",
|
||||||
"runsInsideDocker": "Wird mit dem Docker-Image aktualisiert",
|
"runsInsideDocker": "Wird mit dem Docker-Image aktualisiert",
|
||||||
|
|||||||
@@ -1069,7 +1069,8 @@
|
|||||||
"backups": "Sauvegardes",
|
"backups": "Sauvegardes",
|
||||||
"updates": "Mises à jour",
|
"updates": "Mises à jour",
|
||||||
"firewall": "Pare-feu",
|
"firewall": "Pare-feu",
|
||||||
"app": "Application"
|
"app": "Application",
|
||||||
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Commencer",
|
"start": "Commencer",
|
||||||
@@ -1169,6 +1170,44 @@
|
|||||||
"empty": "Aucun événement de pare-feu enregistré pour le moment.",
|
"empty": "Aucun événement de pare-feu enregistré pour le moment.",
|
||||||
"emptyHint": "Règles avec journal : informations ou supérieures rempliront cette vue à mesure que les paquets arrivent."
|
"emptyHint": "Règles avec journal : informations ou supérieures rempliront cette vue à mesure que les paquets arrivent."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Sortie console",
|
||||||
|
"description": "Sortie standard et sortie d'erreur du processus principal de l'image.",
|
||||||
|
"stopped": "Le conteneur est arrêté ; le log conserve la sortie de ses exécutions précédentes.",
|
||||||
|
"lastLines": "{count} dernières lignes",
|
||||||
|
"follow": "Suivre",
|
||||||
|
"pause": "Pause",
|
||||||
|
"refresh": "Actualiser",
|
||||||
|
"download": "Télécharger",
|
||||||
|
"filter": "Filtrer les lignes",
|
||||||
|
"loading": "Chargement de la sortie console...",
|
||||||
|
"empty": "Aucune sortie enregistrée pour l'instant.",
|
||||||
|
"emptyHint": "Les lignes apparaissent ici à mesure que le conteneur écrit sur sa console.",
|
||||||
|
"noMatches": "Aucune ligne ne correspond au filtre.",
|
||||||
|
"readFailed": "Impossible de lire le log de la console",
|
||||||
|
"notAvailableTitle": "Ce conteneur n'a pas de log de console",
|
||||||
|
"notAvailableHint": "Le log de la console est configuré lorsque ProxMenux installe le conteneur depuis son image OCI."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "En enregistrant l'application dans l'onglet App, son image est suivie ici.",
|
||||||
|
"installedImage": "Image installée",
|
||||||
|
"newImage": "Nouvelle image {image} disponible",
|
||||||
|
"stackNote": "Fait partie d'une application multi-conteneurs (CT principal {primary}, {count} conteneurs) : la mise à jour les couvre tous.",
|
||||||
|
"pendingNote": "Une opération sur ce conteneur a été interrompue ; Récupérer ouvre sa récupération.",
|
||||||
|
"update": "Mettre à jour",
|
||||||
|
"recreate": "Recréer",
|
||||||
|
"recover": "Récupérer",
|
||||||
|
"terminalTitleUpdate": "Mettre à jour l'application OCI",
|
||||||
|
"terminalTitleRecreate": "Recréer l'application OCI",
|
||||||
|
"terminalDescription": "Le même parcours que OCI manager Apps → Gérer les applications OCI installées.",
|
||||||
|
"keepBackup": "Conserver la sauvegarde prise avant la mise à jour",
|
||||||
|
"noKeepBackup": "La sauvegarde prise avant la mise à jour n'est pas conservée",
|
||||||
|
"keepBackupHelp": "Chaque mise à jour sauvegarde le conteneur avant de remplacer son image, pour le restaurer si la mise à jour échoue. Avec cette option, cette sauvegarde est conservée dans le stockage choisi ; sur Proxmox Backup Server, une sauvegarde est écrite avant la mise à jour.",
|
||||||
|
"scheduleHelp": "Seule l'image est mise à jour, et seulement lorsque son registre en publie une nouvelle.",
|
||||||
|
"releaseDelayHelp": "Une nouvelle image n'est installée qu'une fois qu'elle a au moins cette ancienneté.",
|
||||||
|
"ackExternal": "Les répertoires de l'hôte ne sont pas rétablis par la sauvegarde",
|
||||||
|
"ackExternalHelp": "Ce conteneur utilise des répertoires de l'hôte. Une mise à jour planifiée ne s'exécute qu'avec cette confirmation."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Possibilités",
|
"title": "Possibilités",
|
||||||
"snapshotBefore": "Instantané avant de postuler",
|
"snapshotBefore": "Instantané avant de postuler",
|
||||||
@@ -1429,6 +1468,14 @@
|
|||||||
"loadFailed": "Impossible de charger la configuration de la mise à jour groupée."
|
"loadFailed": "Impossible de charger la configuration de la mise à jour groupée."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "Image OCI (installée par ProxMenux)",
|
||||||
|
"ociImageHelp": "La version et ses mises à jour sont lues depuis l'image à partir de laquelle ce conteneur a été créé. ProxMenux l'a installé, il n'y a donc rien à configurer : l'image installée est comparée à celle que son registre publie aujourd'hui.",
|
||||||
|
"ociAppVersion": "Application",
|
||||||
|
"ociImage": "Image",
|
||||||
|
"ociNewImage": "Nouvelle image",
|
||||||
|
"ociImageCurrent": "Version",
|
||||||
|
"refreshData": "Actualiser les données",
|
||||||
|
"refreshingData": "Actualisation…",
|
||||||
"dockerDetectedWithWorkloads": "Docker détecté avec {count} applications conteneurisées",
|
"dockerDetectedWithWorkloads": "Docker détecté avec {count} applications conteneurisées",
|
||||||
"dockerWorkloadsHeading": "Applications dans Docker",
|
"dockerWorkloadsHeading": "Applications dans Docker",
|
||||||
"runsInsideDocker": "Mise à jour avec son image Docker",
|
"runsInsideDocker": "Mise à jour avec son image Docker",
|
||||||
|
|||||||
@@ -1069,7 +1069,8 @@
|
|||||||
"backups": "Backup",
|
"backups": "Backup",
|
||||||
"updates": "Aggiornamenti",
|
"updates": "Aggiornamenti",
|
||||||
"firewall": "Firewall",
|
"firewall": "Firewall",
|
||||||
"app": "App"
|
"app": "App",
|
||||||
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Inizio",
|
"start": "Inizio",
|
||||||
@@ -1169,6 +1170,44 @@
|
|||||||
"empty": "Nessun evento firewall ancora registrato.",
|
"empty": "Nessun evento firewall ancora registrato.",
|
||||||
"emptyHint": "Le regole con log: info o superiore popoleranno questa visualizzazione all'arrivo dei pacchetti."
|
"emptyHint": "Le regole con log: info o superiore popoleranno questa visualizzazione all'arrivo dei pacchetti."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Output della console",
|
||||||
|
"description": "Output standard e di errore del processo principale dell'immagine.",
|
||||||
|
"stopped": "Il container è fermo; il log conserva l'output delle esecuzioni precedenti.",
|
||||||
|
"lastLines": "Ultime {count} righe",
|
||||||
|
"follow": "Segui",
|
||||||
|
"pause": "Pausa",
|
||||||
|
"refresh": "Aggiorna",
|
||||||
|
"download": "Scarica",
|
||||||
|
"filter": "Filtra righe",
|
||||||
|
"loading": "Caricamento dell'output della console...",
|
||||||
|
"empty": "Nessun output registrato finora.",
|
||||||
|
"emptyHint": "Le righe compaiono qui man mano che il container scrive sulla sua console.",
|
||||||
|
"noMatches": "Nessuna riga corrisponde al filtro.",
|
||||||
|
"readFailed": "Impossibile leggere il log della console",
|
||||||
|
"notAvailableTitle": "Questo container non ha un log della console",
|
||||||
|
"notAvailableHint": "Il log della console viene configurato quando ProxMenux installa il container dalla sua immagine OCI."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "Registrando l'applicazione nella scheda App, qui se ne segue l'immagine.",
|
||||||
|
"installedImage": "Immagine installata",
|
||||||
|
"newImage": "Nuova immagine {image} disponibile",
|
||||||
|
"stackNote": "Parte di un'applicazione multi-container (CT principale {primary}, {count} container): l'aggiornamento li comprende tutti.",
|
||||||
|
"pendingNote": "Un'operazione su questo container è stata interrotta; Recupera ne apre il ripristino.",
|
||||||
|
"update": "Aggiorna",
|
||||||
|
"recreate": "Ricrea",
|
||||||
|
"recover": "Recupera",
|
||||||
|
"terminalTitleUpdate": "Aggiorna applicazione OCI",
|
||||||
|
"terminalTitleRecreate": "Ricrea applicazione OCI",
|
||||||
|
"terminalDescription": "Lo stesso percorso di OCI manager Apps → Gestisci le applicazioni OCI installate.",
|
||||||
|
"keepBackup": "Conserva il backup eseguito prima dell'aggiornamento",
|
||||||
|
"noKeepBackup": "Il backup eseguito prima dell'aggiornamento non viene conservato",
|
||||||
|
"keepBackupHelp": "Ogni aggiornamento esegue il backup del container prima di sostituirne l'immagine, per ripristinarlo se l'aggiornamento fallisce. Con questa opzione quel backup viene conservato nello storage scelto; su Proxmox Backup Server viene scritto un backup prima dell'aggiornamento.",
|
||||||
|
"scheduleHelp": "Viene aggiornata solo l'immagine, e solo quando il suo registro ne pubblica una nuova.",
|
||||||
|
"releaseDelayHelp": "Una nuova immagine viene installata solo quando ha almeno questa età.",
|
||||||
|
"ackExternal": "Le directory dell'host non vengono ripristinate dal backup",
|
||||||
|
"ackExternalHelp": "Questo container usa directory dell'host. Un aggiornamento pianificato viene eseguito solo con questa conferma."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Opzioni",
|
"title": "Opzioni",
|
||||||
"snapshotBefore": "Istantanea prima dell'applicazione",
|
"snapshotBefore": "Istantanea prima dell'applicazione",
|
||||||
@@ -1429,6 +1468,14 @@
|
|||||||
"loadFailed": "impossibile caricare la configurazione dell'aggiornamento collettivo."
|
"loadFailed": "impossibile caricare la configurazione dell'aggiornamento collettivo."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "Immagine OCI (installata da ProxMenux)",
|
||||||
|
"ociImageHelp": "La versione e i suoi aggiornamenti vengono letti dall'immagine da cui è stato creato questo container. ProxMenux lo ha installato, quindi non c'è nulla da configurare: l'immagine installata viene confrontata con quella che il suo registro pubblica oggi.",
|
||||||
|
"ociAppVersion": "Applicazione",
|
||||||
|
"ociImage": "Immagine",
|
||||||
|
"ociNewImage": "Nuova immagine",
|
||||||
|
"ociImageCurrent": "Versione",
|
||||||
|
"refreshData": "Aggiorna dati",
|
||||||
|
"refreshingData": "Aggiornamento…",
|
||||||
"dockerDetectedWithWorkloads": "Docker rilevato con {count} applicazioni in container",
|
"dockerDetectedWithWorkloads": "Docker rilevato con {count} applicazioni in container",
|
||||||
"dockerWorkloadsHeading": "Applicazioni in Docker",
|
"dockerWorkloadsHeading": "Applicazioni in Docker",
|
||||||
"runsInsideDocker": "Si aggiorna con la sua immagine Docker",
|
"runsInsideDocker": "Si aggiorna con la sua immagine Docker",
|
||||||
|
|||||||
@@ -1069,7 +1069,8 @@
|
|||||||
"backups": "Cópias de segurança",
|
"backups": "Cópias de segurança",
|
||||||
"updates": "Atualizações",
|
"updates": "Atualizações",
|
||||||
"firewall": "Firewall",
|
"firewall": "Firewall",
|
||||||
"app": "Aplicativo"
|
"app": "Aplicativo",
|
||||||
|
"logs": "Logs"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Começar",
|
"start": "Começar",
|
||||||
@@ -1169,6 +1170,44 @@
|
|||||||
"empty": "Nenhum evento de firewall registrado ainda.",
|
"empty": "Nenhum evento de firewall registrado ainda.",
|
||||||
"emptyHint": "Regras com log: info ou superior preencherão esta visualização conforme os pacotes chegam."
|
"emptyHint": "Regras com log: info ou superior preencherão esta visualização conforme os pacotes chegam."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Saída da consola",
|
||||||
|
"description": "Saída padrão e de erro do processo principal da imagem.",
|
||||||
|
"stopped": "O contentor está parado; o log conserva a saída das execuções anteriores.",
|
||||||
|
"lastLines": "Últimas {count} linhas",
|
||||||
|
"follow": "Seguir",
|
||||||
|
"pause": "Pausar",
|
||||||
|
"refresh": "Atualizar",
|
||||||
|
"download": "Transferir",
|
||||||
|
"filter": "Filtrar linhas",
|
||||||
|
"loading": "A carregar a saída da consola...",
|
||||||
|
"empty": "Ainda não há saída registada.",
|
||||||
|
"emptyHint": "As linhas aparecem aqui à medida que o contentor escreve na sua consola.",
|
||||||
|
"noMatches": "Nenhuma linha corresponde ao filtro.",
|
||||||
|
"readFailed": "Não foi possível ler o log da consola",
|
||||||
|
"notAvailableTitle": "Este contentor não tem log da consola",
|
||||||
|
"notAvailableHint": "O log da consola é configurado quando o ProxMenux instala o contentor a partir da sua imagem OCI."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "Ao registar a aplicação no separador App, a sua imagem é acompanhada aqui.",
|
||||||
|
"installedImage": "Imagem instalada",
|
||||||
|
"newImage": "Nova imagem {image} disponível",
|
||||||
|
"stackNote": "Faz parte de uma aplicação com vários contentores (CT principal {primary}, {count} contentores): a atualização abrange todos.",
|
||||||
|
"pendingNote": "Uma operação neste contentor foi interrompida; Recuperar abre a sua recuperação.",
|
||||||
|
"update": "Atualizar",
|
||||||
|
"recreate": "Recriar",
|
||||||
|
"recover": "Recuperar",
|
||||||
|
"terminalTitleUpdate": "Atualizar aplicação OCI",
|
||||||
|
"terminalTitleRecreate": "Recriar aplicação OCI",
|
||||||
|
"terminalDescription": "O mesmo percurso de OCI manager Apps → Gerir aplicações OCI instaladas.",
|
||||||
|
"keepBackup": "Manter o backup feito antes da atualização",
|
||||||
|
"noKeepBackup": "O backup feito antes da atualização não é mantido",
|
||||||
|
"keepBackupHelp": "Cada atualização faz um backup do contentor antes de substituir a sua imagem, para o restaurar se a atualização falhar. Com esta opção esse backup é mantido no armazenamento escolhido; no Proxmox Backup Server é escrito um backup antes da atualização.",
|
||||||
|
"scheduleHelp": "Só a imagem é atualizada, e apenas quando o seu registo publica uma nova.",
|
||||||
|
"releaseDelayHelp": "Uma imagem nova só é instalada quando tem pelo menos esta idade.",
|
||||||
|
"ackExternal": "Os diretórios do host não são revertidos pelo backup",
|
||||||
|
"ackExternalHelp": "Este contentor usa diretórios do host. Uma atualização agendada só é executada com esta confirmação."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Opções",
|
"title": "Opções",
|
||||||
"snapshotBefore": "Instantâneo antes de aplicar",
|
"snapshotBefore": "Instantâneo antes de aplicar",
|
||||||
@@ -1429,6 +1468,14 @@
|
|||||||
"loadFailed": "não foi possível carregar a configuração de atualização em massa."
|
"loadFailed": "não foi possível carregar a configuração de atualização em massa."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "Imagem OCI (instalada pelo ProxMenux)",
|
||||||
|
"ociImageHelp": "A versão e as suas atualizações são lidas da imagem a partir da qual este contentor foi criado. O ProxMenux instalou-o, pelo que não há nada a configurar: a imagem instalada é comparada com a que o seu registo publica hoje.",
|
||||||
|
"ociAppVersion": "Aplicação",
|
||||||
|
"ociImage": "Imagem",
|
||||||
|
"ociNewImage": "Nova imagem",
|
||||||
|
"ociImageCurrent": "Versão",
|
||||||
|
"refreshData": "Atualizar dados",
|
||||||
|
"refreshingData": "A atualizar…",
|
||||||
"dockerDetectedWithWorkloads": "Docker detetado com {count} aplicações em contentores",
|
"dockerDetectedWithWorkloads": "Docker detetado com {count} aplicações em contentores",
|
||||||
"dockerWorkloadsHeading": "Aplicações no Docker",
|
"dockerWorkloadsHeading": "Aplicações no Docker",
|
||||||
"runsInsideDocker": "Atualizada através da sua imagem Docker",
|
"runsInsideDocker": "Atualizada através da sua imagem Docker",
|
||||||
|
|||||||
@@ -1090,7 +1090,8 @@
|
|||||||
"backups": "Zálohy",
|
"backups": "Zálohy",
|
||||||
"updates": "Aktualizácie",
|
"updates": "Aktualizácie",
|
||||||
"firewall": "Firewall",
|
"firewall": "Firewall",
|
||||||
"app": "Aplikácie"
|
"app": "Aplikácie",
|
||||||
|
"logs": "Logy"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Spustiť",
|
"start": "Spustiť",
|
||||||
@@ -1190,6 +1191,44 @@
|
|||||||
"empty": "Zatiaľ tu nie sú žiadne záznamy.",
|
"empty": "Zatiaľ tu nie sú žiadne záznamy.",
|
||||||
"emptyHint": "Pravidlá s log: info alebo vyššie začnú tento prehľad napĺňať, keď príde sieťová prevádzka."
|
"emptyHint": "Pravidlá s log: info alebo vyššie začnú tento prehľad napĺňať, keď príde sieťová prevádzka."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Výstup konzoly",
|
||||||
|
"description": "Štandardný a chybový výstup hlavného procesu obrazu.",
|
||||||
|
"stopped": "Kontajner je zastavený; log uchováva výstup z jeho predchádzajúcich behov.",
|
||||||
|
"lastLines": "Posledných {count} riadkov",
|
||||||
|
"follow": "Sledovať",
|
||||||
|
"pause": "Pozastaviť",
|
||||||
|
"refresh": "Obnoviť",
|
||||||
|
"download": "Stiahnuť",
|
||||||
|
"filter": "Filtrovať riadky",
|
||||||
|
"loading": "Načítava sa výstup konzoly...",
|
||||||
|
"empty": "Zatiaľ nie je zaznamenaný žiadny výstup.",
|
||||||
|
"emptyHint": "Riadky sa tu zobrazia, keď kontajner zapisuje do svojej konzoly.",
|
||||||
|
"noMatches": "Filtru nezodpovedá žiadny riadok.",
|
||||||
|
"readFailed": "Log konzoly sa nepodarilo načítať",
|
||||||
|
"notAvailableTitle": "Tento kontajner nemá log konzoly",
|
||||||
|
"notAvailableHint": "Log konzoly sa nastaví, keď ProxMenux nainštaluje kontajner z jeho OCI obrazu."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "Po zaregistrovaní aplikácie na karte Aplikácie sa tu sleduje jej obraz.",
|
||||||
|
"installedImage": "Nainštalovaný obraz",
|
||||||
|
"newImage": "K dispozícii je nový obraz {image}",
|
||||||
|
"stackNote": "Súčasť aplikácie s viacerými kontajnermi (hlavný CT {primary}, {count} kontajnerov): aktualizácia sa týka všetkých.",
|
||||||
|
"pendingNote": "Operácia na tomto kontajneri bola prerušená; Obnoviť otvorí jej obnovenie.",
|
||||||
|
"update": "Aktualizovať",
|
||||||
|
"recreate": "Znovu vytvoriť",
|
||||||
|
"recover": "Obnoviť",
|
||||||
|
"terminalTitleUpdate": "Aktualizovať OCI aplikáciu",
|
||||||
|
"terminalTitleRecreate": "Znovu vytvoriť OCI aplikáciu",
|
||||||
|
"terminalDescription": "Rovnaký postup ako OCI manager Apps → Spravovať nainštalované OCI aplikácie.",
|
||||||
|
"keepBackup": "Ponechať zálohu vytvorenú pred aktualizáciou",
|
||||||
|
"noKeepBackup": "Záloha vytvorená pred aktualizáciou sa neponecháva",
|
||||||
|
"keepBackupHelp": "Každá aktualizácia zálohuje kontajner pred nahradením jeho obrazu, aby ho bolo možné obnoviť, ak aktualizácia zlyhá. S touto možnosťou sa táto záloha ponechá vo zvolenom úložisku; na Proxmox Backup Server sa pred aktualizáciou zapíše záloha.",
|
||||||
|
"scheduleHelp": "Aktualizuje sa iba obraz, a to len keď jeho register zverejní nový.",
|
||||||
|
"releaseDelayHelp": "Nový obraz sa nainštaluje až vtedy, keď je aspoň takto starý.",
|
||||||
|
"ackExternal": "Adresáre hostiteľa sa zálohou neobnovia",
|
||||||
|
"ackExternalHelp": "Tento kontajner používa adresáre hostiteľa. Plánovaná aktualizácia sa spustí iba s týmto potvrdením."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Možnosti",
|
"title": "Možnosti",
|
||||||
"snapshotBefore": "Snapshot pred použitím zmien",
|
"snapshotBefore": "Snapshot pred použitím zmien",
|
||||||
@@ -1450,6 +1489,14 @@
|
|||||||
"loadFailed": "Konfiguráciu hromadnej aktualizácie sa nepodarilo načítať."
|
"loadFailed": "Konfiguráciu hromadnej aktualizácie sa nepodarilo načítať."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "OCI obraz (nainštalovaný ProxMenux)",
|
||||||
|
"ociImageHelp": "Verzia a jej aktualizácie sa čítajú z obrazu, z ktorého bol tento kontajner vytvorený. Nainštaloval ho ProxMenux, takže nie je čo nastavovať: nainštalovaný obraz sa porovnáva s tým, ktorý jeho register zverejňuje dnes.",
|
||||||
|
"ociAppVersion": "Aplikácia",
|
||||||
|
"ociImage": "Obraz",
|
||||||
|
"ociNewImage": "Nový obraz",
|
||||||
|
"ociImageCurrent": "Verzia",
|
||||||
|
"refreshData": "Obnoviť údaje",
|
||||||
|
"refreshingData": "Obnovuje sa…",
|
||||||
"dockerDetectedWithWorkloads": "Zistený Docker s {count} aplikáciami v kontajneroch",
|
"dockerDetectedWithWorkloads": "Zistený Docker s {count} aplikáciami v kontajneroch",
|
||||||
"dockerWorkloadsHeading": "Aplikácie v Dockeri",
|
"dockerWorkloadsHeading": "Aplikácie v Dockeri",
|
||||||
"runsInsideDocker": "Aktualizuje sa spolu s obrazom Docker",
|
"runsInsideDocker": "Aktualizuje sa spolu s obrazom Docker",
|
||||||
@@ -3320,7 +3367,14 @@
|
|||||||
"auditReports": "Správy — k dispozícii je úplný audit aj samostatné prehľady bezpečnosti, záloh a kapacity diskov. Každý začne stručným zhrnutím, ponúkne tlačiteľný inventár a dá sa vyexportovať do PDF. Pred bezpečnostnou kontrolou s Lynisom sa aplikácia opýta, aby bežná kontrola ostala rýchla.",
|
"auditReports": "Správy — k dispozícii je úplný audit aj samostatné prehľady bezpečnosti, záloh a kapacity diskov. Každý začne stručným zhrnutím, ponúkne tlačiteľný inventár a dá sa vyexportovať do PDF. Pred bezpečnostnou kontrolou s Lynisom sa aplikácia opýta, aby bežná kontrola ostala rýchla.",
|
||||||
"auditPolicyBaseline": "Pravidlá a porovnanie — nastavte, čo má server spĺňať: zálohy, firewall aj prihlásenie roota cez SSH. Jeden beh môžete označiť ako východiskový stav a neskôr jednoducho vidieť nové, vyriešené aj prijaté zistenia.",
|
"auditPolicyBaseline": "Pravidlá a porovnanie — nastavte, čo má server spĺňať: zálohy, firewall aj prihlásenie roota cez SSH. Jeden beh môžete označiť ako východiskový stav a neskôr jednoducho vidieť nové, vyriešené aj prijaté zistenia.",
|
||||||
"groupedAppUpdates": "Zoskupené upozornenia na aktualizácie aplikácií — po kontrole príde jedno prehľadné upozornenie namiesto samostatnej správy pre každú aplikáciu. Aplikácie sú zoskupené podľa LXC a zobrazia sa nainštalované aj dostupné verzie.",
|
"groupedAppUpdates": "Zoskupené upozornenia na aktualizácie aplikácií — po kontrole príde jedno prehľadné upozornenie namiesto samostatnej správy pre každú aplikáciu. Aplikácie sú zoskupené podľa LXC a zobrazia sa nainštalované aj dostupné verzie.",
|
||||||
"adminTokenScope": "Prístup správcu — otvorenie terminálu Monitoru a vypnutie overovania teraz vyžadujú token s úplnými právami správcu. Token iba na čítanie, napríklad pre monitorovaciu integráciu, tak zostáva bezpečne obmedzený (nahlásil @f3rs3n)."
|
"adminTokenScope": "Prístup správcu — otvorenie terminálu Monitoru a vypnutie overovania teraz vyžadujú token s úplnými právami správcu. Token iba na čítanie, napríklad pre monitorovaciu integráciu, tak zostáva bezpečne obmedzený (nahlásil @f3rs3n).",
|
||||||
|
"ociAppTab": "OCI kontajnery na karte Aplikácie — kontajner nainštalovaný cez OCI manager Apps sa rozpozná podľa záznamu o inštalácii: aplikácia a jej obraz, nový obraz zistený podľa digestu a odkaz na repozitár obrazu.",
|
||||||
|
"ociUpdatesTab": "Aktualizácie OCI kontajnerov — Aktualizovať a Znovu vytvoriť otvoria rovnaký postup ako ponuka OCI, zálohu vytvorenú pred aktualizáciou možno ponechať v úložisku záloh a obraz možno aktualizovať podľa plánu.",
|
||||||
|
"ociLogsTab": "Karta Logy pre OCI kontajnery — výstup konzoly aplikácie uložený na hostiteľovi a sledovaný naživo, s filtrom a stiahnutím. Konzola Proxmoxu týchto kontajnerov otvorí shell.",
|
||||||
|
"appsUpdateShortcut": "Ikona aktualizácie na stránke Aplikácie otvorí kontajner priamo na jeho karte Aktualizácie.",
|
||||||
|
"webhookHttps": "Upozornenia Proxmoxu sa dostanú do Monitora aj so zapnutým HTTPS — doručujú sa na výhradne lokálnu adresu a už nezlyhávajú na chybe certifikátu.",
|
||||||
|
"persistentLogs": "Skončená vlna chýb v logoch sa už nehlási ako trvalá: vzor sa musí opakovať 15 minút a jeho upozornenie sa zatvorí samo (nahlásil @Joshua1264).",
|
||||||
|
"mountsLanAddress": "Body pripojenia na LVM-thin a inom blokovom úložisku zobrazujú svoje využitie a aplikácie s viacerými kontajnermi sa otvárajú na svojej LAN adrese."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
@@ -5034,6 +5088,8 @@
|
|||||||
"customLinkNewTitle": "Nový webový odkaz",
|
"customLinkNewTitle": "Nový webový odkaz",
|
||||||
"customLinkEditTitle": "Upraviť webový odkaz",
|
"customLinkEditTitle": "Upraviť webový odkaz",
|
||||||
"customLinkEditAria": "Upraviť vlastný odkaz {name}",
|
"customLinkEditAria": "Upraviť vlastný odkaz {name}",
|
||||||
|
"openUpdatesAria": "Otvoriť kartu Aktualizácie pre {name}",
|
||||||
|
"openUpdatesTitle": "K dispozícii je aktualizácia — otvoriť kartu Aktualizácie",
|
||||||
"customLinkName": "Názov",
|
"customLinkName": "Názov",
|
||||||
"customLinkNamePlaceholder": "napr. Moja aplikácia",
|
"customLinkNamePlaceholder": "napr. Moja aplikácia",
|
||||||
"customLinkUrl": "URL",
|
"customLinkUrl": "URL",
|
||||||
|
|||||||
@@ -1069,7 +1069,8 @@
|
|||||||
"backups": "Säkerhetskopieringar",
|
"backups": "Säkerhetskopieringar",
|
||||||
"updates": "Uppdateringar",
|
"updates": "Uppdateringar",
|
||||||
"firewall": "Brandvägg",
|
"firewall": "Brandvägg",
|
||||||
"app": "App"
|
"app": "App",
|
||||||
|
"logs": "Loggar"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"start": "Start",
|
"start": "Start",
|
||||||
@@ -1169,6 +1170,44 @@
|
|||||||
"empty": "Inga brandväggshändelser har registrerats ännu.",
|
"empty": "Inga brandväggshändelser har registrerats ännu.",
|
||||||
"emptyHint": "Regler med log: info eller högre kommer att fylla denna vy när paket anländer."
|
"emptyHint": "Regler med log: info eller högre kommer att fylla denna vy när paket anländer."
|
||||||
},
|
},
|
||||||
|
"consoleLog": {
|
||||||
|
"title": "Konsolutdata",
|
||||||
|
"description": "Standardutdata och standardfel från avbildens huvudprocess.",
|
||||||
|
"stopped": "Containern är stoppad; loggen behåller utdata från tidigare körningar.",
|
||||||
|
"lastLines": "Senaste {count} raderna",
|
||||||
|
"follow": "Följ",
|
||||||
|
"pause": "Pausa",
|
||||||
|
"refresh": "Uppdatera",
|
||||||
|
"download": "Ladda ned",
|
||||||
|
"filter": "Filtrera rader",
|
||||||
|
"loading": "Läser in konsolutdata...",
|
||||||
|
"empty": "Ingen utdata registrerad ännu.",
|
||||||
|
"emptyHint": "Rader visas här när containern skriver till sin konsol.",
|
||||||
|
"noMatches": "Inga rader matchar filtret.",
|
||||||
|
"readFailed": "Det gick inte att läsa konsolloggen",
|
||||||
|
"notAvailableTitle": "Den här containern har ingen konsollogg",
|
||||||
|
"notAvailableHint": "Konsolloggen konfigureras när ProxMenux installerar containern från dess OCI-avbild."
|
||||||
|
},
|
||||||
|
"ociUpdates": {
|
||||||
|
"notTracked": "När applikationen registreras i fliken App följs dess avbild här.",
|
||||||
|
"installedImage": "Installerad avbild",
|
||||||
|
"newImage": "Ny avbild {image} tillgänglig",
|
||||||
|
"stackNote": "Del av en applikation med flera containrar (huvud-CT {primary}, {count} containrar): uppdateringen omfattar alla.",
|
||||||
|
"pendingNote": "En åtgärd på den här containern avbröts; Återställ öppnar dess återställning.",
|
||||||
|
"update": "Uppdatera",
|
||||||
|
"recreate": "Återskapa",
|
||||||
|
"recover": "Återställ",
|
||||||
|
"terminalTitleUpdate": "Uppdatera OCI-applikation",
|
||||||
|
"terminalTitleRecreate": "Återskapa OCI-applikation",
|
||||||
|
"terminalDescription": "Samma flöde som OCI manager Apps → Hantera installerade OCI-applikationer.",
|
||||||
|
"keepBackup": "Behåll säkerhetskopian som tas före uppdateringen",
|
||||||
|
"noKeepBackup": "Säkerhetskopian som tas före uppdateringen behålls inte",
|
||||||
|
"keepBackupHelp": "Varje uppdatering säkerhetskopierar containern innan dess avbild ersätts, för att återställa den om uppdateringen misslyckas. Med det här alternativet behålls säkerhetskopian i den valda lagringen; på Proxmox Backup Server skrivs en säkerhetskopia före uppdateringen.",
|
||||||
|
"scheduleHelp": "Endast avbilden uppdateras, och bara när dess register publicerar en ny.",
|
||||||
|
"releaseDelayHelp": "En ny avbild installeras först när den är minst så här gammal.",
|
||||||
|
"ackExternal": "Värdkataloger återställs inte av säkerhetskopian",
|
||||||
|
"ackExternalHelp": "Den här containern använder värdkataloger. En schemalagd uppdatering körs bara när detta är bekräftat."
|
||||||
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"title": "Alternativ",
|
"title": "Alternativ",
|
||||||
"snapshotBefore": "Ögonblicksbild innan applicering",
|
"snapshotBefore": "Ögonblicksbild innan applicering",
|
||||||
@@ -1429,6 +1468,14 @@
|
|||||||
"loadFailed": "Det gick inte att läsa in massuppdateringskonfigurationen."
|
"loadFailed": "Det gick inte att läsa in massuppdateringskonfigurationen."
|
||||||
},
|
},
|
||||||
"appEditor": {
|
"appEditor": {
|
||||||
|
"methodOciImage": "OCI-avbild (installerad av ProxMenux)",
|
||||||
|
"ociImageHelp": "Versionen och dess uppdateringar läses från avbilden som containern skapades från. ProxMenux installerade den, så det finns inget att konfigurera: den installerade avbilden jämförs med den som registret publicerar i dag.",
|
||||||
|
"ociAppVersion": "Applikation",
|
||||||
|
"ociImage": "Avbild",
|
||||||
|
"ociNewImage": "Ny avbild",
|
||||||
|
"ociImageCurrent": "Version",
|
||||||
|
"refreshData": "Uppdatera data",
|
||||||
|
"refreshingData": "Uppdaterar…",
|
||||||
"dockerDetectedWithWorkloads": "Docker hittades med {count} applikationer i containrar",
|
"dockerDetectedWithWorkloads": "Docker hittades med {count} applikationer i containrar",
|
||||||
"dockerWorkloadsHeading": "Applikationer i Docker",
|
"dockerWorkloadsHeading": "Applikationer i Docker",
|
||||||
"runsInsideDocker": "Uppdateras med sin Docker-avbildning",
|
"runsInsideDocker": "Uppdateras med sin Docker-avbildning",
|
||||||
|
|||||||
Reference in New Issue
Block a user