# General Translation Platform: determineLocale URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/locales/determine-locale.mdx --- title: determineLocale description: Détermine la locale correspondant le mieux dans une liste de locales approuvées. Référence API pour determineLocale. --- Détermine la locale correspondant le mieux dans une liste de locales approuvées, en fonction des préférences de l’utilisateur, sur une instance de [GT](/docs/platform/core/reference/gt-class/constructor). General Translation implémente la négociation de locales afin de trouver la locale la plus appropriée 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 une ou plusieurs locales préférées, classées par ordre de préférence. Elle renvoie la locale approuvée qui correspond le mieux, ou `undefined` si aucune 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' (variante anglaise la plus proche) // 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 la première correspondance exacte parmi les locales approuvées. * **Repli sur la langue.** Lorsqu’une région exacte n’est pas disponible, se rabat sur les correspondances de 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. * **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) | Une locale unique ou un tableau de locales, par ordre de préférence. | `string \| string[]` | Non | — | | [`approvedLocales`](#approved-locales) | Tableau de locales approuvées, par ordre de préférence. | `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` Tableau des locales approuvées, par ordre de préférence. S'il est omis, les `locales` de l'instance sont utilisées. ### `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] * Renvoie la première correspondance exacte parmi les locales approuvées. * Se rabat sur une correspondance de langue lorsque la région exacte n’est pas disponible. * Respecte l’ordre de préférence dans le tableau en entrée. * Renvoie `undefined` lorsqu’aucune correspondance valable n’est trouvée. * Essentiel pour implémenter la négociation des locales dans les applications web.