# General Translation Knowledge Base: Comment traduire une application Node.js ?
URL: https://generaltranslation.com/fr/kb/translate-node-app.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Détectez la langue de chaque requête, généralement à partir de son en-tête Accept-Language, et renvoyez toutes les chaînes dans cette langue. Le package gt-node de General Translation lie le paramètre régional à chaque requête avec withGT et traduit les chaînes avec getGT, à partir des traductions générées par npx gt translate --publish avant le déploiement.
Category: Internationalisation
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Traduire une application Node.js consiste à détecter la langue de chaque requête, généralement à partir de son en-tête `Accept-Language`, puis à renvoyer toutes les chaînes dans cette langue. La difficulté tient au fait qu’un même serveur traite de nombreux utilisateurs en même temps : la langue ne peut donc pas être un paramètre global. Chaque requête a la sienne, et chaque fonction qui construit la réponse doit la connaître. Les chaînes contenant des valeurs exigent en outre des règles grammaticales propres à chaque langue : selon le nombre, il faut choisir l’une des 2 formes du pluriel en anglais, et l’une des 6 en arabe.

## Video

The video is narrated in English, with English captions.

[How do I translate a Node.js app?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translate-node-app.mp4) (48 s)

General Translation lets you translate strings into each request's locale with `gt-node`. Call `initializeGT` once, wrap each request in `withGT`, await `getGT` in a handler, list `server.js` in `gt.config.json`, sign in, and run `npx gt translate`.

## Méthodes pour traduire une application Node.js

| Approche                                                                                                   | Points forts                                                                                                                                                                             | Paramètre régional de chaque requête                                                                                         | Ce qui reste à votre charge                                                                                                                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Une bibliothèque d&#39;internationalisation (i18n) seule ([`i18next`](/kb/general-translation-vs-i18next)) | Environnement d&#39;exécution mature pour afficher les traductions et formater les valeurs                                                                                               | Un plugin de middleware le détecte                                                                                           | Extraire les chaînes dans un fichier JSON de clés par langue, rédiger chaque traduction et mettre à jour tous les fichiers dès que le texte change                                                                                                                            |
| [`nestjs-i18n`](/kb/general-translation-vs-nestjs-i18n) (NestJS)                                           | Affiche les messages à partir de catalogues JSON ou YAML par langue, via HTTP, GraphQL, gRPC et WebSockets                                                                               | Des résolveurs lisent la chaîne de requête, un en-tête, un cookie ou `Accept-Language`, dans l&#39;ordre que vous définissez | Rédiger le catalogue de chaque langue et les tenir tous à jour                                                                                                                                                                                                                |
| Une API de traduction automatique au moment de la requête (DeepL, Google Cloud Translation)                | Traduit n&#39;importe quel texte, y compris le contenu qui n&#39;existe qu&#39;à l&#39;exécution                                                                                         | Vous transmettez la langue cible à chaque appel                                                                              | Latence et coût à chaque requête si vous ne mettez pas les résultats en cache, cohérence terminologique, formes plurielles et relecture                                                                                                                                       |
| General Translation (`gt-node` et la CLI `gt`)                                                             | Les chaînes restent intégrées dans les gestionnaires, dans des appels `gt()`, et [`npx gt translate --publish`](/docs/cli/reference/commands/translate) les traduit avant le déploiement | [`withGT`](/docs/node/reference/functions/with-gt) le lie à la requête                                                       | Un identifiant de projet et un fichier `gt.config.json` générés par [`npx gt init`](/docs/cli/reference/commands/init), [`gt login`](/docs/cli/reference/commands/login) ou une clé API, ainsi que l&#39;intégration de la CLI à votre étape de compilation ou de déploiement |

Utilisez `i18next` ou `nestjs-i18n` seuls si votre équipe maintient déjà des catalogues traduits. Réservez l&#39;appel à une API de traduction automatique au moment de la requête au contenu qui n&#39;existe qu&#39;à l&#39;exécution, comme les publications des utilisateurs. Utilisez `gt-node` lorsque les chaînes se trouvent dans vos gestionnaires et évoluent à chaque livraison. Si votre API ne renvoie que des données et des codes d&#39;erreur, et qu&#39;un client web ou mobile affiche tous les messages, une configuration plus simple suffit : traduisez côté client.

## Traduire une application Node.js avec gt-node

