# General Translation Changelog: gt-next 6.6.0: Sous-arbres de dictionnaire traduits avec t.obj()
URL: https://generaltranslation.com/fr/blog/gt-next_v6_6_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Ernest McCarter
Published: 2025-09-18

## Aperçu

Avec **gt-next 6.6.0**, nous adoptons une nouvelle approche pour l’internationalisation des applications « brown field ». Nous introduisons la fonction `t.obj()`, qui peut renvoyer des structures de dictionnaire traduites.

***

## Motivation

« Brown field » et « green field » sont des termes empruntés au développement immobilier. Un green field désigne un terrain sans structure existante, tandis qu&#39;un brown field désigne un terrain où des structures existent déjà. En i18n, cela correspond aux applications sans infrastructure i18n (green field), par opposition aux applications qui disposent déjà d&#39;une infrastructure i18n (brown field).

Jusqu&#39;à présent, notre bibliothèque s&#39;est surtout concentrée sur l&#39;internationalisation des applications « green field ». Le composant [`<T>`](/docs/react/reference/components/t) et le hook [`useGT()`](/docs/react/reference/hooks/use-gt) en sont de bons exemples.

La seule infrastructure que nous ayons créée spécifiquement pour les applications « brown field », ce sont les hooks `const t = useTranslations()` et `const t = getTranslations()`, calqués sur le modèle de dictionnaire de next-intl. Cependant, notre fonction [`t()`](/docs/react/reference/functions/t-function) était limitée : elle ne renvoyait que des chaînes, et non des sous-arbres de dictionnaire.

Nous avons constaté que les développeurs s&#39;attendent souvent à ce que leur bibliothèque i18n renvoie des sous-arbres de dictionnaire, pas seulement des chaînes. Il est donc essentiel que gt-next prenne en charge cette fonctionnalité lorsque des développeurs migrent depuis d&#39;autres bibliothèques i18n.

***

## Utilisation

Considérez la structure de dictionnaire suivante, avec une liste d’éléments à parcourir :

```json
{
  "cards": [
    {
      "title": "Card 1",
      "description": "Card 1 description"
    },
    {
      "title": "Card 2",
      "description": "Card 2 description"
    },
    {
      "title": "Card 3",
      "description": "Card 3 description"
    }
  ]
}
```

Avec notre approche précédente, il fallait accéder à chaque élément séparément en utilisant sa clé exacte :

```tsx title="Page.tsx"
import { useTranslations } from 'gt-next'

export default function Page() {
  const t = useTranslations()

  return (
    <>
      <div>
        {t('cards.0.title')}
        {t('cards.0.description')}
      </div>
      <div>
        {t('cards.1.title')}
        {t('cards.1.description')}
      </div>
      <div>
        {t('cards.2.title')}
        {t('cards.2.description')}
      </div>
    </>
  )
}
```

Cette approche n’est clairement ni évolutive ni facile à maintenir.

La nouvelle fonction `t.obj()` offre un moyen efficace d’accéder aux structures de dictionnaire sous forme de sous-arbres :

```tsx title="Page.tsx"
import { useTranslations } from 'gt-next'

export default function Page() {
  const t = useTranslations()

  return (
    <>
      <div>
        {t.obj('cards').map((card) => (
          <div key={card.title}>
            {card.title}
            {card.description}
          </div>
        ))}
      </div>
    </>
  )
}
```

***


## Conclusion

La fonction `t.obj()` marque une avancée importante pour rendre gt-next plus polyvalent, aussi bien pour les applications green field que pour les applications brown field. En permettant aux développeurs de travailler directement avec des sous-arbres de dictionnaire, nous éliminons un point de friction majeur dans l’internationalisation des applications existantes.

Cette amélioration rapproche gt-next de l’expérience développeur que les équipes attendent des bibliothèques d’i18n modernes, en facilitant le parcours du contenu traduit et la création d’applications internationalisées plus dynamiques et plus faciles à maintenir.

## Sitemap

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