diff --git a/frontend/src/app/dashboard/glossaries/CreateGlossaryDialog.tsx b/frontend/src/app/dashboard/glossaries/CreateGlossaryDialog.tsx index 29f0721..9f03c55 100644 --- a/frontend/src/app/dashboard/glossaries/CreateGlossaryDialog.tsx +++ b/frontend/src/app/dashboard/glossaries/CreateGlossaryDialog.tsx @@ -292,7 +292,7 @@ export function CreateGlossaryDialog({ const [name, setName] = useState(''); const [nameAutoFilled, setNameAutoFilled] = useState(false); const [sourceLanguage, setSourceLanguage] = useState('fr'); - const [targetLanguage, setTargetLanguage] = useState('en'); + const [targetLanguage, setTargetLanguage] = useState('multi'); const [terms, setTerms] = useState([{ source: '', target: '' }]); const [fileTerms, setFileTerms] = useState([]); const [selectedTemplate, setSelectedTemplate] = useState(null); @@ -305,7 +305,7 @@ export function CreateGlossaryDialog({ setName(''); setNameAutoFilled(false); setSourceLanguage('fr'); - setTargetLanguage('en'); + setTargetLanguage('multi'); setTerms([{ source: '', target: '' }]); setFileTerms([]); setSelectedTemplate(null); diff --git a/frontend/src/app/dashboard/glossaries/EditGlossaryDialog.tsx b/frontend/src/app/dashboard/glossaries/EditGlossaryDialog.tsx index fe5e811..f322fb7 100644 --- a/frontend/src/app/dashboard/glossaries/EditGlossaryDialog.tsx +++ b/frontend/src/app/dashboard/glossaries/EditGlossaryDialog.tsx @@ -17,13 +17,13 @@ import { TermEditor } from './TermEditor'; import { exportGlossaryToCsv, parseCsvToTerms } from './csvUtils'; import { useToast } from '@/components/ui/toast'; import type { Glossary, GlossaryTermInput } from './types'; -import { MAX_TERMS_PER_GLOSSARY } from './types'; +import { MAX_TERMS_PER_GLOSSARY, SUPPORTED_LANGUAGES } from './types'; interface EditGlossaryDialogProps { open: boolean; onOpenChange: (open: boolean) => void; glossary: Glossary | null; - onSave: (id: string, data: { name: string; terms: GlossaryTermInput[] }) => Promise; + onSave: (id: string, data: { name: string; source_language: string; target_language: string; terms: GlossaryTermInput[] }) => Promise; isSaving: boolean; } @@ -35,6 +35,8 @@ export function EditGlossaryDialog({ isSaving, }: EditGlossaryDialogProps) { const [name, setName] = useState(''); + const [sourceLanguage, setSourceLanguage] = useState('fr'); + const [targetLanguage, setTargetLanguage] = useState('multi'); const [terms, setTerms] = useState([]); const fileInputRef = useRef(null); @@ -42,6 +44,8 @@ export function EditGlossaryDialog({ if (glossary && !isInitialized.current) { setName(glossary.name); + setSourceLanguage(glossary.source_language || 'fr'); + setTargetLanguage(glossary.target_language || 'multi'); setTerms(glossary.terms.map(t => ({ source: t.source, target: t.target }))); isInitialized.current = true; } @@ -57,9 +61,11 @@ export function EditGlossaryDialog({ await onSave(glossary.id, { name: name.trim(), + source_language: sourceLanguage, + target_language: targetLanguage, terms: validTerms, }); - }, [glossary, name, terms, onSave]); + }, [glossary, name, sourceLanguage, targetLanguage, terms, onSave]); const handleExport = useCallback(() => { if (!glossary) return; @@ -154,6 +160,36 @@ export function EditGlossaryDialog({ /> +
+
+ + +
+
+
+ + +
+
+
{ + const handleSaveGlossary = async (id: string, data: { name: string; source_language: string; target_language: string; terms: GlossaryTermInput[] }) => { try { await updateGlossary(id, data); setEditDialogOpen(false);