New version 1.2.6

Restores AI Assistant support for OpenAI-compatible endpoints on private IPs, loopback
and Docker networks (LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute, self-hosted proxies)
and surfaces the server's error under the Load button (#325). Aligns the Secure Gateway
wizard's Alpine template selection and pct create with the host's real architecture on
x86_64 and arm64 (#324). Consolidates changes landing on develop: atomic notification
delivery, custom SSH port for Borg remote targets (#236), optional GitHub API token for
app version tracking (#306), and richer replication failure notifications.
This commit is contained in:
MacRimi
2026-09-02 22:18:52 +02:00
parent eecd93bf1a
commit ea8c29ecbd
24 changed files with 884 additions and 118 deletions
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Anwendung",
"targetBoth": "Betriebssystem + Anwendung",
"lastRun": "Letzte Ausführung: {date}",
"rebootRequired": "Zum Abschluss der Aktualisierung ist ein Neustart erforderlich.",
"rebootPackages": "Pakete: {packages}",
"viewLog": "Protokoll anzeigen",
"logTitle": "Aktualisierungsprotokoll",
"logDescription": "Ausgabe der letzten geplanten Aktualisierung von {name} (LXC {vmid}).",
"logLoading": "Protokoll wird geladen…",
"logEmpty": "Dieser Lauf hat keine Ausgabe erzeugt.",
"logFailed": "Das Aktualisierungsprotokoll konnte nicht geladen werden.",
"logTruncated": "Es wird nur das Ende des Protokolls angezeigt, da es das Anzeigelimit überschreitet.",
"closeLog": "Schließen",
"runSuccess": "✓ Erfolg",
"runPartial": "teilweise abgeschlossen",
"runFailed": "✗ fehlgeschlagen",
@@ -1937,7 +1947,8 @@
"gemini": "Es ist eine kostenlose Stufe mit einem guten Preis-Leistungs-Verhältnis verfügbar.",
"ollama": "Verwendet Modelle auf Ihrem Ollama-Server. Völlig lokal, privat und kostenlos nutzbar.",
"openrouter": "Zugriff auf mehr als 100 Modelle über einen API-Schlüssel."
}
},
"loadModelsFailed": "Modelle konnten nicht geladen werden — prüfe den API-Schlüssel oder die Endpunkt-URL."
},
"telegramGuide": {
"title": "Anleitung zur Einrichtung des Telegram-Bots",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "Sie können auch einen Backup-Code verwenden (Format: XXXX-XXXX)",
"backToLogin": "Zurück zum Login",
"verifyCode": "Code überprüfen",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Angemeldet",
@@ -3158,7 +3169,13 @@
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298)."
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1163,6 +1163,16 @@
"targetApp": "Application",
"targetBoth": "OS + application",
"lastRun": "Last run: {date}",
"rebootRequired": "A restart is required to complete the update.",
"rebootPackages": "Packages: {packages}",
"viewLog": "View log",
"logTitle": "Update log",
"logDescription": "Output from the latest scheduled update of {name} (LXC {vmid}).",
"logLoading": "Loading log…",
"logEmpty": "This run produced no output.",
"logFailed": "The update log could not be loaded.",
"logTruncated": "Only the end of the log is shown because it exceeds the display limit.",
"closeLog": "Close",
"runSuccess": "✓ success",
"runPartial": "completed partially",
"runFailed": "✗ failed",
@@ -1936,7 +1946,8 @@
"gemini": "A free tier is available, with a good quality-to-price ratio.",
"ollama": "Uses models on your Ollama server. Fully local, private and free to run.",
"openrouter": "Access to more than 100 models through one API key."
}
},
"loadModelsFailed": "Failed to load models — check the API key or endpoint URL."
},
"telegramGuide": {
"title": "Telegram bot setup guide",
@@ -2101,7 +2112,7 @@
"backupCodeHint": "You can also use a backup code (format: XXXX-XXXX)",
"backToLogin": "Back to login",
"verifyCode": "Verify Code",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Signed in",
@@ -3157,7 +3168,13 @@
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298)."
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Solicitud",
"targetBoth": "SO + aplicación",
"lastRun": "Última ejecución: {date}",
"rebootRequired": "Es necesario reiniciar para completar la actualización.",
"rebootPackages": "Paquetes: {packages}",
"viewLog": "Ver log",
"logTitle": "Log de actualización",
"logDescription": "Salida de la última actualización programada de {name} (LXC {vmid}).",
"logLoading": "Cargando log…",
"logEmpty": "Esta ejecución no produjo ninguna salida.",
"logFailed": "No se pudo cargar el log de actualización.",
"logTruncated": "Solo se muestra el final del log porque supera el límite de visualización.",
"closeLog": "Cerrar",
"runSuccess": "✓ éxito",
"runPartial": "completada parcialmente",
"runFailed": "✗ falló",
@@ -1937,7 +1947,8 @@
"gemini": "Hay disponible un nivel gratuito, con una buena relación calidad-precio.",
"ollama": "Utiliza modelos en su servidor Ollama. Totalmente local, privado y gratuito.",
"openrouter": "Acceso a más de 100 modelos a través de una clave API."
}
},
"loadModelsFailed": "No se pudieron cargar los modelos — comprueba la API key o la URL del endpoint."
},
"telegramGuide": {
"title": "Guía de configuración del bot de Telegram",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "También puedes utilizar un código de respaldo (formato: XXXX-XXXX)",
"backToLogin": "Volver a iniciar sesión",
"verifyCode": "Verificar código",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Iniciado sesión",
@@ -3158,7 +3169,13 @@
"appsDashboard": "Nueva pestaña Apps de nivel superior — un lanzador único para cada enlace web del nodo. Las aplicaciones registradas en LXC y los enlaces web personalizados comparten la misma cuadrícula con etiquetas de categoría, búsqueda y acceso directo al modal del invitado.",
"lxcAppsUpdates": "La pestaña App dentro del modal de cada LXC registra las aplicaciones instaladas, captura sus enlaces web y realiza seguimiento de versiones. La pestaña Updates rediseñada aplica actualizaciones de paquetes del sistema y de aplicaciones desde un solo botón; Docker Engine y cada imagen siguen el mismo ciclo de 24 horas, con acción 'Comprobar ahora' bajo demanda.",
"multilingual": "El Monitor ahora habla 8 idiomas: inglés, español, alemán, francés, italiano, portugués, sueco y eslovaco. Un enorme agradecimiento a @vaso73 por construir la base de i18n que lo hizo posible.",
"nvidiaMultiGpu": "El ciclo de vida del driver NVIDIA pasa a propiedad por BDF exacto, de modo que un host multi-GPU puede pasar una tarjeta a una VM y mantener la otra operativa en el host o en LXCs, junto con un selector de versión sensible al kernel, la rama y la GPU (#298)."
"nvidiaMultiGpu": "El ciclo de vida del driver NVIDIA pasa a propiedad por BDF exacto, de modo que un host multi-GPU puede pasar una tarjeta a una VM y mantener la otra operativa en el host o en LXCs, junto con un selector de versión sensible al kernel, la rama y la GPU (#298).",
"aiCustomEndpoint": "Endpoint OpenAI personalizado del Asistente IA — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute y cualquier proxy autoalojado en IPs privadas, loopback o redes Docker se reconocen al cargar el catálogo de modelos. El desplegable muestra el error devuelto por el servidor (o el motivo de red subyacente) justo debajo del botón Cargar (#325, reportado por @jorgeffonte).",
"secureGatewayArch": "Asistente Secure Gateway — la descarga de plantilla Alpine, la selección de plantilla local y pct create coinciden con la arquitectura real del host, de modo que los hosts x86_64 reciben contenedores amd64 y los hosts arm64 reciben contenedores arm64 (#324, reportado por @N0X4DD0).",
"atomicNotifications": "Los eventos de notificación reservan su huella de deduplicación de forma atómica antes del procesado por IA y del envío por canal, así que colectores concurrentes, callbacks de finalización o procesos Monitor paralelos no pueden enviar el mismo evento dos veces. La reserva se libera cuando ningún canal tiene éxito, preservando los reintentos.",
"borgSshPort": "Destino remoto Borg — el diálogo Añadir destino Borg y el TUI del shell aceptan un puerto SSH personalizado. BORG_RSH, el flujo de instalación automática de clave y la sonda de capacidad lo respetan. Totalmente retrocompatible con las entradas existentes creadas sin un puerto explícito (sugerido por @songochain en la discusión #236).",
"githubToken": "Settings → GitHub API acepta un token de acceso personal opcional para las comprobaciones de releases y tags cuando se agota la cuota anónima. El token se guarda cifrado y nunca se devuelve al navegador; el error de rate limit está traducido en todos los idiomas del Monitor (sugerido por @SystemIdleProcess en la discusión #306).",
"replicationContext": "Las notificaciones nativas de fallo de replicación de Proxmox ahora resuelven el ID del trabajo de replicación, el ID de la VM/LXC afectada y el nombre del guest; el bloque de error exacto de Proxmox se conserva como motivo, y cada trabajo de replicación deduplica de forma independiente (reportado por Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Application",
"targetBoth": "Système d'exploitation + application",
"lastRun": "Dernière exécution : {date}",
"rebootRequired": "Un redémarrage est nécessaire pour terminer la mise à jour.",
"rebootPackages": "Paquets : {packages}",
"viewLog": "Voir le journal",
"logTitle": "Journal de mise à jour",
"logDescription": "Sortie de la dernière mise à jour planifiée de {name} (LXC {vmid}).",
"logLoading": "Chargement du journal…",
"logEmpty": "Cette exécution n’a produit aucune sortie.",
"logFailed": "Impossible de charger le journal de mise à jour.",
"logTruncated": "Seule la fin du journal est affichée, car il dépasse la limite d’affichage.",
"closeLog": "Fermer",
"runSuccess": "✓ succès",
"runPartial": "partiellement terminée",
"runFailed": "✗ échoué",
@@ -1937,7 +1947,8 @@
"gemini": "Un niveau gratuit est disponible, avec un bon rapport qualité-prix.",
"ollama": "Utilise des modèles sur votre serveur Ollama. Entièrement local, privé et gratuit.",
"openrouter": "Accès à plus de 100 modèles via une seule clé API."
}
},
"loadModelsFailed": "Impossible de charger les modèles — vérifie la clé API ou l'URL du endpoint."
},
"telegramGuide": {
"title": "Guide de configuration du robot Telegram",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "Vous pouvez également utiliser un code de secours (format : XXXX-XXXX)",
"backToLogin": "Retour à la connexion",
"verifyCode": "Vérifier le code",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Connecté",
@@ -3158,7 +3169,13 @@
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298)."
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Applicazione",
"targetBoth": "Sistema operativo + applicazione",
"lastRun": "Ultima esecuzione: {date}",
"rebootRequired": "È necessario un riavvio per completare l’aggiornamento.",
"rebootPackages": "Pacchetti: {packages}",
"viewLog": "Visualizza log",
"logTitle": "Log di aggiornamento",
"logDescription": "Output dell’ultimo aggiornamento pianificato di {name} (LXC {vmid}).",
"logLoading": "Caricamento del log…",
"logEmpty": "Questa esecuzione non ha prodotto alcun output.",
"logFailed": "Impossibile caricare il log di aggiornamento.",
"logTruncated": "Viene mostrata solo la parte finale del log perché supera il limite di visualizzazione.",
"closeLog": "Chiudi",
"runSuccess": "✓ successo",
"runPartial": "completato parzialmente",
"runFailed": "✗ fallito",
@@ -1937,7 +1947,8 @@
"gemini": "È disponibile un livello gratuito, con un buon rapporto qualità-prezzo.",
"ollama": "Utilizza i modelli sul tuo server Ollama. Completamente locale, privato e gratuito.",
"openrouter": "Accesso a più di 100 modelli tramite una chiave API."
}
},
"loadModelsFailed": "Impossibile caricare i modelli — controlla la API key o l'URL dell'endpoint."
},
"telegramGuide": {
"title": "Guida alla configurazione del bot di Telegram",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "Puoi anche utilizzare un codice di backup (formato: XXXX-XXXX)",
"backToLogin": "Torna al login",
"verifyCode": "Verifica codice",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Effettuato l'accesso",
@@ -3158,7 +3169,13 @@
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298)."
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Aplicativo",
"targetBoth": "SO + aplicativo",
"lastRun": "Última execução: {date}",
"rebootRequired": "É necessário reiniciar para concluir a atualização.",
"rebootPackages": "Pacotes: {packages}",
"viewLog": "Ver registo",
"logTitle": "Registo da atualização",
"logDescription": "Saída da última atualização agendada de {name} (LXC {vmid}).",
"logLoading": "A carregar o registo…",
"logEmpty": "Esta execução não produziu qualquer saída.",
"logFailed": "Não foi possível carregar o registo da atualização.",
"logTruncated": "É apresentado apenas o fim do registo porque excede o limite de visualização.",
"closeLog": "Fechar",
"runSuccess": "✓ sucesso",
"runPartial": "concluída parcialmente",
"runFailed": "✗ falhou",
@@ -1937,7 +1947,8 @@
"gemini": "Um nível gratuito está disponível, com uma boa relação qualidade/preço.",
"ollama": "Usa modelos em seu servidor Ollama. Totalmente local, privado e de operação gratuita.",
"openrouter": "Acesso a mais de 100 modelos através de uma chave API."
}
},
"loadModelsFailed": "Não foi possível carregar os modelos — verifica a API key ou o URL do endpoint."
},
"telegramGuide": {
"title": "Guia de configuração do bot do Telegram",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "Você também pode usar um código de backup (formato: XXXX-XXXX)",
"backToLogin": "Voltar ao login",
"verifyCode": "Verifique o código",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Conectado",
@@ -3158,7 +3169,13 @@
"appsDashboard": "New top-level Apps dashboard — a single launcher for every Web Link across the node. LXC-registered apps and user-defined Custom Web Links share the same grid with category badges, search, and one-click deep-links back to the guest modal.",
"lxcAppsUpdates": "App tab inside every LXC modal registers installed apps, captures weblinks and tracks upstream versions. Reworked Updates tab applies OS packages and app updates from a single button; Docker Engine and per-image tracking follow the same 24-hour cycle, with a 'Check now' action on demand.",
"multilingual": "The Monitor now speaks 8 languages: English, Spanish, German, French, Italian, Portuguese, Swedish and Slovak. Huge thanks to @vaso73 for building the i18n scaffolding that made this possible.",
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298)."
"nvidiaMultiGpu": "NVIDIA driver lifecycle moves to per-BDF ownership so a multi-GPU host can pass one card to a VM and keep the other operational on the host or in LXCs, plus a kernel + branch + GPU-aware version picker (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1163,6 +1163,16 @@
"targetApp": "Aplikácia",
"targetBoth": "Systém + aplikácia",
"lastRun": "Posledné spustenie: {date}",
"rebootRequired": "Na dokončenie aktualizácie je potrebný reštart.",
"rebootPackages": "Balíky: {packages}",
"viewLog": "Zobraziť záznam",
"logTitle": "Záznam aktualizácie",
"logDescription": "Výstup poslednej naplánovanej aktualizácie {name} (LXC {vmid}).",
"logLoading": "Načítava sa záznam…",
"logEmpty": "Toto spustenie nevytvorilo žiadny výstup.",
"logFailed": "Záznam aktualizácie sa nepodarilo načítať.",
"logTruncated": "Zobrazuje sa iba koniec záznamu, pretože prekračuje limit zobrazenia.",
"closeLog": "Zavrieť",
"runSuccess": "✓ úspešné",
"runPartial": "čiastočne dokončené",
"runFailed": "✗ zlyhalo",
@@ -1936,7 +1946,8 @@
"gemini": "Ponúka bezplatnú úroveň a dobrý pomer kvality a ceny.",
"ollama": "Používa modely na vašom Ollama serveri. Beží lokálne, súkromne a bez poplatkov.",
"openrouter": "Prístup k viac než 100 modelom cez jeden API kľúč."
}
},
"loadModelsFailed": "Modely sa nepodarilo načítať — skontroluj API kľúč alebo URL endpointu."
},
"telegramGuide": {
"title": "Nastavenie Telegram bota",
@@ -2101,7 +2112,7 @@
"backupCodeHint": "Môžete použiť aj záložný kód vo formáte XXXX-XXXX",
"backToLogin": "Späť na prihlásenie",
"verifyCode": "Overiť kód",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Prihlásený",
@@ -3157,7 +3168,13 @@
"appsDashboard": "Nová hlavná karta Apps — jednotný spúšťač pre každý webový odkaz v uzle. Aplikácie zaregistrované v LXC a používateľské vlastné webové odkazy zdieľajú rovnakú mriežku s kategóriami, vyhľadávaním a priamym prístupom do modálu hostiteľa.",
"lxcAppsUpdates": "Karta App v modáli každého LXC registruje nainštalované aplikácie, zachytáva webové odkazy a sleduje verzie. Prepracovaná karta Updates aplikuje aktualizácie OS a aplikácií jediným tlačidlom; Docker Engine a jednotlivé image sledujú rovnaký 24-hodinový cyklus s akciou 'Skontrolovať teraz' na požiadanie.",
"multilingual": "Monitor teraz hovorí 8 jazykmi: angličtina, španielčina, nemčina, francúzština, taliančina, portugalčina, švédčina a slovenčina. Veľká vďaka patrí @vaso73 za vybudovanie i18n základov.",
"nvidiaMultiGpu": "Životný cyklus NVIDIA driverov prechádza na vlastníctvo podľa presného BDF, takže multi-GPU hostiteľ môže odovzdať jednu kartu do VM a druhú nechať funkčnú v hostiteľovi alebo v LXC, plus výber verzie citlivý na kernel, vetvu a GPU (#298)."
"nvidiaMultiGpu": "Životný cyklus NVIDIA driverov prechádza na vlastníctvo podľa presného BDF, takže multi-GPU hostiteľ môže odovzdať jednu kartu do VM a druhú nechať funkčnú v hostiteľovi alebo v LXC, plus výber verzie citlivý na kernel, vetvu a GPU (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {
+20 -3
View File
@@ -1164,6 +1164,16 @@
"targetApp": "Tillämpningen",
"targetBoth": "OS + applikation",
"lastRun": "Senaste körningen: {date}",
"rebootRequired": "En omstart krävs för att slutföra uppdateringen.",
"rebootPackages": "Paket: {packages}",
"viewLog": "Visa logg",
"logTitle": "Uppdateringslogg",
"logDescription": "Utdata från den senaste schemalagda uppdateringen av {name} (LXC {vmid}).",
"logLoading": "Läser in loggen…",
"logEmpty": "Den här körningen gav ingen utdata.",
"logFailed": "Det gick inte att läsa in uppdateringsloggen.",
"logTruncated": "Endast slutet av loggen visas eftersom den överskrider visningsgränsen.",
"closeLog": "Stäng",
"runSuccess": "✓ framgång",
"runPartial": "delvis slutförd",
"runFailed": "✗ misslyckades",
@@ -1937,7 +1947,8 @@
"gemini": "En gratis nivå är tillgänglig, med ett bra förhållande mellan kvalitet och pris.",
"ollama": "Använder modeller på din Ollama-server. Helt lokalt, privat och gratis att köra.",
"openrouter": "Tillgång till mer än 100 modeller via en API-nyckel."
}
},
"loadModelsFailed": "Kunde inte ladda modeller — kontrollera API-nyckeln eller endpoint-URL:en."
},
"telegramGuide": {
"title": "Installationsguide för Telegram bot",
@@ -2102,7 +2113,7 @@
"backupCodeHint": "Du kan också använda en reservkod (format: XXXX-XXXX)",
"backToLogin": "Tillbaka till inloggning",
"verifyCode": "Verifiera koden",
"version": "ProxMenux Monitor v1.2.5"
"version": "ProxMenux Monitor v1.2.6"
},
"account": {
"signedIn": "Inloggad",
@@ -3158,7 +3169,13 @@
"appsDashboard": "Ny huvudflik Apps — en enda startpunkt för varje webblänk på noden. LXC-registrerade appar och användardefinierade Custom Web Links delar samma rutnät med kategori-taggar, sökning och direktlänk till gästens modal.",
"lxcAppsUpdates": "App-fliken inuti varje LXC-modal registrerar installerade appar, fångar webblänkar och spårar uppströmsversioner. Omarbetad Updates-flik applicerar OS-paket och appuppdateringar med en enda knapp; Docker Engine och per-image följer samma 24-timmarscykel med en 'Kontrollera nu'-åtgärd på begäran.",
"multilingual": "Monitorn talar nu 8 språk: engelska, spanska, tyska, franska, italienska, portugisiska, svenska och slovakiska. Ett stort tack till @vaso73 för att ha byggt i18n-grunden.",
"nvidiaMultiGpu": "NVIDIA-driverns livscykel går över till ägarskap per exakt BDF, så att en multi-GPU-värd kan skicka ett kort till en VM och behålla det andra operativt på värden eller i LXC, plus en versionsväljare som är medveten om kärna, gren och GPU (#298)."
"nvidiaMultiGpu": "NVIDIA-driverns livscykel går över till ägarskap per exakt BDF, så att en multi-GPU-värd kan skicka ett kort till en VM och behålla det andra operativt på värden eller i LXC, plus en versionsväljare som är medveten om kärna, gren och GPU (#298).",
"aiCustomEndpoint": "AI Assistant custom OpenAI endpoint — LiteLLM, LM Studio, LocalAI, vLLM, OmniRoute and any self-hosted proxy on private IPs, loopback or Docker networks are recognised when loading the model catalogue. The dropdown surfaces the server's error (or the underlying network reason) directly under the Load button (#325, reported by @jorgeffonte).",
"secureGatewayArch": "Secure Gateway wizard — the Alpine template download, local template selection and pct create all match the host's real architecture, so x86_64 hosts receive amd64 containers and arm64 hosts receive arm64 containers (#324, reported by @N0X4DD0).",
"atomicNotifications": "Notification events reserve their deduplication fingerprint atomically before AI processing and channel delivery, so concurrent collectors, completion callbacks or parallel Monitor processes cannot send the same event twice. The reservation is released when no channel succeeds, preserving retries.",
"borgSshPort": "Borg remote target — the Add Borg destination dialog and the shell TUI accept a custom SSH port. BORG_RSH, the auto key install flow and the capacity probe all honour it. Fully backwards compatible with existing entries created without an explicit port (suggested by @songochain in discussion #236).",
"githubToken": "Settings → GitHub API accepts an optional personal access token for release and tag checks when the anonymous quota is exhausted. The token is encrypted at rest and never returned to the browser; the rate-limit error is translated in every Monitor language (suggested by @SystemIdleProcess in discussion #306).",
"replicationContext": "Native Proxmox replication failure notifications resolve the replication job ID, affected VM/LXC ID and guest name; the exact error block from Proxmox is preserved as the reason, and each replication job deduplicates independently (reported by Ale R.)."
}
},
"network": {