feat: UI-Hinweis bei Cartesia + nicht unterstützter Sprache

Wählt der Nutzer Cartesia und eine feste Sprache, die Cartesia nicht
spricht (AR/IT/RU/PL …), erscheint ein Hinweis, dass automatisch die
lokale Piper-Stimme verwendet wird. Macht den tts_fallback sichtbar,
statt lautlos eine andere Stimme zu liefern.

- /api/config liefert neu available.cartesia_unsupported_languages
  (Single Source of Truth: _UNSUPPORTED_LANGS aus cartesia.py).
- app.js zeigt/aktualisiert den Hinweis bei Sprach-/Provider-Wechsel.
- Test: /api/config listet die nicht unterstützten Sprachen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-25 00:49:28 +02:00
commit a6866a6e7f
5 changed files with 44 additions and 1 deletions

View file

@ -103,6 +103,13 @@ async def get_config():
**Zweck:** Das Frontend kann damit nicht verfügbare TTS-Optionen automatisch
ausgrauen, ohne dass der Nutzer erst auf einen Fehler stößt.
Das Feld `available.cartesia_unsupported_languages` (z. B. `["ar","it","ru","pl",…]`,
abgeleitet aus `_UNSUPPORTED_LANGS` in `app/providers/tts/cartesia.py`) speist im UI
einen Hinweis: Wählt der Nutzer Cartesia **und** eine feste Sprache, die Cartesia
nicht spricht, erscheint „Cartesia spricht <Sprache> nicht — es wird automatisch die
lokale Stimme (Piper) verwendet." Das macht den `tts_fallback = "piper"`-Mechanismus
sichtbar, statt lautlos eine andere Stimme zu liefern.
---
### 1.2 `app/web/app.js` — Chatterbox/OpenRouter Verfügbarkeits-Refresh