Formulaires en deux langues
Un même formulaire peut parler français et anglais. Les gens le voient dans leur langue, toutes les réponses arrivent au même endroit, et vos rapports ne se séparent pas en deux.
Comment ça fonctionne
Votre formulaire a une langue par défaut, avec son texte en place. L’autre langue est un ensemble de
textes traduits, enregistrés avec votre brouillon et publiés avec lui. Chaque choix garde une seule
valeur enregistrée, peu importe la langue dans laquelle on le lit : sales reste sales, qu’on ait vu
« Ventes » ou « Sales ».
Deux langues sont incluses dans tous les forfaits. Le français et l’anglais sont offerts dès maintenant.
Ce que les gens voient
Sur une page hébergée, dans un script intégré et sur un domaine personnalisé :
- La bonne langue d’abord. La page suit l’adresse, comme
?locale=en-CA, puis le choix fait précédemment, puis la langue du navigateur, puis votre langue par défaut. - Un sélecteur de langue en haut du formulaire, aux couleurs de votre formulaire, chaque langue
étant nommée dans cette langue. Vous pouvez le masquer avec
languageSwitch. - Ce qu’on a tapé reste quand on change de langue, à n’importe quelle étape. Les mots de passe ne suivent jamais.
- Les pages d’état aussi. Un formulaire fermé ou pas encore ouvert le dit dans la langue de la personne.
- Les messages dans sa langue, avec vos propres messages traduits et les nôtres déjà inclus.
Ajouter une langue
La traduction dans le générateur s’en vient. Pour l’instant, envoyez vos textes avec la définition du formulaire par l’API. Consultez Traductions pour voir tout ce qui se traduit.
{
"settings": {
"behavior": { "language": "fr-CA", "languages": ["en-CA"] }
},
"translations": {
"en-CA": {
"strings": {
"form.label": "Contact us",
"fields.topic.label": "Department",
"fields.topic.choices.sales": "Sales"
}
}
}
}Pour activer une langue, tous ses textes doivent être là. S’il en manque un, la demande est refusée
avec FORM_LANGUAGE_INCOMPLETE, à moins de l’accepter avec allowIncompleteLanguages. Ensuite, la langue
reste activée. Si vous ajoutez une question plus tard, elle s’affiche dans votre langue par défaut jusqu’à
ce que vous la traduisiez, et la publication vous indique combien de textes il manque.
Une traduction ne contient que du texte. Elle ne peut changer ni le type d’une question, ni une règle, ni la valeur d’un choix.
Les choix
Chaque choix a une valeur enregistrée et les mots que les gens lisent. Changer les mots ne change jamais la valeur : les conditions, les règles de livraison et les réponses passées continuent de fonctionner. Le générateur affiche la valeur en petit sous chaque choix.
Ce que vous voyez
- Votre avis reste dans votre langue par défaut, avec les mots du choix et une ligne indiquant la langue utilisée par la personne.
- L’application et le CSV affichent les mots de chaque choix et la langue. Cochez Valeurs enregistrées à l’exportation pour obtenir plutôt les valeurs.
- Le courriel de confirmation part dans la langue de la personne. Consultez Courriels de confirmation.
Dans un modèle de courriel, {{fields.topic}} donne les mots, et {{raw.fields.topic}} la valeur enregistrée.
Sur votre propre formulaire, dans votre code
Si votre site a ses propres traductions, gardez-les. Utilisez vos libellés avec les valeurs enregistrées, et envoyez la langue de la personne avec chaque demande, pour que les messages et la confirmation concordent :
{ "fields": { "email": "lea@example.com" }, "metadata": { "locale": "fr-CA" } }Les messages intégrés de Formerie reviennent dans cette langue même si le formulaire ne l’offre pas. Les codes
ne changent jamais, alors votre code peut continuer à s’y fier. GET .../schema?locale=fr-CA renvoie le
formulaire dans une seule langue, avec languages qui liste ce qui est offert.
Pas encore offert
- La traduction dans le générateur.
- Une option
localedans les composants de la trousse JavaScript. D’ici là, un formulaire dessiné par la trousse à partir de son schéma utilise un formulaire par langue, oumetadata.localepour les messages. - D’autres langues que le français et l’anglais.