# General Translation Knowledge Base: Comment rendre un site web multilingue ?
URL: https://generaltranslation.com/fr/kb/make-website-multilingual.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Choisissez où stocker les traductions (dans un proxy, un plugin de CMS, un constructeur de sites ou votre propre code), puis attribuez à chaque langue sa propre URL, comme le recommande Google. Traduisez les pages entières ainsi que les titres et les méta-descriptions, reliez les versions avec hreflang et proposez un sélecteur de langue plutôt que de rediriger automatiquement les visiteurs.
Category: Internationalisation
Last updated: 2026-10-20
Authors: Kevin Wu, Jackie Chen
Published: 2026-10-20

Un site web multilingue propose chaque page en plusieurs langues, chaque version ayant sa propre URL, et indique aux moteurs de recherche comment ces versions sont liées entre elles. Les approches se distinguent surtout par l’endroit où est stocké le texte traduit, ce qui détermine le degré de contrôle que vous gardez sur le SEO, la qualité et les mises à jour. Choisissez donc votre approche avant de traduire quoi que ce soit.

## Quelle approche choisir ?

L’option la plus légère ne vous demande aucun travail : les navigateurs des visiteurs peuvent traduire eux-mêmes les pages. [Chrome](https://support.google.com/chrome/answer/173424), par exemple, peut traduire une page avec Google Traduction, en fonction des paramètres de langue du lecteur. Cela dépanne un lecteur, mais ne rend pas votre site multilingue. Il n’y a aucune URL par langue à indexer, vous ne pouvez pas relire le résultat, et votre seul levier consiste à marquer certains textes, comme les noms de marque, avec l’attribut [`translate="no"`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/translate).

Les proxys de traduction et les surcouches JavaScript se placent devant un site déjà terminé. Le [proxy inverse de Weglot](https://weglot.com/technical-presentation/) récupère votre page, traduit son contenu via l’API de Weglot et sert le résultat sur un sous-domaine ou un sous-répertoire de langue, en ajoutant les balises hreflang. Son intégration JavaScript, elle, insère les traductions dans le navigateur après le chargement de la page ; Weglot précise que les moteurs de recherche ne détectent pas ces traductions et recommande ce mode pour les tests ou les contenus privés. Dans les deux cas, les traductions sont stockées dans le tableau de bord du fournisseur.

Les plugins de CMS et les constructeurs de sites conservent les traductions au sein de la plateforme. Sur WordPress, [WPML](https://wpml.org/documentation/getting-started-guide/language-setup/language-url-options/) place les langues dans des répertoires, sur un domaine ou un sous-domaine par langue, ou dans un paramètre `?lang=`, tandis que [Polylang](https://wordpress.org/plugins/polylang/) détermine la langue à partir d’un code dans l’URL ou d’un sous-domaine ou domaine par langue. [Webflow Localize](https://webflow.com/localization) sert les paramètres régionaux dans des sous-répertoires comme `/es/`, traduit les méta-titres et méta-descriptions, et génère un plan de site avec des balises hreflang. Sur les sites Squarespace en version 7.1, l’option multilingue [connecte Weglot](https://support.squarespace.com/hc/en-us/articles/205809778-Creating-a-multilingual-site-with-Weglot), et les traductions se modifient dans Weglot, car Squarespace ne permet pas de les modifier directement.

Les générateurs de sites statiques et les bibliothèques d’i18n conservent les traductions dans votre dépôt. [Docusaurus](https://docusaurus.io/docs/i18n/introduction) stocke les fichiers traduits sous `i18n/[locale]/` et définit automatiquement les en-têtes hreflang. [Hugo](https://gohugo.io/content-management/multilingual/) attribue la langue d’une page à partir d’un suffixe de nom de fichier comme `about.fr.md` ou de son répertoire de contenu, puis la sert sous un préfixe comme `/fr/`. Dans une application développée avec React, Next.js ou Vue, une bibliothèque comme i18next ou next-intl affiche les traductions à partir de fichiers que vous maintenez. Aucune de ces solutions ne produit les traductions : c’est à vous de les rédiger, de les acheter ou de connecter un outil de traduction.

| Approche                                                 | Emplacement des traductions                           | Contrôle SEO                                                                                                               | Contrôle qualité                                                                                         | Effort d’ingénierie                                                                                                                                        | Idéal pour                                                                                   |
| -------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| Traduction par le navigateur                             | Générées dans le navigateur de chaque visiteur        | Aucun ; pas d’URL par langue                                                                                               | Aucun, hormis `translate="no"`                                                                           | Aucun                                                                                                                                                      | Lecteurs de sites que vous n’avez pas localisés                                              |
| Proxy ou surcouche (Weglot)                              | Tableau de bord du fournisseur                        | Le mode proxy ajoute des URL par langue et hreflang ; le mode JavaScript n’est pas indexé                                  | Traduction automatique, puis modifications ou traduction humaine commandée dans l’éditeur du fournisseur | Modification DNS ou balise script                                                                                                                          | Sites terminés que vous ne souhaitez pas refaire                                             |
| Plugin de CMS (WPML, Polylang)                           | Votre base de données WordPress                       | Format d’URL et sélecteur définis dans le plugin                                                                           | Traduction manuelle, automatique ou par une agence dans WordPress                                        | Configuration du plugin, puis travail page par page                                                                                                        | Sites WordPress                                                                              |
| Constructeur de sites (Webflow Localize, Squarespace)    | Le constructeur, ou Weglot pour Squarespace           | Géré par le constructeur                                                                                                   | Traduction automatique et modifications manuelles                                                        | Faible                                                                                                                                                     | Sites créés et hébergés sur ce constructeur                                                  |
| i18n de générateur de sites statiques (Docusaurus, Hugo) | Fichiers dans votre dépôt                             | Total ; vous maîtrisez les URL et les modèles                                                                              | Dépend du processus qui produit les fichiers                                                             | Modéré ; la traduction est une tâche distincte                                                                                                             | Sites de documentation et de contenu générés à partir de Markdown                            |
| General Translation                                      | Fichiers générés dans votre compilation, ou CDN de GT | Vous maîtrisez le routage et les métadonnées ; `gt-next` fournit des utilitaires de routage selon les paramètres régionaux | Contexte dérivé du code, terminologie partagée et relecture intégrée                                     | Marquer le texte source ou connecter des catalogues existants, générer avant la compilation, tester les paramètres régionaux                               | Sites gérés par les développeurs qui doivent générer les traductions en plus de les afficher |
| Bibliothèque d’i18n seule (i18next, next-intl)           | Fichiers de traduction dans votre dépôt               | Total                                                                                                                      | Dépend du processus qui produit les fichiers                                                             | Extraction des chaînes, routage, distribution des traductions et assurance qualité ; les intégrations existantes peuvent automatiser une partie du travail | Applications disposant déjà d’un workflow de traduction                                      |

Utilisez un proxy ou la fonctionnalité intégrée à votre constructeur de sites lorsqu’une équipe marketing a besoin de pages traduites sans avoir à recompiler le site. Pour WordPress, utilisez un plugin de CMS. Optez pour l’i18n de votre générateur de site statique ou pour une bibliothèque d’i18n lorsque le site est géré par les développeurs et que vous disposez déjà de traductions. Choisissez General Translation si vous souhaitez en outre générer et relire les mises à jour dans le cadre de vos livraisons ; sa CLI peut traduire vos fichiers existants sans remplacer votre bibliothèque. L’effort nécessaire dépend de votre routage, de votre contenu et de votre processus de relecture actuels ; le tableau décrit des tâches, et non des durées de configuration initiale mesurées.

## Les étapes que toute approche doit régler

Quelle que soit l&#39;approche retenue, elle doit trancher ces sept questions, à peu près dans cet ordre.

### 1. Choisir les langues et les paramètres régionaux

Partez des marchés où se trouvent déjà votre trafic et vos clients. Chaque paramètre régional ajouté représente un ensemble de pages à traduire, à relire et à tenir à jour : n&#39;ajoutez donc une variante régionale que si la formulation ou les formats diffèrent pour ce public. Le portugais du Brésil et celui du Portugal (`pt-BR`, `pt-PT`) n&#39;emploient pas le même vocabulaire, alors qu&#39;un seul `fr` peut convenir aux lecteurs francophones de plusieurs pays. Le [guide des codes de paramètres régionaux](/docs/platform/core/guides/locale-codes) explique comment écrire et choisir ces étiquettes.

### 2. Choisir une structure d&#39;URL

Google [recommande une URL distincte pour chaque version linguistique](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites) plutôt qu&#39;une URL unique dont la langue varie selon un cookie ou un paramètre du navigateur. Sous-répertoires (`example.com/fr/`), sous-domaines et domaines nationaux conviennent tous ; [le guide sur la structure des URL](/kb/multilingual-url-structure) les compare en détail.

### 3. Traduire le contenu et les métadonnées

Google [détermine la langue d’une page à partir de son contenu visible](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites), et non à partir des attributs `lang` ou de l’URL, et déconseille de ne traduire que la navigation en laissant le corps de la page dans une seule langue. Traduisez la page entière, ainsi que son titre, sa méta-description, le texte alternatif (alt) des images, les messages d’erreur des formulaires et les e-mails envoyés par la page. Définissez malgré tout `<html lang>` sur chaque version : [les navigateurs et les lecteurs d’écran s’en servent](https://www.w3.org/International/questions/qa-lang-why) pour le choix des polices, la césure et la synthèse vocale.

### 4. Ajouter hreflang

Les annotations hreflang indiquent aux moteurs de recherche quelles URL correspondent aux différentes versions linguistiques d&#39;une même page, afin qu&#39;ils puissent proposer à chaque internaute la version dans sa langue. L&#39;article [Qu&#39;est-ce que hreflang](/kb/what-is-hreflang) présente les règles, `x-default` et les erreurs courantes.

### 5. Ajouter un sélecteur de langue

Proposez aux visiteurs un contrôle visible qui les redirige vers la même page dans une autre langue, et ne les [redirigez pas automatiquement](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites) en fonction de la langue que vous leur supposez, une pratique que Google déconseille. [Le guide du sélecteur de langue](/kb/language-switcher) entre dans les détails, et le guide [Détecter la langue d&#39;un utilisateur](/kb/detect-user-language) explique comment choisir une langue initiale pertinente.

### 6. Localiser le formatage

Les dates, les nombres, les devises et les formes plurielles obéissent à des règles différentes selon le paramètre régional : `1,234.5` en anglais s’écrit `1.234,5` en allemand. Les API `Intl` de JavaScript et la plupart des bibliothèques d’i18n se chargent de les formater pour vous. Si vous ajoutez l’arabe ou l’hébreu, la mise en page doit en outre être inversée ; consultez [CSS right-to-left](/kb/right-to-left-css).

### 7. Maintenir les traductions à jour

Un site devient obsolète dans les autres langues dès que quelqu&#39;un modifie le texte source sans que personne ne relance la traduction. Déterminez qui (ou quel outil) traduit les modifications, et à quel moment : à chaque publication, à chaque déploiement ou selon un calendrier de relecture. Avant le lancement, déroulez la [checklist de lancement multilingue](/kb/multilingual-app-launch-checklist) pour chaque paramètre régional.

## Comment General Translation rend un site multilingue

Pour les sites et applications que vous développez en code, exécutez `npx gt@latest` dans un projet Next.js ou React : l&#39;[assistant de configuration initiale](/docs/cli/quickstart) détecte le framework et écrit la configuration. Encapsulez ensuite le balisage existant dans [`<T>`](/docs/react/reference/components/t) (`gt-vue` propose le même composant) : le texte reste ainsi là où il est écrit, sans qu&#39;il soit nécessaire de maintenir une clé source distincte pour chaque message. Exécutez enfin [`npx gt translate`](/docs/cli/reference/commands/translate) avant la compilation pour générer tous les paramètres régionaux. Les guides de démarrage rapide [Next.js](/docs/react/nextjs-quickstart), [React](/docs/react/react-quickstart) et [Vue](/docs/vue/quickstart) détaillent chaque configuration initiale.

Le middleware [`createNextMiddleware`](/docs/react/nextjs/reference/functions/create-next-middleware) de `gt-next` sert des chemins préfixés par le paramètre régional, comme `/es/about`. Par défaut, toutefois, il laisse la langue par défaut sans préfixe et redirige ces URL en fonction du cookie de paramètre régional du visiteur ou de l&#39;en-tête `Accept-Language`. Définissez donc `prefixDefaultLocale: true` pour que chaque URL de contenu corresponde à une seule langue. (Consultez [routage selon les paramètres régionaux et SEO](/kb/locale-routing-seo) pour en savoir plus sur ce compromis.)

Le JSX balisé transmet au service de traduction la structure des éléments du texte ainsi que les éventuelles notes de contexte explicites. Relisez les formulations générées dans l&#39;[éditeur du tableau de bord](/docs/platform/dashboard/guides/reviewing-translations) avant la publication. Les traductions correspondantes sont réutilisées lors des exécutions suivantes : modifier la source n&#39;oblige donc pas à régénérer tout le site.

Au-delà du code applicatif, la CLI traduit les fichiers [HTML](/docs/cli/reference/formats/html-files), [Markdown et MDX](/docs/cli/reference/formats/mdx-md-files), [Locadex](/docs/platform/locadex/quickstart) traduit la documentation Mintlify, Fern et Docusaurus, et des intégrations sont disponibles pour [Sanity](/docs/integrations/sanity/quickstart), [Payload CMS](/docs/integrations/payload/quickstart) et [Storyblok](/docs/integrations/storyblok/quickstart). Tous ces outils partagent les mêmes [groupes de contexte](/docs/platform/dashboard/guides/defining-context-for-translations) pour la terminologie et le style.

## Points clés à retenir

* Commencez par décider où stocker les traductions. La traduction par le navigateur et les surcouches JavaScript ne créent pas de pages indexables par langue ; avec les proxys, les constructeurs de sites et les plugins, les traductions restent chez un fournisseur ou sur une plateforme ; avec les approches fondées sur le code, elles restent dans votre dépôt.
* Quelle que soit l’approche, les sept mêmes points doivent être réglés : les paramètres régionaux, les URL, le contenu traduit et les métadonnées, hreflang, un sélecteur de langue, le formatage et les mises à jour.
* Google recommande une URL distincte par langue, détermine la langue à partir du contenu visible et vous demande de ne pas rediriger automatiquement les visiteurs.
* Pour les sites développés en code, utilisez [`<T>`](/docs/react/reference/components/t) pour l’IU et [`npx gt translate`](/docs/cli/reference/commands/translate) pour générer les traductions, puis configurez le routage et testez chaque paramètre régional avant la mise en production.

## Related questions

- [Sous-répertoire, sous-domaine ou ccTLD pour le SEO multilingue](https://generaltranslation.com/fr/kb/multilingual-url-structure.mdx): Utilisez des sous-répertoires comme example.com/de/ lorsqu’un même produit partage un site et un processus de livraison. Seul un ccTLD signale un pays, les sous-domaines permettent un hébergement distinct, Google déconseille les paramètres ?lang= et considère les domaines « de complaisance » comme .io et .ai comme génériques.
- [Qu’est-ce que hreflang et comment le configurer ?](https://generaltranslation.com/fr/kb/what-is-hreflang.mdx): Hreflang indique à Google quelles URL correspondent aux versions linguistiques ou régionales d’une même page, afin qu’il affiche la bonne dans les résultats de recherche. Ajoutez-le à l’aide de balises link HTML, d’en-têtes HTTP Link ou d’un plan de site, veillez à ce que chaque lien soit réciproque et utilisez des codes valides comme en-GB, et non en-UK.
- [Bonnes pratiques pour le sélecteur de langue : UX, SEO et accessibilité](https://generaltranslation.com/fr/kb/language-switcher.mdx): Affichez chaque langue sous son propre nom, comme Deutsch ou 日本語, et bannissez les drapeaux, qui représentent des pays. Faites pointer chaque option vers la même page dans cette langue grâce à un lien explorable par les robots, mémorisez le choix dans un cookie et ne redirigez jamais automatiquement une URL localisée.
- [Liste de contrôle des tests de localisation pour les applications multilingues](https://generaltranslation.com/fr/kb/multilingual-app-launch-checklist.mdx): Testez neuf points dans chaque paramètre régional pris en charge sur une compilation de Production : les parcours complets, y compris les états d’erreur et les e-mails, le changement de langue, les formes plurielles, la devise et les fuseaux horaires, le foisonnement du texte, la mise en page right-to-left, l’accessibilité, la distribution des traductions et des URL de langue explorables. Associez à chaque vérification un critère de réussite explicite.
- [Quel est le meilleur logiciel de localisation pour les développeurs ?](https://generaltranslation.com/fr/kb/best-localization-software.mdx): Le meilleur logiciel de localisation pour les développeurs traduit le contenu là où il est écrit dans le code, avec le contexte de votre produit, et tient chaque langue à jour. General Translation y parvient grâce à des bibliothèques open source, aux groupes de contexte et à Locadex, un agent IA qui ouvre des pull requests.

## Previous and next questions

- Previous question: [Comment prendre en charge les langues RTL (right-to-left) en CSS ?](https://generaltranslation.com/fr/kb/right-to-left-css.mdx)
- Next question: [Comment traduire des fichiers JSON i18n ?](https://generaltranslation.com/fr/kb/translate-json-files.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/fr/kb/sitemap.md) for every article.
