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

@ -110,3 +110,12 @@ def test_config_endpoint_exposes_no_secrets():
# Keine echten Secrets im Body.
assert "sk-or-" not in json.dumps(body)
assert set(body["secrets"].keys()) == {"openrouter_api_key_set"}
def test_config_endpoint_lists_cartesia_unsupported_languages():
# Das Frontend nutzt diese Liste, um bei Cartesia + nicht unterstützter
# Sprache auf den lokalen Piper-Fallback hinzuweisen.
body = client.get("/api/config").json()
langs = body["available"]["cartesia_unsupported_languages"]
for lang in ("ar", "it", "ru", "pl"):
assert lang in langs