# General Translation Platform: determineLocale
URL: https://generaltranslation.com/es/docs/platform/core/reference/utility-functions/locales/determine-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Encuentra la configuración regional con la mejor coincidencia sin una instancia de GT. Referencia de la API de determineLocale.

[`determineLocale`](/docs/platform/core/reference/gt-class-methods/locales/determine-locale) es una función utilitaria independiente de la biblioteca Core de General Translation que encuentra la configuración regional con la mejor coincidencia dentro de una lista de configuraciones regionales aprobadas, según las preferencias del usuario. Hace posible la negociación de contenido sin necesidad de una instancia de GT.

## Descripción general [#overview]

Importa `determineLocale` directamente desde `generaltranslation` y llámalo con la configuración regional preferida del usuario (o sus configuraciones regionales preferidas) y la lista de configuraciones regionales aprobadas. No requiere una clave API ni una instancia de [GT](/docs/platform/core/reference/gt-class/constructor). Para el equivalente basado en instancia, que usa de forma predeterminada las configuraciones regionales configuradas en la instancia para `approvedLocales`, utiliza en su lugar el método [`determineLocale`](/docs/platform/core/reference/gt-class-methods/locales/determine-locale) de una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor).

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

const approvedLocales = ['en-US', 'es-ES', 'fr-FR', 'de-DE'];

const best = determineLocale(['fr-CA', 'es-MX'], approvedLocales);
// Devuelve: "fr-FR"
```

Firma:

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

## Cómo funciona [#how-it-works]

* **Orden de preferencia.** `locales` puede ser una sola configuración regional o una lista ordenada por preferencia. Cada opción se compara, por turnos, con la lista de configuraciones regionales aprobadas.
* **Coincidencia.** Comprueba la configuración regional exacta y, después, los códigos derivados de idioma-región, idioma-escritura y los códigos minimizados. Si ninguno coincide, comprueba la región y la escritura probables del idioma. Por ejemplo, `fr-CA` puede coincidir con `fr-FR`, mientras que `en-AU` no coincide con una lista aprobada que solo contenga `en-GB`.
* **Sin coincidencia.** Devuelve `undefined` cuando ninguna preferencia coincide con las configuraciones regionales aprobadas.
* **Mapeo personalizado.** Cualquier [`customMapping`](/docs/platform/core/reference/types/custom-mapping) se aplica al validar y estandarizar las configuraciones regionales.

## Parámetros [#parameters]

| Parámetro                              | Descripción                                                                                         | Tipo                                                                  | Opcional | Predeterminado |
| -------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -------- | -------------- |
| [`locales`](#locales)                  | Una sola configuración regional o una lista de configuraciones regionales ordenada por preferencia. | `string \| string[]`                                                  | No       | —              |
| [`approvedLocales`](#approved-locales) | Configuraciones regionales aptas para la coincidencia.                                              | `string[]`                                                            | Sí       | `[]`           |
| [`customMapping`](#custom-mapping)     | Mapeo personalizado de configuraciones regionales que se aplicará durante la coincidencia.          | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sí       | —              |

### `locales` [#locales]

**Tipo** `string | string[]` · **Obligatorio**

Una sola configuración regional o una lista de configuraciones regionales, ordenadas por preferencia (la preferida primero).

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

**Tipo** `string[]` · **Opcional** · **Predeterminado** `[]`

La lista de configuraciones regionales aptas para la coincidencia. El orden del array no determina qué configuración regional del mismo idioma prevalece; la coincidencia se basa en la región y la escritura derivadas de cada preferencia del usuario.

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

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

Un mapeo personalizado aplicado al validar y estandarizar las configuraciones regionales antes de realizar la coincidencia.

## Devuelve [#returns]

**Tipo** `string | undefined`

La configuración regional que mejor coincide con `approvedLocales`, o `undefined` si no se encuentra ninguna coincidencia.

## Ejemplos [#examples]

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

const approvedLocales = ['en-US', 'es-ES', 'fr-FR', 'de-DE'];

// Coincidencia exacta
console.log(determineLocale('en-US', approvedLocales)); // 'en-US'

// Idioma de respaldo (en-GB → en-US)
console.log(determineLocale('en-GB', approvedLocales)); // 'en-US'

// Múltiples preferencias (fr-CA coincide con fr-FR antes de considerar es-MX)
console.log(determineLocale(['fr-CA', 'es-MX'], approvedLocales)); // 'fr-FR'

// Sin coincidencia
console.log(determineLocale('it-IT', approvedLocales)); // undefined
```

## Notas [#notes]

* Coincide con códigos de configuración regional exactos y derivados, incluido el contenido alternativo de región probable y de script probable.
* Respeta el orden de preferencia de la lista de entrada.
* No utiliza el orden de la lista de configuraciones regionales aprobadas como criterio de desempate.
* Devuelve `undefined` cuando no encuentra ninguna coincidencia.
* Esencial para la negociación de la configuración regional en aplicaciones web.

## Sitemap

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