# General Translation Platform: Costruttore
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class/constructor.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Inizializza un'istanza di GT con chiavi API, impostazioni del progetto, impostazioni regionali predefinite e mappature delle impostazioni regionali. Riferimento API per il Costruttore.

Crea una nuova istanza di `GT`, il punto di ingresso per tutte le funzionalità di traduzione, formattazione e gestione delle impostazioni regionali di General Translation. Chiamala una volta e riutilizza l&#39;istanza in tutta l&#39;applicazione.

## Panoramica [#overview]

Crea un&#39;istanza `GT` con un oggetto di configurazione facoltativo. Le credenziali e le impostazioni regionali definite qui diventano i valori predefiniti per ogni chiamata di metodo su quell&#39;istanza.

```typescript
import { GT } from 'generaltranslation';

const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id',
  sourceLocale: 'en',
  targetLocale: 'es',
});
```

Firma:

```typescript
new GT(params?: GTConstructorParams): GT
```

*Nota: puoi omettere `apiKey`, `devApiKey` e `projectId` — il costruttore li recupera dalle variabili d&#39;ambiente `GT_API_KEY`, `GT_DEV_API_KEY` e `GT_PROJECT_ID` quando sono impostate.*

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

* **Fallback dalle variabili d&#39;ambiente.** Quando `apiKey`, `devApiKey` o `projectId` non vengono passati, il costruttore li cerca nelle variabili d&#39;ambiente `GT_API_KEY`, `GT_DEV_API_KEY` e `GT_PROJECT_ID`.
* **Standardizzazione dell&#39;impostazione regionale, poi validazione.** Ogni codice locale fornito (`sourceLocale`, `targetLocale` e ogni voce in `locales`) viene prima standardizzato nella sua forma canonica BCP 47, quindi validato. I **valori memorizzati sono le forme standardizzate/normalizzate**, non le stringhe originali che hai passato. Il costruttore genera un errore per i codici non validi.
* **La mappatura personalizzata si applica a `sourceLocale`/`targetLocale`, ma non a `locales`.** `sourceLocale` e `targetLocale` vengono validati **con** [`customMapping`](/docs/platform/core/reference/types/custom-mapping), quindi per essi viene accettato un alias personalizzato. Ogni voce di `locales` viene validata **senza** la mappatura, quindi un alias `customMapping` viene rifiutato se compare all&#39;interno di `locales`.
* **Precedenza della mappatura personalizzata.** Un [`customMapping`](/docs/platform/core/reference/types/custom-mapping) ti consente di definire alias di impostazioni regionali, ignorare la validazione standard BCP 47 e sovrascrivere le proprietà standard dell&#39;impostazione regionale (nome, emoji e così via). Le mappature personalizzate hanno la precedenza sui dati standard BCP 47.

## Parametri [#parameters]

