Aller au contenu

Guides

Internationalisation

FormKrafter sépare deux choses que la plupart des bibliothèques confondent : le contenu d’un formulaire (écrit par celui qui l’a construit) et le chrome du builder (l’UI que vos utilisateurs manipulent). Ils sont localisés indépendamment, et aucun des deux ne renifle jamais la langue du navigateur — l’hôte décide, la bibliothèque suit.

Tout libellé, placeholder, message ou liste d’options d’un spec peut être une simple chaîne ou un objet indexé par locale :

Un libellé localisé
{ "label": { "en": "Full name", "fr": "Nom complet" } }

Passez locale au renderer pour le résoudre :

<FkFormRender spec={spec} locale="fr" />

Dans le builder, passez locales pour obtenir un sélecteur de langue d’édition — les champs du panneau lisent et écrivent alors la langue sélectionnée :

<FkFormBuilder locales={['en', 'fr']} />

La palette, le panneau de propriétés, les boutons et les noms de bricks représentent environ 90 clés de traduction. L’anglais est intégré et le français est livré dans le package :

Avant de monter le builder
import { setFkTranslations, frFkTranslations } from '@streamline-pulse/formkrafter-wc'
setFkTranslations(frFkTranslations)

Pour toute autre langue, passez votre propre dictionnaire — il est fusionné par-dessus l’anglais intégré, donc une traduction partielle est valide :

setFkTranslations({
'palette.search': 'Bausteine suchen…',
'panel.validation': 'Validierung',
})

Comme rien n’est automatique, le choix vous revient explicitement — un segment d’URL, une préférence utilisateur, un cookie. Un branchement typique :

La locale vient de la route
import { setFkTranslations, frFkTranslations } from '@streamline-pulse/formkrafter-wc'
const locale = useRouteLocale() // votre routeur, votre règle
if (locale === 'fr') setFkTranslations(frFkTranslations)
return <FkFormRender spec={spec} locale={locale} />

Un projet de Streamline Pulse