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
@@ -9,15 +9,15 @@ namespace ClawdDotNet.Core.Tests.Engine;
public sealed class TokenAccountingTests
{
// ═══════════════════════════════════════════════════════════
// B4 — Prompt und Completion getrennt erfassen
// B4 — record prompt and completion separately
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Prompt_und_Completion_werden_getrennt_aufsummiert()
{
// Bisher schätzte die UI 50/50. Real liegt das Verhältnis eher bei 95:5 —
// und da Ausgabe-Tokens ein Vielfaches kosten, war die Kostenanzeige
// um ein Mehrfaches daneben.
// So far the UI estimated 50/50. In reality the ratio is more like 95:5 —
// and since output tokens cost a multiple, the cost display was
// off by several times.
var fixture = new EngineFixture().WithTool(FakeTool.Returning("ok"));
var agent = fixture.AddAgent("agent-tokens", "TestTool");
@@ -43,7 +43,7 @@ public sealed class TokenAccountingTests
var agent = fixture.AddAgent("agent-sum", "TestTool");
fixture.Client
.RespondsWithToolCall("TestTool") // 100 / 20 / 120 laut Fake
.RespondsWithToolCall("TestTool") // 100 / 20 / 120 according to the fake
.RespondsWithToolCall("TestTool")
.RespondsWithText("Fertig");
@@ -56,14 +56,14 @@ public sealed class TokenAccountingTests
}
// ═══════════════════════════════════════════════════════════
// T9 — Cache-Wirkung messbar machen
// T9 — make the cache effect measurable
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Gecachte_Tokens_werden_durchgereicht()
{
// Ohne diese Zahl liesse sich nicht belegen, ob das Prompt-Caching greift —
// ein still wirkungsloser Cache wäre sonst nicht zu bemerken.
// Without this number it could not be proven whether prompt caching works —
// a silently ineffective cache would otherwise go unnoticed.
var fixture = new EngineFixture();
var agent = fixture.AddAgent("agent-cached");
@@ -89,7 +89,7 @@ public sealed class TokenAccountingTests
}
// ═══════════════════════════════════════════════════════════
// T3 — Compaction läuft mit dem günstigen Modell
// T3 — compaction runs with the cheap model
// ═══════════════════════════════════════════════════════════
[Fact]
@@ -135,14 +135,14 @@ public sealed class TokenAccountingTests
}
// ═══════════════════════════════════════════════════════════
// Nur der wegfallende Teil wird zusammengefasst
// Only the part that goes away is summarized
// ═══════════════════════════════════════════════════════════
[Fact]
public async Task Der_erhaltene_Tail_geht_nicht_in_den_Zusammenfassungs_Aufruf()
{
// Der Tail bleibt wörtlich erhalten — ihn zusätzlich zusammenzufassen
// wäre doppelt bezahlter Kontext.
// The tail is kept verbatim — summarizing it additionally
// would be context paid for twice.
var client = new FakeChatClient().AlwaysRespondsWithText("- Zusammenfassung.");
var compactor = new ContextCompactor(client, TestLogging.Factory);