diff --git a/addons/pikvm/ui/src/addon.jsx b/addons/pikvm/ui/src/addon.jsx index 5c68bbb467..4e50a2457f 100644 --- a/addons/pikvm/ui/src/addon.jsx +++ b/addons/pikvm/ui/src/addon.jsx @@ -7,14 +7,24 @@ import Icon from '../../../internal/host-compat/src/components/Icon' import ConnectorPage from '../../../internal/connector-ui/src/ConnectorPage' import { connectorsApi } from '../../../internal/connector-ui/src/api' import { Field, Notice, RadioCards, TextInput } from '../../../internal/connector-ui/src/controls' +import { pageLocale } from '../../../internal/connector-ui/src/connector' import en from './i18n/pikvm.en.json' +import it from './i18n/pikvm.it.json' +import es from './i18n/pikvm.es.json' +import de from './i18n/pikvm.de.json' +import fr from './i18n/pikvm.fr.json' +import zh from './i18n/pikvm.zh-CN.json' +import id from './i18n/pikvm.id.json' +import ko from './i18n/pikvm.ko.json' +import pt from './i18n/pikvm.pt-BR.json' import SettingsEditor from './SettingsEditor' import ProposalCard from './ProposalCard' import { addressProblem, checkFailure, checkItem, credentialProblem, extraBody, extraForm, extraValid, followName, needsPinHint, pikvmSecret, WRITE_MODES, writeModeOf } from './pikvm' import { finishTest, resultOf, startTest, subscribe } from './results' import './pikvm.css' -registerLocales({ pikvm: { en } }) +// The words of the page, in every language of the web UI; a key a language lacks reads in English. +registerLocales({ pikvm: { en, it, es, de, fr, 'zh-CN': zh, id, ko, 'pt-BR': pt } }) // The user and the password of the device. They are typed only to replace the // saved pair, and the pair is sealed as one credential. @@ -121,7 +131,7 @@ function Checks({ c, t }) { ))} - {r.at > 0 &&

