// Übersetzungen für Renderer (window.I18N) und Main-Prozess (require). // Quellsprache ist Englisch: der Text im Code ist der Schlüssel, weitere Sprachen liefern ein Wörterbuch. // Neue Sprache: Wörterbuch unten ergänzen und in LANGUAGES eintragen. (function (root) { 'use strict'; const de = { // Allgemein 'Cancel': 'Abbrechen', 'Save': 'Speichern', 'OK': 'OK', 'Delete': 'Löschen', 'Delete?': 'Löschen?', 'Edit': 'Bearbeiten', 'Open': 'Öffnen', 'Close': 'Schließen', 'Close (Ctrl+Shift+W)': 'Schließen (Strg+Shift+W)', 'Close others': 'Andere schließen', 'Rename': 'Umbenennen', 'Duplicate': 'Duplizieren', 'Copy': 'Kopieren', 'Copied': 'Kopiert', 'Connect': 'Verbinden', 'Reconnect': 'Neu verbinden', 'Reconnecting': 'Neu verbinden', 'Remove': 'Entfernen', 'Import': 'Importieren', 'Generate': 'Generieren', 'Automatic': 'Automatisch', 'Color': 'Farbe', 'Name': 'Name', 'Type': 'Typ', 'Title': 'Titel', 'Label': 'Bezeichnung', 'Settings': 'Einstellungen', 'Menu': 'Menü', 'History': 'Verlauf', 'Minimize': 'Minimieren', 'Maximize': 'Maximieren', 'Quick Connect (Ctrl+Shift+K)': 'Quick Connect (Strg+Shift+K)', 'Collapse menu': 'Menü einklappen', 'Expand menu': 'Menü ausklappen', 'Vault encrypted': 'Vault verschlüsselt', 'Vault not encrypted': 'Vault unverschlüsselt', 'Data is encrypted with the system keyring.': 'Daten werden mit dem System-Schlüsselbund verschlüsselt.', 'No system keyring available (e.g. install gnome-keyring/kwallet).': 'Kein System-Schlüsselbund verfügbar (z. B. gnome-keyring/kwallet installieren).', 'just now': 'gerade eben', '{n} min ago': 'vor {n} Min.', '{n} h ago': 'vor {n} Std.', '{n} days ago': 'vor {n} Tagen', // Verzeichnisbaum / Hosts 'Connections': 'Verbindungen', 'Collapse all': 'Alle einklappen', 'No hosts yet': 'Noch keine Hosts', 'Add host': 'Host hinzufügen', 'Create subfolder': 'Unterordner anlegen', 'Delete group?': 'Gruppe löschen?', '“{name}” will be deleted. Hosts are kept.': '„{name}“ wird gelöscht. Hosts bleiben erhalten.', 'Search hosts or enter user@host …': 'Hosts suchen oder user@host eingeben …', 'Group': 'Gruppe', 'Groups': 'Gruppen', 'New host': 'Neuer Host', 'All hosts': 'Alle Hosts', 'Connect to {q}?': 'Mit {q} verbinden?', 'Quick Connect without saving the host.': 'Quick Connect ohne den Host zu speichern.', 'Add your first SSH or RDP host or import ~/.ssh/config.': 'Lege deinen ersten SSH- oder RDP-Host an oder importiere ~/.ssh/config.', 'Import ~/.ssh/config': '~/.ssh/config importieren', 'No results': 'Keine Treffer', 'Adjust the search or filters.': 'Passe die Suche oder Filter an.', 'Connect in tab': 'Im Tab verbinden', 'Open in separate window': 'In eigenem Fenster öffnen', 'Open SFTP': 'SFTP öffnen', ' (copy)': ' (Kopie)', 'Copy address': 'Adresse kopieren', 'Delete host?': 'Host löschen?', '“{name}” will be permanently removed.': '„{name}“ wird dauerhaft entfernt.', 'RDP in a tab is not possible ({reason}) – opening a separate window.': 'RDP im Tab nicht möglich ({reason}) – öffne eigenes Fenster.', 'RDP session to {name} started ({client})': 'RDP-Sitzung zu {name} gestartet ({client})', 'Invalid address. Format: user@host:port': 'Ungültige Adresse. Format: user@host:port', '{n} host(s) imported': '{n} Host(s) importiert', // Host-Editor '— No group —': '— Keine Gruppe —', '— No key —': '— Kein Schlüssel —', '— Direct —': '— Direkt —', 'SSH key': 'SSH-Schlüssel', 'Use SSH agent': 'SSH-Agent verwenden', 'Advanced': 'Erweitert', 'Jump host (ProxyJump)': 'Jump-Host (ProxyJump)', 'Startup command': 'Startbefehl', 'e.g. tmux attach || tmux': 'z. B. tmux attach || tmux', 'Environment variables': 'Umgebungsvariablen', 'One per line, KEY=VALUE (server must allow AcceptEnv).': 'Eine pro Zeile, KEY=VALUE (Server muss AcceptEnv erlauben).', 'Domain': 'Domäne', 'optional': 'optional', 'Width': 'Breite', 'Height': 'Höhe', 'On resize': 'Bei Größenänderung', 'Adjust resolution dynamically': 'Auflösung dynamisch anpassen', 'Scale image (fixed resolution)': 'Bild skalieren (feste Auflösung)', 'Fullscreen': 'Vollbild', 'Share clipboard': 'Zwischenablage teilen', 'Play audio': 'Audio wiedergeben', 'Share local drives/home': 'Lokale Laufwerke/Home freigeben', 'Edit host': 'Host bearbeiten', 'Address': 'Adresse', 'IP or hostname': 'IP oder Hostname', 'My server': 'Mein Server', 'Authentication': 'Anmeldung', 'Username': 'Benutzername', 'Password': 'Passwort', 'stored encrypted': 'wird verschlüsselt gespeichert', 'Appearance': 'Darstellung', 'Please enter an address.': 'Bitte eine Adresse angeben.', 'Edit group': 'Gruppe bearbeiten', 'New group': 'Neue Gruppe', 'Production': 'Produktion', 'Parent group': 'Übergeordnete Gruppe', 'Name is missing.': 'Name fehlt.', // Keychain 'Search keys …': 'Schlüssel suchen …', 'No keys': 'Keine Schlüssel', 'Generate a new Ed25519 key or import an existing one.': 'Generiere einen neuen Ed25519-Schlüssel oder importiere einen bestehenden.', 'Generate key': 'Schlüssel generieren', 'Keys': 'Schlüssel', 'Copy public key': 'Public Key kopieren', 'Public key copied': 'Public Key kopiert', 'Delete key?': 'Schlüssel löschen?', '“{name}” will be removed from the vault.': '„{name}“ wird aus dem Vault entfernt.', 'Generate SSH key': 'SSH-Schlüssel generieren', 'recommended': 'empfohlen', 'Key generated – public key copied to clipboard': 'Schlüssel erzeugt – Public Key in Zwischenablage kopiert', 'Edit key': 'Schlüssel bearbeiten', 'Import key': 'Schlüssel importieren', 'Derived from the private key automatically if left empty.': 'Wird bei Bedarf automatisch aus dem Private Key berechnet.', 'Private key is missing.': 'Private Key fehlt.', 'File…': 'Datei…', // Snippets 'Search snippets …': 'Snippets suchen …', 'New snippet': 'Neues Snippet', 'No snippets': 'Keine Snippets', 'Save frequently used commands and send them to a terminal with one click.': 'Speichere häufig genutzte Befehle und sende sie mit einem Klick an ein Terminal.', 'Run in active terminal': 'Im aktiven Terminal ausführen', 'Delete snippet?': 'Snippet löschen?', 'Edit snippet': 'Snippet bearbeiten', 'System update': 'Systemupdate', 'Command(s)': 'Befehl(e)', 'Send Enter automatically': 'Enter automatisch senden', 'Command is missing.': 'Befehl fehlt.', 'No open terminal': 'Kein offenes Terminal', 'No snippets yet.': 'Noch keine Snippets.', // Port Forwarding 'Search rules …': 'Regeln suchen …', 'New rule': 'Neue Regel', 'No port forwards': 'Keine Port-Weiterleitungen', 'Local (-L), remote (-R) or dynamic as SOCKS5 proxy (-D).': 'Lokal (-L), Remote (-R) oder dynamisch als SOCKS5-Proxy (-D).', 'Local': 'Lokal', 'active': 'aktiv', 'inactive': 'inaktiv', 'Stop': 'Stoppen', 'Start': 'Starten', 'Forward active': 'Weiterleitung aktiv', 'Delete rule?': 'Regel löschen?', 'Add an SSH host first.': 'Lege zuerst einen SSH-Host an.', 'Edit rule': 'Regel bearbeiten', 'New forward': 'Neue Weiterleitung', 'Local (-L)': 'Lokal (-L)', 'Dynamic / SOCKS5 (-D)': 'Dynamisch / SOCKS5 (-D)', 'Via host': 'Über Host', 'Bind address': 'Bind-Adresse', 'Bind port': 'Bind-Port', 'Target host': 'Ziel-Host', 'Target port': 'Ziel-Port', 'Bind port is missing.': 'Bind-Port fehlt.', 'Target port is missing.': 'Ziel-Port fehlt.', // Known Hosts & Verlauf 'Search known hosts …': 'Known Hosts suchen …', 'No known hosts': 'Keine bekannten Hosts', 'Host keys are stored here on first connection.': 'Host-Schlüssel werden bei der ersten Verbindung hier gespeichert.', 'Search history …': 'Verlauf durchsuchen …', 'No connections yet': 'Noch keine Verbindungen', 'Recently used hosts appear here.': 'Zuletzt genutzte Hosts erscheinen hier.', // Einstellungen 'Language': 'Sprache', 'System default': 'Systemsprache', 'Accent color': 'Akzentfarbe', 'Theme default': 'Standard des Designs', 'Light': 'Hell', 'Terminal color scheme': 'Terminal-Farbschema', 'Match theme': 'Passend zum Design', 'follows the theme': 'folgt dem Design', 'Font': 'Schriftart', 'Size': 'Größe', 'Bar': 'Balken', 'Underline': 'Unterstrich', 'Scrollback lines': 'Scrollback-Zeilen', 'Blinking cursor': 'Cursor blinkt', 'Copy on select': 'Auswahl automatisch kopieren', 'SSH keep-alive (seconds, 0 = off)': 'SSH Keep-Alive (Sekunden, 0 = aus)', 'Checking …': 'Prüfe …', 'Show RDP connections as tabs in MrTerm': 'RDP-Verbindungen als Tab in MrTerm anzeigen', 'Takes effect after restarting MrTerm (X11/XWayland mode).': 'Wird nach einem Neustart von MrTerm wirksam (X11/XWayland-Modus).', 'Uses xfreerdp3 with /parent-window. For this, MrTerm runs via XWayland under Wayland.': 'Nutzt xfreerdp3 mit /parent-window. MrTerm läuft dafür unter Wayland über XWayland.', 'FreeRDP client (separate window)': 'FreeRDP-Client (eigenes Fenster)', 'Client in use: {client}': 'Verwendeter Client: {client}', 'No RDP client found. Install: {hint}': 'Kein RDP-Client gefunden. Installation: {hint}', 'Data': 'Daten', 'The vault is encrypted with the operating system keyring (Windows DPAPI / libsecret or KWallet).': 'Der Vault ist mit dem Schlüsselbund des Betriebssystems verschlüsselt (Windows DPAPI / libsecret bzw. KWallet).', 'The vault is not encrypted because no keyring is available. On Arch/CachyOS: install gnome-keyring or kwallet.': 'Der Vault ist nicht verschlüsselt, da kein Schlüsselbund verfügbar ist. Unter Arch/CachyOS: gnome-keyring oder kwallet installieren.', 'Export backup': 'Backup exportieren', 'Exported to {path}': 'Exportiert nach {path}', 'Import backup': 'Backup importieren', 'Import complete': 'Import abgeschlossen', 'Import folders and hosts (RDP & SSH) from Devolutions Remote Desktop Manager. In RDM: File → Export → Export entries as .rdm (XML), JSON or CSV. RDM only exports passwords unencrypted if you enable that during export.': 'Ordner und Hosts (RDP & SSH) aus Devolutions Remote Desktop Manager übernehmen. In RDM: Datei → Exportieren → Einträge exportieren als .rdm (XML), JSON oder CSV. Passwörter werden von RDM nur unverschlüsselt exportiert, wenn du das beim Export aktivierst.', 'Import from Remote Desktop Manager…': 'Aus Remote Desktop Manager importieren…', 'Installed version: {v}': 'Installierte Version: {v}', 'Gitea/Forgejo repository whose releases contain the installation packages.': 'Gitea/Forgejo-Repository, dessen Releases die Installationspakete enthalten.', 'Access token (private repos only)': 'Zugriffstoken (nur für private Repos)', 'Check for updates on startup': 'Beim Start automatisch nach Updates suchen', 'Include pre-releases': 'Vorabversionen (Pre-Releases) einbeziehen', 'Check for updates now': 'Jetzt nach Updates suchen', 'The repository has version {repo}, but there is no release with installation packages for it yet. Installed: {current}.': 'Im Repository liegt Version {repo}, aber dafür gibt es noch kein Release mit Installationspaketen. Installiert: {current}.', 'The repository has no releases yet.': 'Im Repository gibt es noch keine Releases.', 'MrTerm is up to date ({v}).': 'MrTerm ist aktuell ({v}).', 'Keyboard shortcuts': 'Tastenkürzel', 'Ctrl': 'Strg', 'Quick Connect / command palette (outside the terminal also {k})': 'Quick Connect / Befehlspalette (außerhalb des Terminals auch {k})', 'Close tab': 'Tab schließen', 'Next tab': 'Nächster Tab', 'Switch to tab': 'Zu Tab wechseln', 'Copy / paste in terminal': 'Kopieren / Einfügen im Terminal', 'Search in terminal': 'Im Terminal suchen', 'Font size': 'Schriftgröße', // RDM-Import 'Import failed: {msg}': 'Import fehlgeschlagen: {msg}', 'No RDP or SSH entries found in the file.': 'Keine RDP- oder SSH-Einträge in der Datei gefunden.', 'Root level': 'Stammebene', 'Import from Remote Desktop Manager': 'Import aus Remote Desktop Manager', '{file}: found {n} hosts ({rdp} RDP, {ssh} SSH) in {folders} folders.': '{file}: {n} Hosts ({rdp} RDP, {ssh} SSH) in {folders} Ordnern gefunden.', '… and {n} more': '… und {n} weitere', '{n} hosts imported': '{n} Hosts importiert', ', {n} already existed': ', {n} bereits vorhanden', 'File is not valid XML.': 'Datei ist kein gültiges XML.', 'CSV columns not recognized (expected e.g. Name, Host, ConnectionType, Group).': 'CSV-Spalten nicht erkannt (erwartet u. a. Name, Host, ConnectionType, Group).', // Updates 'MrTerm {v} is available': 'MrTerm {v} ist verfügbar', 'Installed: {v}': 'Installiert: {v}', 'Package: {name} ({size})': 'Paket: {name} ({size})', 'Development mode: please update via git pull.': 'Entwicklungsmodus: Bitte per git pull aktualisieren.', 'The release contains no package for this system.': 'Im Release ist kein passendes Paket für dieses System.', 'Downloading …': 'Lade herunter …', 'Later': 'Später', 'Release page': 'Release-Seite', 'Install now': 'Jetzt installieren', 'Downloading update …': 'Update wird heruntergeladen …', 'Installing update, MrTerm will restart …': 'Update wird installiert, MrTerm startet neu …', // Tabs & Sitzungen 'Rename tab': 'Tab umbenennen', 'SFTP for this host': 'SFTP für diesen Host', 'Search (Ctrl+Shift+F)': 'Suchen (Strg+Shift+F)', 'Search …': 'Suchen …', 'Connecting to {host} …': 'Verbinde mit {host} …', 'Connection closed. Press [Enter] to reconnect.': 'Verbindung beendet. [Enter] zum erneuten Verbinden.', 'Continue session in a separate window': 'Sitzung als eigenes Fenster weiterführen', 'Detach as window': 'Als Fenster lösen', 'RDP session hidden while a dialog is open.': 'RDP-Sitzung ausgeblendet, solange ein Dialog geöffnet ist.', 'In separate window': 'Im eigenen Fenster', 'Connecting to {host} … Login or certificate prompts may appear in a separate window.': 'Verbinde mit {host} … Anmelde- oder Zertifikatsabfragen erscheinen ggf. als eigenes Fenster.', 'The RDP window could not be embedded.': 'Das RDP-Fenster konnte nicht eingebettet werden.', 'RDP session ended.': 'RDP-Sitzung beendet.', 'RDP session ended (code {code}).': 'RDP-Sitzung beendet (Code {code}).', 'Session continues in a separate window': 'Sitzung läuft als eigenes Fenster weiter', // SFTP 'Choose a host for SFTP …': 'Host für SFTP wählen …', 'No SSH hosts': 'Keine SSH-Hosts', 'SFTP requires an SSH host.': 'SFTP benötigt einen SSH-Host.', 'Open host in SFTP browser': 'Host für SFTP-Browser öffnen', 'Parent folder': 'Übergeordneter Ordner', 'Refresh': 'Aktualisieren', 'New folder': 'Neuer Ordner', 'Upload →': 'Hochladen →', '← Download': '← Herunterladen', 'Upload': 'Hochladen', 'Download': 'Herunterladen', 'Modified': 'Geändert', 'Copy path': 'Pfad kopieren', 'Permissions (chmod)…': 'Rechte (chmod)…', 'Move to trash': 'In Papierkorb', 'New name': 'Neuer Name', 'Change permissions': 'Rechte ändern', 'Octal (e.g. 644)': 'Oktal (z. B. 644)', 'Move {n} item(s) to the trash: {list}': '{n} Element(e) in den Papierkorb verschieben: {list}', 'Permanently delete {n} item(s) from the server: {list}': '{n} Element(e) endgültig vom Server löschen: {list}', 'Nothing selected': 'Nichts ausgewählt', 'Try again': 'Erneut versuchen', 'done': 'fertig', 'Error': 'Fehler', // Befehlspalette & Anmeldung 'Search hosts or enter user@host:port or rdp://host …': 'Host suchen, user@host:port oder rdp://host eingeben …', 'Actions': 'Aktionen', 'Log in': 'Anmelden', // App-Sperre 'App lock': 'App-Sperre', 'Lock MrTerm with a password and/or a FIDO2 security key (e.g. YubiKey). The vault is then additionally encrypted and can only be opened with one of these methods.': 'MrTerm mit Passwort und/oder FIDO2-Sicherheitsschlüssel (z. B. YubiKey) sperren. Der Vault wird dann zusätzlich verschlüsselt und lässt sich nur mit einer dieser Methoden öffnen.', 'MrTerm is locked': 'MrTerm ist gesperrt', 'MrTerm is locked.': 'MrTerm ist gesperrt.', 'Unlock': 'Entsperren', 'Unlock with security key': 'Mit Sicherheitsschlüssel entsperren', 'Disable app lock?': 'App-Sperre deaktivieren?', 'This is the last unlock method. MrTerm will no longer be locked.': 'Das ist die letzte Entsperrmethode. MrTerm wird danach nicht mehr gesperrt.', 'Disable': 'Deaktivieren', 'Set': 'Festgelegt', 'Not set': 'Nicht festgelegt', 'Change password': 'Passwort ändern', 'Set password': 'Passwort festlegen', 'New password': 'Neues Passwort', 'Repeat password': 'Passwort wiederholen', 'The passwords do not match.': 'Die Passwörter stimmen nicht überein.', 'Password saved': 'Passwort gespeichert', 'Security key': 'Sicherheitsschlüssel', 'Security key (FIDO2)': 'Sicherheitsschlüssel (FIDO2)', 'Remove security key?': 'Sicherheitsschlüssel entfernen?', 'Add security key': 'Sicherheitsschlüssel hinzufügen', 'Security key added': 'Sicherheitsschlüssel hinzugefügt', 'Lock now': 'Jetzt sperren', 'Lock (Ctrl+Shift+L)': 'Sperren (Strg+Shift+L)', 'Lock automatically after inactivity': 'Automatisch sperren bei Inaktivität', 'Never': 'Nie', '{n} minutes': '{n} Minuten', 'If you forget the password and lose all security keys, the vault cannot be recovered.': 'Wenn du das Passwort vergisst und alle Sicherheitsschlüssel verlierst, lässt sich der Vault nicht wiederherstellen.', 'No password set.': 'Kein Passwort festgelegt.', 'Wrong password.': 'Falsches Passwort.', 'No security key registered.': 'Kein Sicherheitsschlüssel registriert.', 'Unknown security key.': 'Unbekannter Sicherheitsschlüssel.', 'This security key could not unlock the vault.': 'Dieser Sicherheitsschlüssel konnte den Vault nicht entsperren.', 'The password must be at least 6 characters long.': 'Das Passwort muss mindestens 6 Zeichen lang sein.', 'Touch your security key to register it.': 'Berühre deinen Sicherheitsschlüssel, um ihn zu registrieren.', 'Touch your security key again to finish.': 'Berühre deinen Sicherheitsschlüssel noch einmal zum Abschließen.', 'Touch your security key to unlock MrTerm.': 'Berühre deinen Sicherheitsschlüssel, um MrTerm zu entsperren.', 'Security key prompt was cancelled or timed out.': 'Die Abfrage des Sicherheitsschlüssels wurde abgebrochen oder ist abgelaufen.', 'This security key does not support the hmac-secret/PRF extension.': 'Dieser Sicherheitsschlüssel unterstützt die hmac-secret/PRF-Erweiterung nicht.', // VPN '— No VPN —': '— Kein VPN —', 'Connected automatically before connecting to this host.': 'Wird vor dem Verbinden mit diesem Host automatisch aufgebaut.', 'Search VPNs …': 'VPNs suchen …', 'New VPN': 'Neues VPN', 'No VPNs': 'Keine VPNs', 'Add WireGuard or OpenVPN configurations and assign them to hosts. MrTerm connects the VPN automatically when you open such a host.': 'Füge WireGuard- oder OpenVPN-Konfigurationen hinzu und ordne sie Hosts zu. MrTerm baut das VPN automatisch auf, wenn du einen solchen Host öffnest.', 'connected': 'verbunden', 'disconnected': 'getrennt', 'Disconnect': 'Trennen', 'Connecting …': 'Verbinde …', 'VPN “{name}” connected': 'VPN „{name}“ verbunden', 'Delete VPN?': 'VPN löschen?', '“{name}” will be removed. Assigned hosts will connect without VPN.': '„{name}“ wird entfernt. Zugeordnete Hosts verbinden sich dann ohne VPN.', 'Configuration': 'Konfiguration', 'Certificates and keys must be embedded in the .ovpn file (, , …).': 'Zertifikate und Schlüssel müssen in der .ovpn-Datei eingebettet sein (, , …).', 'Contents of a WireGuard .conf file.': 'Inhalt einer WireGuard-.conf-Datei.', 'Edit VPN': 'VPN bearbeiten', 'Office VPN': 'Büro-VPN', 'Disconnect when MrTerm closes': 'Beim Beenden von MrTerm trennen', 'Assigned hosts': 'Zugeordnete Hosts', 'Configuration is missing.': 'Konfiguration fehlt.', 'This does not look like a WireGuard configuration.': 'Das sieht nicht nach einer WireGuard-Konfiguration aus.', 'VPN configuration': 'VPN-Konfiguration', 'NetworkManager (nmcli) not found. MrTerm uses NetworkManager for VPN connections.': 'NetworkManager (nmcli) nicht gefunden. MrTerm nutzt NetworkManager für VPN-Verbindungen.', 'OpenVPN support for NetworkManager is missing. Install it with: sudo pacman -S networkmanager-openvpn': 'OpenVPN-Unterstützung für NetworkManager fehlt. Installieren mit: sudo pacman -S networkmanager-openvpn', 'VPN configuration could not be imported: {err}': 'VPN-Konfiguration konnte nicht importiert werden: {err}', 'VPN “{name}” could not be connected: {err}': 'VPN „{name}“ konnte nicht verbunden werden: {err}', 'VPN not found': 'VPN nicht gefunden', 'OpenVPN GUI not found. Install OpenVPN from openvpn.net.': 'OpenVPN GUI nicht gefunden. Installiere OpenVPN von openvpn.net.', 'WireGuard for Windows not found. Install it from wireguard.com.': 'WireGuard für Windows nicht gefunden. Installiere es von wireguard.com.', 'timeout': 'Zeitüberschreitung', 'Connecting VPN “{name}” …': 'Baue VPN „{name}“ auf …', // Docker 'Docker containers': 'Docker-Container', 'Search containers …': 'Container suchen …', 'Show stopped': 'Gestoppte anzeigen', 'Connection closed.': 'Verbindung beendet.', 'No containers on this host.': 'Keine Container auf diesem Host.', 'Ports': 'Ports', 'Memory': 'Speicher', 'Open shell': 'Shell öffnen', 'Logs': 'Logs', 'Restart': 'Neu starten', 'Copy ID': 'ID kopieren', 'Delete container?': 'Container löschen?', '“{name}” will be removed including its writable layer. Volumes are kept.': '„{name}“ wird samt beschreibbarer Ebene entfernt. Volumes bleiben erhalten.', 'Stop container?': 'Container stoppen?', 'Started': 'Gestartet', 'Stopped': 'Gestoppt', 'Restarted': 'Neu gestartet', 'Deleted': 'Gelöscht', 'Docker session not found': 'Docker-Sitzung nicht gefunden', 'Neither Docker nor Podman was found on this host.': 'Auf diesem Host wurde weder Docker noch Podman gefunden.', 'No permission to use {runtime}. Add the user to the "docker" group (sudo usermod -aG docker {user}) or save the host password so MrTerm can use sudo.': 'Keine Berechtigung für {runtime}. Füge den Benutzer der Gruppe „docker“ hinzu (sudo usermod -aG docker {user}) oder hinterlege das Host-Passwort, damit MrTerm sudo verwenden kann.', '{runtime} exited with code {code}': '{runtime} beendet mit Code {code}', // Main-Prozess 'Host key has changed!': 'Host-Schlüssel hat sich geändert!', 'Unknown host': 'Unbekannter Host', 'WARNING: The host key of {target} has changed. This may indicate a man-in-the-middle attack.': 'WARNUNG: Der Host-Schlüssel von {target} hat sich geändert. Das kann auf einen Man-in-the-Middle-Angriff hindeuten.', 'The authenticity of {target} cannot be verified.': 'Die Echtheit von {target} kann nicht bestätigt werden.', 'Previously stored:': 'Bisher gespeichert:', 'Connect anyway & replace': 'Trotzdem verbinden & ersetzen', 'Trust & connect': 'Vertrauen & verbinden', '~/.ssh/config not found': '~/.ssh/config nicht gefunden', 'Host not found': 'Host nicht gefunden', 'Rule not found': 'Regel nicht gefunden', 'RDP exited (code {code}): {err}': 'RDP beendet (Code {code}): {err}', 'RDP launch failed: {msg}': 'RDP-Start fehlgeschlagen: {msg}', 'xfreerdp3 missing (sudo pacman -S freerdp)': 'xfreerdp3 fehlt (sudo pacman -S freerdp)', 'All files': 'Alle Dateien', 'No FreeRDP found. Install with: sudo pacman -S freerdp': 'Kein FreeRDP gefunden. Installieren mit: sudo pacman -S freerdp', 'No connection to the X server (MrTerm is not running under X11/XWayland).': 'Keine Verbindung zum X-Server (MrTerm läuft nicht unter X11/XWayland).', 'koffi not available': 'koffi nicht verfügbar', 'Platform not supported': 'Plattform nicht unterstützt', 'Connecting to {name} ({addr}) …': 'Verbinde mit {name} ({addr}) …', 'Password for {user}': 'Passwort für {user}', 'SFTP session not found': 'SFTP-Sitzung nicht gefunden', 'Invalid repository URL: {url}': 'Ungültige Repository-URL: {url}', 'Repository not found (private? Then add an access token in the settings).': 'Repository nicht gefunden (privat? Dann Zugriffstoken in den Einstellungen hinterlegen).', 'Update server responded with {status}': 'Update-Server antwortet mit {status}', 'No matching package for this system found in the release.': 'Kein passendes Paket für dieses System im Release gefunden.', 'Download failed ({status})': 'Download fehlgeschlagen ({status})', 'pacman exited with code {code}': 'pacman beendet mit Code {code}', 'Automatic installation is not possible here. The file is located at: {file}': 'Automatische Installation hier nicht möglich. Datei liegt unter: {file}', }; const DICTS = { de }; const LANGUAGES = [['en', 'English'], ['de', 'Deutsch']]; let lang = 'en'; // pref: 'auto' oder Sprachcode; system: z. B. navigator.language / app.getLocale() function setLanguage(pref, system) { const code = String(pref && pref !== 'auto' ? pref : system || 'en').slice(0, 2).toLowerCase(); lang = DICTS[code] ? code : 'en'; return lang; } function t(s, vars) { let r = (DICTS[lang] && DICTS[lang][s]) || s; if (vars) r = r.replace(/\{(\w+)\}/g, (m, k) => (k in vars ? String(vars[k]) : m)); return r; } const api = { t, setLanguage, LANGUAGES, get lang() { return lang; } }; if (typeof module === 'object' && module.exports) module.exports = api; else root.I18N = api; })(this);