@weglot/translate-react
Traduisez votre
Réagir,
Next.js ou
Vite application
Pas besoin de wrappers t(), ni de fichiers JSON. Ajoutez un plugin de compilation et une clé API Weglot : le texte de votre JSX est traduit lors de la compilation de votre application, et votre équipe modifie les traductions sur Weglot sans toucher au code.
Copiez l'prompt e pour · · · consultez la documentation · voir sur npm
Plus de 111 368 marques internationales font confiance à Weglot pour la traduction de leurs sites web.
// what your users see
Le code JSX que vous avez écrit, dans toutes les langues
Rédigez le texte une seule fois. Weglot se charge de le traduire lors de la compilation.
Un seul bouton, cinq langues. Largeurs mesurées en temps réel.
export default function Settings() { return ( <button>Save changes</button> ); } // no key, no t(), no en.json
Pas de clés, pas de t(). Écrivez le texte en JSX, c'est tout.
// how it works
Quatre étapes. Vos composants restent tels quels.
Les langues source et cible proviennent de votre projet « Weglot », et non de votre code. Le plugin lit le texte de votre JSX au moment de la compilation et récupère ses traductions.
-
Installez le package et ajoutez votre clé API
Créez un projet « Weglot 2.0 », puis copiez sa clé API à partir des paramètres du projet. Elle commence par
pk_. Garder.envhors du système de gestion de versions.terminal · .env$ npm install @weglot/translate-react # .env WEGLOT_API_KEY=pk_your_weglot_api_key
-
Ajouter le plugin
Enveloppez votre configuration Next.js avec
withWeglot. PointsourceRootdans le dossier contenant vos pages et vos composants.Ajouter
weglotPlugindans votre configuration Vite. Avec Webpack, importez-le depuis@weglot/translate-react/webpackau lieu de cela.next.config.tsimport type { NextConfig } from "next"; import { withWeglot } from "@weglot/translate-react/next"; const nextConfig: NextConfig = {}; export default async function (): Promise<NextConfig> { return await withWeglot(nextConfig, { sourceRoot: "./app" }); }
vite.config.tsimport { defineConfig } from "vite"; import { weglotPlugin } from "@weglot/translate-react/vite"; export default defineConfig({ plugins: [weglotPlugin({ sourceRoot: "src" })], });
-
Ajouter le prestataire
Enveloppez votre structure racine avec
WeglotProviderà partir du point d'entrée de Next.js, de sorte que tout changement de langue entraîne l'actualisation de vos composants serveur.Enveloppez votre application avec
WeglotProvider, dès que possible.app/layout.tsximport { WeglotProvider } from "@weglot/translate-react/react/next"; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <WeglotProvider>{children}</WeglotProvider> </body> </html> ); }
src/main.tsximport { WeglotProvider } from "@weglot/translate-react/react"; root.render( <WeglotProvider> <App /> </WeglotProvider>, );
-
Compiler et publier dans toutes les langues de votre projet
À chaque compilation, le programme récupère les traductions manquantes sur Weglot et enregistre
public/translations/<locale>.json. Ignorez ce dossier. Ajoutez un sélecteur de langue avecLocaleSwitcherouuseWeglotContext..gitignorepublic/translations/
// under the hood
Que se passe-t-il lorsque vous construisez ?
- 01Litvotre code JSX
- 02Envoieun nouveau SMS
- 03 «Weglot » se traduit par
- 04Créeun fichier par langue
// every language of your project
Une seule version, toutes les langues que vous ajoutez
Sélectionnez les langues sur Weglot. Elles seront intégrées à la prochaine version.
enAjoutez une langue dans Weglot, puis lancez la compilation. Les fichiers de traduction seront déployés avec votre application.
// built for coding agents
C'est votre agent qui s'en charge
Il n'y a pas de chaîne à réécrire, donc la modification est mineure et facile à vérifier.






