From ad8ac089a4152e6f2e1dacf3d2ab56f23c475d75 Mon Sep 17 00:00:00 2001 From: sepehr Date: Sun, 31 May 2026 22:22:05 +0200 Subject: [PATCH] fix: don't auto-select glossary when no target language match MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When activating the glossary toggle, only auto-select a glossary if it matches BOTH source and target language. If no matching glossary exists (e.g. translating to Persian but only have FR→EN glossaries), leave the selector empty so the user picks manually instead of forcing an incompatible glossary. Co-Authored-By: Claude Opus 4.8 --- .../src/app/dashboard/translate/GlossarySelector.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/dashboard/translate/GlossarySelector.tsx b/frontend/src/app/dashboard/translate/GlossarySelector.tsx index 5dba7c5..3bffa45 100644 --- a/frontend/src/app/dashboard/translate/GlossarySelector.tsx +++ b/frontend/src/app/dashboard/translate/GlossarySelector.tsx @@ -284,10 +284,13 @@ export function GlossarySelector({ sourceLang, targetLang, isPro, mode, glossary setIsGlossaryEnabled(nextVal); if (!nextVal) { onChange(null); - } else if (filteredGlossaries.length > 0 && !glossaryId) { - // Prefer glossary matching target language, fall back to first + } else if (!glossaryId) { + // Only auto-select if a glossary matches BOTH source and target language const matching = filteredGlossaries.find(g => g.target_language === targetLang); - onChange(matching ? matching.id : filteredGlossaries[0].id); + if (matching) { + onChange(matching.id); + } + // If no glossary matches the target, leave unselected — user picks manually } }} className={cn(