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
@@ -7,7 +7,7 @@ using Shouldly;
namespace ClawdDotNet.Core.Tests.Accounting;
/// <summary>Die Kostenprognose (#595): Grundlage je Aufgabe, Hochrechnung, sonstige Laeufe.</summary>
/// <summary>The cost forecast (#595): basis per task, projection, other runs.</summary>
public sealed class KostenPrognoseTests
{
private static readonly DateTime Jetzt = new(2026, 9, 15, 10, 0, 0, DateTimeKind.Utc);
@@ -116,7 +116,7 @@ public sealed class KostenPrognoseTests
[Fact]
public void Budgetablehnungen_druecken_den_Schnitt_nicht()
{
// #608: Eine Ablehnung steht als Beleg ueber 0 USD im Verlauf - sie ist kein Lauf.
// #608: A rejection stands as a receipt of 0 USD in the history - it is not a run.
var abgelehnt = Beleg("t-1", 0m) with { Status = "BudgetExceeded" };
var zeile = Rechne([Stuendlich("t-1")], Belege(("t-1", [Beleg("t-1", 0.02m, 2), abgelehnt])))
@@ -142,8 +142,8 @@ public sealed class KostenPrognoseTests
}
[Theory]
[InlineData(0)] // keine Grenze gesetzt
[InlineData(1.0)] // Budget reicht
[InlineData(0)] // no limit set
[InlineData(1.0)] // budget suffices
public void Ohne_Grenze_oder_mit_Luft_keine_Budgetwarnung(double budget)
{
var agent = new AgentConfig { AgentId = "nachrichten", Model = Nachrichten.Model, SystemPrompt = "x" };