fix: FORMAT NATIF hors cadre, apercu glossaire toujours FR/IR, prompt juridique par defaut
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m32s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m32s
This commit is contained in:
@@ -13,6 +13,7 @@ interface GlossaryOption {
|
|||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
source_language: string;
|
source_language: string;
|
||||||
|
target_language: string;
|
||||||
terms_count: number;
|
terms_count: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,8 +352,8 @@ export function GlossarySelector({ sourceLang, targetLang, isPro, mode, glossary
|
|||||||
{selected ? selected.name : (isLoading ? "Chargement..." : "Sélectionner un glossaire...")}
|
{selected ? selected.name : (isLoading ? "Chargement..." : "Sélectionner un glossaire...")}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-[10px] font-extrabold uppercase tracking-wider text-brand-dark/40 dark:text-white/40 block mt-0.5">
|
<span className="text-[10px] font-extrabold uppercase tracking-wider text-brand-dark/40 dark:text-white/40 block mt-0.5">
|
||||||
{selected
|
{selected
|
||||||
? `${getFlag(selected.source_language)} ➜ ${targetFlag} • ${selected.terms_count} termes`
|
? `${getFlag(selected.source_language)} ➜ ${getFlag(selected.target_language || targetLang)} • ${selected.terms_count} termes`
|
||||||
: (filteredGlossaries.length > 0 || filteredTemplates.length > 0 ? "Sélectionnez un glossaire" : "Aucun glossaire disponible")
|
: (filteredGlossaries.length > 0 || filteredTemplates.length > 0 ? "Sélectionnez un glossaire" : "Aucun glossaire disponible")
|
||||||
}
|
}
|
||||||
</span>
|
</span>
|
||||||
@@ -414,7 +415,7 @@ export function GlossarySelector({ sourceLang, targetLang, isPro, mode, glossary
|
|||||||
<div className="text-left min-w-0 flex-1 pr-2">
|
<div className="text-left min-w-0 flex-1 pr-2">
|
||||||
<span className="text-xs font-bold block leading-none truncate">{g.name}</span>
|
<span className="text-xs font-bold block leading-none truncate">{g.name}</span>
|
||||||
<span className="text-[10px] uppercase tracking-wider text-brand-dark/40 dark:text-white/45 font-bold block mt-1">
|
<span className="text-[10px] uppercase tracking-wider text-brand-dark/40 dark:text-white/45 font-bold block mt-1">
|
||||||
{flag} ➜ {targetFlag} • {g.terms_count} termes
|
{flag} ➜ {getFlag(g.target_language || targetLang)} • {g.terms_count} termes
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{isSelected && <Check size={12} className="text-brand-accent shrink-0" />}
|
{isSelected && <Check size={12} className="text-brand-accent shrink-0" />}
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ export default function TranslatePage() {
|
|||||||
{/* ── UPLOAD STATE: Editorial Dropzone ──────────────── */}
|
{/* ── UPLOAD STATE: Editorial Dropzone ──────────────── */}
|
||||||
{showUpload && (
|
{showUpload && (
|
||||||
<div
|
<div
|
||||||
className="bg-white border-2 border-dashed border-brand-accent/15 dark:border-white/10 rounded-[32px] p-12 flex flex-col items-center justify-center text-center group cursor-pointer hover:border-brand-accent/40 dark:hover:border-brand-accent/40 hover:bg-brand-muted/10 dark:hover:bg-brand-muted/5 transition-all shadow-editorial dark:bg-[#141414]"
|
className="relative bg-white border-2 border-dashed border-brand-accent/15 dark:border-white/10 rounded-[32px] p-12 flex flex-col items-center justify-center text-center group cursor-pointer hover:border-brand-accent/40 dark:hover:border-brand-accent/40 hover:bg-brand-muted/10 dark:hover:bg-brand-muted/5 transition-all shadow-editorial dark:bg-[#141414]"
|
||||||
onDragOver={upload.handleDragOver}
|
onDragOver={upload.handleDragOver}
|
||||||
onDragLeave={upload.handleDragLeave}
|
onDragLeave={upload.handleDragLeave}
|
||||||
onDrop={upload.handleDrop}
|
onDrop={upload.handleDrop}
|
||||||
|
|||||||
@@ -130,6 +130,17 @@ export const useTranslationStore = create<TranslationState>()(
|
|||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
name: "translation-settings",
|
name: "translation-settings",
|
||||||
|
version: 2,
|
||||||
|
migrate: (persistedState: unknown, fromVersion: number) => {
|
||||||
|
// v1 → v2: clear systemPrompt that may have been pre-filled with legal text
|
||||||
|
if (fromVersion < 2) {
|
||||||
|
const state = persistedState as { settings?: { systemPrompt?: string } };
|
||||||
|
if (state?.settings) {
|
||||||
|
state.settings.systemPrompt = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return persistedState as TranslationState;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user