# General Translation React SDKs (gt-react, gt-next, gt-react-native): Utilizzo di Cache Components URL: https://generaltranslation.com/it/docs/react/nextjs/cache-components.mdx --- title: Utilizzo di Cache Components description: Come utilizzare le Cache Components di Next.js con funzioni di richiesta sicure per le impostazioni regionali e traduzioni archiviate localmente. related: links: - /docs/react/nextjs/app-router-middleware - /docs/react/nextjs/app-router-static-site-generation - /docs/react/nextjs/registering-request-locales - /docs/react/nextjs/locale-alias-seo --- Le Cache Components possono prerenderizzare e memorizzare nella cache contenuti server localizzati. L'impostazione regionale, la regione e le traduzioni devono essere tutte risolte senza header delle richieste, cookie o il loader delle traduzioni remoto predefinito. *Nota: questa guida utilizza Next.js 16 o versioni successive, in cui le Cache Components sono configurate con `cacheComponents: true`.* ## Abilitare Cache Components [#enable] Abilita Cache Components in `next.config.ts`. Mantieni [`withGTConfig`](/docs/react/nextjs/config) attorno alla configurazione di Next.js: ```ts title="next.config.ts" import type { NextConfig } from 'next'; import { withGTConfig } from 'gt-next/config'; const nextConfig: NextConfig = { cacheComponents: true, }; export default withGTConfig(nextConfig); ``` Quando Cache Components è abilitata, `gt-next`: * Richiede una funzione [`loadTranslations`](/docs/react/reference/functions/load-translations) personalizzata. Il loader remoto predefinito non è sicuro durante il prerendering. * Emette un avviso se mancano le funzioni di richiesta personalizzate [`getLocale`](/docs/react/nextjs/reference/functions/get-locale) e [`getRegion`](/docs/react/nextjs/reference/functions/get-region). * Disabilita l'hot reload della runtime translation in fase di sviluppo perché effettua Request dinamiche. * Lascia che Next.js gestisca l'invalidazione della cache anziché applicare la normale scadenza della cache di General Translation. ## Risolvi i valori della richiesta [#request-values] Posiziona il segmento `[locale]` alla radice dell'albero App Router. Il layout radice deve essere `app/[locale]/layout.tsx`, senza alcun `app/layout.tsx` al di sopra. Crea `getLocale.ts` nella radice del progetto: ```ts title="getLocale.ts" import { locale } from 'next/root-params'; export default async function getLocale() { return await locale(); } ``` Crea `getRegion.ts` accanto a esso. Restituisci una regione fissa se il tuo output dipende da una regione oppure `undefined` per disabilitare il rilevamento della regione: ```ts title="getRegion.ts" export default async function getRegion() { return undefined; } ``` `withGTConfig` rileva automaticamente entrambi i file. Se si trovano in un'altra posizione, configura [`getLocalePath` e `getRegionPath`](/docs/react/nextjs/config#request-function-paths). Non chiamare `headers()` o `cookies()` da queste funzioni di richiesta. Le API di richiesta dinamiche non possono essere eseguite all'interno di un contesto `"use cache"`. Leggi l'impostazione regionale da `next/root-params` e restituisci invece una regione fissa. ## Archivia le traduzioni in locale [#local-translations] Genera i file di traduzione prima della build di Next.js, quindi caricali dal bundle: ```ts title="loadTranslations.ts" export default async function loadTranslations(locale: string) { try { const translations = await import(`./public/_gt/${locale}.json`); return translations.default; } catch { return {}; } } ``` `withGTConfig` rileva `loadTranslations.ts` nella radice del progetto o in `src/`. Puoi anche impostare [`loadTranslationsPath`](/docs/react/nextjs/config#load-translations-path). Configura l'output della CLI in modo che corrisponda al loader ed esegui [`npx gt translate`](/docs/cli/reference/commands/translate) prima di `next build`. Consulta [Archiviare le traduzioni localmente](/docs/react/guides/storing-translations) per il workflow completo. ## Memorizza nella cache i contenuti tradotti [#cache-content] Determina l'impostazione regionale al di fuori della funzione memorizzata nella cache e passala come argomento serializzabile. Gli argomenti della funzione diventano parte della chiave di cache di Cache Components, mantenendo separate le voci per le diverse impostazioni regionali. ```tsx title="app/[locale]/page.tsx" import { T } from 'gt-next'; import { getLocale } from 'gt-next/server'; import { cacheLife, cacheTag } from 'next/cache'; async function CachedContent({ locale }: { locale: string }) { 'use cache'; cacheLife('hours'); cacheTag(`home-${locale}`); return Welcome to our site; } export default async function Page() { const locale = await getLocale(); return ; } ``` Applica lo stesso pattern a qualsiasi regione o altro valore della richiesta che modifichi la traduzione renderizzata. Non consentire mai a due impostazioni regionali di condividere una voce della cache. ## Next steps - /docs/react/nextjs/app-router-middleware - /docs/react/nextjs/app-router-static-site-generation - /docs/react/nextjs/registering-request-locales - /docs/react/nextjs/locale-alias-seo