Il costruttore accetta un singolo oggetto facoltativo [`GTConstructorParams`](/docs/platform/core/reference/types/gt-constructor-params) (il valore predefinito è &#96;{}&#96;&#96;) con le seguenti proprietà:

| Parametro                          | Descrizione                                                           | Tipo                                                                  | Facoltativo | Predefinito                    |
| ---------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------- | ------------------------------ |
| [`apiKey`](#api-key)               | Chiave API di produzione per il servizio di traduzione.               | `stringa`                                                             | Sì          | variabile env `GT_API_KEY`     |
| [`devApiKey`](#dev-api-key)        | Chiave API di sviluppo, che ha la precedenza in ambiente di sviluppo. | `stringa`                                                             | Sì          | variabile env `GT_DEV_API_KEY` |
| [`projectId`](#project-id)         | Identificatore del progetto.                                          | `stringa`                                                             | Sì          | variabile env `GT_PROJECT_ID`  |
| [`sourceLocale`](#source-locale)   | Impostazione regionale sorgente predefinita per le traduzioni.        | `stringa`                                                             | Sì          | —                              |
| [`targetLocale`](#target-locale)   | Impostazione regionale di destinazione predefinita per le traduzioni. | `stringa`                                                             | Sì          | —                              |
| [`locales`](#locales)              | Codici locale supportati.                                             | `stringa[]`                                                           | Sì          | —                              |
| [`baseUrl`](#base-url)             | URL base dell&#39;API.                                                | `stringa`                                                             | Sì          | `https://api.gtx.dev`          |
| [`customMapping`](#custom-mapping) | mapping personalizzati dei codici locale e override delle proprietà.  | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sì          | —                              |

### `apiKey` [#api-key]

**Tipo** `string` · **Facoltativo** · **Predefinito** `GT_API_KEY` env

Chiave API di produzione per il servizio di traduzione. Se non viene fornita, viene letta dalla variabile d&#39;ambiente `GT_API_KEY`. Obbligatoria per qualsiasi operazione API.

### `devApiKey` [#dev-api-key]

**Tipo** `stringa` · **Facoltativo** · **Predefinito** `GT_DEV_API_KEY` env

Chiave API di sviluppo. In sviluppo ha la precedenza su `apiKey`. Se non viene fornita, viene letta dalla variabile d&#39;ambiente `GT_DEV_API_KEY`.

### `projectId` [#project-id]

**tipo** `stringa` · **Facoltativo** · **Predefinito** variabile d&#39;ambiente `GT_PROJECT_ID`

Identificatore del progetto. Se non viene fornito, viene letto dalla variabile d&#39;ambiente `GT_PROJECT_ID`. Obbligatorio per qualsiasi operazione API.

### `sourceLocale` [#source-locale]

**Tipo** `string` · **Facoltativo**

Impostazione regionale sorgente predefinita per le traduzioni, ad esempio `en`. Viene standardizzata nella sua forma canonica e memorizzata in tale forma normalizzata, quindi validata **con** eventuali `customMapping` (quindi qui è accettato un alias personalizzato).

### `targetLocale` [#target-locale]

**Tipo** `string` · **Facoltativo**

Impostazione regionale di destinazione predefinita per le traduzioni, ad esempio `es`. Viene standardizzata nella forma canonica e memorizzata in tale forma normalizzata, quindi convalidata **con** eventuali `customMapping` (quindi qui viene accettato un alias personalizzato).

### `locales` [#locales]

**Tipo** `string[]` · **Facoltativo**

Array di codici locale supportati. Ogni codice viene standardizzato nella sua forma canonica e memorizzato in tale forma normalizzata, quindi validato **senza** il `customMapping` — perciò un alias di `customMapping` valido per `sourceLocale`/`targetLocale` viene rifiutato se compare all&#39;interno di `locales`.

### `baseUrl` [#base-url]

**Tipo** `stringa` · **Facoltativo** · **Predefinito** `https://api.gtx.dev`

URL base dell'API. Sovrascrivilo solo se la tua distribuzione usa un endpoint diverso.

### `customMapping` [#custom-mapping]

**Tipo** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Facoltativo**

Mapping personalizzati dei codici locale e override delle proprietà. Usalo per (1) definire alias per i codici locale, (2) bypassare la convalida standard BCP 47 e (3) sovrascrivere le proprietà standard BCP 47 dell&#39;impostazione regionale, come nome ed emoji.

## Restituisce [#returns]

**Tipo** `GT`

Una nuova istanza di `GT` con tutti i metodi disponibili per la traduzione, la formattazione e l&#39;impostazione regionale.

## Esempi [#examples]

```typescript
import { GT } from 'generaltranslation';

// Setup minimale — legge le credenziali dalle variabili d'ambiente
const gt = new GT();
```

```typescript
// Con credenziali API
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'fr',
});
```

```typescript
// Con un alias di impostazione regionale personalizzato: usa `cn` come alias per `zh`.
// La General Translation API non supporta `cn`, quindi è necessaria una mappatura personalizzata.
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: {
    cn: { code: 'zh' },
  },
});
```

```typescript
// Le mappature personalizzate possono anche sovrascrivere nomi, emoji e altre proprietà dell'impostazione regionale
const gt = new GT({
  projectId: 'my-project-id',
  apiKey: 'my-api-key',
  targetLocale: 'es',
  customMapping: { 'en-US': { name: 'Mandarin', emoji: '🇫🇷' } },
});
```

## Note [#notes]

* Tutti i parametri sono facoltativi, ma le operazioni dell&#39;API richiedono `apiKey` (o `devApiKey`) e `projectId`.
* Il costruttore standardizza ogni codice locale nella sua forma canonica (il valore memorizzato è quello normalizzato), quindi lo valida e genera un errore se il codice non è valido.
* `sourceLocale` e `targetLocale` vengono validati con `customMapping`; ogni voce di `locales` viene validata senza di esso.
* Le mappature personalizzate hanno la precedenza sulla validazione BCP 47 standard e sulle relative proprietà.

*Nota: la classe `GT` estende `GTRuntime`. Nella versione 9.0, gli helper per traduzione, formattazione e impostazione regionale si trovano in `GTRuntime`, mentre i metodi relativi al workflow dei file (uploads, enqueue, downloads e così via) si trovano in `GT`. Sia il costruttore sia [`setConfig`](/docs/platform/core/reference/gt-class/set-config) sono definiti in `GTRuntime`, quindi l&#39;utilizzo non cambia grazie all&#39;ereditarietà.*

## Sitemap

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