# General Translation Platform: requiresTranslation
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/locales/requires-translation.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Verifica se la traduzione è necessaria tra due impostazioni regionali. Riferimento API per requiresTranslation.

Stabilisce se è necessaria la traduzione tra un&#39;impostazione regionale sorgente e una di destinazione in un&#39;istanza di [GT](/docs/platform/core/reference/gt-class/constructor). General Translation confronta i codici locale e considera l&#39;elenco delle impostazioni regionali approvate per decidere se il contenuto deve essere tradotto.

## Panoramica [#overview]

Chiama `requiresTranslation` su un&#39;istanza di [`GT`](/docs/platform/core/reference/gt-class/constructor) con le impostazioni regionali sorgente e di destinazione facoltative. Se non specificate, vengono usate `sourceLocale` e `targetLocale` dell&#39;istanza.

```typescript
const gt = new GT({
  sourceLocale: 'en-US',
  targetLocale: 'es-ES',
  locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE'],
});

console.log(gt.requiresTranslation('en-US', 'es-ES')); // true
console.log(gt.requiresTranslation('en', 'en-US')); // false (stesso dialetto)
```

Firma:

```typescript
requiresTranslation(
  sourceLocale?: string,
  targetLocale?: string,
  approvedLocales?: string[],
  customMapping?: CustomMapping
): boolean
```

*Nota: `requiresTranslation` viene eseguito localmente e non richiede una chiave API. Quando gli argomenti vengono omessi, usa `sourceLocale`, `targetLocale`, `locales` e `customMapping` dell&#39;istanza. Per i controlli senza un&#39;istanza `GT`, consulta la versione autonoma di [`requiresTranslation`](/docs/platform/core/reference/utility-functions/locales/requires-translation).*

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

Il metodo viene valutato in questo ordine:

1. **Validità.** Se `source`, `target` o una qualsiasi impostazione regionale approvata non è un&#39;impostazione regionale valida, restituisce `false`.
2. **Stesso dialetto.** Se sorgente e destinazione corrispondono allo stesso dialetto (ad esempio, `en` e `en-US`), restituisce `false` — non è necessaria alcuna traduzione.
3. **Nessun elenco approvato.** Se non si applica alcun `approvedLocales`, restituisce `true` quando sorgente e destinazione sono diverse.
4. **Ambito approvato.** Altrimenti, restituisce `true` solo se la lingua della destinazione corrisponde a quella di almeno un&#39;impostazione regionale approvata; dialetti diversi della stessa lingua sono considerati come casi che richiedono traduzione, quindi un dialetto più vicino può fungere da fallback. Se la lingua della destinazione non è rappresentata nelle impostazioni regionali approvate, restituisce `false`.

Quando `sourceLocale` o `targetLocale` vengono omessi, vengono usati i valori dell&#39;istanza. Genera un `Error` se non viene fornita alcuna impostazione regionale sorgente e l&#39;istanza non ha `sourceLocale`, oppure se non viene fornita alcuna impostazione regionale di destinazione e l&#39;istanza non ha `targetLocale`.

## Parametri [#parameters]

| Parametro                              | Descrizione                                                               | Tipo                                                                  | Facoltativo | Predefinito          |
| -------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------- | -------------------- |
| [`sourceLocale`](#source-locale)       | Il codice locale sorgente.                                                | `string`                                                              | Sì          | `this.sourceLocale`  |
| [`targetLocale`](#target-locale)       | Il codice locale di destinazione.                                         | `string`                                                              | Sì          | `this.targetLocale`  |
| [`approvedLocales`](#approved-locales) | Array delle impostazioni regionali di destinazione approvate.             | `string[]`                                                            | Sì          | `this.locales`       |
| [`customMapping`](#custom-mapping)     | Mappatura personalizzata per la risoluzione delle impostazioni regionali. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sì          | `this.customMapping` |

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

**Tipo** `string` · **Facoltativo** · **Predefinito** `this.sourceLocale`

Il codice locale sorgente. Se non viene fornito, usa `sourceLocale` dell’istanza.

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

**Tipo** `string` · **Facoltativo** · **Predefinito** `this.targetLocale`

Il codice locale di destinazione. Se non viene specificato, viene usato il `targetLocale` dell&#39;istanza.

### `approvedLocales` [#approved-locales]

**Tipo** `string[]` · **Facoltativo** · **Predefinito** `this.locales`

Array delle impostazioni regionali di destinazione approvate. Se non viene fornito, viene usato l&#39;array `locales` dell&#39;istanza. Se l&#39;impostazione regionale di destinazione non è presente in questo elenco, il metodo restituisce `false`.

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

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

Mappatura personalizzata per risolvere l&#39;impostazione regionale.

## Restituisce [#returns]

**Tipo** `boolean`

`true` se la traduzione è necessaria, `false` altrimenti. Genera un `Error` se non è possibile determinare l&#39;impostazione regionale sorgente o quella di destinazione.

## Esempi [#examples]

```typescript
const gt = new GT({
  sourceLocale: 'en-US',
  targetLocale: 'es-ES',
  locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE'],
});

// Lingue diverse richiedono la traduzione
console.log(gt.requiresTranslation('en-US', 'es-ES')); // true
console.log(gt.requiresTranslation('en-US', 'fr-FR')); // true

// Lo stesso dialetto identico non richiede la traduzione
console.log(gt.requiresTranslation('en-US', 'en-US')); // false
console.log(gt.requiresTranslation('es-ES', 'es-ES')); // false
console.log(gt.requiresTranslation('en', 'en-US')); // false (stesso dialetto)

// Dialetti diversi della stessa lingua richiedono la traduzione
// (un dialetto più vicino può fungere da fallback)
console.log(gt.requiresTranslation('en-US', 'en-GB')); // true
console.log(gt.requiresTranslation('es-ES', 'es-MX')); // true

// Lingua di destinazione non presente nelle impostazioni regionali approvate
console.log(gt.requiresTranslation('en-US', 'it-IT')); // false (it-IT non è nelle impostazioni regionali approvate)
```

## Note [#notes]

* Restituisce `false` solo per lo stesso identico dialetto, per le locales non valide o per una destinazione la cui lingua non è presente tra le impostazioni regionali approvate.
* Dialetti diversi della stessa lingua (ad esempio, `en-US` e `en-GB`) richiedono la traduzione, quindi un dialetto più vicino può fungere da fallback.
* Rispetta l&#39;elenco delle impostazioni regionali approvate: la corrispondenza avviene in base alla lingua, non al dialetto esatto.

## Sitemap

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