dsh-think-translate 1.2.14 → 1.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.de.md CHANGED
@@ -1,127 +1,219 @@
1
- <div align="center">
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/hero.de.png?v=1.2.17" alt="dsh-think-translate — KI-Gedanken in deiner Sprache" width="100%" />
3
+ </p>
2
4
 
3
- # 🐋 dsh-think-translate
5
+ <p align="center">
6
+ <b>Übersetzung der Anzeigeebene für DeepSeek Harness.</b><br />
7
+ Gedanken lesen, Aufgaben verfolgen und Antworten verstehen. Originale bleiben erhalten; Übersetzungen gelangen nicht in den Modellkontext.
8
+ </p>
4
9
 
5
- **Sprachen:** [English](README.md) · [中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Русский](README.ru.md)
10
+ <p align="center">
11
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/badge-mit.de.svg?v=1.2.17" alt="MIT-Lizenz" />
12
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/badge-local.de.svg?v=1.2.17" alt="Lokales Ollama" />
13
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/badge-original.de.svg?v=1.2.17" alt="Originale erhalten" />
14
+ </p>
6
15
 
7
- [![npm version](https://img.shields.io/npm/v/dsh-think-translate?color=4D6BFE&label=npm)](https://www.npmjs.com/package/dsh-think-translate)
8
- [![license](https://img.shields.io/npm/l/dsh-think-translate?color=4D6BFE)](LICENSE)
9
- [![dsh](https://img.shields.io/badge/powered_by-dsh-4D6BFE?style=flat-square&logo=deepseek&logoColor=white)](https://github.com/deepseek-ai/deepseek-harness)
16
+ <p align="center">
17
+ <a href="README.zh-CN.md">中文</a> · <a href="README.md">English</a> · <a href="README.ja.md">日本語</a> · <a href="README.ko.md">한국어</a> · <a href="README.es.md">Español</a> · <a href="README.fr.md">Français</a> · <b>Deutsch</b> · <a href="README.ru.md">Русский</a> · <a href="README.pt.md">Português</a>
18
+ </p>
10
19
 
11
- <img src="demo/demo.gif?v=2" width="46%" alt="dsh-think-translate demo" style="border:1px solid #4D6BFE;border-radius:8px;margin:4px" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="demo/demo2.gif?v=2" width="41%" alt="dsh-think-translate demo 2" style="border:1px solid #4D6BFE;border-radius:8px;margin:4px" />
12
-
13
- </div>
20
+ <p align="center">
21
+ <a href="#quick-start"><img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/nav-quick-start.de.svg?v=1.2.17" alt="Installation" height="24" /></a> &nbsp;·&nbsp; <a href="#demo"><img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/nav-demo.de.svg?v=1.2.17" alt="Live-Demos" height="24" /></a> &nbsp;·&nbsp; <a href="#features"><img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/nav-features.de.svg?v=1.2.17" alt="Funktionen" height="24" /></a> &nbsp;·&nbsp; <a href="#comparison"><img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/nav-comparison.de.svg?v=1.2.17" alt="Vergleich" height="24" /></a> &nbsp;·&nbsp; <a href="#faq"><img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/nav-faq.de.svg?v=1.2.17" alt="Fragen" height="24" /></a>
22
+ </p>
14
23
 
15
24
  ---
16
25
 
17
- Übersetzung auf Anzeigeebene für die Web-Oberfläche von [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): Die **Gedankenkette (Think-Zeile), Aufgabenkarten und der Antworttext** werden in der gewählten Zielsprache angezeigt, während die Originale im Verlauf unverändert bleiben und der übersetzte Text **nie in den Modellkontext gelangt**.
26
+ <a id="demo"></a>
27
+ ## Gedanken beim Entstehen erleben
28
+
29
+ <table>
30
+ <tr>
31
+ <td width="50%" align="center" valign="bottom">
32
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/demo/demo.gif?v=1.2.17" alt="Demo 1 · Gedanken und Antworten" width="100%" />
33
+ </td>
34
+ <td width="50%" align="center" valign="bottom">
35
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/demo/demo2.gif?v=1.2.17" alt="Demo 2 · Weitere Bedienung" width="100%" />
36
+ </td>
37
+ </tr>
38
+ <tr>
39
+ <td align="center" valign="top"><sub>Demo 1 · Gedanken und Antworten</sub></td>
40
+ <td align="center" valign="top"><sub>Demo 2 · Weitere Bedienung</sub></td>
41
+ </tr>
42
+ </table>
18
43
 
19
- ## ✨ Funktionen
44
+ <a id="comparison"></a>
45
+ ## Vergleich mit dem offiziellen Übersetzungsplugin
20
46
 
21
- Modelle der DeepSeek-Familie denken oft auf Chinesisch — oder in der Sprache, in der sie gerade denken. dsh-think-translate zeigt die Think-Zeile, Aufgabenkarten und die Antwort live in *Ihrer* Sprache an, wie Untertitel für das Denken des Modells.
47
+ <p align="center">
48
+ <img src="https://raw.githubusercontent.com/UncleK/dsh-think-translate/main/docs/assets/translation-comparison.de.png?v=1.2.17" alt="Vergleich mit dem offiziellen Übersetzungsplugin" width="100%" />
49
+ </p>
22
50
 
23
- - **Ablehnungsgründe der automatischen Prüfung** — ergänzt die Genehmigungskarte asynchron um eine Übersetzung, behält das Original und bietet einen eigenen Schalter.
24
- - **🕵️ Jede Gedankenkette lesbar** — Reasoning, Gedankenkette, Aufgabenkarten und Antworten in Echtzeit übersetzt, in Stapeln gestreamt
25
- - **8 Zielsprachen** — 中文 / English / 日本語 / 한국어 / Español / Français / Deutsch / Русский
26
- - **Einsprachige Oberfläche** — Einstellungsbereich, Denkzeilen und Aufgabenkarten folgen der Zielsprache (kein zh/en-Gemisch); die Auswahl bleibt erhalten
27
- - **Lokales Ollama** — vorhandene Installation und Modelle werden wiederverwendet. Steht aktiviertes Ollama an erster Stelle oder wird Test angeklickt, startet der Dienst bei Bedarf und lädt das Modell. Fehlende Software/Modelle werden erst über die Vorbereitungsschaltfläche installiert/heruntergeladen, mit Fortschrittsanzeige
28
- - **🧠 Null Kontextkosten** — reine Anzeigeschicht: das Modell sieht weiterhin den Originaltext, und übersetzter Text verbraucht niemals das Kontextfenster
29
- - **Google / Bing-Fallback** — automatische Umschaltung, wenn das lokale Modell nicht verfügbar ist (google nutzt einen Node-CONNECT-Tunnel über den Systemproxy)
30
- - **Code-Artefakte übersprungen** — Pfade, Befehle, URLs, Regexes und reine Codezeilen werden nie übersetzt
31
- - **Satzweise Batch-Übersetzung** — lange Denkketten werden in kleinen Sätzen übersetzt, damit lokale kleine Modelle Qualität behalten
32
- - **🧩 Absatz- und satzweise Zerlegung** — lange Denkketten werden an Leerzeilen geteilt (Absatzstruktur bleibt erhalten) und zusätzlich satzweise gebündelt, damit kleine lokale Modelle Qualität behalten
33
- - **Streaming-Ausgabe** — Übersetzungen erscheinen während des Denkens batchweise; Think-Zeile aufklappen zum Vergleich mit dem Original
34
- - **🎚️ Einstellbarer Übersetzungszeitpunkt** — alles vorübersetzen / alte Ketten lazy laden (Standard) / nur beim Aufklappen
35
- - **🔗 Dynamische Anbieter-Kette** — die Listenreihenfolge ist die Ausführungsreihenfolge: ziehen zum Sortieren, jede Zeile einzeln ein-/ausschalten. Integriert google gtx / bing / lokales Ollama plus beliebige eigene Endpunkte
36
- - **🔌 Eigene Anbieter (OpenAI & Anthropic)** — im Panel jeden OpenAI-kompatiblen Endpunkt (`/v1/chat/completions`) oder die **Anthropic Messages API** (Claude) hinzufügen: Typ, Vorlage, Basis-URL, API-Schlüssel, Modell
37
- - **🪄 DSH-konfigurierte Anbieter übernehmen** — liest schreibgeschützte DSH-Zeilen aus `profiles/<profile>/cordis.patch.yml` / älteres `settings.yaml` (`llm-pi-ai.providers`); eine Schaltfläche liest neu ein und fügt alle der Kette hinzu. Der Schlüssel wird pro Anfrage aus `.credentials.yaml` aufgelöst und nie in der Plugin-Konfiguration gespeichert. Auch die eigene Standardroute des Harness zählt: zeigt `default-model` / `agent-default-model` auf `deepseek-official`, erscheint die offizielle DeepSeek-API als weitere DSH-Zeile
38
- - **⏱️ Robust** — fehlgeschlagene Übersetzungen werden 30 Sekunden im Arbeitsspeicher zwischengespeichert und danach automatisch erneut versucht; jede Anbieterzeile hat eine Test-Schaltfläche
51
+ Aktiviere dieses Plugin oder den offiziellen Gedankenübersetzer. Beide übernehmen die Gedankenoberfläche.
39
52
 
40
- ## 📦 Installation
53
+ <a id="quick-start"></a>
54
+ ## Mit einem Befehl starten
41
55
 
42
56
  ```bash
43
- # Option 1: npm (empfohlen)
44
57
  dsh plugin --profile web add dsh-think-translate
45
- # dann web neu starten
58
+ ```
59
+
60
+ Starte DSH Web nach der Installation vollständig neu. Wähle unter **Einstellungen → Gedankenübersetzung** die Zielsprache und Anbieter.
46
61
 
47
- # Option 2: GitHub
62
+ <details>
63
+ <summary><b>GitHub-Installation, Updates und weitere Methoden</b></summary>
64
+
65
+ Von GitHub installieren:
66
+
67
+ ```bash
48
68
  dsh plugin --profile web add github:UncleK/dsh-think-translate
69
+ ```
70
+
71
+ Über npm aktualisieren:
49
72
 
50
- # Option 3: manuell (Junction + Patch)
51
- # 1. Paket in das node_modules des Profils verlinken
52
- New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\node_modules\dsh-think-translate" `
53
- -Target "<Repository-Pfad>"
54
- # 2. zu "$HOME\.dsh\profiles\web\cordis.patch.yml" hinzufügen:
55
- # - insert:
56
- # - id: dsh-think-translate
57
- # name: dsh-think-translate
58
- # 3. web neu starten
73
+ ```bash
74
+ dsh plugin --profile web add dsh-think-translate@latest
59
75
  ```
60
76
 
61
- ## 🧯 Nach einem DSH-Upgrade
77
+ Starte DSH nach Installation oder Update vollständig neu. Manuell wird das Paket ins Profil verlinkt und in `cordis.patch.yml` eingetragen. Im Alltag sind die obigen Befehle empfohlen.
78
+
79
+ </details>
80
+
81
+ <a id="features"></a>
82
+ ## Mehr verstehen als nur Gedanken
83
+
84
+ <table>
85
+ <tr>
86
+ <td width="50%" valign="top">
87
+ <h3>Gedanken live mitlesen</h3>
88
+ <p>Alles vorübersetzen, Verlauf bei Bedarf laden oder nur beim Aufklappen übersetzen</p>
89
+ </td>
90
+ <td width="50%" valign="top">
91
+ <h3>Aufgaben und Antworten gemeinsam</h3>
92
+ <p>Gedanken, Aufgabenkarten und Aufgabenliste im Eingabebereich; Antworten und Ablehnungsgründe der automatischen Prüfung optional</p>
93
+ </td>
94
+ </tr>
95
+ <tr>
96
+ <td width="50%" valign="top">
97
+ <h3>Prüfentscheidungen verstehen</h3>
98
+ <p>Lehnt die automatische Prüfung einen Werkzeugaufruf ab, erscheint der Grund übersetzt neben dem Original. Die vorhandenen Entscheidungsschaltflächen bleiben verfügbar.</p>
99
+ </td>
100
+ <td width="50%" valign="top">
101
+ <h3>Originale und Code erhalten</h3>
102
+ <p>Originale bleiben erhalten; Übersetzungen gelangen nicht in den Modellkontext. Nutzt Markdown-Komponenten; schützt Code, Pfade und Befehle vor der Übersetzung.</p>
103
+ </td>
104
+ </tr>
105
+ <tr>
106
+ <td width="50%" valign="top">
107
+ <h3>Lokale Modelle bei Bedarf laden</h3>
108
+ <p>Manuell, beim Abwählen oder nach Leerlauf freigeben; Laden bei der nächsten Übersetzung</p>
109
+ </td>
110
+ <td width="50%" valign="top">
111
+ <h3>Anbieter in deiner Reihenfolge</h3>
112
+ <p>Automatischer Wechsel in aktivierter Reihenfolge; klar falsche Sprache löst nächsten Anbieter aus; neuer Versuch nach Wartezeit</p>
113
+ </td>
114
+ </tr>
115
+ </table>
116
+
117
+ ### Bereits genutzte Anbieter verbinden
118
+
119
+ **Ollama · Google · Bing · OpenAI · Anthropic Messages API**
120
+
121
+ DSH-Anbieter erkennen, ohne Endpunkte und Schlüssel erneut einzugeben. Jede Zeile lässt sich separat testen; die Listenreihenfolge bestimmt die Versuche.
122
+
123
+ ```text
124
+ Erste Wahl → nächster aktiver Anbieter → … → Original, wenn alle scheitern
125
+ ```
62
126
 
63
- Client-Plugins von Drittanbietern werden über den Client-Modulgraphen von DSH geladen, und dieser Graph wird **pro Prozess nur einmal** zusammengesetzt – eine fehlgeschlagene Komposition bleibt bis zum Neustart im Speicher. Deshalb passieren direkt nach einem Upgrade meist diese drei Dinge.
127
+ <details>
128
+ <summary><b>Eigene Endpunkte, Zugangsdaten und Wiederholung</b></summary>
64
129
 
65
- - **Der Start aus einem Source-Checkout schlägt fehl** mit `client bundles not found; run \`pnpm run build\` before launch` —— die neuen Client-Pakete sind nicht gebaut: führe `pnpm run build` im Harness-Checkout aus und starte `dsh web` erneut.
66
- - **Die Plugin-Oberfläche ist verschwunden** (keine übersetzte Think-Zeile, kein Abschnitt *Übersetzung der Gedankenkette* in den Einstellungen) —— **starte `dsh web` einmal neu**; ein bloßes Neuladen der Seite reicht manchmal nicht.
67
- - **Die Liste der lokalen Modelle ist leer** —— der `ollama`-Dienst bedient dieses Modellverzeichnis nicht: prüfe `ollama list` (oder `GET /api/tags`) und das `OLLAMA_MODELS`, das der laufende Dienst tatsächlich verwendet. Liegen die Modelldateien auf einem anderen Laufwerk, kann ein Verzeichnis-Junction das Standardverzeichnis des Dienstes dorthin zeigen lassen.
130
+ - Unterstützt OpenAI-kompatibles `/v1/chat/completions` und die native Anthropic Messages API.
131
+ - Erkennt Anbieter im aktuellen DSH-Profil und in Überschreibungen. Erneut suchen und zur Übersetzungskette hinzufügen.
132
+ - `apiKeyEnv` wird bei der Anfrage aufgelöst; aufgelöste Schlüssel werden nicht in die Plugin-Konfiguration zurückgeschrieben.
133
+ - Fehler warten 30 Sekunden im Host-Speicher vor neuen Versuchen. Klar falsche Sprache löst den nächsten Anbieter aus.
134
+ - Als Zielsprache erkannter Text wird übersprungen; Anbietertests senden eine echte Anfrage.
68
135
 
69
- Am Plugin ist nichts zu konfigurieren: Es deklariert keine Reihenfolge-Abhängigkeit zu DSH-Interna (es bindet nur den `slots`-Dienst und optional `@deepseek-ai/dsh-client-ui-primitives`) und läuft daher sowohl auf älterem DSH (≤ 0.1.1-rc) als auch auf der aktuellen Linie (≥ 0.1.2-alpha.1, inklusive 0.1.5-rc.1).
136
+ </details>
70
137
 
71
- Für DSH **0.2.0-rc.2** verwenden Sie **dsh-think-translate 1.2.5 oder neuer**. Version 1.2.5 behebt den Registrierungskonflikt des Slots `todo_write` und deklariert den Peer-Versionsbereich 0.2. Führen Sie `dsh plugin --profile web add dsh-think-translate@latest` aus und starten Sie DSH neu; eine Versionsausnahme ist nicht nötig.
138
+ ### Lokale Übersetzungsmodelle: bei Bedarf laden und freigeben
72
139
 
73
- **1.2.6** behebt doppelt angezeigte Gedanken und Antworten in DSH 0.2: Der Renderer und die Originaltext-Anzeige bei Fehlern beachten die Gruppen reasoning/response.
140
+ | Deine Aktion | Plugin-Verhalten |
141
+ |---|---|
142
+ | Übersetzen oder testen | Dienst starten und gewähltes Modell bei Bedarf laden |
143
+ | Modellspeicher freigeben | Laufende Übersetzungen abwarten, dann entladen; Dateien, Schalter und Reihenfolge bleiben |
144
+ | Lokalen Anbieter abwählen | Deaktivieren und gewähltes Modell entladen |
145
+ | Erneut aktivieren oder Einstellungen öffnen | Kein Vorladen; Laden bei der nächsten tatsächlichen Übersetzung |
146
+ | Freigabe nach Leerlauf festlegen | Standard: 5 Minuten; 1 / 5 / 10 / 30 / 60 Minuten oder aus |
74
147
 
75
- **1.2.7 lokale Vorbereitung:** Aktiviertes Ollama an erster Stelle oder dessen Test findet vorhandene Installationen und startet/lädt das Modell. Fehlende Software und Modelle werden erst über die Vorbereitungsschaltfläche installiert/heruntergeladen, mit Fortschritt je Phase. Automatische Softwareinstallation unter Windows, sonst offizielle Anleitung. Der aktuelle Anbieter folgt der Priorität aktivierter, geprüfter Anbieter.
148
+ Die Zeit gilt ab der nächsten Nutzung. Ollama überwacht das gewählte Modell; globale Umgebungsvariablen bleiben unverändert. Fehlende Software oder Modelle werden erst nach Klick auf Vorbereiten installiert oder heruntergeladen, mit Fortschrittsanzeige.
76
149
 
77
- **1.2.8 Übertragung und Wiederaufnahme:** Normale HTTP/HTTPS-Übersetzungen nutzen die nativen Netzwerkfunktionen von Node statt eines curl-Prozesses pro Textpaket. SOCKS-Proxys und der Ollama-Installer verwenden weiterhin curl. Fehler bleiben 30 Sekunden im Arbeitsspeicher; danach werden Denk- und Antwortübersetzungen automatisch erneut versucht. Die Zeitlimits berücksichtigen das Laden lokaler Modelle und alternative Anbieter.
150
+ <a id="languages"></a>
151
+ ### Deine Sprache bleibt dabei
78
152
 
79
- **1.2.14:** Zielsprachvorgaben und Quelltext werden klar getrennt. Übersetzungen in einer offensichtlich falschen Sprache werden verworfen und der nächste aktivierte Anbieter wird versucht. Ungültige Übersetzungen bleiben nicht als Erfolge im Cache; alte Übersetzungscaches werden gelöscht, Einstellungen, Code, zitierte Begriffe und uneindeutige Kurztexte bleiben erhalten. DSH Web oder Desktop nach dem Update vollständig neu starten. [#14](https://github.com/UncleK/dsh-think-translate/issues/14).
153
+ 中文 · English · 日本語 · 한국어 · Español · Français · Deutsch · Русский · Português
80
154
 
81
- **1.2.13:** Auto-review-Ablehnungskarten behalten den Originaltext und ergänzen asynchron eine Übersetzung; ein eigener Schalter ist standardmäßig aktiviert. Nach Deaktivierung, Sprachwechsel oder Entfernen der Karte werden alte Ergebnisse verworfen. Nicht englische Gründe werden ebenfalls ins Englische übersetzt. Vielen Dank an [llg1634](https://github.com/llg1634) für den Bericht, den ursprünglichen Patch und die Tests in [#13](https://github.com/UncleK/dsh-think-translate/issues/13). DSH Web oder Desktop nach dem Update vollständig neu starten.
155
+ Neun Ziel-, Einstellungs- und Aufgabensprachen einschließlich Portugiesisch. Die Auswahl bleibt nach dem Neuladen erhalten.
82
156
 
83
- **1.2.12:** Die Anbieterschalter gelten verbindlich; nach einem Host-Fehler fragt der Browser Google nicht mehr direkt ab. Eingezäunter, eingerückter und Inline-Code wird nicht an Übersetzungsdienste gesendet und exakt wiederhergestellt, auch bei unvollständigem Streaming. Alte Übersetzungs-Caches werden entfernt, Einstellungen bleiben erhalten. Nach dem Update DSH Web oder Desktop vollständig neu starten; bloßes Neuladen kann weiterhin alte Client-Ressourcen verwenden.
157
+ <a id="faq"></a>
158
+ ## Häufige Fragen
84
159
 
85
- **1.2.11 Bing-Korrekturen:** Der kostenlose Bing-Anbieter bleibt erhalten. Übersetzungsanfragen gehen an den endgültigen Origin der Sitzungsseite, damit die Weiterleitung `www.bing.com` → `cn.bing.com` in Festlandchina den POST-Body nicht verwirft. SOCKS/curl verwendet dieselben Browser-Header wie der native Transport und behebt damit HTTP 401; leere Antworten und Antworten ohne JSON melden klare Fehler.
160
+ <details>
161
+ <summary><b>Nach Installation oder Update fehlt der Übersetzungseintrag</b></summary>
86
162
 
87
- **1.2.10 DSH-Profilkompatibilität:** Die Erkennung folgt dem laufenden Desktop/Web-Profil und liest `profiles/<profile>/cordis.patch.yml` (`id` + `config`), danach die Home-Patches und Start-Overlays. Das ältere `settings.yaml` bleibt unterstützt. Die Standardmodell-Zeile heißt `default-model`; Zugangsdaten bleiben in `.credentials.yaml` im DSH-Home und nur im Arbeitsspeicher. Die Diagnose zeigt die tatsächlich gelesene Datei.
163
+ Starte `dsh web` vollständig neu. Der Modulgraph entsteht beim Prozessstart; Neuladen der Seite reicht eventuell nicht. Unten in den Einstellungen steht die installierte Paketversion.
88
164
 
89
- **1.2.9 Sprachkorrekturen:** Japanische Vokabelhinweise gelten nur für Japanisch; OpenAI/Anthropic erhalten den vollständigen Sprachnamen. Bing nutzt `auto-detect` und `zh-Hans`/`zh-Hant`. Die Erkennung chinesischer Prosa blendet Pfade, Code und JSON aus: vereinfachte Prosa wird übersprungen, häufige traditionelle Schriftzeichen lösen eine Übersetzungsanfrage aus, japanische/koreanische Prosa wird übersetzt. Alte Übersetzungen werden einmalig aus dem Cache entfernt; Einstellungen bleiben erhalten.
165
+ </details>
90
166
 
91
- ## 🚀 Verwendung
167
+ <details>
168
+ <summary><b>Die Liste lokaler Modelle ist leer</b></summary>
92
169
 
93
- 1. **Einstellungen → Übersetzung der Gedankenkette** öffnen
94
- 2. Die **Zielsprache** wählen (z. B. Deutsch) — Einstellungen, Denkzeilen und Karten wechseln in diese Sprache
95
- 3. Die **Anbieterkette** verwalten (ziehen zum Sortieren, ankreuzen zum Aktivieren):
96
- - Integriert: **google gtx / bing** (kostenlos, über den Systemproxy) und **lokales Ollama**; vorhandene Software/Modelle werden wiederverwendet. Fehlende Komponenten werden erst über die Vorbereitungsschaltfläche installiert/heruntergeladen, mit Fortschritt (7b/14b oder eigenes Modell)
97
- - **DSH-Anbieter**: in `profiles/<profile>/cordis.patch.yml` / älteres `settings.yaml` konfigurierte Endpunkte erscheinen automatisch (schreibgeschützt; ankreuzen fügt sie der Kette hinzu). Die Schaltfläche **Aus DSH-Konfiguration übernehmen** direkt unter der Liste liest die Konfiguration neu ein und fügt alle auf einmal hinzu – keine baseURL und kein Schlüssel zum Neutippen, denn der Schlüssel wird aus den DSH-Credentials aufgelöst
98
- - Der Schlüssel wird eingetippt oder kommt als **`apiKeyEnv`** aus einer Vorlage bzw. einer DSH-Zeile: diese Zeile zeigt das `env:NAME`-Abzeichen, und der Schlüssel wird pro Anfrage aufgelöst und nie in `config.json` geschrieben. Das Bearbeitungsformular hat kein Feld für die Umgebungsvariable (der Wert bleibt erhalten), aber ein geleertes Feld wird wirklich gelöscht (als explizite Löschung gesendet)
99
- - Abgewählte Anbieter werden übersprungen. Details stehen in [README.md](README.md)
100
- 4. Nachricht senden und die Think-Zeile aufklappen, um die Übersetzung zu sehen
170
+ Prüfe `ollama list` oder `/api/tags`, das aktive Modellverzeichnis und `OLLAMA_MODELS` des Dienstes. Vorhandene Dateien müssen nicht erneut geladen werden.
101
171
 
102
- ## ⚙️ Funktionsweise
172
+ </details>
103
173
 
104
- ```
105
- Browser → POST /_xlate/translate (gleiche Origin, kein CORS)
106
- → Anbieterkette im Host (fail-open, umsortierbar):
107
- chain: [provider1, provider2, ...] ← Reihenfolge per Drag in den Einstellungen
108
- google / bing / OpenAI-kompatibel / Anthropic
109
- Fallback-Kette (optional, standardmäßig aus, in der Config aktivierbar)
110
- → Originaltext, wenn alle aktivierten Anbieter fehlschlagen
111
- ```
174
+ <details>
175
+ <summary><b>Client bundles not found nach einem DSH-Update</b></summary>
112
176
 
113
- - Die **Anbieter-Konfiguration** liegt in `config.json` (zur Laufzeit erzeugt, gitignoriert): `chain` (geordnete IDs), `fallback` (enabled + chain, nur Datei), `providers` (je Anbieter `type`/`enabled`/`baseURL`/`apiKey`/`apiKeyEnv`/`model`). Alte `priority`-Konfigurationen werden automatisch migriert; ein Anbieter mit `apiKeyEnv` löst seinen Schlüssel pro Anfrage aus dieser Umgebungsvariable auf (der literale `apiKey` bleibt als Rückfall) und kein aufgelöster Schlüssel wird je in `config.json` zurückgeschrieben; ein `null` in einem Patch löscht das Feld — so leert die Oberfläche eines
114
- - Die **DSH-Erkennung** liest beim Laden `profiles/<profile>/cordis.patch.yml` / älteres `settings.yaml` (`llm-pi-ai.providers`) und `.credentials.yaml` (`refs`) des Harness; erkannte Anbieter tragen `source: "dsh"`, aufgelöste Schlüssel bleiben im Speicher (nie in `config.json`), und die Route `/_xlate/dsh-scan` liest sie bei Bedarf neu ein
115
- - **Host-Hälfte** (`lib/index.js`): Anbieteradapter, LRU-Cache (600), `/_xlate/models`, `/_xlate/model/pull` + `pull-status` (automatische Konfiguration am Ende)
116
- - **Client-Hälfte** (`lib/client.js`): 8-sprachige UI, satzweise Batch-Übersetzung, Streaming-Think-Zeilen, localStorage-Persistenz
117
- - Reine Anzeigeschicht: Originale bleiben im Verlauf und im Modellkontext erhalten
177
+ Führe `pnpm run build` im DeepSeek-Harness-Repository aus und starte DSH Web neu.
118
178
 
119
- ## 🛠 Entwicklung
179
+ </details>
120
180
 
121
- - Kein Build-Schritt: `lib/client.js` ist das Browser-Bundle (Quelle = Artefakt); `lib/index.js` ist das Host-ESM
122
- - Client-Änderungen greifen nach dem Aktualisieren; Host-Änderungen erfordern einen Web-Neustart
123
- - Die 8-sprachigen Texte stehen im `UI_TEXT`-Wörterbuch in `lib/client.js`
181
+ <details>
182
+ <summary><b>Beeinflusst ein Übersetzungsfehler das Gespräch?</b></summary>
124
183
 
125
- ## 📄 Lizenz
184
+ Scheitern alle aktiven Anbieter, bleibt das Original. Teste einzelne Anbieter und prüfe den letzten Fehler. Nach der Wartezeit können neue Übersetzungsanfragen erneut versuchen.
185
+
186
+ </details>
187
+
188
+ <details>
189
+ <summary><b>Änderungen und Kompatibilität</b></summary>
190
+
191
+ **1.2.17** übernimmt gespeicherte Leerlaufzeiten für bereits geladene Ollama-Modelle, wartet bis zu 120 Sekunden auf lokale Inferenz und zeigt die Restzeit an. Behebt reproduzierbare Teile von Issue #17; langfristiger Speicheranstieg wird weiter untersucht.
192
+
193
+ **1.2.16** ergänzt Portugiesisch als Ziel- und Oberflächensprache, erneuert alle neun READMEs und Vergleichsbilder und erklärt drei Marktplatzbilder.
194
+
195
+ **1.2.15** ergänzt lokale Speicherverwaltung und passt Bilder, gruppiertes Einklappen und Originalauswahl an DSH `0.2.2-alpha.2` an.
196
+
197
+ **1.2.13** übersetzt Ablehnungsgründe der automatischen Prüfung. Danke an [llg1634](https://github.com/llg1634) für Bericht, ersten Patch und Tests.
198
+
199
+ Weitere Versionen: [GitHub Releases](https://github.com/UncleK/dsh-think-translate/releases).
200
+
201
+ </details>
202
+
203
+ <details>
204
+ <summary><b>Entwicklung und Funktionsweise</b></summary>
205
+
206
+ - `lib/index.js`: Host-Routen, Anbieter, Konfiguration, Cache und lokale Modelle.
207
+ - `lib/client.js`: Einstellungen, Anzeigeübersetzung, Streaming-Batches und Browser-Cache.
208
+ - `lib/config.json`: Laufzeitkonfiguration, von Git und npm ausgeschlossen.
209
+ - Kein zusätzlicher Build: Die Quellen sind das Ergebnis. Nach Host-Änderungen DSH neu starten.
210
+ - Prüfen mit `npm test`. Erkennung und Zugangsdaten: [Wartungsnotizen](https://github.com/UncleK/dsh-think-translate/blob/main/docs/maintenance-notes.md).
211
+
212
+ </details>
213
+
214
+ ---
126
215
 
127
- MIT
216
+ <p align="center">
217
+ <b>dsh-think-translate</b><br />
218
+ <a href="https://github.com/UncleK/dsh-think-translate/issues">Problem melden</a> &nbsp;·&nbsp; <a href="https://github.com/UncleK/dsh-think-translate/releases">Versionen</a> &nbsp;·&nbsp; <a href="https://github.com/UncleK/dsh-think-translate/blob/main/LICENSE">MIT-Lizenz</a>
219
+ </p>