# General Translation Integrations: Gestione delle impostazioni regionali in Shopify Hydrogen
URL: https://generaltranslation.com/it/docs/integrations/shopify/reference/locale-handling.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come uno storefront Shopify allinea alla stessa impostazione regionale i testi dello storefront, i contenuti del catalogo, gli URL e i mercati. Riferimento per la gestione delle impostazioni regionali negli storefront Shopify.

Queste regole valgono per tutti gli storefront Hydrogen, sia su React Router sia su Next.js. Garantiscono che `gt-react` o `gt-next`, il contesto della Storefront API di Shopify, il routing e la cache usino la stessa impostazione regionale per ogni richiesta.

## Panoramica [#overview]

| Argomento                            | Descrizione                                                                                                               |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| [Codici locale](#locale-codes)       | Un unico elenco di impostazioni regionali, mappato esplicitamente ai codici Shopify.                                      |
| [Routing](#routing)                  | È l&#39;URL a determinare la lingua, con un solo URL canonical per pagina.                                                |
| [Lingua e mercato](#language-market) | La lingua dei testi e il paese di vendita sono parametri distinti, che puoi abbinare per ciascuna impostazione regionale. |
| [Pagine in cache](#cached-pages)     | Le traduzioni vengono distribuite insieme alla build.                                                                     |

## Codici locale [#locale-codes]

Definisci le impostazioni regionali una sola volta, in `gt.config.json`. Ricava da quell&#39;elenco il routing, `<html lang>`, il provider, il selettore della lingua e il contesto delle query Shopify, invece di mantenerne un secondo.

In uno storefront Shopify ogni lingua ha tre codici:

* **Le impostazioni regionali di General Translation** sono tag BCP 47, come `fr` o `pt-BR`. (Vedi [Codici locale](/docs/platform/core/guides/locale-codes)).
* **I valori `LanguageCode` della Storefront API** sono enumerazioni in maiuscolo con trattini bassi, come `FR` o `PT_BR`. Passali a `@inContext(language:)`.
* **Le impostazioni regionali dell&#39;Admin API** sono i codici locale del negozio, come `fr` o `pt-BR`. Passali a `translationsRegister`.

Mappa esplicitamente ogni impostazione regionale. Sostituire `_` con `-` funziona per la maggior parte dei codici, ma non per tutti:

| `LanguageCode` Shopify | Lingua                  | Impostazione regionale General Translation |
| ---------------------- | ----------------------- | ------------------------------------------ |
| `EN`                   | Inglese                 | `en`                                       |
| `FR`                   | Francese                | `fr`                                       |
| `JA`                   | Giapponese              | `ja`                                       |
| `PT_BR`                | Portoghese (Brasile)    | `pt-BR`                                    |
| `PT_PT`                | Portoghese (Portogallo) | `pt-PT`                                    |
| `ZH_CN`                | Cinese (semplificato)   | `zh-CN` o `zh-Hans`                        |
| `ZH_TW`                | Cinese (tradizionale)   | `zh-TW` o `zh-Hant`                        |

`ZH_CN` e `ZH_TW` indicano un sistema di scrittura, non solo una regione. `zh-TW` implica anche Taiwan, mentre `zh-Hant` indica il cinese tradizionale a prescindere dalla regione. Scegli un&#39;impostazione regionale per ogni lingua Shopify e usala in `gt.config.json`, negli URL e in `<html lang>`.

<Callout type="info">
  **In arrivo in Hydrogen:** alcune pull request aperte propongono degli helper per le impostazioni regionali. [Shopify/hydrogen#4009](https://github.com/Shopify/hydrogen/pull/4009) aggiunge `defineShopifyI18n`, una definizione delle impostazioni regionali con routing basato sul pathname o sul dominio, e helper come `getSupportedLocales`. [Shopify/hydrogen#4325](https://github.com/Shopify/hydrogen/pull/4325) aggiunge `getHtmlLang`, che converte un `LanguageCode` in un tag `<html lang>` valido, ad esempio `PT_BR` in `pt-BR` e `ZH_TW` in `zh-Hant`. Nessuna delle due è ancora inclusa in una versione rilasciata di `@shopify/hydrogen`, quindi continua a mantenere un tuo elenco di impostazioni regionali e la relativa mappatura.
</Callout>

Costruisci i tag basandoti solo sulla lingua. Un cliente del mercato canadese che legge in francese riceve `fr`, non `fr-CA`. Aggiungi un&#39;impostazione regionale separata, come `fr-CA`, solo se gestisci testi specifici per quella variante.

## Routing [#routing]

### È l&#39;URL a decidere la lingua

Risolvi l&#39;impostazione regionale dal percorso o dal dominio della richiesta e passa lo stesso valore al provider, a `<html lang>` e al contesto della query di Shopify. Un cookie o l&#39;intestazione `Accept-Language` possono suggerire un reindirizzamento, ma un dato URL renderizza sempre la stessa lingua: in questo modo cache e motori di ricerca vedono una sola lingua per ogni URL.

### Un solo URL canonical per pagina

Servi l&#39;impostazione locale predefinita senza prefisso e le altre impostazioni regionali con un prefisso, ad esempio `/fr/products/hoodie`. Restituisci un 404 per l&#39;impostazione locale predefinita con prefisso, ad esempio `/en/products/hoodie`, e per i prefissi sconosciuti. I link renderizzati in una pagina localizzata ne mantengono il prefisso.

Passa il prefisso a Hydrogen tramite `i18n.pathPrefix` in `createShopifyRequestContext`, ad esempio `/fr`, oppure una stringa vuota per l&#39;impostazione locale predefinita. Hydrogen lo aggiunge ai reindirizzamenti che restituisce per le varianti di prodotto e per le route standard.

### Route non localizzate

Lascia senza prefisso le route che Shopify o i suoi script chiamano su percorsi fissi: i gestori delle API del carrello e della ricerca predittiva, le callback di autorizzazione dell&#39;account cliente e le altre route `/api`. Nel template Vercel Shop, `proxy.ts` consente a `handleShopifyRoutes` di Hydrogen di rispondere a queste richieste prima di qualsiasi riscrittura basata sull&#39;impostazione regionale. (Vedi [Localizzare uno storefront Shopify Next.js](/docs/integrations/shopify/guides/localizing-nextjs#routing)).

Le richieste del carrello e della ricerca predittiva hanno comunque bisogno della lingua della pagina, altrimenti Shopify restituisce i testi del catalogo nella lingua predefinita. Salva l&#39;impostazione regionale della pagina in un cookie, leggilo solo per queste richieste senza prefisso e accetta esclusivamente le impostazioni regionali configurate. (Vedi [Mantenere i gestori di Hydrogen nella lingua della pagina](/docs/integrations/shopify/guides/localizing-react-router#handler-locale)).

## Lingua e mercato [#language-market]

La direttiva `@inContext` della Storefront API accetta un `language` e un `country`, che rispondono a domande diverse:

* **`language`** determina quale traduzione dei contenuti del catalogo viene restituita da Shopify. Segue l&#39;impostazione regionale della pagina.
* **`country`** determina il mercato, che a sua volta stabilisce prezzi, valuta e disponibilità dei prodotti. In un carrello vale solo finché il carrello non ha un&#39;identità dell&#39;acquirente, e non ne imposta mai una. Imposta il paese dell&#39;acquirente tramite `cartCreate` o `cartBuyerIdentityUpdate`; da quel momento, l&#39;identità dell&#39;acquirente prevale su eventuali valori di `@inContext` in conflitto. (Consulta le [regole di contesto del carrello](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context#cart-queries-and-mutations) di Shopify).

Scegli come metterli in relazione:

* **Un unico mercato per tutte le lingue.** Passa lo stesso paese per ogni impostazione regionale. Cambiando lingua cambiano solo i testi e i contenuti del catalogo, mai i prezzi o il carrello.
* **Un mercato per ogni lingua.** Associa ogni impostazione regionale a un paese, ad esempio il francese alla Francia e il giapponese al Giappone, e passa quel paese insieme alla lingua dell&#39;impostazione regionale. In questo modo ogni lingua mostra i prezzi e la valuta del proprio mercato. Quando la lingua cambia, aggiorna il `countryCode` dell&#39;acquirente del carrello con `cartBuyerIdentityUpdate`, perché un carrello mantiene la valuta del paese del proprio acquirente. (Consulta [Vendere in più mercati](/docs/integrations/shopify/guides/selling-in-markets)).

Se vuoi che gli acquirenti scelgano il paese indipendentemente dalla lingua, aggiungi invece un selettore del paese separato e aggiorna l&#39;identità dell&#39;acquirente quando questo cambia.

Non convertire mai i prezzi e non dedurre mai la valuta dall&#39;impostazione regionale. Formatta gli importi di Shopify con il codice valuta restituito da Shopify, usando [`<Currency>`](/docs/react/reference/components/currency) o `formatMoney` di Hydrogen.

## Pagine in cache [#cached-pages]

Quando le pagine sono in cache o prerenderizzate, carica le traduzioni da file inclusi nella build. Le richieste di traduzione in fase di esecuzione non possono essere eseguite all&#39;interno di una shell statica. In Next.js con Cache Components, è obbligatorio un [`loadTranslations`](/docs/react/reference/functions/load-translations) personalizzato (vedi [Usare Cache Components](/docs/react/nextjs/cache-components)).

Le traduzioni del catalogo archiviate in Shopify non fanno parte della build: seguono le impostazioni di cache della tua Storefront API.

## Sitemap

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