# General Translation React SDKs (gt-react, gt-next, gt-react-native): Generazione statica del sito con App Router
URL: https://generaltranslation.com/it/docs/react/nextjs/app-router-static-site-generation.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come eseguire il pre-rendering delle pagine localizzate di Next.js App Router con General Translation.

Esegui il pre-rendering di una route di App Router per ogni impostazione regionale con `generateStaticParams`. Il routing delle impostazioni regionali e la risoluzione dell&#39;impostazione regionale della richiesta usano la stessa configurazione delle route dinamiche.

## Mantieni la configurazione di Next.js [#config]

La generazione statica non cambia il setup di `withGTConfig`:

```ts title="next.config.ts"
import type { NextConfig } from 'next';
import { withGTConfig } from 'gt-next/config';

const nextConfig: NextConfig = {};

export default withGTConfig(nextConfig);
```

## Configura il routing delle impostazioni regionali [#routing]

Segui la [guida al middleware di App Router](/docs/react/nextjs/app-router-middleware) per creare `proxy.ts`, spostare le route in `app/[locale]` e definire la funzione [`getLocale`](/docs/react/nextjs/reference/functions/get-locale) personalizzata.

## Disabilita il rilevamento della regione [#region]

Il resolver predefinito della regione legge un cookie, rendendo la route dinamica. Aggiungi `getRegion.ts` nella radice del progetto per disabilitare il rilevamento della regione durante il prerendering:

```ts title="./getRegion.ts"
export default async function getRegion() {
  return undefined;
}
```

`withGTConfig` rileva automaticamente questo file.

## Genera route per le impostazioni regionali [#generate-routes]

Restituisce un parametro di route per ciascuna impostazione regionale configurata:

```tsx title="app/[locale]/page.tsx"
import { getLocales, T } from 'gt-next';

export function generateStaticParams() {
  return getLocales().map((locale) => ({ locale }));
}

export default function HomePage() {
  return <T>Welcome to our site</T>;
}
```

Next.js ora esegue il pre-rendering di `app/[locale]/page.tsx` una volta per ogni impostazione regionale.

<Callout type="warn">
  Questa configurazione può prerenderizzare le pagine continuando a distribuire un server Next.js. Un progetto con `output: 'export'` non può eseguire la build se sono presenti `proxy.ts` o `middleware.ts`. Rimuovi il middleware, esporta `dynamicParams = false`, genera ogni percorso per impostazione regionale e collega direttamente tali percorsi per un&#39;esportazione completamente statica; il rilevamento delle impostazioni regionali e i reindirizzamenti non saranno disponibili.
</Callout>

## Verifica la compatibilità con Next.js [#compatibility]

Il file `getLocale.ts` personalizzato deve poter accedere al parametro `[locale]` radice durante il prerendering. Usa l&#39;API disponibile nella tua versione di Next.js:

| Versione di Next.js  | API dell&#39;impostazione regionale radice                                               |
| -------------------- | --------------------------------------------------------------------- |
| 15.5 e successive    | `locale()` da `next/root-params`                                      |
| 15.2.0 e 15.2.3–15.4 | `unstable_rootParams()` da `next/server`                              |
| Precedente alla 15.2 | Aggiorna prima di usare questa configurazione SSG dell&#39;App Router |

`gt-next` esclude Next.js 15.2.1 e 15.2.2 dall&#39;intervallo di peer supportato. Aggiorna queste versioni alla 15.2.3 o a una versione successiva.

Per Next.js 15.2.0 o 15.2.3–15.4, usa:

```ts title="./getLocale.ts"
import { unstable_rootParams } from 'next/server';

export default async function getLocale() {
  const params = await unstable_rootParams();
  return params?.locale;
}
```

Mantieni l&#39;esempio `next/root-params` per Next.js 15.5 e versioni successive della [guida al middleware](/docs/react/nextjs/app-router-middleware#root-locale) per i progetti attuali.

## Come risolvere gli errori di build [#build-failures]

### Impossibile determinare l&#39;impostazione regionale

Il middleware non viene eseguito quando Next.js esegue il prerendering di una pagina. Verifica che `getLocale.ts` esista nella radice del progetto o che [`getLocalePath`](/docs/react/nextjs/config#request-function-paths) vi punti.

Se un valore di route arbitrario deve produrre un errore 404 anziché usare il fallback dell&#39;impostazione regionale predefinita, valida il parametro `[locale]` con [`isLocaleSupported`](/docs/react/nextjs/reference/functions/is-locale-supported).

### `DYNAMIC_SERVER_USAGE`

Questo errore indica che il rendering statico ha incontrato un&#39;API di richiesta dinamica. Verifica che:

* `getLocale.ts` legga solo il parametro della route radice.
* `getRegion.ts` restituisca un valore fisso o `undefined`.
* Nessuna delle due funzioni chiami `headers()` o `cookies()`.

Se Cache Components è abilitato, segui anche la [configurazione più restrittiva di Cache Components](/docs/react/nextjs/cache-components).

### Errori di esportazione del parametro radice

Un errore che indica che l&#39;export `locale` non esiste di solito significa che il progetto usa l&#39;API sbagliata per la propria versione di Next.js. Segui la [tabella di compatibilità](#compatibility).

Il segmento `[locale]` deve inoltre essere il primo segmento dinamico nell&#39;albero dell&#39;App Router. Posiziona il root layout in `app/[locale]/layout.tsx`; un layout al di sopra di quel segmento non può leggere l&#39;impostazione regionale radice durante il prerendering.

### Route delle immagini dei metadati

I file Open Graph, Twitter, icone e icone Apple sono internamente Route Handlers e non possono leggere `next/root-params`. Leggi `params.locale` e chiama [`registerLocale`](/docs/react/nextjs/reference/functions/register-locale) prima di utilizzare altri helper del server. Vedi [Registrazione delle impostazioni regionali della richiesta](/docs/react/nextjs/registering-request-locales#metadata-images).

## Next steps

- /docs/react/nextjs/app-router-middleware
- /docs/react/nextjs/registering-request-locales
- /docs/react/nextjs/cache-components
- /docs/react/nextjs/locale-alias-seo

## Sitemap

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