// Ü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}',
// Firewall
'Firewall': 'Firewall',
'Save the current iptables rules so they survive a reboot': 'Aktuelle iptables-Regeln speichern, damit sie einen Neustart überstehen',
'Save permanently': 'Dauerhaft speichern',
'Add rule': 'Regel hinzufügen',
'Rules saved permanently': 'Regeln dauerhaft gespeichert',
'Enable': 'Aktivieren',
'Disable firewall?': 'Firewall deaktivieren?',
'All UFW rules will stop filtering traffic.': 'Keine UFW-Regel filtert dann mehr den Datenverkehr.',
'Enable firewall?': 'Firewall aktivieren?',
'There is no rule that allows SSH (port {port}). Enabling UFW could lock you out of this server.': 'Es gibt keine Regel, die SSH (Port {port}) erlaubt. Wenn du UFW aktivierst, könntest du dich von diesem Server aussperren.',
'Enable anyway': 'Trotzdem aktivieren',
'Allow SSH and enable': 'SSH erlauben und aktivieren',
'Firewall enabled': 'Firewall aktiviert',
'Incoming': 'Eingehend',
'Outgoing': 'Ausgehend',
'Allow': 'Erlauben',
'Deny': 'Verweigern',
'Reject': 'Abweisen',
'Change default policy?': 'Standardrichtlinie ändern?',
'Incoming connections without a matching rule will be blocked. Make sure SSH is allowed.': 'Eingehende Verbindungen ohne passende Regel werden dann blockiert. Stelle sicher, dass SSH erlaubt ist.',
'Change': 'Ändern',
'No rules yet.': 'Noch keine Regeln.',
'To': 'Ziel',
'Action': 'Aktion',
'From': 'Quelle',
'Comment': 'Kommentar',
'Rule deleted': 'Regel gelöscht',
'Changes apply immediately but are lost after a reboot unless you click “Save permanently”.': 'Änderungen gelten sofort, gehen nach einem Neustart aber verloren, wenn du nicht auf „Dauerhaft speichern“ klickst.',
'rules': 'Regeln',
'Policy': 'Richtlinie',
'Traffic without a matching ACCEPT rule will be dropped. Make sure SSH is allowed, or you may lock yourself out.': 'Datenverkehr ohne passende ACCEPT-Regel wird dann verworfen. Stelle sicher, dass SSH erlaubt ist, sonst sperrst du dich eventuell aus.',
'Add UFW rule': 'UFW-Regel hinzufügen',
'Limit (rate-limit)': 'Begrenzen (Rate-Limit)',
'Direction': 'Richtung',
'Port': 'Port',
'Protocol': 'Protokoll',
'Any': 'Beliebig',
'From (IP or network)': 'Quelle (IP oder Netz)',
'Insert at the top (highest priority)': 'Ganz oben einfügen (höchste Priorität)',
'Add': 'Hinzufügen',
'Rule added': 'Regel hinzugefügt',
'Add {bin} rule': '{bin}-Regel hinzufügen',
'Chain': 'Kette',
'Target': 'Ziel',
'Source (IP or network)': 'Quelle (IP oder Netz)',
'Interface': 'Schnittstelle',
'Connection state': 'Verbindungsstatus',
'Invalid value for {field}: {value}': 'Ungültiger Wert für {field}: {value}',
'Firewall session not found': 'Firewall-Sitzung nicht gefunden',
'Command failed with code {code}': 'Befehl fehlgeschlagen mit Code {code}',
'Root privileges are required. Log in as root or save the password of a user with sudo rights on the host.': 'Dafür sind root-Rechte nötig. Melde dich als root an oder hinterlege am Host das Passwort eines Benutzers mit sudo-Rechten.',
'This host uses firewalld, which is not supported yet.': 'Dieser Host nutzt firewalld, das noch nicht unterstützt wird.',
'Neither UFW nor iptables was found on this host.': 'Auf diesem Host wurde weder UFW noch iptables gefunden.',
'Port ranges and lists need a protocol (TCP or UDP).': 'Portbereiche und -listen brauchen ein Protokoll (TCP oder UDP).',
'A port needs the protocol TCP or UDP.': 'Für einen Port ist das Protokoll TCP oder UDP nötig.',
'No known way to save iptables rules on this host (e.g. install iptables-persistent).': 'Keine bekannte Möglichkeit, iptables-Regeln auf diesem Host zu speichern (z. B. iptables-persistent installieren).',
'UFW is disabled': 'UFW ist deaktiviert',
'Enable UFW to view or add rules.': 'Aktiviere UFW, um Regeln einzusehen oder anzulegen.',
// Netzwerk
'Network': 'Netzwerk',
'Show virtual interfaces': 'Virtuelle Schnittstellen anzeigen',
'Config files': 'Konfigurationsdateien',
'New interface': 'Neue Schnittstelle',
'New bond': 'Neuer Bond',
'New bridge': 'Neue Bridge',
'New VLAN': 'Neues VLAN',
'The last network change was rolled back automatically ({time}) because MrTerm could not reconnect.': 'Die letzte Netzwerkänderung wurde automatisch zurückgenommen ({time}), weil MrTerm sich nicht erneut verbinden konnte.',
'Editing is supported for Ubuntu (netplan) and Debian/Proxmox (ifupdown). This host uses {backend}, so interfaces are shown read-only. Config files can still be edited.': 'Bearbeiten wird für Ubuntu (netplan) und Debian/Proxmox (ifupdown) unterstützt. Dieser Host nutzt {backend}, daher werden die Schnittstellen nur angezeigt. Konfigurationsdateien lassen sich trotzdem bearbeiten.',
'none': 'keins',
'Hostname': 'Hostname',
'Default gateway': 'Standard-Gateway',
'DNS servers': 'DNS-Server',
'Search': 'Suche',
'systemd-resolved is used: set DNS servers per interface.': 'systemd-resolved ist aktiv: DNS-Server pro Schnittstelle festlegen.',
'Not configured': 'Nicht konfiguriert',
'Static': 'Statisch',
'No IPv4': 'Kein IPv4',
'Mode': 'Modus',
'Configured, but not present': 'Konfiguriert, aber nicht vorhanden',
'No address': 'Keine Adresse',
'Configured': 'Konfiguriert',
'MrTerm reconnects to confirm the change. Without confirmation the server restores the previous configuration after 90 seconds.': 'MrTerm verbindet sich neu, um die Änderung zu bestätigen. Ohne Bestätigung stellt der Server nach 90 Sekunden die vorherige Konfiguration wieder her.',
'Saved': 'Gespeichert',
'Network change applied and confirmed': 'Netzwerkänderung angewendet und bestätigt',
'MrTerm could not reconnect after the change. The server restores the previous configuration automatically within 90 seconds.': 'MrTerm konnte sich nach der Änderung nicht erneut verbinden. Der Server stellt die vorherige Konfiguration innerhalb von 90 Sekunden automatisch wieder her.',
'Apply network change?': 'Netzwerkänderung anwenden?',
'The change is applied immediately. If MrTerm cannot reconnect within 90 seconds, the server restores the previous configuration automatically.': 'Die Änderung wird sofort angewendet. Kann MrTerm sich nicht innerhalb von 90 Sekunden erneut verbinden, stellt der Server die vorherige Konfiguration automatisch wieder her.',
'Reconnect via': 'Neu verbinden über',
'Change this if the change affects the address MrTerm uses to connect.': 'Ändern, wenn die Änderung die Adresse betrifft, über die MrTerm sich verbindet.',
'Apply': 'Anwenden',
'No suitable interfaces found.': 'Keine passenden Schnittstellen gefunden.',
'Usually ., e.g. eno1.100': 'Üblich: ., z. B. eno1.100',
'Bond': 'Bond',
'Members': 'Mitglieder',
'LACP rate': 'LACP-Rate',
'Hash policy': 'Hash-Richtlinie',
'MII monitoring (ms)': 'MII-Überwachung (ms)',
'Bridge': 'Bridge',
'Spanning Tree (STP)': 'Spanning Tree (STP)',
'VLAN ID': 'VLAN-ID',
'Parent interface': 'Übergeordnete Schnittstelle',
'IPv4 addresses (one per line, CIDR)': 'IPv4-Adressen (eine pro Zeile, CIDR)',
'Gateway': 'Gateway',
'IPv6 addresses (one per line, CIDR)': 'IPv6-Adressen (eine pro Zeile, CIDR)',
'IPv6 gateway': 'IPv6-Gateway',
'Method': 'Methode',
'No IPv4 address': 'Keine IPv4-Adresse',
'Search domains': 'Suchdomänen',
'Automatic (SLAAC)': 'Automatisch (SLAAC)',
'Disabled': 'Deaktiviert',
'New {kind}': 'Neue(r) {kind}',
'Select at least one member.': 'Wähle mindestens ein Mitglied aus.',
'Select the parent interface.': 'Wähle die übergeordnete Schnittstelle aus.',
'An interface with this name already exists.': 'Eine Schnittstelle mit diesem Namen gibt es bereits.',
'Applying network configuration …': 'Netzwerkkonfiguration wird angewendet …',
'Delete {kind} {name}?': '{kind} {name} löschen?',
'The interface is removed from the configuration. Members keep their current settings.': 'Die Schnittstelle wird aus der Konfiguration entfernt. Mitglieder behalten ihre aktuellen Einstellungen.',
'Change hostname': 'Hostname ändern',
'Hostname changed': 'Hostname geändert',
'Written to /etc/resolv.conf.': 'Wird in /etc/resolv.conf geschrieben.',
'Content': 'Inhalt',
'Saving applies the file with automatic rollback.': 'Beim Speichern wird die Datei mit automatischem Rollback angewendet.',
'Saving …': 'Speichere …',
'Network session not found': 'Netzwerk-Sitzung nicht gefunden',
'netplan configuration could not be read ({err}).': 'netplan-Konfiguration konnte nicht gelesen werden ({err}).',
'Editing is not supported for this network configuration ({backend}).': 'Bearbeiten wird für diese Netzwerkkonfiguration ({backend}) nicht unterstützt.',
'The new configuration is invalid and was not applied: {err}': 'Die neue Konfiguration ist ungültig und wurde nicht angewendet: {err}',
'A static configuration needs at least one IPv4 address (e.g. 192.168.1.10/24).': 'Eine statische Konfiguration braucht mindestens eine IPv4-Adresse (z. B. 192.168.1.10/24).',
'A static IPv6 configuration needs at least one IPv6 address.': 'Eine statische IPv6-Konfiguration braucht mindestens eine IPv6-Adresse.',
'Authentication failed for {user}. Check the username, password or key.': 'Anmeldung für {user} fehlgeschlagen. Prüfe Benutzername, Passwort oder Schlüssel.',
// Synchronisation
'Synchronization': 'Synchronisation',
'Synchronize hosts, groups, snippets, port forwards, VPNs and known hosts directly between MrTerm devices in your local network. The connection is end-to-end encrypted; no server or cloud is involved.': 'Hosts, Gruppen, Snippets, Port-Weiterleitungen, VPNs und Known Hosts direkt zwischen MrTerm-Geräten im lokalen Netz abgleichen. Die Verbindung ist Ende-zu-Ende verschlüsselt, ohne Server oder Cloud.',
'Enable LAN synchronization': 'LAN-Synchronisation aktivieren',
'Device name': 'Gerätename',
'No paired devices yet.': 'Noch keine gekoppelten Geräte.',
'online': 'online',
'offline': 'offline',
'last sync {time}': 'zuletzt {time}',
'Unpair': 'Entkoppeln',
'Unpair device?': 'Gerät entkoppeln?',
'“{name}” will no longer synchronize with this device.': '„{name}“ synchronisiert dann nicht mehr mit diesem Gerät.',
'Shared secrets: {keys} SSH keys, {pw} host passwords, {vpn} VPN configurations': 'Geteilte Geheimnisse: {keys} SSH-Schlüssel, {pw} Host-Passwörter, {vpn} VPN-Konfigurationen',
'Pair new device': 'Neues Gerät koppeln',
'Sync now': 'Jetzt synchronisieren',
'Synchronized with {n} device(s)': 'Mit {n} Gerät(en) synchronisiert',
'Choose shared secrets': 'Geteilte Geheimnisse auswählen',
'Devices find each other via UDP port 47811 and synchronize via TCP port 47812. If a firewall is active, allow these ports in your local network (with UFW: sudo ufw allow 47811/udp and sudo ufw allow 47812/tcp).': 'Geräte finden sich über UDP-Port 47811 und synchronisieren über TCP-Port 47812. Ist eine Firewall aktiv, erlaube diese Ports im lokalen Netz (mit UFW: sudo ufw allow 47811/udp und sudo ufw allow 47812/tcp).',
'Open “Pair new device” on the other device too, then select it here. Both devices show a code that you confirm on both sides.': 'Öffne „Neues Gerät koppeln“ auch auf dem anderen Gerät und wähle es dann hier aus. Beide Geräte zeigen einen Code, den du auf beiden Seiten bestätigst.',
'Or enter an IP address, e.g. 192.168.0.25': 'Oder IP-Adresse eingeben, z. B. 192.168.0.25',
'Searching for devices …': 'Suche nach Geräten …',
'not ready for pairing': 'nicht bereit zum Koppeln',
'Pair': 'Koppeln',
'Pairing …': 'Kopple …',
'Device found': 'Gerät gefunden',
'Choose which secrets this device may send to paired devices. Everything else (hosts, groups, snippets …) is synchronized without passwords and private keys.': 'Wähle, welche Geheimnisse dieses Gerät an gekoppelte Geräte senden darf. Alles andere (Hosts, Gruppen, Snippets …) wird ohne Passwörter und private Schlüssel synchronisiert.',
'SSH keys': 'SSH-Schlüssel',
'Host passwords': 'Host-Passwörter',
'VPN configurations': 'VPN-Konfigurationen',
'There are no secrets on this device yet.': 'Auf diesem Gerät gibt es noch keine Geheimnisse.',
'Share nothing': 'Nichts teilen',
'Select all': 'Alle auswählen',
'Paired with {name}': 'Mit {name} gekoppelt',
'Confirm pairing': 'Kopplung bestätigen',
'Pairing with “{name}”. Does the other device show the same code?': 'Kopplung mit „{name}“. Zeigt das andere Gerät denselben Code?',
'Codes differ': 'Codes unterschiedlich',
'Codes match': 'Codes stimmen überein',
'Pairing was rejected on this device.': 'Die Kopplung wurde auf diesem Gerät abgelehnt.',
'Pairing was rejected on the other device.': 'Die Kopplung wurde auf dem anderen Gerät abgelehnt.',
'Pairing verification failed.': 'Die Überprüfung der Kopplung ist fehlgeschlagen.',
'Device is not ready for pairing': 'Das Gerät ist nicht zum Koppeln bereit',
'CachyOS: allow the sync ports in the firewall': 'CachyOS: Sync-Ports in der Firewall freigeben',
'Firewall active: allow the sync ports': 'Firewall aktiv: Sync-Ports freigeben',
'Otherwise other devices cannot find or reach this device. Run these commands once in a terminal:': 'Sonst können andere Geräte dieses Gerät weder finden noch erreichen. Führe diese Befehle einmal in einem Terminal aus:',
'Copy commands': 'Befehle kopieren',
'Already done, hide': 'Erledigt, ausblenden',
'CachyOS enables the UFW firewall by default. It blocks the ports MrTerm needs to find and reach other devices (UDP 47811, TCP 47812). Run these commands once in a terminal:': 'CachyOS aktiviert standardmäßig die Firewall UFW. Sie blockiert die Ports, über die MrTerm andere Geräte findet und erreicht (UDP 47811, TCP 47812). Führe diese Befehle einmal in einem Terminal aus:',
'No devices found? The firewall on this device may block them:': 'Keine Geräte gefunden? Die Firewall dieses Geräts blockiert sie eventuell:',
'Host password': 'Host-Passwort',
'Share with paired devices?': 'Mit gekoppelten Geräten teilen?',
'Should this secret be synchronized to your paired devices ({names})? You can change this later under Settings → Synchronization.': 'Soll dieses Geheimnis mit deinen gekoppelten Geräten ({names}) synchronisiert werden? Du kannst das später unter Einstellungen → Synchronisation ändern.',
'Don\'t share': 'Nicht teilen',
'Share': 'Teilen',
// Android-App
'Lock': 'Sperren',
'Add your first server or pair this phone with MrTerm on your computer to take over your hosts.': 'Lege deinen ersten Server an oder kopple dieses Handy mit MrTerm auf deinem Computer, um deine Hosts zu übernehmen.',
'No matching hosts. Press Enter to connect to “{q}”.': 'Keine passenden Hosts. Drücke Enter, um dich mit „{q}“ zu verbinden.',
'RDP is not available on Android': 'RDP ist unter Android nicht verfügbar',
'Please enter a name.': 'Bitte einen Namen eingeben.',
'Sessions': 'Sitzungen',
'New connection': 'Neue Verbindung',
'Paste': 'Einfügen',
'Copy selection': 'Auswahl kopieren',
'Nothing selected. Long-press the terminal to select text.': 'Nichts ausgewählt. Halte das Terminal gedrückt, um Text auszuwählen.',
'Larger font': 'Schrift größer',
'Smaller font': 'Schrift kleiner',
'Close session': 'Sitzung schließen',
'Generate a new SSH key or import an existing one.': 'Erzeuge einen neuen SSH-Schlüssel oder importiere einen vorhandenen.',
'Key created': 'Schlüssel erstellt',
'Add the public key to ~/.ssh/authorized_keys on your servers.': 'Trage den öffentlichen Schlüssel auf deinen Servern in ~/.ssh/authorized_keys ein.',
'Save frequently used commands and send them to a terminal with one tap.': 'Speichere häufig genutzte Befehle und sende sie mit einem Tippen an ein Terminal.',
'Run in terminal': 'Im Terminal ausführen',
'Command': 'Befehl',
'End the command with a line break to run it immediately.': 'Endet der Befehl mit einem Zeilenumbruch, wird er sofort ausgeführt.',
'Please enter a command.': 'Bitte einen Befehl eingeben.',
'General': 'Allgemein',
'System language': 'Systemsprache',
'Known hosts': 'Bekannte Hosts',
'{n} saved host keys': '{n} gespeicherte Hostschlüssel',
'Show': 'Anzeigen',
'Version {v}': 'Version {v}',
'Updates are installed with Obtainium.': 'Updates werden mit Obtainium installiert.',
'No known hosts yet.': 'Noch keine bekannten Hosts.',
'Remove host key?': 'Hostschlüssel entfernen?',
'Immediately': 'Sofort',
'After 1 minute': 'Nach 1 Minute',
'After 5 minutes': 'Nach 5 Minuten',
'Protect MrTerm with a password and optionally your fingerprint. The vault is then additionally encrypted.': 'Schütze MrTerm mit einem Passwort und optional deinem Fingerabdruck. Der Tresor wird dann zusätzlich verschlüsselt.',
'Remove app lock': 'App-Sperre entfernen',
'Remove app lock?': 'App-Sperre entfernen?',
'MrTerm will open without a password.': 'MrTerm öffnet sich dann ohne Passwort.',
'Unlock with fingerprint': 'Mit Fingerabdruck entsperren',
'Uses the fingerprint or face unlock of this phone.': 'Nutzt den Fingerabdruck- oder Gesichtsscanner dieses Handys.',
'Confirm fingerprint': 'Fingerabdruck bestätigen',
'Lock when leaving the app': 'Sperren beim Verlassen der App',
'Enter your password to unlock.': 'Gib dein Passwort ein, um zu entsperren.',
'Unlock MrTerm': 'MrTerm entsperren',
'Use password': 'Passwort verwenden',
'Your fingerprints have changed. Unlock with your password and set up fingerprint unlock again.': 'Deine Fingerabdrücke haben sich geändert. Entsperre mit deinem Passwort und richte das Entsperren per Fingerabdruck neu ein.',
'Take over hosts, groups, snippets and known hosts from MrTerm on your computer. The connection is end-to-end encrypted and stays in your local network.': 'Übernimm Hosts, Gruppen, Snippets und bekannte Hosts von MrTerm auf deinem Computer. Die Verbindung ist Ende-zu-Ende verschlüsselt und bleibt in deinem lokalen Netzwerk.',
'Both devices must be in the same Wi-Fi. If nothing is found, allow UDP port 47811 and TCP port 47812 in the firewall of your computer.': 'Beide Geräte müssen im selben WLAN sein. Wird nichts gefunden, gib in der Firewall deines Computers UDP-Port 47811 und TCP-Port 47812 frei.',
'Or enter an IP address': 'Oder IP-Adresse eingeben',
'Copy failed': 'Kopieren fehlgeschlagen',
'Fingerprint unlock is not set up.': 'Entsperren per Fingerabdruck ist nicht eingerichtet.',
'Fingerprint unlock failed. Use your password.': 'Entsperren per Fingerabdruck fehlgeschlagen. Verwende dein Passwort.',
'Set a password first.': 'Lege zuerst ein Passwort fest.',
// Web-Version
'RDP is not available in the web version.': 'RDP ist in der Web-Version nicht verfügbar.',
'Account': 'Konto',
'Signed in as {name}': 'Angemeldet als {name}',
'Administrator': 'Administrator',
'Current password': 'Aktuelles Passwort',
'Sign out': 'Abmelden',
'Users': 'Benutzer',
'User': 'Benutzer',
'Delete user?': 'Benutzer löschen?',
'“{name}” and their vault will be permanently deleted.': '„{name}“ und der zugehörige Tresor werden endgültig gelöscht.',
'Add user': 'Benutzer hinzufügen',
'Your vault is stored on the server, encrypted with a key that only your login password can unlock.': 'Dein Tresor liegt auf dem Server, verschlüsselt mit einem Schlüssel, den nur dein Login-Passwort entsperren kann.',
'Folders cannot be downloaded in the browser: {name}': 'Ordner können im Browser nicht heruntergeladen werden: {name}',
'Welcome! Create the administrator account for this MrTerm server.': 'Willkommen! Lege das Administrator-Konto für diesen MrTerm-Server an.',
'Sign in to your MrTerm server.': 'Melde dich an deinem MrTerm-Server an.',
'Create account': 'Konto anlegen',
'Sign in': 'Anmelden',
'Administrators only.': 'Nur für Administratoren.',
'Forbidden': 'Nicht erlaubt',
'Not signed in': 'Nicht angemeldet',
'Setup is already complete.': 'Die Einrichtung ist bereits abgeschlossen.',
'The current password is wrong.': 'Das aktuelle Passwort ist falsch.',
'The last administrator cannot be deleted.': 'Der letzte Administrator kann nicht gelöscht werden.',
'Too many failed attempts. Try again in 15 minutes.': 'Zu viele Fehlversuche. Versuche es in 15 Minuten erneut.',
'User not found.': 'Benutzer nicht gefunden.',
'Wrong username or password.': 'Benutzername oder Passwort falsch.',
'You cannot delete yourself.': 'Du kannst dich nicht selbst löschen.',
'The password must be at least 8 characters long.': 'Das Passwort muss mindestens 8 Zeichen lang sein.',
'This username is already taken.': 'Dieser Benutzername ist bereits vergeben.',
'Usernames may contain letters, digits and . _ @ - (max. 64).': 'Benutzernamen dürfen Buchstaben, Ziffern und . _ @ - enthalten (max. 64).',
'Connection lost – reconnecting …': 'Verbindung verloren – verbinde neu …',
// 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);