Skip to content

Add UI language selector for transcription #33

@sammargolis

Description

@sammargolis

Background

Multilingual transcription support is already implemented in backend/docker/docs via WHISPER_LANGUAGE (including optional auto-detect and continued .en compatibility).

This issue should build on that work by making language selection user-accessible in the UI, instead of env-only configuration.

Objective

Let users choose transcription language from the app UI and route that value through the existing transcription pipeline without changing current defaults.


Scope

  1. Add a transcription language selector in UI settings (or recording/transcription panel).
  • Include Auto (default) option.
  • Include a small set of common language options first (e.g., English, Spanish, French, etc.).
  1. Wire selected value into existing transcription request/config path.
  • Reuse current backend support for WHISPER_LANGUAGE.
  • No model/engine changes required.
  1. Persist user selection.
  • Keep it across reload/restart (existing settings store/local persistence).
  1. Keep current behavior unchanged when not set.
  • Default remains auto/English-compatible existing flow.

Out of Scope

  • New model integrations.
  • Full locale/i18n for all UI text.
  • Advanced language auto-routing heuristics.
  • Major backend refactors.

Detailed Success Criteria

  1. Functional
  • User can select transcription language from UI.
  • Selection is applied to new transcription runs.
  • Auto option works and maps to existing optional language behavior.
  1. Backward compatibility
  • English transcription remains unchanged when user keeps default.
  • Existing .en model workflows still work.
  • Docker/SAM/local workflows continue functioning.
  1. Reliability
  • Invalid/unsupported UI value is safely rejected or falls back to default.
  • Clear UI/console error path for bad language config.
  1. Persistence
  • Selected language persists across app restart/reload.
  1. Test coverage
  • Add tests for:
    • default (Auto) behavior
    • explicit language selection (at least one non-English case path)
    • persistence and restore
    • fallback on invalid value
  1. Documentation
  • Add a short docs section:
    • how UI selection relates to WHISPER_LANGUAGE
    • precedence rules (UI override vs env default)

Suggested Acceptance Checklist

  • UI selector exists with Auto + language options
  • Transcription requests use selected language
  • Default behavior unchanged if user does nothing
  • Existing multilingual backend flow still passes
  • Docs updated with precedence + examples
  • Tests added and passing

Rationale

  • Builds directly on the completed multilingual backend/env work.
  • Small, high-impact UX improvement.
  • Keeps implementation low-risk by reusing existing WHISPER_LANGUAGE support.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions