diff --git a/frontend/src/app/dashboard/glossaries/[id]/page.tsx b/frontend/src/app/dashboard/glossaries/[id]/page.tsx index 20416ac..a1bbd01 100644 --- a/frontend/src/app/dashboard/glossaries/[id]/page.tsx +++ b/frontend/src/app/dashboard/glossaries/[id]/page.tsx @@ -363,18 +363,17 @@ export default function GlossaryDetailPage() { - +
+ 🇫🇷 + Français + + {t('glossaries.detail.sourceLocked') || 'fixé'} + +
+

+ {t('glossaries.detail.sourceLockedNote') || + 'Les templates ne stockent la source qu\'en français. Le multilingue source est sur la roadmap.'} +

diff --git a/frontend/src/lib/i18n.tsx b/frontend/src/lib/i18n.tsx index 4a47e58..a5f17f5 100644 --- a/frontend/src/lib/i18n.tsx +++ b/frontend/src/lib/i18n.tsx @@ -438,6 +438,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -1422,6 +1425,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirmer la suppression ?", "glossaries.detail.confirm": "Confirmer", "glossaries.detail.cancel": "Annuler", + "glossaries.detail.sourceLocked": "fixé", + "glossaries.detail.sourceLockedNote": "Les templates ne stockent la source qu'en français. Le multilingue source est sur la roadmap.", + "glossaries.detail.targetLangNote": "Choisissez une langue pour voir les traductions correspondantes, ou « Multilingue » pour la valeur par défaut.", "glossaries.detail.notFoundTitle": "Glossaire introuvable", "glossaries.detail.notFoundDesc": "Ce glossaire n'existe pas ou vous n'y avez pas accès.", "glossaries.detail.maxTermsTitle": "Limite atteinte", @@ -2392,6 +2398,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -3317,6 +3326,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -4242,6 +4254,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -5167,6 +5182,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -6092,6 +6110,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -7017,6 +7038,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -7944,6 +7968,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -8868,6 +8895,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -9792,6 +9822,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -10674,6 +10707,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached", @@ -11565,6 +11601,9 @@ const messages: Record> = { "glossaries.detail.confirmDelete": "Confirm deletion?", "glossaries.detail.confirm": "Confirm", "glossaries.detail.cancel": "Cancel", + "glossaries.detail.sourceLocked": "fixed", + "glossaries.detail.sourceLockedNote": "Templates only store the source in French. Multilingual source is on the roadmap.", + "glossaries.detail.targetLangNote": "Pick a language to see the matching translations, or « Multilingual » for the default value.", "glossaries.detail.notFoundTitle": "Glossary not found", "glossaries.detail.notFoundDesc": "This glossary does not exist or you don't have access to it.", "glossaries.detail.maxTermsTitle": "Limit reached",