Mehrsprachigkeit (Englisch/Deutsch, Systemsprache oder Auswahl in den Einstellungen), README auf Englisch für Nutzer, Version 0.4.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+365
@@ -0,0 +1,365 @@
|
||||
// Ü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 <code>gnome-keyring</code> or <code>kwallet</code>.': 'Der Vault ist nicht verschlüsselt, da kein Schlüsselbund verfügbar ist. Unter Arch/CachyOS: <code>gnome-keyring</code> oder <code>kwallet</code> 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 <b>Devolutions Remote Desktop Manager</b>. In RDM: <i>File → Export → Export entries</i> as <code>.rdm</code> (XML), JSON or CSV. RDM only exports passwords unencrypted if you enable that during export.': 'Ordner und Hosts (RDP & SSH) aus <b>Devolutions Remote Desktop Manager</b> übernehmen. In RDM: <i>Datei → Exportieren → Einträge exportieren</i> als <code>.rdm</code> (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 <code>git pull</code>.': 'Entwicklungsmodus: Bitte per <code>git pull</code> 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',
|
||||
|
||||
// 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);
|
||||
Reference in New Issue
Block a user