From 0a0c7ba61820902fea52a2e5c014bed8069553fc Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Tue, 6 Jan 2026 17:15:21 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(summary)=20add=20dutch=20and=20german?= =?UTF-8?q?=20languages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on a request from our European partners, introduce new languages for the transcription feature. Dutch and German are now supported, which is a great addition. It closes #837. WhisperX is expected to support both languages. --- CHANGELOG.md | 4 ++++ .../features/settings/hook/useTranscriptionLanguage.ts | 8 ++++++++ src/frontend/src/locales/de/settings.json | 2 ++ src/frontend/src/locales/en/settings.json | 2 ++ src/frontend/src/locales/fr/settings.json | 2 ++ src/frontend/src/locales/nl/settings.json | 2 ++ src/frontend/src/stores/recording.ts | 2 ++ src/summary/summary/core/config.py | 2 +- 8 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48ff4453..49603a03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ and this project adheres to ## [Unreleased] +### Added + +- ✨(summary) add dutch and german languages + ### Changed - 📈(frontend) track new recording's modes diff --git a/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts b/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts index 36e11470..ad728cb5 100644 --- a/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts +++ b/src/frontend/src/features/settings/hook/useTranscriptionLanguage.ts @@ -18,6 +18,14 @@ export const useTranscriptionLanguage = () => { key: RecordingLanguage.ENGLISH, label: t('language.options.english'), }, + { + key: RecordingLanguage.GERMAN, + label: t('language.options.german'), + }, + { + key: RecordingLanguage.DUTCH, + label: t('language.options.dutch'), + }, { key: RecordingLanguage.AUTOMATIC, label: t('language.options.auto'), diff --git a/src/frontend/src/locales/de/settings.json b/src/frontend/src/locales/de/settings.json index c8a91204..124dcb9c 100644 --- a/src/frontend/src/locales/de/settings.json +++ b/src/frontend/src/locales/de/settings.json @@ -75,6 +75,8 @@ "options": { "french": "Französisch (fr)", "english": "Englisch (en)", + "dutch": "Niederländisch (nl)", + "german": "Deutsch (de)", "auto": "Automatisch" } } diff --git a/src/frontend/src/locales/en/settings.json b/src/frontend/src/locales/en/settings.json index 3deecec1..c00f69e8 100644 --- a/src/frontend/src/locales/en/settings.json +++ b/src/frontend/src/locales/en/settings.json @@ -75,6 +75,8 @@ "options": { "french": "French (fr)", "english": "English (en)", + "dutch": "Dutch (nl)", + "german": "German (de)", "auto": "Automatic" } } diff --git a/src/frontend/src/locales/fr/settings.json b/src/frontend/src/locales/fr/settings.json index 53df0074..49e9c16b 100644 --- a/src/frontend/src/locales/fr/settings.json +++ b/src/frontend/src/locales/fr/settings.json @@ -75,6 +75,8 @@ "options": { "french": "Français (fr)", "english": "Anglais (en)", + "dutch": "Hollandais (nl)", + "german": "Allemand (de)", "auto": "Automatique" } } diff --git a/src/frontend/src/locales/nl/settings.json b/src/frontend/src/locales/nl/settings.json index 340560c1..31edf1c5 100644 --- a/src/frontend/src/locales/nl/settings.json +++ b/src/frontend/src/locales/nl/settings.json @@ -75,6 +75,8 @@ "options": { "french": "Frans (fr)", "english": "Engels (en)", + "dutch": "Nederlands (nl)", + "german": "Duits (de)", "auto": "Automatisch" } } diff --git a/src/frontend/src/stores/recording.ts b/src/frontend/src/stores/recording.ts index b5d1998c..84eac94e 100644 --- a/src/frontend/src/stores/recording.ts +++ b/src/frontend/src/stores/recording.ts @@ -3,6 +3,8 @@ import { proxy } from 'valtio' export enum RecordingLanguage { ENGLISH = 'en', FRENCH = 'fr', + DUTCH = 'nl', + GERMAN = 'de', AUTOMATIC = 'auto', } diff --git a/src/summary/summary/core/config.py b/src/summary/summary/core/config.py index f23b6679..e826d90d 100644 --- a/src/summary/summary/core/config.py +++ b/src/summary/summary/core/config.py @@ -44,7 +44,7 @@ class Settings(BaseSettings): whisperx_max_retries: int = 0 # ISO 639-1 language code (e.g., "en", "fr", "es") whisperx_default_language: Optional[str] = None - whisperx_allowed_languages: Set[str] = {"en", "fr"} + whisperx_allowed_languages: Set[str] = {"en", "fr", "de", "nl"} llm_base_url: str llm_api_key: SecretStr llm_model: str