1. Appelez [`initializeGT`](/docs/node/reference/functions/initialize-gt) une seule fois au démarrage en lui passant vos paramètres régionaux.

2. Encapsulez chaque requête dans [`withGT`](/docs/node/reference/functions/with-gt). Cette fonction lie le paramètre régional via `AsyncLocalStorage`, de sorte que chaque requête concurrente conserve le sien, et [`getRequestLocale`](/docs/node/reference/functions/get-request-locale) le lit dans l&#39;en-tête `Accept-Language`.

3. Dans un gestionnaire, appelez [`getGT`](/docs/node/reference/functions/get-gt) pour obtenir une fonction `gt()` qui accepte des messages ICU, formes plurielles comprises, ainsi qu&#39;une option `$context` pour lever l&#39;ambiguïté sur certains mots :

   ```js title="server.js"
   import express from 'express';
   import { initializeGT, withGT, getRequestLocale, getGT } from 'gt-node';

   initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'] });
   const app = express();
   app.use((req, res, next) => withGT(getRequestLocale(req), () => next()));

   app.get('/api/greeting', async (req, res) => {
     const gt = await getGT();
     res.json({ message: gt('Hello, {name}!', { name: 'Alice' }) });
   });
   app.listen(3000, () => console.log('Listening on http://localhost:3000'));
   ```

4. Avant de déployer, activez le CDN dans les paramètres de votre projet et exécutez [`npx gt translate --publish`](/docs/cli/reference/commands/translate).

En production, `gt-node` récupère ces traductions depuis le CDN de General Translation pour l&#39;identifiant de projet défini dans `GT_PROJECT_ID`. Si une traduction est manquante, c&#39;est la chaîne source qui est utilisée.

## Partager la terminologie avec votre application cliente

Si votre client web ou mobile utilise également General Translation, attribuez son groupe de contexte (glossaire et instructions personnalisées) au projet du serveur depuis **Project &gt; Context** dans le tableau de bord : les nouvelles traductions renvoyées dans les réponses de l&#39;API utiliseront ainsi la même terminologie. Le [Démarrage rapide Node.js](/docs/node/quickstart) détaille toutes les étapes.

## Related questions

- [Comment traduire une application React ?](https://generaltranslation.com/fr/kb/translate-react-app.mdx): Traduire une application React consiste à internationaliser ses composants pour qu’ils s’affichent dans la langue de l’utilisateur, puis à traduire chaque chaîne de caractères dans chacune des langues prises en charge. gt-react de General Translation traduit le JSX sur place dans le composant `<T>`, et npx gt translate génère un fichier par langue.
- [Comment traduire une application Vue ?](https://generaltranslation.com/fr/kb/translate-vue-app.mdx): Traduire une application Vue consiste à faire passer chaque chaîne de caractères des modèles par une recherche dans la langue active, puis à la traduire dans chaque langue cible. Le plugin gt-vue de General Translation traduit le contenu encapsulé dans le composant `<T>`, et npx gt translate génère un catalogue par langue cible.
- [Comment ajouter l’i18n à une application Next.js App Router ?](https://generaltranslation.com/fr/kb/add-i18n-to-nextjs.mdx): Commencez par gt init pour configurer General Translation dans un projet App Router pris en charge, puis balisez le contenu source, générez les traductions et vérifiez le changement de langue. gt-next conserve les textes dans le JSX avec leur contexte de traduction ; la CLI, l’éditeur du tableau de bord et Locadex prennent en charge la génération, la relecture et les mises à jour continues. Ce guide présente également la configuration initiale explicite avec des fichiers locaux.
- [Comment maintenir les traductions à jour à chaque déploiement ?](https://generaltranslation.com/fr/kb/translations-in-ci.mdx): Exécutez la traduction comme une étape du pipeline avant chaque compilation de production, afin que les nouveaux textes soient livrés traduits avec le déploiement qui les ajoute. Le CLI gt de General Translation s’en charge avec npx gt translate, à l’aide d’une clé API de projet et d’un identifiant de projet stockés comme secrets CI.

## Previous and next questions

- Previous question: [Comment traduire un site de documentation Mintlify ?](https://generaltranslation.com/fr/kb/translate-mintlify-docs.mdx)
- Next question: [Comment traduire une application React ?](https://generaltranslation.com/fr/kb/translate-react-app.mdx)

## Sitemap

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