i18n: Englisch als Hauptsprache, Sprachpakete fuer Desktop und WebUI (#661)

Umbau durch Gemini Flash, Durchsicht und Nacharbeit durch Claude.

Umfang:
- Desktop: LocalizationManager (JSON-Pakete, Rueckfall auf Englisch,
  Umschalten zur Laufzeit), Localize-Markup-Erweiterung, Sprachwahl in den
  Einstellungen (AppSettings.Language, Vorgabe "en"); 317 Schluessel je Sprache
- WebUI: alle Ansichten auf t()/data-i18n, 656 Schluessel je Sprache
- Agenten-Werkzeuge: Beschreibungen, Schemata und Meldungen auf Englisch
- Tests an die englischen Meldungen angepasst, keine Pruefung abgeschwaecht

Nacharbeit bei der Durchsicht:
- ~25 Kommentarbloecke mit Begruendungen waren ersatzlos entfallen, darunter
  sicherheitsrelevante (NTFS-Datenstrom beim shared:-Praefix, Bremse gegen
  Agentenschleifen, doppelter POST beim Anlegen einer Instanz). Wieder
  eingesetzt: auf Englisch, wo die Datei umgestellt ist, sonst im Wortlaut.
- Drei WebUI-Schluessel fehlten (logs.paused, instances.instanceOfflineError,
  instances.noInstanceActiveError). Weil t() bei fehlendem Schluessel den
  Schluessel selbst liefert, griff der "|| err.message"-Rueckfall nie — die
  Oberflaeche haette den Schluesselnamen angezeigt.

Geprueft: Schluesselgleichheit en/de, Platzhalter je Schluessel, jeder im
Code benutzte Schluessel vorhanden, node --check fuer alle Module,
1.220 Tests gruen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-24 09:43:51 +02:00
co-authored by Claude Opus 5.5
parent 69718122f3
commit ad71682c2d
97 changed files with 4103 additions and 1928 deletions
+14 -15
View File
@@ -23,18 +23,17 @@ public sealed class DatabaseTool : IAgentTool
public string Name => "Database";
public string Description => """
Zugriff auf eine SQL-Datenbank (MySQL/MariaDB, Postgres, MSSQL) oder MongoDB.
Access to a SQL database (MySQL/MariaDB, Postgres, MSSQL) or MongoDB.
SQL: Schicke jedes Statement mit action "query" und "sql" - lesend wie schreibend. Die Art
(lesen, schreiben, Struktur aendern) ergibt sich aus dem Statement selbst. Ein Statement je
Aufruf, keine SQL-Kommentare. Nur die freigegebenen Tabellen sind erreichbar.
Tabellenstruktur: "DESCRIBE <tabelle>" oder "SHOW COLUMNS FROM <tabelle>" - pruefe die
Spaltennamen, bevor du schreibst. Schreibende Statements liefern die Zahl betroffener Zeilen.
Welche Operationen (SELECT, INSERT, UPDATE, ALTER ...) du ohne Rueckfrage ausfuehren darfst,
legt deine Werkzeugkonfiguration fest. Andere werden einzeln zur Freigabe vorgelegt statt
sofort ausgefuehrt; liegt derselbe Vorschlag schon vor, lege ihn nicht erneut vor.
SQL: Send each statement with action "query" and "sql" - both read and write. The operation type
(read, write, schema change) is determined from the statement itself. One statement per call,
no SQL comments. Only configured allowed tables can be accessed.
Table schema: "DESCRIBE <table>" or "SHOW COLUMNS FROM <table>" - verify column names before writing.
Write statements return the number of affected rows.
Which operations (SELECT, INSERT, UPDATE, ALTER...) you can execute without confirmation is determined
by your tool configuration. Other operations will require approval.
MongoDB: action query (filter), insert (document) in einer freigegebenen collection.
MongoDB: action query (filter), insert (document) in an allowed collection.
""";
public JsonElement InputSchema { get; } = JsonDocument.Parse("""
@@ -44,23 +43,23 @@ public sealed class DatabaseTool : IAgentTool
"action": {
"type": "string",
"enum": ["query", "insert", "upsert"],
"description": "Die auszuführende Aktion"
"description": "The action to perform"
},
"sql": {
"type": "string",
"description": "Das auszuführende SQL Statement (nur für SQL-Typen)"
"description": "The SQL statement to execute (SQL database types only)"
},
"collection": {
"type": "string",
"description": "Der Name der Collection (nur für MongoDB)"
"description": "The collection name (MongoDB only)"
},
"filter": {
"type": "string",
"description": "JSON-Filter (nur für MongoDB)"
"description": "JSON filter (MongoDB only)"
},
"document": {
"type": "string",
"description": "JSON-Dokument zum Einfügen/Update (nur für MongoDB)"
"description": "JSON document to insert/update (MongoDB only)"
}
},
"required": ["action"]