Stufe 4c (#764): Kommentare in C#, WebUI-Skripten, CSS und HTML auf Englisch

Rund 2.600 Kommentarblöcke in 310 C#-Dateien übersetzt, Begründungen vollständig
erhalten: blockweise gleiche Anzahl wie vorher, kein Block unter 60 % seiner
Länge, der Code außerhalb der Kommentare per Tokenizer byte-identisch geprüft.
Zitate deutscher Oberflächentexte und Testdaten bleiben deutsch.

WebUI: Kommentare in JS/CSS/HTML übersetzt, JSDoc-@param an die in 4b
umbenannten Parameter angeglichen.

Dabei behoben:
- 4b hatte "tag" (HTML-Tag) als deutsches "Tag" gelesen und zu "dayValue"
  gemacht (makeElement, svg, Tagesübersicht) - zurück auf tag/day.
- Aufgaben "InProgress" bekamen die Plakettenart "laufend", für die es nie eine
  CSS-Klasse gab - jetzt "success" wie laufende Instanzen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-04 12:45:03 +02:00
co-authored by Claude Opus 5.5
parent da4ceac7d5
commit 837a634a22
311 changed files with 7238 additions and 7252 deletions
@@ -4,10 +4,10 @@ using Shouldly;
namespace ClawdDotNet.Web.Tests;
/// <summary>
/// Die Weboberfläche macht aus einer lokalen Anwendung einen Netzwerkdienst, der Agenten
/// mit Datei-, Mail-, FTP- und Datenbankzugriff steuert. Was hier geprüft wird, sind
/// keine Feinheiten der Konfiguration, sondern die Bedingungen, unter denen sie
/// überhaupt hochkommen darf.
/// The web UI turns a local application into a network service that controls agents
/// with file, mail, FTP and database access. What is checked here are
/// not subtleties of configuration, but the conditions under which it
/// may come up at all.
/// </summary>
public sealed class WebUiOptionsTests
{
@@ -27,7 +27,7 @@ public sealed class WebUiOptionsTests
[Fact]
public void Sie_ist_in_der_Vorbelegung_aus()
{
// Wer einen Netzwerkdienst will, schaltet ihn ein. Nicht andersherum.
// Whoever wants a network service switches it on. Not the other way round.
new InstanceConfig().WebUiEnabled.ShouldBeFalse();
new InstanceConfig().WebUiBinding.ShouldBe("loopback");
new InstanceConfig().WebServerPort.ShouldBe(7001);
@@ -43,8 +43,8 @@ public sealed class WebUiOptionsTests
[Fact]
public void Ohne_Token_startet_sie_nicht_einmal_auf_Loopback()
{
// Auf einer Maschine, auf der Agenten Browser-Werkzeuge bedienen, ist
// „localhost" keine Vertrauensgrenze.
// On a machine on which agents operate browser tools,
// "localhost" is no trust boundary.
WebUiOptions.TryCreate(Instanz(token: ""), out var problem).ShouldBeNull();
problem.ShouldNotBeNull();
}
@@ -79,7 +79,7 @@ public sealed class WebUiOptionsTests
[Fact]
public void Alles_ausser_any_bleibt_Loopback()
{
// Ein Tippfehler in der Instanzdatei darf die Oberflaeche nicht ins Netz stellen.
// A typo in the instance file must not put the user interface onto the network.
WebUiOptions.TryCreate(Instanz(binding: "alle"), out _)!.LoopbackOnly.ShouldBeTrue();
WebUiOptions.TryCreate(Instanz(binding: ""), out _)!.LoopbackOnly.ShouldBeTrue();
}
@@ -107,8 +107,8 @@ public sealed class WebUiOptionsTests
[Fact]
public void Das_Token_steht_geschuetzt_in_der_Instanzdatei()
{
// Ohne den Eintrag in ConfigSecrets staende es im Klartext neben dem
// geschuetzten OpenRouter-Schluessel.
// Without the entry in ConfigSecrets it would be in plain text next to the
// protected OpenRouter key.
Core.Security.ConfigSecrets.IsSecretKey("webUiToken").ShouldBeTrue();
var config = Instanz(token: "ein-hinreichend-langes-token");