# General Translation Platform: determineLocale
URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/locales/determine-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Détermine le paramètre régional correspondant le mieux dans une liste de paramètres régionaux approuvés. Référence API pour determineLocale.

General Translation implémente la négociation de paramètres régionaux afin de trouver le paramètre régional le plus approprié lorsqu’aucune correspondance exacte n’est disponible.

## Vue d’ensemble [#overview]

Appelez `determineLocale` pour une instance de [`GT`](/docs/platform/core/reference/gt-class/constructor) avec un ou plusieurs paramètres régionaux préférés, classés par ordre de préférence. Elle renvoie le paramètre régional approuvé qui correspond le mieux, ou `undefined` si aucun ne correspond.

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

// Correspondance exacte
console.log(gt.determineLocale('en-US')); // 'en-US'

// Repli linguistique
console.log(gt.determineLocale('en-GB')); // 'en-US' (repli sur la région probable)

// Préférences multiples (l'ordre de préférence prime)
console.log(gt.determineLocale(['fr-CA', 'es-MX', 'en-US'])); // 'fr-FR' (le plus proche de la première préférence)

// Aucune correspondance
console.log(gt.determineLocale('it-IT')); // undefined
```

Signature :

```typescript
determineLocale(
  locales: string | string[],
  approvedLocales?: string[],
  customMapping?: CustomMapping
): string | undefined
```

*Remarque : `determineLocale` s’exécute localement et ne nécessite pas de clé d’API. Lorsque `approvedLocales` et `customMapping` sont omis, il utilise les `locales` et le `customMapping` de l’instance. Pour effectuer la correspondance sans instance `GT`, consultez la fonction autonome [`determineLocale`](/docs/platform/core/reference/utility-functions/locales/determine-locale).*

## Fonctionnement [#how-it-works]

* **Correspondance exacte d’abord.** Renvoie une correspondance exacte parmi les paramètres régionaux approuvés pour la préférence utilisateur en cours.
* **Correspondance par paramètres régionaux dérivés.** Vérifie les formes langue-région, langue-script et minimisées avant d’utiliser la région et le script probables de la langue.
* **Ordre de préférence.** Respecte l’ordre du tableau d’entrée : une correspondance de langue plus prioritaire est donc choisie avant une correspondance exacte moins prioritaire.
* **Paramètres régionaux approuvés.** Traite `approvedLocales` comme l’ensemble des résultats éligibles. L’ordre de son tableau ne départage pas les candidats d’une même langue.
* **Aucune correspondance.** Renvoie `undefined` lorsqu’aucune correspondance appropriée n’est trouvée.

## Paramètres [#parameters]

| Paramètre                              | Description                                                               | Type                                                                  | Facultatif | Par défaut           |
| -------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------- | ---------- | -------------------- |
| [`locales`](#locales)                  | Un paramètre régional unique ou un tableau de paramètres régionaux, par ordre de préférence.      | `string \| string[]`                                                  | Non        | —                    |
| [`approvedLocales`](#approved-locales) | Paramètres régionaux éligibles à la correspondance.                                    | `string[]`                                                            | Oui        | `this.locales`       |
| [`customMapping`](#custom-mapping)     | Correspondance personnalisée des paramètres régionaux pour la résolution. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Oui        | `this.customMapping` |

### `locales` [#locales]

**Type** `string | string[]` · **Obligatoire**

Une seule locale ou une liste de locales par ordre de préférence (par exemple, une liste `Accept-Language` du navigateur).

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

**Type** `string[]` · **Facultatif** · **Par défaut** `this.locales`

Paramètres régionaux éligibles à la correspondance. S&#39;il est omis, les `locales` de l&#39;instance sont utilisées. L&#39;ordre du tableau ne détermine pas quel paramètre régional de même langue l&#39;emporte.

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

**Type** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Facultatif** · **Par défaut** `this.customMapping`

Correspondance personnalisée des paramètres régionaux utilisée lors de la résolution. Si elle est omise, le `customMapping` de l’instance est utilisé.

## Renvoie [#returns]

**Type** `string | undefined`

Le paramètre régional qui correspond le mieux, ou `undefined` si aucune correspondance n’a été trouvée.

## Exemples [#examples]

```typescript
// Négociation du paramètre régional de l'utilisateur
const gt = new GT({
  sourceLocale: 'en-US',
  locales: ['en-US', 'en-GB', 'es-ES', 'fr-FR'],
});

// Simuler un header Accept-Language du navigateur
const userPreferences = ['fr-CA', 'en-GB', 'en'];
const bestMatch = gt.determineLocale(userPreferences);
console.log(bestMatch); // 'fr-FR' selon l'ordre de préférence
```

## Remarques [#notes]

* Vérifie les codes de langue exacts et dérivés pour chaque préférence utilisateur.
* Utilise des mécanismes de secours fondés sur la région probable et le script probable, et non une correspondance arbitraire entre dialectes d’une même langue.
* Respecte l’ordre de préférence dans le tableau en entrée.
* N’utilise pas l’ordre du tableau des paramètres régionaux approuvés comme critère de départage.
* Renvoie `undefined` lorsqu’aucune correspondance valable n’est trouvée.
* Essentiel pour implémenter la négociation des paramètres régionaux dans les applications web.

## Sitemap

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