# Vue: createGT
URL: https://generaltranslation.com/it/docs/vue/reference/functions/create-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Crea un plugin Vue isolato per le traduzioni, con stato reattivo dell'impostazione regionale e cache del catalogo. Riferimento API di createGT.

Ogni chiamata crea uno stato dell&#39;impostazione regionale indipendente, caricamenti in corso e cataloghi memorizzati nella cache. Usalo per le normali applicazioni client e crea un&#39;istanza per ogni richiesta per il rendering lato server.

## Panoramica [#overview]

```ts
function createGT(options?: CreateGTOptions): GTPlugin;
```

[`createGT()`](#overview) restituisce immediatamente. Installa il plugin con `app.use()` oppure precarica un&#39;impostazione regionale tramite [`GTPlugin`](/docs/vue/reference/types/gt-plugin) restituito prima del rendering.

```ts
import { createApp } from 'vue';
import { createGT } from 'gt-vue';
import App from './App.vue';

const gt = createGT({
  defaultLocale: 'en',
  loadTranslations: async (locale) =>
    (await import(`./_gt/${locale}.json`)).default,
});

createApp(App).use(gt).mount('#app');
```

## Parametri [#parameters]

| Parametro | Descrizione                                                                                    | Tipo                                                             | Facoltativo | Predefinito |
| --------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ----------- | ----------- |
| `options` | Configurazione iniziale dell&#39;impostazione regionale, dei cookie e del loader del catalogo. | [`CreateGTOptions`](/docs/vue/reference/types/create-gt-options) | Sì          | `{}`        |

L&#39;oggetto `options` accetta i seguenti campi:

| Opzione            | Descrizione                                                                         | Tipo                                                                  | Facoltativo | Predefinito                    |
| ------------------ | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------- | ------------------------------ |
| `customMapping`    | Alias di impostazione regionale per la formattazione e la selezione dei plurali.    | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sì          | Nessuno                        |
| `defaultLocale`    | Impostazione regionale sorgente e di fallback.                                      | `string`                                                              | Sì          | `en`                           |
| `loadTranslations` | Loader asincrono del catalogo di destinazione.                                      | [`LoadTranslations`](/docs/vue/reference/types/load-translations)     | Sì          | Catalogo vuoto                 |
| `locale`           | Impostazione regionale iniziale esplicita. Ha la precedenza sul cookie del browser. | `string`                                                              | Sì          | Cookie, quindi `defaultLocale` |
| `localeCookieName` | Cookie del browser usato per mantenere l&#39;impostazione regionale.                | `string`                                                              | Sì          | `generaltranslation.locale`    |

L&#39;impostazione regionale predefinita renderizza sempre il contenuto sorgente, quindi il relativo loader non viene mai chiamato. A differenza di [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa), [`createGT()`](#overview) non accetta una allowlist `locales`; il chiamante e il loader determinano quali chiavi del catalogo possono essere usate. La sua opzione `customMapping` influisce sulla formattazione sensibile all&#39;impostazione regionale e sulla selezione dei plurali senza modificare le chiavi del catalogo o dei cookie.

## Valore restituito [#returns]

**Tipo** [`GTPlugin`](/docs/vue/reference/types/gt-plugin)

Il plugin restituito espone `install()`, `getLocale()`, `loadTranslations()` e `setLocale()`. Installa la stessa istanza di cui usi i metodi imperativi.

Questo plugin non è connesso allo stato globale del browser utilizzato da [`t()`](/docs/vue/reference/functions/t). Un&#39;applicazione client che necessita di traduzioni a livello di modulo deve invece installare esattamente il plugin restituito da [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa).

## Come funziona [#how-it-works]

* **Impostazione regionale iniziale:** un valore `locale` esplicito prevale sul cookie del browser, che a sua volta prevale su `defaultLocale`. Sul server non è presente alcun cookie del browser. Nel browser, un&#39;impostazione regionale esplicita viene scritta anche nel cookie per garantire un&#39;idratazione coerente.
* **Caricamento iniziale:** `app.use(gt)` inizia a caricare l&#39;impostazione regionale di destinazione attiva senza bloccare il montaggio. Il contenuto sorgente viene renderizzato finché non arriva il catalogo; quindi, i consumer che hanno eseguito lookup vengono renderizzati nuovamente.
* **Memorizzazione nella cache:** i cataloghi caricati correttamente vengono memorizzati nella cache per tutta la durata del plugin. Le richieste simultanee per la stessa impostazione regionale condividono un&#39;unica promise. L&#39;impostazione regionale predefinita è rappresentata dal testo sorgente ed è già memorizzata nella cache come catalogo vuoto.
* **Modifiche dell&#39;impostazione regionale:** `setLocale(locale)` carica un catalogo non presente nella cache prima di aggiornare il cookie e i consumer reattivi. Quando le richieste relative all&#39;impostazione regionale si sovrappongono, solo l&#39;ultima modifica l&#39;impostazione regionale attiva; i cataloghi caricati correttamente in precedenza restano nella cache.
* **Modifiche esterne del cookie:** `getLocale()` legge il cookie corrente del browser. I browser non emettono un evento reattivo per le modifiche dei cookie, pertanto modificare direttamente `document.cookie` non pianifica un rendering; chiama il setter del plugin o [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale).

Se un loader restituisce un errore, il plugin registra una diagnostica `gt-vue`, rilancia l&#39;errore e non memorizza l&#39;errore nella cache. Una chiamata a `setLocale()` che restituisce un errore mantiene l&#39;impostazione regionale e il cookie precedenti. Il caricamento in background avviato da `install()` registra l&#39;errore, ma ne intercetta il rifiuto affinché l&#39;app possa continuare a renderizzare il contenuto sorgente.

## Rendering lato server [#server-rendering]

Crea una nuova istanza del plugin per ogni richiesta e passa esplicitamente l&#39;impostazione regionale della richiesta. Attendi `loadTranslations(locale)` o `setLocale(locale)` prima di renderizzare:

```ts title="src/gt-server.ts"
import { createGT } from 'gt-vue';
import loadTranslations from './loadTranslations';

export async function createRequestGT(locale: string) {
  const gt = createGT({
    defaultLocale: 'en',
    locale,
    loadTranslations,
  });

  await gt.loadTranslations(locale);
  return gt;
}
```

Non condividere questo plugin tra le richieste. La cache dell&#39;impostazione regionale e del catalogo è associata a una singola istanza dell&#39;applicazione. Prima dell&#39;idratazione, crea e precarica un plugin client con la stessa impostazione regionale esplicita; l&#39;idratazione con un catalogo non caricato può renderizzare il contenuto sorgente e causare una mancata corrispondenza.

## Esempio [#example]

Usa i metodi restituiti dal plugin al di fuori di un componente quando l&#39;applicazione host gestisce le modifiche dell&#39;impostazione regionale:

```ts
const gt = createGT({ defaultLocale: 'en', loadTranslations });

await gt.loadTranslations('fr'); // precarica senza cambiare l'impostazione regionale
await gt.setLocale('fr'); // usa il catalogo in cache e rirenderizza i consumer

console.log(gt.getLocale()); // "fr"
```

## Sitemap

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