# General Translation Platform: requiresTranslation URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/locales/requires-translation.mdx --- title: requiresTranslation description: Comprueba si hace falta traducir entre dos configuraciones regionales. Referencia de la API de requiresTranslation. --- Determina si hace falta traducir entre una configuración regional de origen y una de destino en una instancia de [GT](/docs/platform/core/reference/gt-class/constructor). General Translation compara los códigos de configuración regional y tiene en cuenta la lista de configuraciones regionales aprobadas para decidir si es necesario traducir el contenido. ## Resumen [#overview] Llama a `requiresTranslation` en una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor) con la configuración regional de origen y la de destino, ambas opcionales. Si se omiten, se usan `sourceLocale` y `targetLocale` de la instancia. ```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 (mismo dialecto) ``` Firma: ```typescript requiresTranslation( sourceLocale?: string, targetLocale?: string, approvedLocales?: string[], customMapping?: CustomMapping ): boolean ``` *Nota: `requiresTranslation` se ejecuta localmente y no requiere una clave de API. Cuando se omiten los argumentos, usa `sourceLocale`, `targetLocale`, `locales` y `customMapping` de la instancia. Para realizar comprobaciones sin una instancia de `GT`, consulta [`requiresTranslation`](/docs/platform/core/reference/utility-functions/locales/requires-translation) como función independiente.* ## Cómo funciona [#how-it-works] El método se evalúa en este orden: 1. **Validez.** Si la configuración regional de origen, la de destino o cualquier configuración regional aprobada no es válida, devuelve `false`. 2. **Mismo dialecto.** Si la configuración regional de origen y la de destino corresponden al mismo dialecto (por ejemplo, `en` y `en-US`), devuelve `false` — no se necesita traducción. 3. **Sin lista de aprobadas.** Si no se aplica ningún `approvedLocales`, devuelve `true` cuando la configuración regional de origen y la de destino son distintas. 4. **Ámbito aprobado.** En caso contrario, devuelve `true` solo si el idioma de la configuración regional de destino coincide con el de al menos una configuración regional aprobada; los distintos dialectos de un mismo idioma se consideran casos que requieren traducción (de modo que un dialecto más cercano puede servir como contenido alternativo). Si el idioma de la configuración regional de destino no está representado entre las configuraciones regionales aprobadas, devuelve `false`. Cuando se omite `sourceLocale` o `targetLocale`, se usan los valores de la instancia. Lanza un `Error` si no se proporciona ninguna configuración regional de origen y la instancia no tiene `sourceLocale`, o si no se proporciona ninguna configuración regional de destino y la instancia no tiene `targetLocale`. ## Parámetros [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | -------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------- | -------- | -------------------- | | [`sourceLocale`](#source-locale) | El código de configuración regional de origen. | `string` | Sí | `this.sourceLocale` | | [`targetLocale`](#target-locale) | El código de configuración regional de destino. | `string` | Sí | `this.targetLocale` | | [`approvedLocales`](#approved-locales) | Lista de configuraciones regionales de destino aprobadas. | `string[]` | Sí | `this.locales` | | [`customMapping`](#custom-mapping) | Mapeo personalizado para resolver la configuración regional. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sí | `this.customMapping` | ### `sourceLocale` [#source-locale] **Tipo** `string` · **Opcional** · **Predeterminado** `this.sourceLocale` El código de configuración regional de origen. Si no se proporciona, se usa el `sourceLocale` de la instancia. ### `targetLocale` [#target-locale] **Tipo** `string` · **Opcional** · **Predeterminado** `this.targetLocale` El código de configuración regional de destino. Si no se proporciona, se usa el `targetLocale` de la instancia. ### `approvedLocales` [#approved-locales] **Tipo** `string[]` · **Opcional** · **Predeterminado** `this.locales` Lista de configuraciones regionales de destino aprobadas. Si no se proporciona, usa la lista `locales` de la instancia. Cuando la configuración regional de destino no está en esta lista, el método devuelve `false`. ### `customMapping` [#custom-mapping] **Tipo** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Opcional** · **Por defecto** `this.customMapping` Mapeo personalizado para resolver la configuración regional. ## Devuelve [#returns] **Tipo** `boolean` `true` si se requiere traducción; `false`, en caso contrario. Lanza un `Error` si no se puede determinar la configuración regional de origen o de destino. ## Ejemplos [#examples] ```typescript const gt = new GT({ sourceLocale: 'en-US', targetLocale: 'es-ES', locales: ['en-US', 'es-ES', 'fr-FR', 'de-DE'], }); // Idiomas diferentes requieren traducción console.log(gt.requiresTranslation('en-US', 'es-ES')); // true console.log(gt.requiresTranslation('en-US', 'fr-FR')); // true // El mismo dialecto exacto no requiere traducción 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 (mismo dialecto) // Distintos dialectos del mismo idioma SÍ requieren traducción // (un dialecto más cercano puede servir como contenido alternativo) console.log(gt.requiresTranslation('en-US', 'en-GB')); // true console.log(gt.requiresTranslation('es-ES', 'es-MX')); // true // El idioma de destino no está representado en las configuraciones regionales aprobadas console.log(gt.requiresTranslation('en-US', 'it-IT')); // false (it-IT no está en las configuraciones regionales aprobadas) ``` ## Notas [#notes] * Devuelve `false` solo para el mismo dialecto exacto, configuraciones regionales no válidas o un destino cuyo idioma no figura entre las configuraciones regionales aprobadas. * Los distintos dialectos de un mismo idioma (por ejemplo, `en-US` y `en-GB`) requieren traducción, por lo que un dialecto más cercano puede servir como contenido alternativo. * Respeta la lista de configuraciones regionales aprobadas: la coincidencia se hace por idioma, no por dialecto exacto.