# General Translation Changelog: gt-i18n 0.9.0: Traductions basées sur un dictionnaire
URL: https://generaltranslation.com/fr/blog/gt-i18n_v0_9_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Ernest McCarter
Published: 2026-05-07

## Vue d’ensemble

`gt-i18n` fournit désormais des traductions basées sur un dictionnaire pour les intégrations de frameworks. Dans les applications Node.js, utilisez l’export public [`getTranslations()`](/docs/node/reference/functions/get-translations) de `gt-node` ; `gt-i18n@0.9.0` ne l’exporte pas depuis la racine de son paquet.

| Paquet   | Version |
| --------- | ------- |
| `gt-i18n` | `0.9.0` |
| `gt-node` | `0.7.0` |

## Configuration

Créez un fichier `dictionary.json` à la racine de votre projet, contenant vos chaînes source (en anglais) :

```json title="dictionary.json"
{
  "greeting": {
    "hello": "Hello!"
  },
  "user": {
    "welcome": "Welcome, {name}!"
  },
  "errors": {
    "notFound": "Page not found",
    "unauthorized": "Access denied"
  }
}
```

Lorsque vous exécutez la CLI ([`npx gt translate`](/docs/cli/reference/commands/translate)), elle détecte `dictionary.json` à la racine du projet et le traduit pour les paramètres régionaux configurés.

Configurez le runtime Node.js avec [`initializeGT`](/docs/node/reference/functions/initialize-gt) :

```ts
import { initializeGT } from 'gt-node';
import dictionary from './dictionary.json';

initializeGT({
  defaultLocale: 'en',
  locales: ['en', 'es'],
  dictionary,
});
```

<Accordions>
  <Accordion title="Fournir vos propres dictionnaires">
    Si vous souhaitez charger vos propres dictionnaires déjà traduits, fournissez une option asynchrone [`loadDictionary`](/docs/node/reference/config#load-dictionary) lors de l&#39;initialisation de `gt-node`. Vous devez toujours fournir explicitement le dictionnaire par défaut — ce loader fournit les paramètres régionaux traduits :

    ```ts
    import { initializeGT } from 'gt-node';
    import dictionary from './dictionary.json';

    initializeGT({
      defaultLocale: 'en',
      locales: ['en', 'es'],
      dictionary,
      loadDictionary: async (locale) => {
        const dict = await import(`./locales/${locale}.json`);
        return dict.default;
      },
    });
    ```

    Ce loader fournit vos dictionnaires traduits au lieu de récupérer les dictionnaires générés.
  </Accordion>
</Accordions>

## Utilisation

À partir du dictionnaire source ci-dessus, appelez [`getTranslations()`](/docs/node/reference/functions/get-translations) pour obtenir une fonction `t` qui récupère les entrées de votre dictionnaire :

```ts
import { getTranslations, withGT } from 'gt-node';

await withGT('en', async () => {
  const t = await getTranslations();

  t('greeting.hello'); // "Hello!"
  t('user.welcome', { name: 'Alice' }); // "Bienvenue, Alice !"
});
```

### Sous-dictionnaires avec `t.obj()`

`t()` renvoie une seule chaîne de caractères. `t.obj()` renvoie tout un sous-arbre du dictionnaire sous forme d’objet :

```ts
// Dans le callback withGT ci-dessus :
t('errors.notFound'); // "Page not found"

const errors = t.obj('errors');
// { notFound: "Page not found", unauthorized: "Access denied" }
```

Lorsqu’un dictionnaire traduit contient des clés manquantes, les entrées absentes sont complétées à partir du dictionnaire source. Autrement dit, des traductions partielles ne provoqueront pas d’erreurs à l’exécution — les clés non traduites utilisent le texte source par défaut.

## Comportement de résolution

Deux règles régissent la façon dont les recherches sont résolues :

1. **Traduction manquante → contenu de secours du paramètre régional par défaut.** Si une clé existe dans le dictionnaire source mais n&#39;a pas de traduction pour le paramètre régional actuel, `t()` renvoie le texte source.
2. **Entrée source manquante → erreur.** Si une clé n&#39;existe pas du tout dans le dictionnaire source, `t()` génère une erreur. C&#39;est intentionnel : si une clé n&#39;est pas définie dans votre source, c&#39;est un bug, pas une traduction manquante. Ce comportement sera appliqué à toutes les bibliothèques GT dans une prochaine refactorisation.

La deuxième règle suppose que les dictionnaires traduits reprennent la structure de votre dictionnaire source, ce qui permet à GT de générer automatiquement les traductions.

## Liens

* [PR #1359](https://github.com/generaltranslation/gt/pull/1359)
* [Référence de l’API `getTranslations`](/docs/node/reference/functions/get-translations)
* [Guide des dictionnaires](/docs/react/guides/translating-with-dictionaries)

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
