feat: prevent duplicate glossary presets + fix i18n source warning bug
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m5s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m5s
- Add template_id column to Glossary model (nullable, indexed) - Backend: return 409 Conflict if user already imported a template - Frontend: disable preset cards already imported, show 'Imported' badge - Fix duplicated text in GlossarySelector source warning (hardcoded FR text removed) - Complete i18n migration for glossaries page and GlossarySelector - Add glossaries.presets.alreadyImported key in all 13 locales
This commit is contained in:
@@ -381,6 +381,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Clicking a card creates a pre-filled glossary with domain-specific terms. This glossary will appear in your glossaries below, and you can manually select it on the Translate page to force precise term translations.",
|
||||
"glossaries.presets.clickHint": "Click a card → glossary created → select it in Translate",
|
||||
"glossaries.presets.creating": "Creating...",
|
||||
"glossaries.presets.alreadyImported": "Imported",
|
||||
"glossaries.presets.it.title": "IT / Software",
|
||||
"glossaries.presets.it.desc": "Development, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Legal / Contracts",
|
||||
@@ -1324,6 +1325,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -2253,6 +2255,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -3137,6 +3140,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -4021,6 +4025,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -4905,6 +4910,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -5789,6 +5795,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -6673,6 +6680,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -7559,6 +7567,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -8442,6 +8451,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -9325,6 +9335,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -10166,6 +10177,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
@@ -11016,6 +11028,7 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"glossaries.presets.whatForDesc": "Cliquer sur une carte crée un glossaire pré-rempli avec les termes spécialisés du domaine. Ce glossaire apparaîtra dans vos glossaires ci-dessous, et vous pourrez le sélectionner manuellement sur la page Traduire pour forcer des traductions de termes précis.",
|
||||
"glossaries.presets.clickHint": "Cliquez sur une carte → glossaire créé → sélectionnez-le dans Traduire",
|
||||
"glossaries.presets.creating": "Création…",
|
||||
"glossaries.presets.alreadyImported": "Déjà importé",
|
||||
"glossaries.presets.it.title": "IT / Logiciel",
|
||||
"glossaries.presets.it.desc": "Développement, infrastructure, DevOps",
|
||||
"glossaries.presets.legal.title": "Juridique / Contrats",
|
||||
|
||||
Reference in New Issue
Block a user