Traduction HTML qui préserve votre balisage.
Les balises restent des balises. Les attributs restent des attributs. Les noms de classe, valeurs href, attributs data — aucun ne change. Seul le texte visible que vos utilisateurs lisent réellement est traduit.
Un balisage cassé est pire qu'aucune traduction.
Envoyer du HTML via une API de traduction standard est risqué. Les balises sont partiellement traduites. Les valeurs des attributs sont corrompues. Les noms de classe qui ne devraient pas changer changent. Le résultat semble correct en texte brut mais casse dans un navigateur — et cela se produit silencieusement. Pour un site riche en contenu ou une exportation CMS, corriger un HTML corrompu dans 10 langues n’est pas un flux de travail raisonnable.
Pire encore, les API de traduction standard traduisent souvent du contenu qui ne devrait jamais changer — noms de classes CSS, URLs href, attributs src, labels aria contenant des identifiants techniques, et attributs data. Le HTML résultant ne s’affiche plus correctement, et certains changements sont assez subtils pour passer les tests visuels avant de provoquer des erreurs à l’exécution.
Pour le HTML généré par CMS, les modèles d’email ou tout HTML traité automatiquement, la réparation post-traduction n’est pas optionnelle. Cela devient un coût de maintenance caché qui s’accumule à chaque mise à jour de contenu.
PolyLingo analyse le DOM avant de traduire.
PolyLingo traite votre HTML comme un document, pas comme une chaîne de caractères. Il parcourt la structure DOM, identifie les nœuds de texte contenant du contenu visible, et envoie uniquement ceux-ci au modèle de traduction. Les noms de balises, valeurs d’attributs, noms de classe, valeurs href, attributs data — rien de structurel n’est jamais vu par le modèle de traduction. Le HTML produit est valide et structurellement identique à ce que vous avez envoyé.
PolyLingo utilise un analyseur DOM plutôt que de traiter le HTML comme du texte brut. Avant toute traduction, le HTML est analysé en un arbre de nœuds. Chaque nœud est classifié : les nœuds de texte contenant du langage naturel sont extraits pour traduction, tandis que les nœuds d’élément, valeurs d’attributs non linguistiques (noms de classe, IDs, href, src, attributs data) et contenu non traduisible (scripts, styles, blocs de code) sont entièrement exclus.
Les nœuds de texte traduits sont ensuite réinsérés dans la structure DOM originale. Le HTML résultant est sémantiquement équivalent à la source, avec un imbrication des balises, valeurs d’attributs et balisage structurel identiques. Seul le texte visible change.
<article class="post">
<h1 class="post-title">How to build a multilingual site</h1>
<p>Building a <strong>multilingual website</strong> doesn't have to be
complicated. The key is choosing the right translation layer.</p>
<a href="/pricing" class="cta-button" aria-label="View pricing">
See our plans
</a>
<img src="/hero.png" alt="Multilingual platform dashboard" />
</article><article class="post">
<h1 class="post-title">Comment créer un site multilingue</h1>
<p>Créer un <strong>site web multilingue</strong> n'a pas à être
compliqué. La clé est de choisir la bonne couche de traduction.</p>
<a href="/pricing" class="cta-button" aria-label="Voir les tarifs">
Voir nos offres
</a>
<img src="/hero.png" alt="Tableau de bord de la plateforme multilingue" />
</article>Ce qui est traduit vs ce qui est préservé
| Traduit | Préservé | |
|---|---|---|
| Contenu texte entre balises | oui | non |
| Attribut title (label accessible) | oui | non |
| Texte alternatif sur images | oui | non |
| Attributs aria-label | oui | non |
| Texte placeholder dans les champs | oui | non |
| Noms de balises HTML | non | oui |
| Attributs classe et ID | non | oui |
| URLs href et src | non | oui |
| Attributs data | non | oui |
| Blocs script et style | non | oui |
Ce que PolyLingo gère dans chaque traduction HTML
- ✓Noms de balises et structure jamais modifiés
- ✓Noms de classe, IDs, attributs data intacts
- ✓Valeurs href et src des liens préservées exactement
- ✓Seuls les nœuds de texte visibles sont traduits
- ✓Langues RTL : attribut dir géré correctement
- ✓Fonctionne avec pages complètes, fragments et composants
- ✓HTML imbriqué — gestion correcte de toute profondeur d’imbrication
- ✓HTML d’email — styles inline et mises en page par tableaux préservés
Comment traduire du contenu HTML avec PolyLingo
Envoyez votre HTML à l’API
POSTez votre contenu HTML vers /v1/translate. Définissez le format sur "html" ou omettez-le — PolyLingo détecte automatiquement le HTML dans le contenu. Incluez vos codes de langue cible.
Recevez un HTML traduit et propre
La réponse contient une chaîne HTML traduite par langue cible. Chaque balise, classe, ID et attribut est exactement comme vous l’avez envoyé. Seul le texte en langue naturelle a changé.
Intégrez dans votre CMS, modèle ou fichier
Utilisez le HTML traduit directement dans votre CMS, constructeur d’email, générateur de site statique ou tout autre outil consommant du HTML. Aucun post-traitement ou réparation nécessaire.
Où la traduction HTML est nécessaire
Exports de pages et articles CMS
Les CMS headless stockent le contenu en HTML ou texte enrichi sérialisé en HTML. PolyLingo traduit ce contenu pour chaque locale tout en préservant la structure et la mise en forme créées par le CMS.
Modèles d’email
Le HTML d’email est notoirement fragile — mises en page par tableaux, styles inline et structures profondément imbriquées cassent lorsqu’ils passent par une traduction naïve. PolyLingo préserve tout cela.
Descriptions de produits e-commerce
Les descriptions produits contiennent souvent du HTML formaté avec listes stylées, texte en gras et contenu structuré. Les traduire à grande échelle nécessite une préservation exacte du format pour que le rendu soit cohérent entre langues.
Questions fréquentes sur la traduction HTML
PolyLingo traduit-il les attributs comme title et alt ?
Oui. Les attributs alt sur les images, title sur les éléments, aria-label et placeholder sur les champs de formulaire sont identifiés comme contenant du texte en langue naturelle et traduits. Les attributs href, src, noms de classe, IDs et data ne sont pas traduits.
Qu’en est-il du JavaScript inline ou des attributs style ?
Les balises script et style ne sont jamais traduites — leur contenu est transmis tel quel. Les attributs style inline (style="...") sont également préservés exactement. Seul le texte en langue naturelle est traduit.
PolyLingo gère-t-il le HTML complet incluant doctype et head ?
Oui. PolyLingo peut gérer un document HTML complet incluant doctype, head et body. L’élément title, la meta description et les balises Open Graph dans le head sont traduisibles. L’URL canonique, meta charset et balises techniques meta sont préservées telles quelles.
Fonctionne-t-il avec le HTML généré par des éditeurs rich-text comme ProseMirror ou TipTap ?
Oui. Le HTML produit par les éditeurs rich-text est sérialisé en HTML standard. PolyLingo gère tout HTML valide, peu importe sa source. L’analyseur DOM travaille à partir de la chaîne HTML elle-même, pas d’un format spécifique à un éditeur.
Que se passe-t-il avec les entités HTML comme & ou © ?
Les entités HTML sont décodées avant traduction puis ré-encodées dans la sortie. Les entités nommées comme &, © et — sont préservées. Les entités numériques sont aussi correctement gérées. La sortie traduite utilise le même encodage d’entités que la source.
Y a-t-il une limite de taille pour la traduction HTML ?
Les requêtes de traduction individuelles sont limitées à 64 Ko de contenu. Pour les documents longs (articles longs, pages complètes), la méthode recommandée est de diviser aux limites naturelles (sections, articles) et de réassembler après traduction. Cela aide aussi à la précision de l’usage des tokens.
Guides associés
Traduire Markdown sans casser la mise en forme
Pour les équipes de contenu qui travaillent dans des fichiers .md plutôt que HTML.
Multilingue pour CMS headless
Connectez PolyLingo à Sanity, Contentful ou Webflow.
Alternative à Polylang pour stacks modernes
Pour les équipes migrant de WordPress vers une configuration headless moderne.
Traduisez votre HTML sans nettoyage.
Niveau gratuit. Pas de carte bancaire. HTML valide en sortie.
Commencer la traduction gratuiteCollez n’importe quel HTML et voyez exactement ce qui est traduit et ce qui ne l’est pas.