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:
2026-09-25 18:18:03 +02:00
co-authored by Claude Opus 5.5
parent b578a6c7ec
commit 2890844c81
14 changed files with 761 additions and 322 deletions
+2 -2
View File
@@ -66,7 +66,7 @@
function parseXml(text) {
const doc = new DOMParser().parseFromString(text, 'application/xml');
if (doc.querySelector('parsererror')) throw new Error('Datei ist kein gültiges XML.');
if (doc.querySelector('parsererror')) throw new Error(I18N.t('File is not valid XML.'));
const conns = [...doc.getElementsByTagName('Connection')].filter((c) => child(c, 'ConnectionType'));
return conns.map((c) => makeEntry({
type: child(c, 'ConnectionType'),
@@ -125,7 +125,7 @@
host: idx('host', 'hostname', 'url', 'computername', 'address'), port: idx('port', 'hostport'),
username: idx('username', 'user', 'login'), domain: idx('domain'), password: idx('password'), description: idx('description'),
};
if (col.host < 0 && col.type < 0) throw new Error('CSV-Spalten nicht erkannt (erwartet u. a. Name, Host, ConnectionType, Group).');
if (col.host < 0 && col.type < 0) throw new Error(I18N.t('CSV columns not recognized (expected e.g. Name, Host, ConnectionType, Group).'));
return rows.map((r) => {
const v = (k) => (col[k] >= 0 ? (r[col[k]] || '').trim() : '');
return makeEntry({ type: v('type') || 'RDPConfigured', name: v('name'), group: v('group'), url: v('host'), port: v('port'), username: v('username'), domain: v('domain'), password: v('password'), description: v('description') });