Run Scenaro voice sessions in multiple languages by aligning Cockpit configuration, frontend language tags, and UI translations.

Frontend language tag

Pass a BCP-47 language tag to useScenaroSession:
This sets language on POST /v1/public/session and configures STT/TTS for the session.
language is optional. If you omit it, the session uses the language configured on the scenario in Cockpit — the SDK no longer defaults to fr-FR. Only pass a tag when the user explicitly picks a language.

Cockpit setup

For each language:
  1. Create or duplicate the scenario with a localized system prompt
  2. Publish a separate publication UUID per language (or use dynamic language if supported)
  3. Configure voice stack voices appropriate for the target language

Frontend i18n

Feature components should use your app’s i18n system:

Language selector pattern

Prompt guidelines per language

RuleReason
Write the system prompt in the target languageLLM responds in the prompt language
Keep tool names in EnglishTool names are code identifiers, not spoken
Localize feature name fields in CockpitAgent uses feature names in conversation
Test STT with native accentsRecognition quality varies by provider and locale

Text input for non-voice contexts

For accessibility or noisy environments, disable the microphone and send text instead:

Experience reference

experiences/urbansider supports multiple languages with useTranslation hooks and per-locale Cockpit scenarios.