N'importe quel agent de codage. Collez l'prompt suivante dans l'agent que vous utilisez déjà.
Fichiers que les agents peuvent lire : un fichier d'index llms.txt et un fichier Markdown pour chaque page.
package.jsonnext.config.tslayout.tsx.gitignore.envUn diff que vous pouvez consulter. Aucune chaîne n'a été réécrite.
Coller dans Claude Code
Coller à l'emplacement du curseur (mode Agent)
Coller dans le Codex$ npm install @weglot/translate-react
Copiez le fichier « prompt ». Suivez les mêmes étapes que celles décrites dans le guide de démarrage.
// what gets translated
Le plugin sait distinguer le texte du code
export default function Pricing() { return ( <section className="pricing"> <h2>Choose your plan</h2> <input placeholder="Email address" /> <a href="/signup">{"Start free trial"}</a> <span translate="no">Weglot</span> </section> ); }
Le texte est traduit. Texte JSX, littéraux, constantes, alt, title, placeholder, aria-label.
Le code reste inchangé. Les noms de classes, les URL, la logique.
C'est à vous de voir. Vous pouvez conserver tel quel n'importe quel élément, ou utiliser l'attribut « data-weglot-skip ».
// for your team
Modifier et relire sans toucher au code
Révision sur Weglot. Le service produit, le service marketing et les traducteurs revoient le texte.
Pas de pull request pour corriger un mot.
Suivez ce qui a été révisé. Consultez les progrès réalisés pour chaque langue.
// fit
Quand utiliser « Weglot » et quand ne pas l'utiliser
Ce module est en phase de préversion. Voici où il se situe actuellement.
Routeur d'applications Next.js
SoutenuNext.js 15 ou 16.0.4 et versions ultérieures, React 19.
Vite
SoutenuReact 19, Node 20.9 ou version ultérieure. Webpack fonctionne également.
Composants serveur React
SoutenuLe changement de langue entraîne une actualisation des composants de votre serveur.
Contenu CMS et API
SoutenuAvec tDynamic dans les composants serveur de Next.js.
Édition par des non-développeurs
SoutenuVérifiez et modifiez ces informations dans le tableau de bord d'Weglot .
Une URL par langue
Pas encoreLa langue est actuellement enregistrée dans un cookie. Vous avez besoin dès maintenant d'URL indexées par langue : utilisez next-intl ou Paraglide JS.
Traductions sous forme de fichiers repo
Action de traductionWeglot traduit vos fichiers de localisation JSON dans GitHub Actions et ouvre une pull request. Consultez la documentation →
React 18, routeur de pages
Non pris en chargeÉgalement Next.js 14 ou une version antérieure.
CMS ou créateur de sites web
Pas ce colisVotre site n'est pas développé avec React : utilisez les intégrations CMS proposées par Weglot.
// compare
Pourquoi ne pas utiliser une bibliothèque i18n classique ?
Les bibliothèques d'internationalisation (i18n) vous demandent de remplacer chaque chaîne par une clé et de conserver un fichier par langue. Weglot lit les chaînes que vous avez déjà écrites. Voici un comparatif des options.
| Critères | Weglot@weglot/translate-react |
next-intl / i18next | Paraglide JS | Localisation native de CMS |
|---|---|---|---|---|
| Enveloppez les chaînes dans des fonctions `t()` ou des fonctions de message | Nontext en JSX n'est pas détecté lors de la compilation. | Ouit("key") pour chaque chaîne de caractères. |
Ouim.key() fonctions de messagerie. |
Contenu uniquementLes chaînes de caractères dans votre code nécessitent toujours une bibliothèque. |
| Fichiers de traduction par langue | Aucun à gérerGénéré lors de la compilation, ignoré par Git. | OuiEn général, un fichier JSON par locale. | OuiUn fichier de messages par locale. | Nonenregistrées dans le CMS. |
| Routage multilingue et référencement naturel (URL par langue, hreflang) | Pas encoreLangue enregistrée dans un cookie. Mêmes URL pour toutes les langues, langue source indexée. | next-intl : ouiRoutage par locale intégré. i18next : via la configuration de votre framework. | OuiURL localisées intégrées : préfixes de localisation, chemins d'accès ou domaines traduits. Ajoutez vous-même les balises hreflang. | Front-endUn CMS sans interface stocke le contenu par locale. Les URL et les balises hreflang proviennent de votre front-end. |
| Traductions générées pour vous | OuiWeglot est traduit à l'aide d'un modèle de langage (LLM) pendant la compilation. | NonApportez vos propres traductions ou un système de gestion de traduction (TMS). | Grâce à l'outillagela traduction automatique CLI d'inlang, ou votre agent de codage. | Module complémentaire payantTraduction par IA dans les formules payantes : Contentful AI Actions, Sanity AI Assist, Strapi AI Translations. |
| Modifier les traductions sans faire appel à un développeur | OuiVérifiez et modifiez dans le tableau de bord d'Weglot . | NonModifier les fichiers JSON, ni ajouter un TMS distinct. | Avec Finkl'éditeur web d'inlang, avec un compte GitHub. | OuiDans l'éditeur CMS. |
| Créé par un développeur dans un prompt | OuiUne installation, deux modifications de configuration. Vous trouverez ci-dessous l'prompt, que vous pouvez copier. | Tâche longueL'agent transforme chaque chaîne de caractères en clés et en fichiers. | Tâche longueinit fonctionne sans « prompts » pour les agents, alors chaque chaîne devient un m.key() message. |
n/aConfiguré dans le CMS. |
FAQ
Est-ce qu'il prend en charge le référencement naturel (SEO) : une URL par langue et l'attribut hreflang ?
Pas aujourd'hui. La langue du visiteur est enregistrée dans un cookie et toutes les versions linguistiques sont accessibles via les mêmes URL ; les moteurs de recherche n'indexent donc que la langue d'origine.
Vous pouvez traduire les titres et les descriptions des pages à l'aide de tDynamicAll dans generateMetadata. Si vous avez besoin dès maintenant d'URL indexées par langue, utilisez une bibliothèque proposant un routage par locale, telle que next-intl ou Paraglide JS.
Comment traduire du contenu dynamique provenant d'un CMS, d'une API ou des utilisateurs ?
Le plugin ne traduit que le texte présent dans votre code. Pour le contenu auquel votre code n'a pas accès, appelez tDynamic, tDynamicAll ou tDynamicHtml de @weglot/translate-react/dynamic dans les composants serveur de Next.js.
Si l'API met plus de 500 ms à répondre, ou si un texte est demandé pour la première fois, elle renvoie le texte source. La traduction sera disponible lors d'une requête ultérieure. Si vous mettez vous-même les données en cache, veillez à ce que le cache dépende de la langue du visiteur.
Next.js ou Vite : quelle différence ?
Next.js utilise withWeglot de @weglot/translate-react/next et WeglotProvider de @weglot/translate-react/react/next. Vite utilise weglotPlugin de @weglot/translate-react/vite et WeglotProvider de @weglot/translate-react/react. Webpack utilise weglotPlugin de @weglot/translate-react/webpack.
Les fonctions de contenu dynamique ne s'exécutent que dans les composants serveur de Next.js.
Est-ce que cela fonctionne avec les composants serveur React ?
Oui, grâce au routeur d'applications Next.js. Importer WeglotProvider de @weglot/translate-react/react/next afin que le changement de langue entraîne l'actualisation des composants de votre serveur. tDynamic, tDynamicAll et tDynamicHtml s'exécuter côté serveur, dans les composants du serveur.
Que se passe-t-il lorsque je lance la compilation ?
Le plugin recherche le texte dans le code JSX sous sourceRoot et interroge l'API Weglot pour obtenir les traductions manquantes. Weglot les génère à l'aide d'un modèle de langage (LLM), et la compilation attend jusqu'à translationTimeout (300 secondes par défaut). Il écrit ensuite public/translations/<locale>.json.
Si la traduction échoue, la compilation échoue et conserve les données reçues dans le cache local : relancez la compilation pour continuer. Avec buildMode: "cache-only", cette version n'effectue aucun appel réseau.
Où sont stockées les traductions ?
Dans votre projet « Weglot », où vous pouvez les consulter et les modifier. Chaque version conserve également les traductions qu’elle a reçues dans <sourceRoot>/weglot/cache/<locale>.json. Validez ce dossier pour la compilation sans appeler l'API, ou ignorez-le. public/translations/ est généré et va dans .gitignore.
Qu'est-ce qui est traduit, et comment puis-je exclure certains éléments ?
Texte en JSX, littéraux de chaîne dans des expressions JSX, chaînes lues à partir de constantes et attributs tels que title, alt, placeholder et aria-label. Le code, les URL, les noms de classes et les chaînes de caractères en dehors du JSX ne sont pas modifiés. Ajouter translate="no" ou data-weglot-skip pour conserver un élément dans la langue d'origine. Déclarez vos propres propriétés de texte avec translatableAttributes.
Rendez votre application React multilingue sans avoir à la réécrire
Installez le package, ajoutez votre clé API, puis lancez la compilation.
$ npm install @weglot/translate-react
Vous préférez le faire vous-même ? Consultez la documentation ou découvrez le package sur npm