{t('check.at', { time: new Date(r.at).toLocaleTimeString() })}

} + {r.at > 0 &&

{t('check.at', { time: new Date(r.at).toLocaleTimeString(pageLocale()) })}

} ) } diff --git a/addons/pikvm/ui/src/i18n/pikvm.de.json b/addons/pikvm/ui/src/i18n/pikvm.de.json new file mode 100644 index 0000000000..aeff32f3de --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.de.json @@ -0,0 +1,134 @@ +{ + "name": "Name", + "agent": "Agent", + "agentNone": "Agent wählen", + "agentCredentialsOnly": "Kein Agent (nur Zugangsdaten)", + "agentOptionalHint": "Optional. Ohne Agent hält diese Verbindung nur das Token, die Adresse und den Schreibmodus für deine Chats. Sie beantwortet keine Nachrichten und hört auf nichts.", + "credentialsOnly": "Nur Zugangsdaten", + "agentNoModel": "{{name}} (braucht ein Modell)", + "test": "Test", + "save": "Speichern", + "cancel": "Abbrechen", + "editButton": "Bearbeiten", + "delete": "Löschen", + "agentOf": "Agent: {{name}}", + "inactive": "Läuft nicht: {{reason}}.", + "title": "PiKVM", + "intro": "Lass deine Chats und Agenten einen PiKVM und den Rechner prüfen, den er steuert. Wenn du es erlaubst, können sie auch seine Power-Tasten drücken und seine Tastatur nutzen, und eine Person bestätigt jede dieser Aktionen.", + "limits": "Ein Agent, der an einem echten Rechner eine Power-Taste drücken oder tippen kann, kann Arbeit verlieren oder Befehle ausführen. Jede Aktion wartet auf deine Bestätigung. Tippen und die harten Power-Aktionen sind aus, bis ein Administrator sie unten einschaltet. Ein PiKVM kennt keine Nutzerrechte: Jeder Nutzer, den er kennt, kann alles, daher sind die Limits dieses Add-ons die einzigen.", + "new": "Neue PiKVM-Verbindung", + "edit": "PiKVM-Verbindung bearbeiten", + "user": "PiKVM-Benutzername", + "userHelp": "Ein eigener Nutzer für LocalAI, damit du ihn später entfernen kannst, ohne dein eigenes Login anzufassen. Er wird zusammen mit dem Passwort versiegelt gespeichert und nie wieder angezeigt.", + "passwd": "Passwort", + "passwdHelp": "Das Passwort dieses Nutzers. Ein PiKVM mit aktivierter Zwei-Faktor-Anmeldung (2FA) wird noch nicht unterstützt. Der Nutzer und das Passwort werden zusammen als user:password gespeichert, am ersten Doppelpunkt getrennt.", + "credSaved": "Gespeichert. Gib beides ein, um es zu ersetzen.", + "userMissing": "Gib auch den Benutzernamen ein.", + "passMissing": "Gib auch das Passwort ein.", + "userColon": "Ein Benutzername enthält keinen Doppelpunkt. Das Passwort darf Doppelpunkte enthalten.", + "credControl": "Der Nutzer und das Passwort enthalten keine Steuerzeichen.", + "credSpace": "Entferne die Leerzeichen vor und nach dem Nutzer oder dem Passwort.", + "credLong": "Der Nutzer und das Passwort sind zu lang.", + "address": "Adresse deines PiKVM", + "addressHelp": "Die Adresse, unter der du den PiKVM im Browser öffnest, zum Beispiel https://pikvm.local. Für sein selbstsigniertes Zertifikat füge den Pin hinzu: https://pikvm.local#sha256=<64 hex digits>. Eine Verbindung ist ein Gerät. Jede andere Adresse wird abgelehnt.", + "addressShape": "Das ist keine Adresse. Schreibe sie als https://name oder https://name#sha256=...", + "addressHttp": "Einfaches http wird nur für eine Adresse in deinem eigenen Netzwerk akzeptiert. Nutze für alles andere https.", + "pinShape": "Der Fingerabdruck besteht aus 64 Hexadezimalziffern (SHA-256), mit oder ohne Doppelpunkte.", + "pinHttp": "Ein Fingerabdruck gehört zu einer https-Adresse.", + "pinHint": "Ein PiKVM hat normalerweise ein selbstsigniertes Zertifikat. Ohne fixierten Fingerabdruck meldet der Test, dass dem Zertifikat nicht vertraut wird. Füge #sha256= und den Fingerabdruck an die Adresse an.", + "testOk": "Das Login ist gespeichert.", + "checkFailed": "Gespeichert. Die Prüfung des Logins ist fehlgeschlagen: {{reason}}", + "checkSeveral": "Die Prüfung des Geräts läuft, wenn du genau eine PiKVM-Verbindung hast, denn eine Prüfung von dieser Seite aus kann nicht erkennen, welche du meinst. Aktiviere die Verbindungen in einem Chat im Menü Werkzeuge.", + "empty": "Noch keine PiKVM-Verbindungen.", + "noAddress": "Keine Adresse: Diese Verbindung erreicht nichts.", + "addressOf": "Adresse: {{address}}", + "confirmDelete": { + "title": "{{name}} löschen?", + "message": "Deine Chats erreichen dieses Gerät nicht mehr, und der mit der Verbindung gespeicherte Nutzer samt Passwort wird gelöscht. Um sie erneut einzurichten, musst du beides noch einmal eingeben.", + "confirm": "Löschen" + }, + "check": { + "title": "Prüfung von {{name}}", + "running": "Dein PiKVM wird geprüft...", + "at": "Geprüft um {{time}}", + "ok": "Erreichbar. {{model}}, kvmd {{version}}.", + "refused": "Der PiKVM hat diesen Benutzernamen oder dieses Passwort abgelehnt. Ist 2FA für das Gerät aktiv, wird es nicht unterstützt.", + "certificate": "Dem Zertifikat wird nicht vertraut. Fixiere seinen Fingerabdruck in der Adresse.", + "failed": "Die Prüfung wurde nicht abgeschlossen. Prüfe die Adresse und versuche es gleich noch einmal." + }, + "setup": { + "title": "So richtest du es ein", + "step1": "Lege auf dem PiKVM einen eigenen Nutzer an (rw, dann kvmd-htpasswd add , dann ro). Der PiKVM kennt keine Rechte pro Nutzer, daher kann dieser Nutzer alles: Sein Nutzen ist, dass du ihn einzeln entfernen kannst.", + "step2": "Schreibe die Adresse, unter der du den PiKVM öffnest, plus den Pin seines selbstsignierten Zertifikats: https://pikvm.local#sha256=.", + "step3": "Gib hier den Benutzernamen und das Passwort ein. Sie werden zusammen versiegelt und nie wieder angezeigt.", + "step4": "Lass den Schreibmodus auf Nur lesen, bis du die Limits auf dieser Seite gelesen hast. Schalte Tippen oder harte Power-Aktionen dann nur für die Geräte ein, die sie brauchen.", + "tls": "Den Fingerabdruck erhältst du mit: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. Das Add-on akzeptiert dann dieses eine Zertifikat für diese eine Adresse und schaltet die Prüfung nie ab.", + "twofa": "Ein PiKVM mit aktivierter Zwei-Faktor-Anmeldung (2FA) wird in dieser Version nicht unterstützt, weil sich der Einmalcode alle 30 Sekunden ändert. Schalte 2FA für dieses Gerät aus oder lass es weg." + }, + "writeMode": { + "label": "Was der Agent mit diesem Gerät tun darf", + "hint": "Den Zustand lesen ist immer erlaubt. Jede Aktion bestätigst du, egal was du wählst.", + "off": "Nur lesen", + "propose": "Fragt dich zuerst", + "line": { + "off": "Er kann nur lesen.", + "propose": "Jede Aktion wartet auf dein OK." + }, + "note": { + "off": "Schreibzugriff ist aus: Diese Verbindung liest nur den Zustand.", + "propose": "Jede Power-Aktion, jeder Text und jeder Tastendruck wartet in deinen Freigaben, bis du ihn bestätigst. Tippen und harte Power-Aktionen brauchen zusätzlich den Schalter unten." + }, + "row": { + "off": "Nur lesen", + "propose": "Fragt dich zuerst" + } + }, + "settings": { + "title": "Tippen und harte Power-Aktionen", + "loading": "Die Schalter werden geladen...", + "loadFailed": "Die Schalter konnten nicht geladen werden.", + "saveFailed": "Die Schalter konnten nicht gespeichert werden.", + "intro": "Diese Schalter gelten pro Gerät und für jeden Nutzer dieses Servers. Sie sind aus, bis ein Administrator sie ändert.", + "physicalTitle": "Physische Wirkung.", + "physical": "Eine Power-Aktion kann ungespeicherte Arbeit verlieren. Tippen und Tastendrücke gehen an das, was auf dem Rechner den Fokus hat: eine Shell, ein BIOS-Menü, ein Anmeldebildschirm. Eine Person bestätigt jede Aktion und sieht den genauen Text oder die genauen Tasten.", + "readOnly": "Nur ein Administrator kann diese Schalter ändern.", + "broken": "Die gespeicherten Schalter konnten nicht gelesen werden, daher gilt alles als aus. Speichere sie erneut, um sie zu reparieren.", + "none": "Füge eine PiKVM-Verbindung hinzu, um ihre Schalter zu setzen.", + "typing": "Tippen und Tastendrücke erlauben", + "typingHint": "Erlaubt einem Chat, darum zu bitten, Text zu tippen und Tasten zu drücken. Jede Anfrage wartet weiterhin auf deine Bestätigung.", + "maxChars": "Längster Text", + "maxCharsHint": "Zeichen in einem getippten Text. Standard {{default}}, höchstens 1000.", + "maxCharsShape": "Gib eine ganze Zahl von 1 bis 1000 ein.", + "hard": "Harte Power-Aktionen erlauben", + "hardHint": "Erlaubt einem Chat, ein erzwungenes Ausschalten, einen Hardware-Reset oder ein langes Drücken der Power-Taste anzufordern. Jede Anfrage wartet weiterhin auf deine Bestätigung.", + "save": "Schalter speichern", + "saved": "Gespeichert. Der nächste Aufruf nutzt die neuen Schalter.", + "neverTitle": "Nie verfügbar", + "never": "Keine Bildschirmaufnahme, keine Disk-Images, kein GPIO, keine Maus und keine Änderung an den Nutzern oder den Einstellungen des Geräts. Das Add-on lehnt Text ab, der wie ein privater Schlüssel, ein Token oder eine Passwortliste aussieht.", + "keys": "Tasten, die ein Chat drücken darf: {{keys}}. Keine Windows- oder Meta-Kombinationen." + }, + "approval": { + "titlePower": "PiKVM-Power: {{action}}", + "titleText": "PiKVM: {{count}} Zeichen tippen", + "titleKeys": "PiKVM: {{count}} Taste(n) drücken", + "physical": "Das wirkt auf einen echten Rechner, sobald du bestätigst.", + "device": "Gerät", + "as": "Als", + "asOne": "Die Verbindung {{name}}", + "asFirst": "Die erste Verbindung, die diese Adresse auflistet", + "asUnknown": "Eine PiKVM-Verbindung für diese Adresse", + "now": "Power jetzt", + "power": { + "on": "An", + "off": "Aus", + "unknown": "Unbekannt" + }, + "what": "Was passiert", + "hard": "Das ist eine harte Aktion: Ungespeicherte Arbeit geht verloren.", + "text": "Zu tippender Text", + "counts": "{{chars}} Zeichen, {{lines}} Zeile(n)", + "typeEffect": "Der Text wird auf der Tastatur des Rechners getippt, in das, was gerade den Fokus hat. Ein Zeilenumbruch drückt Enter.", + "keys": "Tasten, der Reihe nach", + "keysEffect": "Die Tasten werden in dieser Reihenfolge auf der Tastatur des Rechners gedrückt." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.es.json b/addons/pikvm/ui/src/i18n/pikvm.es.json new file mode 100644 index 0000000000..622a24c338 --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.es.json @@ -0,0 +1,134 @@ +{ + "name": "Nombre", + "agent": "Agente", + "agentNone": "Elige un agente", + "agentCredentialsOnly": "Sin agente (solo credenciales)", + "agentOptionalHint": "Opcional. Sin agente, esta conexión solo guarda el token, la dirección y el modo de escritura para tus chats. No responde a ningún mensaje y no escucha nada.", + "credentialsOnly": "Solo credenciales", + "agentNoModel": "{{name}} (necesita un modelo)", + "test": "Probar", + "save": "Guardar", + "cancel": "Cancelar", + "editButton": "Editar", + "delete": "Eliminar", + "agentOf": "Agente: {{name}}", + "inactive": "No se está ejecutando: {{reason}}.", + "title": "PiKVM", + "intro": "Deja que tus chats y agentes revisen un PiKVM y la máquina que controla. Si lo permites, también pueden pulsar sus botones de encendido y usar su teclado, y una persona confirma cada una de esas acciones.", + "limits": "Un agente que puede pulsar un botón de encendido o escribir en una máquina real puede perder trabajo o ejecutar comandos. Cada acción espera tu confirmación. Escribir y las acciones de apagado forzado están desactivadas hasta que un administrador las active, abajo. Un PiKVM no tiene derechos por usuario: cualquier usuario que conozca puede hacerlo todo, así que los límites de este complemento son los únicos.", + "new": "Nueva conexión de PiKVM", + "edit": "Editar conexión de PiKVM", + "user": "Nombre de usuario de PiKVM", + "userHelp": "Un usuario dedicado a LocalAI, para poder quitarlo después sin tocar tu propio acceso. Se guarda cifrado junto con la contraseña y no se vuelve a mostrar.", + "passwd": "Contraseña", + "passwdHelp": "La contraseña de ese usuario. Un PiKVM con inicio de sesión en dos pasos (2FA) activado aún no es compatible. El usuario y la contraseña se guardan juntos como usuario:contraseña, separados en los primeros dos puntos.", + "credSaved": "Guardado. Escribe ambos para reemplazarlos.", + "userMissing": "Escribe también el nombre de usuario.", + "passMissing": "Escribe también la contraseña.", + "userColon": "Un nombre de usuario no lleva dos puntos. La contraseña sí puede llevarlos.", + "credControl": "El usuario y la contraseña no llevan caracteres de control.", + "credSpace": "Quita los espacios alrededor del usuario o de la contraseña.", + "credLong": "El usuario y la contraseña son demasiado largos.", + "address": "Dirección de tu PiKVM", + "addressHelp": "Donde abres el PiKVM en un navegador, por ejemplo https://pikvm.local. Para su certificado autofirmado añade la huella fijada: https://pikvm.local#sha256=<64 dígitos hexadecimales>. Una conexión es un dispositivo. Cualquier otra dirección se rechaza.", + "addressShape": "Esto no es una dirección. Escríbela como https://nombre o https://nombre#sha256=...", + "addressHttp": "http sin cifrar solo se acepta para una dirección de tu propia red. Usa https para cualquier otra.", + "pinShape": "La huella son 64 dígitos hexadecimales (SHA-256), con o sin dos puntos.", + "pinHttp": "Una huella va con una dirección https.", + "pinHint": "Un PiKVM normalmente tiene un certificado autofirmado. Sin una huella fijada, la prueba dirá que el certificado no es de confianza. Añade #sha256= y la huella a la dirección.", + "testOk": "El inicio de sesión está guardado.", + "checkFailed": "Guardado. Falló la comprobación del inicio de sesión: {{reason}}", + "checkSeveral": "La comprobación del dispositivo se ejecuta cuando tienes una sola conexión de PiKVM, porque una comprobación desde esta página no puede saber a cuál te refieres. En un chat, activa las conexiones en el menú Herramientas.", + "empty": "Aún no hay conexiones de PiKVM.", + "noAddress": "Sin dirección: esta conexión no llega a nada.", + "addressOf": "Dirección: {{address}}", + "confirmDelete": { + "title": "¿Eliminar {{name}}?", + "message": "Tus chats ya no pueden acceder a este dispositivo y se eliminan el usuario y la contraseña guardados con la conexión. Para configurarla de nuevo tendrás que volver a introducirlos.", + "confirm": "Eliminar" + }, + "check": { + "title": "Comprobación de {{name}}", + "running": "Comprobando tu PiKVM...", + "at": "Comprobado a las {{time}}", + "ok": "Accesible. {{model}}, kvmd {{version}}.", + "refused": "El PiKVM rechazó este nombre de usuario o contraseña. Si el 2FA está activado en el dispositivo, no es compatible.", + "certificate": "El certificado no es de confianza. Fija su huella en la dirección.", + "failed": "La comprobación no terminó. Revisa la dirección e inténtalo de nuevo en un momento." + }, + "setup": { + "title": "Cómo configurarlo", + "step1": "En el PiKVM, añade un usuario dedicado (rw, luego kvmd-htpasswd add , luego ro). El PiKVM no tiene derechos por usuario, así que este usuario puede hacerlo todo: su utilidad es que puedes quitarlo por separado.", + "step2": "Escribe la dirección con la que abres el PiKVM, más la huella fijada de su certificado autofirmado: https://pikvm.local#sha256=.", + "step3": "Escribe aquí el nombre de usuario y la contraseña. Se guardan cifrados juntos y no se vuelven a mostrar.", + "step4": "Deja el modo de escritura en Solo lectura hasta que hayas leído los límites de esta página. Luego activa escribir o las acciones de apagado forzado solo para los dispositivos que las necesiten.", + "tls": "Obtén la huella con: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. El complemento acepta entonces ese certificado para esa dirección y nunca desactiva la verificación.", + "twofa": "Un PiKVM con inicio de sesión en dos pasos (2FA) activado no es compatible en esta versión, porque el código de un solo uso cambia cada 30 segundos. Desactiva el 2FA en este dispositivo, o déjalo fuera." + }, + "writeMode": { + "label": "Qué puede hacer el agente con este dispositivo", + "hint": "Leer el estado siempre está permitido. Cada acción la confirmas tú, elijas lo que elijas.", + "off": "Solo lectura", + "propose": "Te pregunta antes", + "line": { + "off": "Solo puede leer.", + "propose": "Cada acción espera tu visto bueno." + }, + "note": { + "off": "El acceso de escritura está desactivado: esta conexión solo lee el estado.", + "propose": "Cada acción de encendido, texto y pulsación de tecla espera en tus aprobaciones hasta que la confirmes. Escribir y las acciones de apagado forzado también necesitan el interruptor de abajo." + }, + "row": { + "off": "Solo lectura", + "propose": "Te pregunta antes" + } + }, + "settings": { + "title": "Escribir y acciones de apagado forzado", + "loading": "Cargando los interruptores...", + "loadFailed": "No se pudieron cargar los interruptores.", + "saveFailed": "No se pudieron guardar los interruptores.", + "intro": "Estos interruptores se guardan por dispositivo y se aplican a todos los usuarios de este servidor. Están desactivados hasta que un administrador los cambie.", + "physicalTitle": "Efectos físicos.", + "physical": "Una acción de encendido puede hacer perder trabajo sin guardar. Lo que se escribe y las teclas pulsadas van a lo que tenga el foco en la máquina: un shell, un menú de BIOS, una pantalla de inicio de sesión. Una persona confirma cada una y ve el texto o las teclas exactos.", + "readOnly": "Solo un administrador puede cambiar estos interruptores.", + "broken": "No se pudieron leer los interruptores guardados, así que todo se trata como desactivado. Guárdalos de nuevo para repararlos.", + "none": "Añade una conexión de PiKVM para configurar sus interruptores.", + "typing": "Permitir escribir y pulsar teclas", + "typingHint": "Permite que un chat pida escribir texto y pulsar teclas. Cada petición sigue esperando tu confirmación.", + "maxChars": "Texto más largo", + "maxCharsHint": "Caracteres en un texto escrito. Por defecto {{default}}, como máximo 1000.", + "maxCharsShape": "Introduce un número entero del 1 al 1000.", + "hard": "Permitir acciones de apagado forzado", + "hardHint": "Permite que un chat pida un apagado forzado, un reinicio por hardware o una pulsación larga del botón de encendido. Cada petición sigue esperando tu confirmación.", + "save": "Guardar interruptores", + "saved": "Guardado. La próxima llamada usa los interruptores nuevos.", + "neverTitle": "Nunca disponible", + "never": "Ni captura de pantalla, ni imágenes de disco, ni GPIO, ni ratón, ni cambios en los usuarios o en los ajustes del dispositivo. El complemento rechaza el texto que parezca una clave privada, un token o una lista de contraseñas.", + "keys": "Teclas que un chat puede pulsar: {{keys}}. Sin combinaciones con Windows o Meta." + }, + "approval": { + "titlePower": "Encendido del PiKVM: {{action}}", + "titleText": "PiKVM: escribir {{count}} caracteres", + "titleKeys": "PiKVM: pulsar {{count}} tecla(s)", + "physical": "Esto actúa sobre una máquina real en cuanto lo confirmes.", + "device": "Dispositivo", + "as": "Como", + "asOne": "La conexión {{name}}", + "asFirst": "La primera conexión que incluye esta dirección", + "asUnknown": "Una conexión de PiKVM para esta dirección", + "now": "Encendido ahora", + "power": { + "on": "Encendido", + "off": "Apagado", + "unknown": "Desconocido" + }, + "what": "Qué ocurre", + "hard": "Esta es una acción forzada: se pierde el trabajo sin guardar.", + "text": "Texto a escribir", + "counts": "{{chars}} caracteres, {{lines}} línea(s)", + "typeEffect": "El texto se escribe en el teclado de la máquina, en lo que tenga el foco. Un salto de línea pulsa Enter.", + "keys": "Teclas, en orden", + "keysEffect": "Las teclas se pulsan en este orden en el teclado de la máquina." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.fr.json b/addons/pikvm/ui/src/i18n/pikvm.fr.json new file mode 100644 index 0000000000..b0f0ffdce1 --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.fr.json @@ -0,0 +1,134 @@ +{ + "name": "Nom", + "agent": "Agent", + "agentNone": "Choisir un agent", + "agentCredentialsOnly": "Aucun agent (identifiants uniquement)", + "agentOptionalHint": "Facultatif. Sans agent, cette connexion ne garde que le jeton, l’adresse et le mode d’écriture pour vos chats. Elle ne répond à aucun message et n’écoute rien.", + "credentialsOnly": "Identifiants uniquement", + "agentNoModel": "{{name}} (a besoin d’un modèle)", + "test": "Tester", + "save": "Enregistrer", + "cancel": "Annuler", + "editButton": "Modifier", + "delete": "Supprimer", + "agentOf": "Agent : {{name}}", + "inactive": "À l’arrêt : {{reason}}.", + "title": "PiKVM", + "intro": "Laissez vos chats et vos agents examiner un PiKVM et la machine qu’il pilote. Si vous l’autorisez, ils peuvent aussi appuyer sur ses boutons d’alimentation et utiliser son clavier, et une personne confirme chacune de ces actions.", + "limits": "Un agent qui peut appuyer sur un bouton d’alimentation ou taper sur une vraie machine peut faire perdre du travail ou lancer des commandes. Chaque action attend votre confirmation. La saisie et les actions d’alimentation forcées sont désactivées tant qu’un administrateur ne les active pas, plus bas. Un PiKVM n’a pas de droits par utilisateur : tout utilisateur qu’il connaît peut tout faire, donc les limites de cet add-on sont les seules.", + "new": "Nouvelle connexion PiKVM", + "edit": "Modifier la connexion PiKVM", + "user": "Nom d’utilisateur PiKVM", + "userHelp": "Un utilisateur dédié à LocalAI, pour pouvoir le supprimer plus tard sans toucher à votre propre identifiant. Il est conservé scellé avec le mot de passe et n’est plus jamais affiché.", + "passwd": "Mot de passe", + "passwdHelp": "Le mot de passe de cet utilisateur. Un PiKVM dont la connexion en deux étapes (2FA) est activée n’est pas encore pris en charge. L’utilisateur et le mot de passe sont enregistrés ensemble sous la forme user:password, séparés au premier deux-points.", + "credSaved": "Enregistré. Saisissez les deux pour les remplacer.", + "userMissing": "Saisissez aussi le nom d’utilisateur.", + "passMissing": "Saisissez aussi le mot de passe.", + "userColon": "Un nom d’utilisateur ne contient pas de deux-points. Le mot de passe peut en contenir.", + "credControl": "L’utilisateur et le mot de passe ne contiennent pas de caractères de contrôle.", + "credSpace": "Supprimez les espaces autour de l’utilisateur ou du mot de passe.", + "credLong": "L’utilisateur et le mot de passe sont trop longs.", + "address": "Adresse de votre PiKVM", + "addressHelp": "L’adresse avec laquelle vous ouvrez le PiKVM dans un navigateur, par exemple https://pikvm.local. Pour son certificat auto-signé, ajoutez l’épingle : https://pikvm.local#sha256=<64 chiffres hexadécimaux>. Une connexion correspond à un appareil. Toute autre adresse est refusée.", + "addressShape": "Ce n’est pas une adresse. Écrivez-la sous la forme https://nom ou https://nom#sha256=...", + "addressHttp": "Le http simple n’est accepté que pour une adresse de votre propre réseau. Utilisez https pour toute autre.", + "pinShape": "L’empreinte est composée de 64 chiffres hexadécimaux (SHA-256), avec ou sans deux-points.", + "pinHttp": "Une empreinte va avec une adresse https.", + "pinHint": "Un PiKVM a normalement un certificat auto-signé. Sans épingle d’empreinte, le Test indiquera que le certificat n’est pas approuvé. Ajoutez #sha256= et l’empreinte à l’adresse.", + "testOk": "L’identifiant est enregistré.", + "checkFailed": "Enregistré. La vérification de l’identifiant a échoué : {{reason}}", + "checkSeveral": "La vérification de l’appareil s’exécute lorsque vous avez une seule connexion PiKVM, car une vérification lancée depuis cette page ne peut pas savoir laquelle vous voulez. Dans un chat, activez les connexions dans le menu Outils.", + "empty": "Aucune connexion PiKVM pour le moment.", + "noAddress": "Aucune adresse : cette connexion n’atteint rien.", + "addressOf": "Adresse : {{address}}", + "confirmDelete": { + "title": "Supprimer {{name}} ?", + "message": "Vos chats ne peuvent plus atteindre cet appareil, et l’utilisateur et le mot de passe enregistrés avec la connexion sont supprimés. Pour la reconfigurer, vous devrez les saisir de nouveau.", + "confirm": "Supprimer" + }, + "check": { + "title": "Vérification de {{name}}", + "running": "Vérification de votre PiKVM...", + "at": "Vérifié à {{time}}", + "ok": "Joignable. {{model}}, kvmd {{version}}.", + "refused": "Le PiKVM a refusé ce nom d’utilisateur ou ce mot de passe. Si la 2FA est activée sur l’appareil, elle n’est pas prise en charge.", + "certificate": "Le certificat n’est pas approuvé. Épinglez son empreinte dans l’adresse.", + "failed": "La vérification n’a pas abouti. Contrôlez l’adresse et réessayez dans un instant." + }, + "setup": { + "title": "Comment le configurer", + "step1": "Sur le PiKVM, ajoutez un utilisateur dédié (rw, puis kvmd-htpasswd add , puis ro). Le PiKVM n’a pas de droits par utilisateur, donc cet utilisateur peut tout faire : son intérêt est que vous pouvez le supprimer seul.", + "step2": "Écrivez l’adresse avec laquelle vous ouvrez le PiKVM, plus l’épingle de son certificat auto-signé : https://pikvm.local#sha256=.", + "step3": "Saisissez ici le nom d’utilisateur et le mot de passe. Ils sont scellés ensemble et ne sont plus jamais affichés.", + "step4": "Laissez le mode d’écriture sur Lecture seule tant que vous n’avez pas lu les limites de cette page. Activez ensuite la saisie ou les actions d’alimentation forcées uniquement pour les appareils qui en ont besoin.", + "tls": "Obtenez l’empreinte avec : openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. L’add-on accepte alors ce certificat pour cette adresse uniquement et ne désactive jamais la vérification.", + "twofa": "Un PiKVM dont la connexion en deux étapes (2FA) est activée n’est pas pris en charge dans cette version, car le code à usage unique change toutes les 30 secondes. Désactivez la 2FA pour cet appareil, ou ne l’utilisez pas." + }, + "writeMode": { + "label": "Ce que l’agent peut faire avec cet appareil", + "hint": "La lecture de l’état est toujours autorisée. Chaque action est confirmée par vous, quel que soit votre choix.", + "off": "Lecture seule", + "propose": "Vous demande d’abord", + "line": { + "off": "Il peut seulement lire.", + "propose": "Chaque action attend votre accord." + }, + "note": { + "off": "L’accès en écriture est désactivé : cette connexion ne fait que lire l’état.", + "propose": "Chaque action d’alimentation, saisie de texte et appui de touche attend dans vos approbations jusqu’à votre confirmation. La saisie et les actions d’alimentation forcées exigent aussi l’interrupteur ci-dessous." + }, + "row": { + "off": "Lecture seule", + "propose": "Vous demande d’abord" + } + }, + "settings": { + "title": "Saisie et actions d’alimentation forcées", + "loading": "Chargement des interrupteurs...", + "loadFailed": "Impossible de charger les interrupteurs.", + "saveFailed": "Impossible d’enregistrer les interrupteurs.", + "intro": "Ces interrupteurs sont conservés pour chaque appareil et s’appliquent à tous les utilisateurs de ce serveur. Ils sont désactivés tant qu’un administrateur ne les modifie pas.", + "physicalTitle": "Effets physiques.", + "physical": "Une action d’alimentation peut faire perdre du travail non enregistré. La saisie et les appuis de touches vont à ce qui a le focus sur la machine : un shell, un menu du BIOS, un écran de connexion. Une personne confirme chacune et voit le texte ou les touches exacts.", + "readOnly": "Seul un administrateur peut modifier ces interrupteurs.", + "broken": "Les interrupteurs enregistrés n’ont pas pu être lus, donc tout est considéré comme désactivé. Enregistrez-les de nouveau pour les réparer.", + "none": "Ajoutez une connexion PiKVM pour régler ses interrupteurs.", + "typing": "Autoriser la saisie et les appuis de touches", + "typingHint": "Permet à un chat de demander de taper du texte et d’appuyer sur des touches. Chaque demande attend toujours votre confirmation.", + "maxChars": "Texte le plus long", + "maxCharsHint": "Caractères dans un texte saisi. Par défaut {{default}}, au plus 1000.", + "maxCharsShape": "Saisissez un nombre entier de 1 à 1000.", + "hard": "Autoriser les actions d’alimentation forcées", + "hardHint": "Permet à un chat de demander un arrêt forcé, une réinitialisation matérielle ou un appui long sur le bouton d’alimentation. Chaque demande attend toujours votre confirmation.", + "save": "Enregistrer les interrupteurs", + "saved": "Enregistré. Le prochain appel utilise les nouveaux interrupteurs.", + "neverTitle": "Jamais disponible", + "never": "Pas de capture d’écran, pas d’images disque, pas de GPIO, pas de souris, et aucune modification des utilisateurs ou des réglages de l’appareil. L’add-on refuse le texte qui ressemble à une clé privée, à un jeton ou à une liste de mots de passe.", + "keys": "Touches qu’un chat peut presser : {{keys}}. Pas de combinaisons Windows ou Meta." + }, + "approval": { + "titlePower": "Alimentation PiKVM : {{action}}", + "titleText": "PiKVM : taper {{count}} caractères", + "titleKeys": "PiKVM : presser {{count}} touche(s)", + "physical": "Ceci agit sur une vraie machine dès que vous confirmez.", + "device": "Appareil", + "as": "Via", + "asOne": "La connexion {{name}}", + "asFirst": "La première connexion qui contient cette adresse", + "asUnknown": "Une connexion PiKVM pour cette adresse", + "now": "Alimentation actuelle", + "power": { + "on": "Allumé", + "off": "Éteint", + "unknown": "Inconnu" + }, + "what": "Ce qui se passe", + "hard": "C’est une action forcée : le travail non enregistré est perdu.", + "text": "Texte à taper", + "counts": "{{chars}} caractères, {{lines}} ligne(s)", + "typeEffect": "Le texte est tapé sur le clavier de la machine, dans ce qui a le focus. Un retour à la ligne appuie sur Enter.", + "keys": "Touches, dans l’ordre", + "keysEffect": "Les touches sont pressées dans cet ordre sur le clavier de la machine." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.id.json b/addons/pikvm/ui/src/i18n/pikvm.id.json new file mode 100644 index 0000000000..331852bd3b --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.id.json @@ -0,0 +1,134 @@ +{ + "name": "Nama", + "agent": "Agen", + "agentNone": "Pilih agen", + "agentCredentialsOnly": "Tanpa agen (hanya kredensial)", + "agentOptionalHint": "Opsional. Tanpa agen, koneksi ini hanya menyimpan token, alamat, dan mode tulis untuk chat Anda. Koneksi tidak menjawab pesan dan tidak mendengarkan apa pun.", + "credentialsOnly": "Hanya kredensial", + "agentNoModel": "{{name}} (perlu model)", + "test": "Uji", + "save": "Simpan", + "cancel": "Batal", + "editButton": "Ubah", + "delete": "Hapus", + "agentOf": "Agen: {{name}}", + "inactive": "Tidak berjalan: {{reason}}.", + "title": "PiKVM", + "intro": "Biarkan chat dan agen Anda memeriksa sebuah PiKVM dan mesin yang dikendalikannya. Jika Anda mengizinkan, mereka juga dapat menekan tombol daya dan memakai keyboard-nya, dan seseorang mengonfirmasi setiap tindakan itu.", + "limits": "Agen yang dapat menekan tombol daya atau mengetik di mesin sungguhan dapat menghilangkan pekerjaan atau menjalankan perintah. Setiap tindakan menunggu konfirmasi Anda. Mengetik dan tindakan daya paksa nonaktif sampai administrator mengaktifkannya, di bawah. PiKVM tidak punya hak pengguna: setiap pengguna yang dikenalnya dapat melakukan apa saja, jadi batas add-on ini adalah satu-satunya batas.", + "new": "Koneksi PiKVM baru", + "edit": "Ubah koneksi PiKVM", + "user": "Nama pengguna PiKVM", + "userHelp": "Pengguna khusus untuk LocalAI, agar Anda dapat menghapusnya nanti tanpa menyentuh login Anda sendiri. Disimpan terenkripsi bersama kata sandi dan tidak pernah ditampilkan lagi.", + "passwd": "Kata sandi", + "passwdHelp": "Kata sandi pengguna itu. PiKVM dengan login dua faktor (2FA) yang aktif belum didukung. Pengguna dan kata sandi disimpan bersama sebagai user:password, dipisah pada titik dua pertama.", + "credSaved": "Tersimpan. Ketik keduanya untuk menggantinya.", + "userMissing": "Ketik juga nama penggunanya.", + "passMissing": "Ketik juga kata sandinya.", + "userColon": "Nama pengguna tidak memiliki titik dua. Kata sandi boleh memilikinya.", + "credControl": "Pengguna dan kata sandi tidak memiliki karakter kontrol.", + "credSpace": "Hapus spasi di sekitar pengguna atau kata sandi.", + "credLong": "Pengguna dan kata sandi terlalu panjang.", + "address": "Alamat PiKVM Anda", + "addressHelp": "Tempat Anda membuka PiKVM di browser, misalnya https://pikvm.local. Untuk sertifikat self-signed-nya, tambahkan pin: https://pikvm.local#sha256=<64 digit heksadesimal>. Satu koneksi untuk satu perangkat. Alamat lain ditolak.", + "addressShape": "Ini bukan alamat. Tulis seperti https://nama atau https://nama#sha256=...", + "addressHttp": "http biasa hanya diterima untuk alamat di jaringan Anda sendiri. Gunakan https untuk yang lain.", + "pinShape": "Fingerprint terdiri dari 64 digit heksadesimal (SHA-256), dengan atau tanpa titik dua.", + "pinHttp": "Fingerprint dipakai bersama alamat https.", + "pinHint": "PiKVM biasanya memiliki sertifikat self-signed. Tanpa pin fingerprint, Uji akan menyebut sertifikat tidak tepercaya. Tambahkan #sha256= dan fingerprint-nya ke alamat.", + "testOk": "Login tersimpan.", + "checkFailed": "Tersimpan. Pemeriksaan login gagal: {{reason}}", + "checkSeveral": "Pemeriksaan perangkat berjalan jika Anda hanya punya satu koneksi PiKVM, karena pemeriksaan dari halaman ini tidak dapat tahu koneksi mana yang Anda maksud. Di chat, aktifkan koneksi lewat menu Alat.", + "empty": "Belum ada koneksi PiKVM.", + "noAddress": "Tanpa alamat: koneksi ini tidak menjangkau apa pun.", + "addressOf": "Alamat: {{address}}", + "confirmDelete": { + "title": "Hapus {{name}}?", + "message": "Chat Anda tidak dapat lagi menjangkau perangkat ini, dan pengguna serta kata sandi yang tersimpan bersamanya dihapus. Untuk menyiapkannya lagi, Anda harus memasukkannya lagi.", + "confirm": "Hapus" + }, + "check": { + "title": "Pemeriksaan {{name}}", + "running": "Memeriksa PiKVM Anda...", + "at": "Diperiksa pada {{time}}", + "ok": "Terjangkau. {{model}}, kvmd {{version}}.", + "refused": "PiKVM menolak nama pengguna atau kata sandi ini. Jika 2FA aktif di perangkat, itu belum didukung.", + "certificate": "Sertifikat tidak tepercaya. Sematkan fingerprint-nya di alamat.", + "failed": "Pemeriksaan tidak selesai. Periksa alamat dan coba lagi sebentar lagi." + }, + "setup": { + "title": "Cara menyiapkannya", + "step1": "Di PiKVM, tambahkan pengguna khusus (rw, lalu kvmd-htpasswd add , lalu ro). PiKVM tidak punya hak per pengguna, jadi pengguna ini dapat melakukan apa saja: gunanya agar Anda dapat menghapusnya sendiri.", + "step2": "Tulis alamat yang Anda pakai untuk membuka PiKVM, ditambah pin sertifikat self-signed-nya: https://pikvm.local#sha256=.", + "step3": "Ketik nama pengguna dan kata sandi di sini. Keduanya disimpan terenkripsi bersama dan tidak pernah ditampilkan lagi.", + "step4": "Biarkan mode tulis pada Hanya baca sampai Anda membaca batas di halaman ini. Lalu aktifkan mengetik atau tindakan daya paksa hanya untuk perangkat yang membutuhkannya.", + "tls": "Dapatkan fingerprint dengan: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. Add-on lalu menerima satu sertifikat itu untuk satu alamat itu dan tidak pernah mematikan verifikasi.", + "twofa": "PiKVM dengan login dua faktor (2FA) yang aktif belum didukung di versi ini, karena kode sekali pakai berubah setiap 30 detik. Matikan 2FA untuk perangkat ini, atau jangan sertakan." + }, + "writeMode": { + "label": "Apa yang boleh dilakukan agen pada perangkat ini", + "hint": "Membaca status selalu diizinkan. Setiap tindakan Anda konfirmasi, apa pun pilihan Anda.", + "off": "Hanya baca", + "propose": "Tanya Anda dulu", + "line": { + "off": "Agen hanya dapat membaca.", + "propose": "Setiap tindakan menunggu persetujuan Anda." + }, + "note": { + "off": "Akses tulis nonaktif: koneksi ini hanya membaca status.", + "propose": "Setiap tindakan daya, teks, dan penekanan tombol menunggu di persetujuan Anda sampai Anda mengonfirmasinya. Mengetik dan tindakan daya paksa juga memerlukan sakelar di bawah." + }, + "row": { + "off": "Hanya baca", + "propose": "Tanya Anda dulu" + } + }, + "settings": { + "title": "Mengetik dan tindakan daya paksa", + "loading": "Memuat sakelar...", + "loadFailed": "Sakelar tidak dapat dimuat.", + "saveFailed": "Sakelar tidak dapat disimpan.", + "intro": "Sakelar ini disimpan per perangkat dan berlaku untuk setiap pengguna server ini. Sakelar nonaktif sampai administrator mengubahnya.", + "physicalTitle": "Efek fisik.", + "physical": "Tindakan daya dapat menghilangkan pekerjaan yang belum disimpan. Ketikan dan penekanan tombol masuk ke apa pun yang sedang fokus di mesin: shell, menu BIOS, layar login. Seseorang mengonfirmasi masing-masing dan melihat teks atau tombol yang persis.", + "readOnly": "Hanya administrator yang dapat mengubah sakelar ini.", + "broken": "Sakelar yang tersimpan tidak dapat dibaca, jadi semuanya dianggap nonaktif. Simpan lagi untuk memperbaikinya.", + "none": "Tambahkan koneksi PiKVM untuk mengatur sakelarnya.", + "typing": "Izinkan mengetik dan menekan tombol", + "typingHint": "Memungkinkan chat meminta untuk mengetik teks dan menekan tombol. Setiap permintaan tetap menunggu konfirmasi Anda.", + "maxChars": "Teks terpanjang", + "maxCharsHint": "Karakter dalam satu teks yang diketik. Bawaan {{default}}, paling banyak 1000.", + "maxCharsShape": "Masukkan bilangan bulat dari 1 sampai 1000.", + "hard": "Izinkan tindakan daya paksa", + "hardHint": "Memungkinkan chat meminta pemadaman paksa, reset perangkat keras, atau penekanan lama tombol daya. Setiap permintaan tetap menunggu konfirmasi Anda.", + "save": "Simpan sakelar", + "saved": "Tersimpan. Panggilan berikutnya memakai sakelar baru.", + "neverTitle": "Tidak pernah tersedia", + "never": "Tidak ada tangkapan layar, tidak ada image disk, tidak ada GPIO, tidak ada mouse, dan tidak ada perubahan pada pengguna atau pengaturan perangkat. Add-on menolak teks yang tampak seperti kunci privat, token, atau daftar kata sandi.", + "keys": "Tombol yang boleh ditekan chat: {{keys}}. Tidak ada kombinasi Windows atau Meta." + }, + "approval": { + "titlePower": "Daya PiKVM: {{action}}", + "titleText": "PiKVM: ketik {{count}} karakter", + "titleKeys": "PiKVM: tekan {{count}} tombol", + "physical": "Ini bekerja pada mesin sungguhan segera setelah Anda mengonfirmasi.", + "device": "Perangkat", + "as": "Sebagai", + "asOne": "Koneksi {{name}}", + "asFirst": "Koneksi pertama yang mencantumkan alamat ini", + "asUnknown": "Koneksi PiKVM untuk alamat ini", + "now": "Daya sekarang", + "power": { + "on": "Hidup", + "off": "Mati", + "unknown": "Tidak diketahui" + }, + "what": "Yang terjadi", + "hard": "Ini tindakan paksa: pekerjaan yang belum disimpan hilang.", + "text": "Teks yang diketik", + "counts": "{{chars}} karakter, {{lines}} baris", + "typeEffect": "Teks diketik di keyboard mesin, ke apa pun yang sedang fokus. Baris baru menekan Enter.", + "keys": "Tombol, berurutan", + "keysEffect": "Tombol ditekan dalam urutan ini di keyboard mesin." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.it.json b/addons/pikvm/ui/src/i18n/pikvm.it.json new file mode 100644 index 0000000000..089cb256dc --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.it.json @@ -0,0 +1,134 @@ +{ + "name": "Nome", + "agent": "Agente", + "agentNone": "Scegli un agente", + "agentCredentialsOnly": "Nessun agente (solo credenziali)", + "agentOptionalHint": "Facoltativo. Senza un agente questa connessione conserva solo il token, l'indirizzo e la modalità di scrittura per le tue chat. Non risponde ad alcun messaggio e non resta in ascolto.", + "credentialsOnly": "Solo credenziali", + "agentNoModel": "{{name}} (serve un modello)", + "test": "Prova", + "save": "Salva", + "cancel": "Annulla", + "editButton": "Modifica", + "delete": "Elimina", + "agentOf": "Agente: {{name}}", + "inactive": "Non in esecuzione: {{reason}}.", + "title": "PiKVM", + "intro": "Permetti alle tue chat e ai tuoi agenti di controllare un PiKVM e la macchina che governa. Se lo consenti, possono anche premere i suoi pulsanti di accensione e usare la sua tastiera, e una persona conferma ognuna di queste azioni.", + "limits": "Un agente che può premere un pulsante di accensione o scrivere su una macchina reale può far perdere lavoro o eseguire comandi. Ogni azione aspetta la tua conferma. La digitazione e le azioni di alimentazione forzata sono disattivate finché un amministratore non le attiva, qui sotto. Un PiKVM non ha diritti per utente: qualsiasi utente che conosce può fare tutto, quindi i limiti di questo componente aggiuntivo sono gli unici.", + "new": "Nuova connessione PiKVM", + "edit": "Modifica la connessione PiKVM", + "user": "Nome utente del PiKVM", + "userHelp": "Un utente dedicato a LocalAI, così puoi rimuoverlo in seguito senza toccare il tuo accesso. Viene cifrato insieme alla password e non viene più mostrato.", + "passwd": "Password", + "passwdHelp": "La password di quell'utente. Un PiKVM con l'accesso a due fattori (2FA) attivo non è ancora supportato. Utente e password vengono salvati insieme come utente:password, divisi al primo due punti.", + "credSaved": "Salvato. Scrivili entrambi per sostituirli.", + "userMissing": "Scrivi anche il nome utente.", + "passMissing": "Scrivi anche la password.", + "userColon": "Un nome utente non contiene due punti. La password può contenerli.", + "credControl": "L'utente e la password non contengono caratteri di controllo.", + "credSpace": "Rimuovi gli spazi attorno all'utente o alla password.", + "credLong": "L'utente e la password sono troppo lunghi.", + "address": "Indirizzo del tuo PiKVM", + "addressHelp": "Dove apri il PiKVM in un browser, per esempio https://pikvm.local. Per il suo certificato autofirmato aggiungi l'impronta: https://pikvm.local#sha256=<64 cifre esadecimali>. Una connessione è un dispositivo. Ogni altro indirizzo viene rifiutato.", + "addressShape": "Questo non è un indirizzo. Scrivilo come https://nome oppure https://nome#sha256=...", + "addressHttp": "Il semplice http è accettato solo per un indirizzo della tua rete. Per tutto il resto usa https.", + "pinShape": "L'impronta è di 64 cifre esadecimali (SHA-256), con o senza due punti.", + "pinHttp": "Un'impronta va con un indirizzo https.", + "pinHint": "Un PiKVM ha di norma un certificato autofirmato. Senza l'impronta fissata, la prova dirà che il certificato non è attendibile. Aggiungi #sha256= e l'impronta all'indirizzo.", + "testOk": "L'accesso è salvato.", + "checkFailed": "Salvato. La verifica dell'accesso non è riuscita: {{reason}}", + "checkSeveral": "La verifica del dispositivo funziona quando hai una sola connessione PiKVM, perché da questa pagina non si capisce a quale ti riferisci. In una chat, attiva le connessioni nel menu Strumenti.", + "empty": "Ancora nessuna connessione PiKVM.", + "noAddress": "Nessun indirizzo: questa connessione non raggiunge nulla.", + "addressOf": "Indirizzo: {{address}}", + "confirmDelete": { + "title": "Eliminare {{name}}?", + "message": "Le tue chat non possono più raggiungere questo dispositivo e l'utente e la password salvati con la connessione vengono eliminati. Per configurarla di nuovo dovrai inserirli di nuovo.", + "confirm": "Elimina" + }, + "check": { + "title": "Verifica di {{name}}", + "running": "Verifica del tuo PiKVM...", + "at": "Verificato alle {{time}}", + "ok": "Raggiungibile. {{model}}, kvmd {{version}}.", + "refused": "Il PiKVM ha rifiutato questo nome utente o questa password. Se sul dispositivo è attivo il 2FA, non è supportato.", + "certificate": "Il certificato non è attendibile. Fissa la sua impronta nell'indirizzo.", + "failed": "La verifica non è terminata. Controlla l'indirizzo e riprova tra un momento." + }, + "setup": { + "title": "Come configurarlo", + "step1": "Sul PiKVM aggiungi un utente dedicato (rw, poi kvmd-htpasswd add , poi ro). Il PiKVM non ha diritti per utente, quindi questo utente può fare tutto: il suo scopo è che puoi rimuoverlo da solo.", + "step2": "Scrivi l'indirizzo con cui apri il PiKVM, più l'impronta del suo certificato autofirmato: https://pikvm.local#sha256=.", + "step3": "Scrivi qui il nome utente e la password. Vengono cifrati insieme e non vengono più mostrati.", + "step4": "Lascia la modalità di scrittura su Sola lettura finché non hai letto i limiti in questa pagina. Poi attiva la digitazione o le azioni di alimentazione forzata solo per i dispositivi che ne hanno bisogno.", + "tls": "Ottieni l'impronta con: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. Il componente aggiuntivo accetta allora quel solo certificato per quel solo indirizzo e non disattiva mai la verifica.", + "twofa": "Un PiKVM con l'accesso a due fattori (2FA) attivo non è supportato in questa versione, perché il codice monouso cambia ogni 30 secondi. Disattiva il 2FA per questo dispositivo, oppure lascialo fuori." + }, + "writeMode": { + "label": "Cosa può fare l'agente con questo dispositivo", + "hint": "Leggere lo stato è sempre consentito. Ogni azione la confermi tu, qualunque cosa scelga.", + "off": "Sola lettura", + "propose": "Chiede prima a te", + "line": { + "off": "Può solo leggere.", + "propose": "Ogni azione aspetta il tuo OK." + }, + "note": { + "off": "L'accesso in scrittura è disattivato: questa connessione legge soltanto lo stato.", + "propose": "Ogni azione di alimentazione, ogni testo e ogni tasto premuto aspetta tra le tue approvazioni finché non lo confermi. La digitazione e le azioni di alimentazione forzata richiedono anche l'interruttore qui sotto." + }, + "row": { + "off": "Sola lettura", + "propose": "Chiede prima a te" + } + }, + "settings": { + "title": "Digitazione e azioni di alimentazione forzata", + "loading": "Caricamento degli interruttori...", + "loadFailed": "Non è stato possibile caricare gli interruttori.", + "saveFailed": "Non è stato possibile salvare gli interruttori.", + "intro": "Questi interruttori sono tenuti per ogni dispositivo e valgono per tutti gli utenti di questo server. Sono disattivati finché un amministratore non li cambia.", + "physicalTitle": "Effetti fisici.", + "physical": "Un'azione di alimentazione può far perdere il lavoro non salvato. La digitazione e i tasti premuti vanno a ciò che ha il focus sulla macchina: una shell, un menu del BIOS, una schermata di accesso. Una persona conferma ogni azione e vede il testo o i tasti esatti.", + "readOnly": "Solo un amministratore può cambiare questi interruttori.", + "broken": "Gli interruttori salvati non si sono potuti leggere, quindi tutto è trattato come disattivato. Salvali di nuovo per ripararli.", + "none": "Aggiungi una connessione PiKVM per impostare i suoi interruttori.", + "typing": "Consenti digitazione e tasti premuti", + "typingHint": "Permette a una chat di chiedere di scrivere testo e premere tasti. Ogni richiesta aspetta comunque la tua conferma.", + "maxChars": "Testo più lungo", + "maxCharsHint": "Caratteri in un testo digitato. Predefinito {{default}}, al massimo 1000.", + "maxCharsShape": "Inserisci un numero intero da 1 a 1000.", + "hard": "Consenti azioni di alimentazione forzata", + "hardHint": "Permette a una chat di chiedere uno spegnimento forzato, un reset hardware o una pressione lunga del pulsante di accensione. Ogni richiesta aspetta comunque la tua conferma.", + "save": "Salva gli interruttori", + "saved": "Salvato. La prossima chiamata usa i nuovi interruttori.", + "neverTitle": "Mai disponibili", + "never": "Nessuna cattura dello schermo, nessuna immagine disco, nessun GPIO, nessun mouse e nessuna modifica agli utenti o alle impostazioni del dispositivo. Il componente aggiuntivo rifiuta il testo che sembra una chiave privata, un token o un elenco di password.", + "keys": "Tasti che una chat può premere: {{keys}}. Nessuna combinazione con Windows o Meta." + }, + "approval": { + "titlePower": "Alimentazione PiKVM: {{action}}", + "titleText": "PiKVM: digita {{count}} caratteri", + "titleKeys": "PiKVM: premi {{count}} tasti", + "physical": "Questo agisce su una macchina reale appena confermi.", + "device": "Dispositivo", + "as": "Come", + "asOne": "La connessione {{name}}", + "asFirst": "La prima connessione che elenca questo indirizzo", + "asUnknown": "Una connessione PiKVM per questo indirizzo", + "now": "Alimentazione ora", + "power": { + "on": "Acceso", + "off": "Spento", + "unknown": "Non nota" + }, + "what": "Cosa succede", + "hard": "Questa è un'azione forzata: il lavoro non salvato va perso.", + "text": "Testo da digitare", + "counts": "{{chars}} caratteri, {{lines}} righe", + "typeEffect": "Il testo viene digitato sulla tastiera della macchina, in ciò che ha il focus. Un a capo preme Invio.", + "keys": "Tasti, in ordine", + "keysEffect": "I tasti vengono premuti in quest'ordine sulla tastiera della macchina." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.ko.json b/addons/pikvm/ui/src/i18n/pikvm.ko.json new file mode 100644 index 0000000000..6d81572ab5 --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.ko.json @@ -0,0 +1,134 @@ +{ + "name": "이름", + "agent": "에이전트", + "agentNone": "에이전트 고르기", + "agentCredentialsOnly": "에이전트 없음(자격 증명만)", + "agentOptionalHint": "선택 사항입니다. 에이전트가 없으면 이 연결은 토큰, 주소, 내 채팅의 쓰기 모드만 보관합니다. 메시지에 답변하지 않고 아무것도 수신하지 않습니다.", + "credentialsOnly": "자격 증명만", + "agentNoModel": "{{name}}(모델 필요)", + "test": "테스트", + "save": "저장", + "cancel": "취소", + "editButton": "편집", + "delete": "삭제", + "agentOf": "에이전트: {{name}}", + "inactive": "실행 중이 아님: {{reason}}.", + "title": "PiKVM", + "intro": "채팅과 에이전트가 PiKVM과 그것이 제어하는 기기를 확인할 수 있게 합니다. 허용하면 전원 버튼을 누르고 키보드를 사용할 수도 있으며, 그런 동작은 모두 사람이 확인해야 실행됩니다.", + "limits": "실제 기기의 전원 버튼을 누르거나 입력할 수 있는 에이전트는 작업을 잃거나 명령을 실행할 수 있습니다. 모든 동작은 내 확인을 기다립니다. 입력과 강제 전원 동작은 관리자가 아래에서 켜기 전까지 꺼져 있습니다. PiKVM에는 사용자 권한이 없습니다. 아는 사용자는 누구나 모든 것을 할 수 있으므로, 이 애드온의 한도가 유일한 한도입니다.", + "new": "새 PiKVM 연결", + "edit": "PiKVM 연결 편집", + "user": "PiKVM 사용자 이름", + "userHelp": "LocalAI 전용 사용자입니다. 내 로그인에 영향을 주지 않고 나중에 제거할 수 있습니다. 비밀번호와 함께 봉인되어 보관되며 다시 표시되지 않습니다.", + "passwd": "비밀번호", + "passwdHelp": "해당 사용자의 비밀번호입니다. 2단계 로그인(2FA)이 켜진 PiKVM은 아직 지원되지 않습니다. 사용자와 비밀번호는 user:password 형식으로 함께 저장되며, 첫 번째 콜론에서 나뉩니다.", + "credSaved": "저장됨. 교체하려면 둘 다 입력하세요.", + "userMissing": "사용자 이름도 입력하세요.", + "passMissing": "비밀번호도 입력하세요.", + "userColon": "사용자 이름에는 콜론이 없습니다. 비밀번호에는 콜론이 있어도 됩니다.", + "credControl": "사용자와 비밀번호에는 제어 문자가 없습니다.", + "credSpace": "사용자나 비밀번호 앞뒤의 공백을 지우세요.", + "credLong": "사용자와 비밀번호가 너무 깁니다.", + "address": "PiKVM 주소", + "addressHelp": "브라우저에서 PiKVM을 여는 주소입니다. 예: https://pikvm.local. 자체 서명 인증서를 쓰면 핀을 추가하세요: https://pikvm.local#sha256=<64 hex digits>. 연결 하나가 기기 하나입니다. 다른 주소는 거부됩니다.", + "addressShape": "주소가 아닙니다. https://name 또는 https://name#sha256=... 형식으로 입력하세요.", + "addressHttp": "일반 http는 내 네트워크 안의 주소에만 허용됩니다. 그 외에는 https를 사용하세요.", + "pinShape": "지문은 16진수 64자리(SHA-256)이며 콜론은 있어도 없어도 됩니다.", + "pinHttp": "지문은 https 주소와 함께 사용합니다.", + "pinHint": "PiKVM은 보통 자체 서명 인증서를 씁니다. 지문 핀이 없으면 테스트에서 인증서를 신뢰할 수 없다고 나옵니다. 주소에 #sha256=과 지문을 추가하세요.", + "testOk": "로그인 정보가 저장되었습니다.", + "checkFailed": "저장했습니다. 로그인 확인에 실패했습니다: {{reason}}", + "checkSeveral": "이 페이지의 확인으로는 어느 연결인지 알 수 없으므로, 기기 확인은 PiKVM 연결이 하나일 때만 실행됩니다. 채팅에서는 도구 메뉴에서 연결을 켜세요.", + "empty": "아직 PiKVM 연결이 없습니다.", + "noAddress": "주소가 없습니다. 이 연결은 어디에도 접속하지 않습니다.", + "addressOf": "주소: {{address}}", + "confirmDelete": { + "title": "{{name}}을(를) 삭제할까요?", + "message": "채팅이 더 이상 이 기기에 접속할 수 없고, 함께 저장된 사용자와 비밀번호가 삭제됩니다. 다시 설정하려면 다시 입력해야 합니다.", + "confirm": "삭제" + }, + "check": { + "title": "{{name}} 확인", + "running": "PiKVM을 확인하는 중...", + "at": "{{time}}에 확인함", + "ok": "접속 가능. {{model}}, kvmd {{version}}.", + "refused": "PiKVM이 이 사용자 이름 또는 비밀번호를 거부했습니다. 기기에서 2FA가 켜져 있다면 지원되지 않습니다.", + "certificate": "신뢰할 수 없는 인증서입니다. 주소에 인증서 지문을 고정하세요.", + "failed": "확인이 끝나지 않았습니다. 주소를 확인하고 잠시 후 다시 시도하세요." + }, + "setup": { + "title": "설정 방법", + "step1": "PiKVM에서 전용 사용자를 추가하세요(rw, 이어서 kvmd-htpasswd add , 이어서 ro). PiKVM에는 사용자별 권한이 없어서 이 사용자도 모든 것을 할 수 있습니다. 이 사용자를 따로 두는 이유는 나중에 이것만 제거할 수 있기 때문입니다.", + "step2": "PiKVM을 여는 주소와 자체 서명 인증서의 핀을 함께 입력하세요: https://pikvm.local#sha256=.", + "step3": "여기에 사용자 이름과 비밀번호를 입력하세요. 둘은 함께 봉인되며 다시 표시되지 않습니다.", + "step4": "이 페이지의 한도를 읽기 전에는 쓰기 모드를 읽기 전용으로 두세요. 그런 다음 필요한 기기에 한해서만 입력이나 강제 전원 동작을 켜세요.", + "tls": "지문은 다음으로 얻습니다: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. 그러면 애드온이 그 주소에 대해 그 인증서 하나만 받아들이며, 검증을 끄는 일은 없습니다.", + "twofa": "2단계 로그인(2FA)이 켜진 PiKVM은 일회용 코드가 30초마다 바뀌기 때문에 이 버전에서 지원되지 않습니다. 이 기기의 2FA를 끄거나 연결하지 마세요." + }, + "writeMode": { + "label": "에이전트가 이 기기에서 할 수 있는 것", + "hint": "상태 읽기는 항상 허용됩니다. 어떤 것을 고르든 모든 동작은 내가 확인합니다.", + "off": "읽기 전용", + "propose": "먼저 묻기", + "line": { + "off": "읽기만 할 수 있습니다.", + "propose": "동작마다 내 승인을 기다립니다." + }, + "note": { + "off": "쓰기 접근이 꺼져 있습니다. 이 연결은 상태만 읽습니다.", + "propose": "전원 동작, 텍스트, 키 입력은 내가 확인할 때까지 승인 대기열에서 기다립니다. 입력과 강제 전원 동작에는 아래 스위치도 필요합니다." + }, + "row": { + "off": "읽기 전용", + "propose": "먼저 묻기" + } + }, + "settings": { + "title": "입력과 강제 전원 동작", + "loading": "스위치를 불러오는 중...", + "loadFailed": "스위치를 불러올 수 없습니다.", + "saveFailed": "스위치를 저장할 수 없습니다.", + "intro": "이 스위치는 기기별로 보관되며 이 서버의 모든 사용자에게 적용됩니다. 관리자가 바꾸기 전까지 꺼져 있습니다.", + "physicalTitle": "물리적 영향.", + "physical": "전원 동작은 저장하지 않은 작업을 잃게 할 수 있습니다. 입력과 키 입력은 기기에서 포커스를 가진 곳으로 전달됩니다. 셸, BIOS 메뉴, 로그인 화면 등이 해당합니다. 각 동작은 사람이 확인하며 정확한 텍스트나 키를 볼 수 있습니다.", + "readOnly": "관리자만 이 스위치를 바꿀 수 있습니다.", + "broken": "저장된 스위치를 읽을 수 없어서 모두 꺼진 것으로 처리합니다. 스위치를 다시 저장해 복구하세요.", + "none": "스위치를 설정하려면 PiKVM 연결을 추가하세요.", + "typing": "입력과 키 입력 허용", + "typingHint": "채팅이 텍스트 입력과 키 누르기를 요청할 수 있게 합니다. 각 요청은 여전히 내 확인을 기다립니다.", + "maxChars": "최대 텍스트 길이", + "maxCharsHint": "한 번에 입력하는 텍스트의 글자 수입니다. 기본값 {{default}}, 최대 1000.", + "maxCharsShape": "1부터 1000까지의 정수를 입력하세요.", + "hard": "강제 전원 동작 허용", + "hardHint": "채팅이 강제 전원 끄기, 하드웨어 리셋, 전원 버튼 길게 누르기를 요청할 수 있게 합니다. 각 요청은 여전히 내 확인을 기다립니다.", + "save": "스위치 저장", + "saved": "저장했습니다. 다음 호출부터 새 스위치가 적용됩니다.", + "neverTitle": "사용할 수 없는 항목", + "never": "화면 캡처, 디스크 이미지, GPIO, 마우스는 사용할 수 없으며, 기기의 사용자나 설정도 바꿀 수 없습니다. 애드온은 개인 키, 토큰, 비밀번호 목록처럼 보이는 텍스트를 거부합니다.", + "keys": "채팅이 누를 수 있는 키: {{keys}}. Windows나 Meta 조합키는 사용할 수 없습니다." + }, + "approval": { + "titlePower": "PiKVM 전원: {{action}}", + "titleText": "PiKVM: {{count}}자 입력", + "titleKeys": "PiKVM: 키 {{count}}개 누르기", + "physical": "확인하는 즉시 실제 기기에서 실행됩니다.", + "device": "기기", + "as": "사용할 연결", + "asOne": "연결 {{name}}", + "asFirst": "이 주소를 나열한 첫 번째 연결", + "asUnknown": "이 주소용 PiKVM 연결", + "now": "현재 전원", + "power": { + "on": "켜짐", + "off": "꺼짐", + "unknown": "알 수 없음" + }, + "what": "실행되는 내용", + "hard": "강제 동작입니다. 저장하지 않은 작업은 사라집니다.", + "text": "입력할 텍스트", + "counts": "{{chars}}자, {{lines}}줄", + "typeEffect": "텍스트가 기기의 키보드로, 포커스를 가진 곳에 입력됩니다. 줄바꿈은 Enter를 누릅니다.", + "keys": "키 (누르는 순서)", + "keysEffect": "키가 기기의 키보드에서 이 순서대로 눌립니다." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.pt-BR.json b/addons/pikvm/ui/src/i18n/pikvm.pt-BR.json new file mode 100644 index 0000000000..6ee9bb712f --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.pt-BR.json @@ -0,0 +1,134 @@ +{ + "name": "Nome", + "agent": "Agente", + "agentNone": "Escolha um agente", + "agentCredentialsOnly": "Sem agente (só credenciais)", + "agentOptionalHint": "Opcional. Sem um agente, esta conexão só guarda o token, o endereço e o modo de escrita dos seus chats. Ela não responde a mensagens e não escuta nada.", + "credentialsOnly": "Só credenciais", + "agentNoModel": "{{name}} (precisa de um modelo)", + "test": "Testar", + "save": "Salvar", + "cancel": "Cancelar", + "editButton": "Editar", + "delete": "Excluir", + "agentOf": "Agente: {{name}}", + "inactive": "Não está rodando: {{reason}}.", + "title": "PiKVM", + "intro": "Deixe seus chats e agentes verem um PiKVM e a máquina que ele controla. Se você permitir, eles também podem apertar os botões de energia e usar o teclado dele, e uma pessoa confirma cada uma dessas ações.", + "limits": "Um agente que pode apertar um botão de energia ou digitar em uma máquina real pode perder trabalho ou executar comandos. Cada ação espera a sua confirmação. A digitação e as ações de energia forçadas ficam desligadas até um administrador ligá-las, abaixo. Um PiKVM não tem direitos por usuário: qualquer usuário que ele conheça pode fazer tudo, então os limites deste complemento são os únicos.", + "new": "Nova conexão do PiKVM", + "edit": "Editar conexão do PiKVM", + "user": "Nome de usuário do PiKVM", + "userHelp": "Um usuário só para o LocalAI, para você poder removê-lo depois sem mexer no seu próprio login. É guardado com segurança junto com a senha e nunca mais é mostrado.", + "passwd": "Senha", + "passwdHelp": "A senha desse usuário. Um PiKVM com login em duas etapas (2FA) ligado ainda não é compatível. O usuário e a senha são salvos juntos como user:password, separados no primeiro dois-pontos.", + "credSaved": "Salvo. Digite os dois para substituir.", + "userMissing": "Digite também o nome de usuário.", + "passMissing": "Digite também a senha.", + "userColon": "Um nome de usuário não tem dois-pontos. A senha pode ter.", + "credControl": "O usuário e a senha não têm caracteres de controle.", + "credSpace": "Remova os espaços ao redor do usuário ou da senha.", + "credLong": "O usuário e a senha são longos demais.", + "address": "Endereço do seu PiKVM", + "addressHelp": "Onde você abre o PiKVM no navegador, por exemplo https://pikvm.local. Para o certificado autoassinado dele, adicione a impressão digital: https://pikvm.local#sha256=<64 dígitos hexadecimais>. Uma conexão é um dispositivo. Qualquer outro endereço é recusado.", + "addressShape": "Isto não é um endereço. Escreva como https://nome ou https://nome#sha256=...", + "addressHttp": "http simples só é aceito para um endereço na sua própria rede. Use https para qualquer outro.", + "pinShape": "A impressão digital tem 64 dígitos hexadecimais (SHA-256), com ou sem dois-pontos.", + "pinHttp": "Uma impressão digital vai com um endereço https.", + "pinHint": "Um PiKVM normalmente tem um certificado autoassinado. Sem fixar a impressão digital, o Testar dirá que o certificado não é confiável. Adicione #sha256= e a impressão digital ao endereço.", + "testOk": "O login está salvo.", + "checkFailed": "Salvo. A verificação do login falhou: {{reason}}", + "checkSeveral": "A verificação do dispositivo roda quando você tem uma única conexão do PiKVM, porque uma verificação feita desta página não sabe de qual você fala. Em um chat, ative as conexões no menu Ferramentas.", + "empty": "Ainda não há conexões do PiKVM.", + "noAddress": "Sem endereço: esta conexão não alcança nada.", + "addressOf": "Endereço: {{address}}", + "confirmDelete": { + "title": "Excluir {{name}}?", + "message": "Seus chats não alcançam mais este dispositivo, e o usuário e a senha salvos com ele são excluídos. Para configurá-lo de novo, você precisará informá-los outra vez.", + "confirm": "Excluir" + }, + "check": { + "title": "Verificação de {{name}}", + "running": "Verificando o seu PiKVM...", + "at": "Verificado às {{time}}", + "ok": "Acessível. {{model}}, kvmd {{version}}.", + "refused": "O PiKVM recusou este nome de usuário ou senha. Se o 2FA estiver ligado no dispositivo, ele não é compatível.", + "certificate": "O certificado não é confiável. Fixe a impressão digital dele no endereço.", + "failed": "A verificação não terminou. Confira o endereço e tente de novo em instantes." + }, + "setup": { + "title": "Como configurar", + "step1": "No PiKVM, adicione um usuário só para isso (rw, depois kvmd-htpasswd add , depois ro). O PiKVM não tem direitos por usuário, então esse usuário pode fazer tudo: a vantagem é poder removê-lo sozinho.", + "step2": "Escreva o endereço que você usa para abrir o PiKVM, mais a impressão digital do certificado autoassinado dele: https://pikvm.local#sha256=.", + "step3": "Digite aqui o nome de usuário e a senha. Eles são guardados com segurança juntos e nunca mais são mostrados.", + "step4": "Deixe o modo de escrita em Somente leitura até ler os limites desta página. Depois, ligue a digitação ou as ações de energia forçadas só nos dispositivos que precisam delas.", + "tls": "Obtenha a impressão digital com: openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256. O complemento então aceita esse certificado para esse endereço e nunca desliga a verificação.", + "twofa": "Um PiKVM com login em duas etapas (2FA) ligado não é compatível nesta versão, porque o código de uso único muda a cada 30 segundos. Desligue o 2FA neste dispositivo ou deixe-o de fora." + }, + "writeMode": { + "label": "O que o agente pode fazer com este dispositivo", + "hint": "Ler o estado é sempre permitido. Cada ação é confirmada por você, seja qual for a sua escolha.", + "off": "Somente leitura", + "propose": "Pergunta antes", + "line": { + "off": "Ele só pode ler.", + "propose": "Cada ação espera o seu OK." + }, + "note": { + "off": "O acesso de escrita está desligado: esta conexão só lê o estado.", + "propose": "Cada ação de energia, texto e tecla pressionada espera nas suas aprovações até você confirmar. A digitação e as ações de energia forçadas também precisam do interruptor abaixo." + }, + "row": { + "off": "Somente leitura", + "propose": "Pergunta antes" + } + }, + "settings": { + "title": "Digitação e ações de energia forçadas", + "loading": "Carregando os interruptores...", + "loadFailed": "Não foi possível carregar os interruptores.", + "saveFailed": "Não foi possível salvar os interruptores.", + "intro": "Estes interruptores são guardados por dispositivo e valem para todo usuário deste servidor. Ficam desligados até um administrador alterá-los.", + "physicalTitle": "Efeitos físicos.", + "physical": "Uma ação de energia pode perder trabalho não salvo. A digitação e as teclas vão para o que estiver em foco na máquina: um shell, um menu da BIOS, uma tela de login. Uma pessoa confirma cada uma e vê o texto ou as teclas exatos.", + "readOnly": "Só um administrador pode alterar estes interruptores.", + "broken": "Não foi possível ler os interruptores salvos, então tudo é tratado como desligado. Salve-os de novo para repará-los.", + "none": "Adicione uma conexão do PiKVM para definir os interruptores dela.", + "typing": "Permitir digitação e teclas pressionadas", + "typingHint": "Deixa um chat pedir para digitar texto e pressionar teclas. Cada pedido ainda espera a sua confirmação.", + "maxChars": "Texto mais longo", + "maxCharsHint": "Caracteres em um texto digitado. Padrão {{default}}, no máximo 1000.", + "maxCharsShape": "Digite um número inteiro de 1 a 1000.", + "hard": "Permitir ações de energia forçadas", + "hardHint": "Deixa um chat pedir um desligamento forçado, um reset de hardware ou um toque longo no botão de energia. Cada pedido ainda espera a sua confirmação.", + "save": "Salvar interruptores", + "saved": "Salvo. A próxima chamada usa os novos interruptores.", + "neverTitle": "Nunca disponível", + "never": "Nada de captura de tela, imagens de disco, GPIO, mouse, nem alteração dos usuários ou das configurações do dispositivo. O complemento recusa texto que pareça uma chave privada, um token ou uma lista de senhas.", + "keys": "Teclas que um chat pode pressionar: {{keys}}. Sem combinações com Windows ou Meta." + }, + "approval": { + "titlePower": "Energia do PiKVM: {{action}}", + "titleText": "PiKVM: digitar {{count}} caracteres", + "titleKeys": "PiKVM: pressionar {{count}} tecla(s)", + "physical": "Isto age em uma máquina real assim que você confirma.", + "device": "Dispositivo", + "as": "Como", + "asOne": "A conexão {{name}}", + "asFirst": "A primeira conexão que lista este endereço", + "asUnknown": "Uma conexão do PiKVM para este endereço", + "now": "Energia agora", + "power": { + "on": "Ligada", + "off": "Desligada", + "unknown": "Desconhecida" + }, + "what": "O que acontece", + "hard": "Esta é uma ação forçada: o trabalho não salvo é perdido.", + "text": "Texto a digitar", + "counts": "{{chars}} caracteres, {{lines}} linha(s)", + "typeEffect": "O texto é digitado no teclado da máquina, no que estiver em foco. Uma quebra de linha pressiona Enter.", + "keys": "Teclas, em ordem", + "keysEffect": "As teclas são pressionadas nesta ordem no teclado da máquina." + } +} diff --git a/addons/pikvm/ui/src/i18n/pikvm.zh-CN.json b/addons/pikvm/ui/src/i18n/pikvm.zh-CN.json new file mode 100644 index 0000000000..8dd8a86fb3 --- /dev/null +++ b/addons/pikvm/ui/src/i18n/pikvm.zh-CN.json @@ -0,0 +1,134 @@ +{ + "name": "名称", + "agent": "智能体", + "agentNone": "选择智能体", + "agentCredentialsOnly": "没有智能体(仅凭据)", + "agentOptionalHint": "可选。没有智能体时,此连接只保存 token、地址和用于你的聊天的写入模式。它不回答任何消息,也不监听任何内容。", + "credentialsOnly": "仅凭据", + "agentNoModel": "{{name}}(需要模型)", + "test": "测试", + "save": "保存", + "cancel": "取消", + "editButton": "编辑", + "delete": "删除", + "agentOf": "智能体:{{name}}", + "inactive": "未运行:{{reason}}。", + "title": "PiKVM", + "intro": "让你的聊天和智能体检查 PiKVM 以及它所控制的机器。如果你允许,它们还可以按下机器的电源按钮并使用它的键盘,而且每一项这样的操作都需要有人确认。", + "limits": "能按电源按钮或在真实机器上输入的智能体,可能造成工作丢失或执行命令。每项操作都会等待你的确认。输入和强制电源操作默认关闭,需由管理员在下方开启。PiKVM 没有用户权限:它认识的任何用户都可以做所有事,因此此附加组件的限制是唯一的限制。", + "new": "新建 PiKVM 连接", + "edit": "编辑 PiKVM 连接", + "user": "PiKVM 用户名", + "userHelp": "为 LocalAI 专门创建的用户,这样以后可以删除它,而不影响你自己的登录。它会与密码一起加密保存,之后不再显示。", + "passwd": "密码", + "passwdHelp": "该用户的密码。暂不支持开启了两步验证(2FA)的 PiKVM。用户名和密码会以 user:password 的形式一起保存,以第一个冒号分隔。", + "credSaved": "已保存。输入两项即可替换。", + "userMissing": "请同时输入用户名。", + "passMissing": "请同时输入密码。", + "userColon": "用户名不能含冒号。密码可以含冒号。", + "credControl": "用户名和密码不能含控制字符。", + "credSpace": "请删除用户名或密码前后的空格。", + "credLong": "用户名和密码太长。", + "address": "你的 PiKVM 地址", + "addressHelp": "你在浏览器中打开 PiKVM 所用的地址,例如 https://pikvm.local。若使用自签名证书,请加上固定指纹:https://pikvm.local#sha256=<64 hex digits>。一个连接对应一台设备。其他地址一律拒绝。", + "addressShape": "这不是地址。请写成 https://name 或 https://name#sha256=... 的形式。", + "addressHttp": "只有你自己网络中的地址才接受普通 http。其他情况请使用 https。", + "pinShape": "指纹是 64 位十六进制数字(SHA-256),可带冒号也可不带。", + "pinHttp": "指纹需要配合 https 地址使用。", + "pinHint": "PiKVM 通常使用自签名证书。没有固定指纹时,测试会提示证书不受信任。请在地址后加上 #sha256= 和指纹。", + "testOk": "登录信息已保存。", + "checkFailed": "已保存。登录检查失败:{{reason}}", + "checkSeveral": "设备检查只在你有一个 PiKVM 连接时运行,因为从此页面发起的检查无法判断你指的是哪一个。在聊天中,请通过“工具”菜单启用这些连接。", + "empty": "还没有 PiKVM 连接。", + "noAddress": "没有地址:此连接哪里也到不了。", + "addressOf": "地址:{{address}}", + "confirmDelete": { + "title": "删除 {{name}}?", + "message": "你的聊天将无法再访问这台设备,随之保存的用户名和密码也会被删除。若要重新设置,你必须再次输入它们。", + "confirm": "删除" + }, + "check": { + "title": "{{name}} 的检查结果", + "running": "正在检查你的 PiKVM...", + "at": "检查时间:{{time}}", + "ok": "可访问。{{model}},kvmd {{version}}。", + "refused": "PiKVM 拒绝了此用户名或密码。如果设备开启了 2FA,则暂不支持。", + "certificate": "证书不受信任。请在地址中固定它的指纹。", + "failed": "检查未完成。请检查地址,稍后再试。" + }, + "setup": { + "title": "如何设置", + "step1": "在 PiKVM 上添加一个专用用户(rw,然后 kvmd-htpasswd add ,然后 ro)。PiKVM 没有针对用户的权限,所以这个用户可以做所有事:它的用处是你可以单独删除它。", + "step2": "填写你打开 PiKVM 所用的地址,再加上它的自签名证书的固定指纹:https://pikvm.local#sha256=。", + "step3": "在这里输入用户名和密码。它们会一起加密保存,之后不再显示。", + "step4": "在读完本页的限制之前,请让写入模式保持“只读”。然后只为确实需要的设备开启输入或强制电源操作。", + "tls": "获取指纹的命令:openssl s_client -connect pikvm.local:443 /dev/null | openssl x509 -noout -fingerprint -sha256。之后此附加组件只会为该地址接受这一个证书,并且永远不会关闭验证。", + "twofa": "此版本暂不支持开启了两步验证(2FA)的 PiKVM,因为一次性验证码每 30 秒就会变化。请为这台设备关闭 2FA,或者不要添加它。" + }, + "writeMode": { + "label": "智能体可以对这台设备做什么", + "hint": "读取状态始终允许。无论你如何选择,每项操作都由你确认。", + "off": "只读", + "propose": "先问你", + "line": { + "off": "它只能读取。", + "propose": "每项操作都等待你的确认。" + }, + "note": { + "off": "写入权限已关闭:此连接只读取状态。", + "propose": "每次电源操作、文本输入和按键都在你的审批中等待,直到你确认。输入和强制电源操作还需要下方的开关。" + }, + "row": { + "off": "只读", + "propose": "先问你" + } + }, + "settings": { + "title": "输入和强制电源操作", + "loading": "正在加载开关...", + "loadFailed": "无法加载开关。", + "saveFailed": "无法保存开关。", + "intro": "这些开关按设备保存,并适用于此服务器的所有用户。在管理员更改之前,它们都是关闭的。", + "physicalTitle": "物理影响。", + "physical": "电源操作可能丢失未保存的工作。输入和按键会发送到机器上获得焦点的任何位置:shell、BIOS 菜单、登录界面。每一项都由人确认,并能看到确切的文本或按键。", + "readOnly": "只有管理员可以更改这些开关。", + "broken": "无法读取已保存的开关,因此一律视为关闭。请重新保存以修复。", + "none": "添加 PiKVM 连接后才能设置它的开关。", + "typing": "允许输入和按键", + "typingHint": "允许聊天请求输入文本和按键。每项请求仍需等待你的确认。", + "maxChars": "文本最大长度", + "maxCharsHint": "单次输入文本的字符数。默认 {{default}},最多 1000。", + "maxCharsShape": "请输入 1 到 1000 的整数。", + "hard": "允许强制电源操作", + "hardHint": "允许聊天请求强制断电、硬件重置或长按电源按钮。每项请求仍需等待你的确认。", + "save": "保存开关", + "saved": "已保存。下一次调用将使用新的开关。", + "neverTitle": "永不可用", + "never": "不能截取屏幕,不能挂载磁盘镜像,不能使用 GPIO,不能使用鼠标,也不能更改设备的用户或设置。此附加组件会拒绝看起来像私钥、token 或密码列表的文本。", + "keys": "聊天可以按的键:{{keys}}。不包括 Windows 或 Meta 组合键。" + }, + "approval": { + "titlePower": "PiKVM 电源:{{action}}", + "titleText": "PiKVM:输入 {{count}} 个字符", + "titleKeys": "PiKVM:按 {{count}} 个键", + "physical": "你一确认,就会作用于真实的机器。", + "device": "设备", + "as": "身份", + "asOne": "连接 {{name}}", + "asFirst": "第一个列出此地址的连接", + "asUnknown": "用于此地址的 PiKVM 连接", + "now": "当前电源", + "power": { + "on": "开", + "off": "关", + "unknown": "未知" + }, + "what": "将发生什么", + "hard": "这是强制操作:未保存的工作会丢失。", + "text": "要输入的文本", + "counts": "{{chars}} 个字符,{{lines}} 行", + "typeEffect": "文本会在机器的键盘上输入,进入任何获得焦点的位置。换行会按下 Enter。", + "keys": "按键,按顺序", + "keysEffect": "这些键会按此顺序在机器的键盘上按下。" + } +}