Traductions des modèles
Un modèle peut être envoyé dans plusieurs langues. Il a une langue par défaut et jusqu’à 29
variantes linguistiques (traductions). L’ID du modèle reste le même dans toutes les langues :
votre code se contente d’indiquer la langue souhaitée – par exemple locale: 'de' – et Frontmail
choisit la bonne variante.
Toutes les langues sont possibles, pas seulement les huit langues du tableau de bord : utilisez une
balise de langue BCP 47 comme hu, nl ou pt-BR.
Ce qui est traduit et ce qui est commun
Section intitulée « Ce qui est traduit et ce qui est commun »Chaque variante a son propre :
- objet,
- corps HTML,
- version texte (générée automatiquement à partir du HTML de la variante, ou écrite à la main),
- nom de l’expéditeur – facultatif ; laissez-le vide pour reprendre celui de la langue par défaut.
Tout le reste est défini une seule fois, dans la langue par défaut, et partagé par toutes les langues : les destinataires (À, CC, BCC, Reply-To), l’E-mail de l’expéditeur, les paramètres, Intégrer le CSS en ligne à l’enregistrement, le service, les réglages de protection, les pièces jointes, la réponse automatique et la collecte des contacts.
C’est voulu : les règles de sécurité d’un modèle – destinataires dynamiques, verrouillage du contenu, champs d’expéditeur fixes et validation des paramètres – sont définies à un seul endroit, si bien qu’une traduction ne peut jamais les assouplir. Une variante ne peut utiliser que des paramètres qui existent dans la langue par défaut.
Ajouter une langue
Section intitulée « Ajouter une langue »Ajouter et modifier des traductions nécessite le rôle Propriétaire, Administrateur ou Développeur.
- Ouvrez le modèle. Au-dessus des onglets de l’éditeur se trouve la barre Langues, avec la langue par défaut (marquée Par défaut) et une pastille par variante.
- Cliquez sur Ajouter une langue.
- Sous Langue, choisissez une langue dans la liste ou saisissez son code (p. ex.
pt-BR) et choisissez Utiliser « pt-BR ». - Sous Partir de, choisissez :
- Copie de la langue par défaut – vous traduisez le texte vous-même,
- Traduction automatique – traduite avec la clé de fournisseur de votre organisation (voir Traduction automatique) ; choisissez le Service si vous en avez configuré plusieurs,
- Vide – un objet et un HTML vides.
- Cliquez sur Ajouter la langue, traduisez ou relisez le contenu, puis cliquez sur Enregistrer.
La nouvelle langue reste un brouillon (marqué nouvelle) jusqu’à ce que vous l’enregistriez. La traduction automatique n’utilise que la langue par défaut enregistrée – les modifications non enregistrées de celle-ci ne sont pas prises en compte.
Modifier une traduction
Section intitulée « Modifier une traduction »Cliquez sur une langue dans la barre Langues pour que l’éditeur passe à cette langue. L’éditeur affiche Vous modifiez la traduction : … et fonctionne comme d’habitude :
- Contenu – l’objet et les onglets HTML, Visuel et Texte modifient la variante. Les Données d’exemple et l’aperçu sont communs, et l’aperçu affiche la variante exactement telle qu’elle sera envoyée. Les Paramètres sont ici en lecture seule (Les paramètres sont communs à toutes les langues. Modifiez-les dans la langue par défaut.).
- Paramètres – seuls l’objet, le Nom de l’expéditeur et le réglage de la version texte appartiennent à la variante ; les champs communs portent la mention Commun à toutes les langues.
- Extraits de code et Envoyer un test ont un champ Langue : vous pouvez copier le code ou envoyer un e-mail de test dans n’importe quelle langue.
Les Vérifications comparent aussi la variante avec la langue par défaut : un paramètre qui n’existe que dans la traduction est une erreur (ajoutez-le d’abord dans la langue par défaut), un paramètre utilisé dans la langue par défaut mais absent de la traduction est un avertissement.
Badges Obsolète et Automatique
Section intitulée « Badges Obsolète et Automatique »- Obsolète – la langue par défaut a été enregistrée à nouveau après cette traduction, qui risque donc d’être incomplète. L’envoi fonctionne toujours. Mettez la traduction à jour et enregistrez-la ou, si elle convient encore, cliquez sur Marquer comme à jour.
- Automatique – la version enregistrée provient d’une traduction automatique. Relisez-la avant de vous y fier.
Lorsqu’une variante est sélectionnée, la barre propose aussi Traduire à nouveau (une nouvelle traduction automatique de la langue par défaut enregistrée ; rien n’est enregistré tant que vous ne cliquez pas sur Enregistrer) et Supprimer la langue. Quand vous supprimez une langue, ses versions sont supprimées aussi et les e-mails qui la demandent sont envoyés dans la langue par défaut.
Versions et restauration
Section intitulée « Versions et restauration »Chaque enregistrement d’une traduction crée une nouvelle version de cette traduction – chaque langue a sa propre numérotation. Lorsqu’une variante est sélectionnée, l’onglet Versions affiche Versions de la traduction … avec les colonnes Basée sur (la version de la langue par défaut sur laquelle elle a été enregistrée) et Origine (Manuelle ou Automatique). Comparez les versions et revenez à une ancienne version avec Restaurer, comme pour la langue par défaut.
Un message enregistre toujours la langue et la version de la traduction avec lesquelles il a été rendu. Les e-mails en attente dans la file d’attente des e-mails retenus sont envoyés avec les versions en vigueur au moment où ils ont été acceptés.
Changer la langue par défaut
Section intitulée « Changer la langue par défaut »La langue par défaut se trouve sous Paramètres → Général → Langue par défaut. Vous pouvez choisir n’importe quelle langue, sauf une qui a déjà une variante – supprimez d’abord cette variante.
Envoyer dans une langue
Section intitulée « Envoyer dans une langue »La langue est toujours choisie explicitement par l’expéditeur. Frontmail ne la devine pas à
partir du navigateur (Accept-Language) – transmettez vous-même la langue du visiteur si vous le
souhaitez.
Comment la langue est choisie
Section intitulée « Comment la langue est choisie »Pour une locale demandée, Frontmail utilise :
- pas de
locale→ la langue par défaut, - une correspondance exacte (sans tenir compte de la casse) → cette langue,
- la même langue de base →
de-ATreçoitde;ptreçoit une variantept-…commept-BR, - sinon → la langue par défaut.
Une langue inconnue n’est pas une erreur – locale est une préférence. Seule une balise mal formée
(p. ex. "german!") est refusée avec 400 invalid_body.
La réponse indique la langue réellement utilisée :
{ "message_id": "msg_…", "status": "queued", "status_token": "…", "locale": "de" }API REST
Section intitulée « API REST »Ajoutez locale à POST /v1/send (et à chaque message de POST /v1/send-batch) :
{ "template_id": "tpl_01J9…", "template_params": { "name": "Jana" }, "locale": "de"}POST /v1/send-form utilise le champ de formulaire réservé fm_locale. Un champ nommé
locale reste un paramètre de modèle ordinaire, si bien que les formulaires existants continuent de
fonctionner :
<select name="fm_locale"> <option value="en">English</option> <option value="de">Deutsch</option></select>Chaque SDK a une option locale et renvoie la langue utilisée dans result.locale.
Navigateur (@frontmail/browser) – sendForm l’envoie sous la forme
fm_locale ; le champ fm_locale du formulaire lui-même est prioritaire :
const result = await send('svc_01J9…', 'tpl_contact', { name: 'Jana' }, { locale: 'de' });await sendForm('svc_01J9…', 'tpl_contact', '#contact', { locale: document.documentElement.lang });console.log(result.locale); // 'de'React (@frontmail/react) – la prop locale de <FrontmailForm>, ou
options.locale de send / sendForm. Vue et Svelte fonctionnent de la même manière :
<FrontmailForm serviceId="svc_01J9…" templateId="tpl_contact" locale="de">…</FrontmailForm>
const { send } = useSendEmail('svc_01J9…', 'tpl_contact');await send({ name: 'Jana' }, { locale: 'de' });Node.js (@frontmail/node) :
const { locale } = await frontmail.send({ templateId: 'tpl_order', params: { order_id: 'A-1042' }, locale: 'de' });await frontmail.sendBatch([{ templateId: 'tpl_reminder', params: { name: 'Jana' }, locale: 'cs' }]);Android / Kotlin (dev.frontmail:frontmail) :
val result = frontmail.send( "tpl_contact", mapOf("name" to name), options = SendOptions(locale = Locale.getDefault().toLanguageTag()),)println(result.locale) // "de"iOS / Swift (Frontmail pour Swift) – utilisez Locale.preferredLanguages.first
(p. ex. de-AT) ; Locale.current.identifier utilise _ et n’est pas une balise valide :
let result = try await frontmail.send( templateID: "tpl_contact", params: ["name": "Jan"], options: SendOptions(locale: Locale.preferredLanguages.first))print(result.locale ?? "default") // "de"Flutter / Dart (frontmail) – utilisez toLanguageTag() (p. ex. de-AT) ;
Locale.toString() utilise _ et n’est pas une balise valide :
final result = await frontmail.send( templateId: 'tpl_contact', params: {'name': 'Jan'}, options: SendOptions(locale: Localizations.localeOf(context).toLanguageTag()),);print(result.locale ?? 'default'); // "de"React Native utilise send(params, { locale: 'de' }) de useSendEmail. npx frontmail types
liste les langues de chaque modèle et génère un type pour elles – voir
Node.js.
Réponses automatiques, renvois et EmailJS
Section intitulée « Réponses automatiques, renvois et EmailJS »- Les réponses automatiques suivent la langue du message d’origine : le modèle de réponse automatique choisit sa propre variante pour cette langue selon les mêmes règles (et revient à sa langue par défaut).
- Renvoyer dans l’Historique envoie à nouveau le message dans la même langue, avec la version actuelle de la traduction. Si cette langue a été supprimée entre-temps, la langue par défaut est utilisée.
- Les routes compatibles EmailJS (
/api/v1.0/email/…) et@frontmail/emailjs-compatenvoient toujours la langue par défaut.
La mise en forme suit la langue de l’e-mail
Section intitulée « La mise en forme suit la langue de l’e-mail »L’e-mail est rendu dans la langue dans laquelle il est envoyé. formatDate, formatNumber et
formatMoney mettent en forme les dates, les nombres et les
montants pour cette langue (une variante allemande affiche 1. Oktober 2026 et 49,00 €). Le pied
de page Envoyé via Frontmail du forfait Free est dans la langue de l’e-mail lorsqu’il s’agit de
l’une des huit langues du tableau de bord, sinon en anglais.
Traduction automatique
Section intitulée « Traduction automatique »Frontmail peut traduire un modèle pour vous avec OpenAI, Anthropic, Google Gemini ou DeepL – en utilisant la propre clé API de votre organisation (« bring your own key »). Frontmail ne traduit jamais pour son propre compte et la traduction automatique ne consomme aucun crédit Frontmail ; le fournisseur facture l’utilisation à votre compte.
La traduction automatique est toujours manuelle : elle ne s’exécute que lorsque vous choisissez Traduction automatique dans Ajouter une langue ou cliquez sur Traduire à nouveau, et le résultat est un brouillon que vous relisez avant de l’enregistrer.
Configurer une clé de fournisseur
Section intitulée « Configurer une clé de fournisseur »Seuls les Propriétaires et les Administrateurs peuvent ajouter ou modifier des clés. Les Développeurs voient quels fournisseurs sont configurés (en lecture seule) et peuvent les utiliser pour traduire.
- Ouvrez Paramètres → Traduction automatique.
- À côté du fournisseur, cliquez sur Ajouter une clé. Obtenir une clé … ouvre la page des clés du fournisseur.
- Collez la Clé API. Pour OpenAI, Anthropic et Gemini, vous pouvez indiquer un Modèle (facultatif) ; laissez-le vide pour utiliser le modèle par défaut du fournisseur. DeepL ne propose pas de choix de modèle.
- Cliquez sur Enregistrer la clé. Avant de l’enregistrer, Frontmail vérifie la clé par une petite requête au fournisseur.
Si plusieurs fournisseurs sont configurés, cliquez sur Définir par défaut pour choisir celui qui est présélectionné. Remplacer la clé et Retirer se trouvent à côté de chaque fournisseur configuré ; retirer une clé conserve les traductions déjà enregistrées.
La clé est stockée chiffrée et n’est plus jamais affichée – le tableau de bord n’en montre que les quatre derniers caractères. Chaque modification est consignée dans le journal d’audit.
Ce qui est envoyé au fournisseur
Section intitulée « Ce qui est envoyé au fournisseur »Uniquement l’objet, le HTML, la version texte et le nom de l’expéditeur de la langue par défaut enregistrée – la version texte seulement si elle est écrite à la main (une version automatique est générée à partir du HTML traduit). Rien d’autre ne quitte Frontmail : ni destinataires, ni valeurs de paramètres, ni données d’exemple, ni contacts, ni historique des messages. La requête va directement des serveurs de Frontmail à l’API officielle du fournisseur, et les conditions du fournisseur s’appliquent au contenu.
Comment le résultat est vérifié
Section intitulée « Comment le résultat est vérifié »Frontmail demande au fournisseur de conserver telles quelles les expressions Handlebars ({{name}},
{{#if …}}), les balises et attributs HTML, les liens et les adresses e-mail, puis le vérifie : la
traduction doit contenir exactement les mêmes expressions Handlebars et les mêmes URL de liens et
d’images que la source. Sinon, le résultat est écarté avec le message La traduction automatique a
modifié des paramètres, des liens ou la structure HTML ; elle n’a donc pas été utilisée.
(translation_invalid) – réessayez ou utilisez un
autre fournisseur. Rien n’est enregistré partiellement.
Autres erreurs : translation_not_configured
(aucune clé configurée), translation_provider_auth
(le fournisseur a refusé la clé) et
translation_provider_error (le fournisseur a
échoué – réessayez plus tard).
Limites et coûts
Section intitulée « Limites et coûts »- 30 traductions automatiques par heure et par organisation.
- 60 000 caractères de contenu source par traduction ; les modèles plus longs reçoivent
payload_too_large. - Une traduction dispose de 60 secondes pour aboutir.
- Les coûts sont facturés par le fournisseur au compte auquel appartient la clé. Traduire ne consomme pas de crédits Frontmail, et l’envoi d’un e-mail traduit coûte le même crédit unique que n’importe quel autre.
- 30 langues par modèle – la langue par défaut plus 29 variantes.
- Une variante a les mêmes limites de taille que le contenu du modèle lui-même.
- Les balises de langue font au maximum 35 caractères.
Export et import
Section intitulée « Export et import »Exporter (.json) inclut toutes les variantes linguistiques, et Importer les recrée dans le nouveau modèle. Les anciens fichiers d’export sans variantes s’importent comme avant.