# General Translation Changelog: gt-next 6.6.0: Sottoalberi del dizionario tradotti con t.obj()
URL: https://generaltranslation.com/it/blog/gt-next_v6_6_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Ernest McCarter
Published: 2025-09-18

## Panoramica

In **gt-next 6.6.0**, stiamo adottando un nuovo approccio all&#39;internazionalizzazione delle app &quot;brown field&quot;. Introduciamo la funzione `t.obj()`, che può restituire strutture dizionario tradotte.

***

## Motivazione

&quot;Brown field&quot; e &quot;green field&quot; sono termini presi in prestito dal settore immobiliare. Un green field è un lotto privo di strutture esistenti, mentre un brown field presenta già delle strutture. Nell&#39;i18n, questo corrisponde ad app senza infrastruttura i18n (green field) contrapposte ad app che dispongono già di un&#39;infrastruttura i18n (brown field).

Finora la nostra libreria si è concentrata quasi esclusivamente sull&#39;internazionalizzazione di app &quot;green field&quot;. Ne sono esempi il componente [`<T>`](/docs/react/reference/components/t) e l&#39;hook [`useGT()`](/docs/react/reference/hooks/use-gt).

L&#39;unica infrastruttura che abbiamo realizzato specificamente per le app &quot;brown field&quot; sono gli hook `const t = useTranslations()` e `const t = getTranslations()`, modellati sul pattern a dizionario di next-intl. Tuttavia, la nostra funzione [`t()`](/docs/react/reference/functions/t-function) è stata finora limitata: restituisce solo stringhe, non sottoalberi del dizionario.

Abbiamo scoperto che gli sviluppatori spesso si aspettano che la propria libreria i18n restituisca sottoalberi del dizionario, non solo stringhe. Per questo è fondamentale che gt-next supporti questa funzionalità quando gli sviluppatori migrano da altre librerie i18n.

***

## Utilizzo

Considera la seguente struttura del dizionario, in cui hai un elenco di elementi su cui vuoi iterare:

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

Con il nostro approccio precedente, avresti dovuto accedere a ciascun elemento singolarmente usando la relativa chiave esatta:

```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>
    </>
  )
}
```

Questo approccio chiaramente non è né scalabile né facile da mantenere.

La nuova funzione `t.obj()` offre un modo efficace per accedere alle strutture del dizionario come sottoalberi:

```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>
    </>
  )
}
```

***


## Conclusione

La funzione `t.obj()` rappresenta un passo avanti importante nel rendere gt-next più versatile sia per le applicazioni green field sia per quelle brown field. Consentendo agli sviluppatori di lavorare direttamente con i sottoalberi del dizionario, eliminiamo uno dei principali ostacoli all&#39;internazionalizzazione delle applicazioni esistenti.

Questo miglioramento avvicina gt-next all&#39;esperienza di sviluppo che i team si aspettano dalle moderne librerie di i18n, semplificando l&#39;iterazione sui contenuti tradotti e la creazione di applicazioni internazionalizzate più dinamiche e facili da manutenere.

## Sitemap

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