# General Translation Platform: requiresTranslation URL: https://generaltranslation.com/ru/docs/platform/core/reference/utility-functions/locales/requires-translation.mdx --- title: requiresTranslation description: Проверяет, нужен ли перевод между двумя локалями без экземпляра GT. Справочник по API для requiresTranslation. --- [`requiresTranslation`](/docs/platform/core/reference/gt-class-methods/locales/requires-translation) — это автономная служебная функция из основной библиотеки General Translation, которая определяет, нужен ли перевод между исходной и целевой локалями. ## Обзор [#overview] Импортируйте `requiresTranslation` напрямую из `generaltranslation` и вызовите её, передав исходную и целевую локали. Для этого не нужен ни API-ключ, ни экземпляр [GT](/docs/platform/core/reference/gt-class/constructor). Если вам нужен эквивалентный вариант через экземпляр, используйте метод [`requiresTranslation`](/docs/platform/core/reference/gt-class-methods/locales/requires-translation) экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor). ```typescript import { requiresTranslation } from 'generaltranslation'; console.log(requiresTranslation('en-US', 'es-ES')); // true console.log(requiresTranslation('en-US', 'en')); // false (тот же диалект) ``` Сигнатура: ```typescript requiresTranslation( sourceLocale: string, targetLocale: string, approvedLocales?: string[], customMapping?: CustomMapping ): boolean ``` ## Как это работает [#how-it-works] Определение необходимости перевода выполняется по следующим правилам: * Если целевая локаль не указана, возвращается `false` (перевод не требуется). * Если исходная и целевая локали совпадают, возвращается `false`. * Если указан `approvedLocales` и целевая локаль не входит в этот список, возвращается `false`. * В противном случае возвращается `true`. Локали сравниваются с учетом диалектов: перевод пропускается только для локалей, которые приводятся к одному и тому же диалекту. `en-US` → `en` (один и тот же диалект) не требует перевода, а `en-US` → `en-GB` — требует, поскольку их регионы различаются. При сравнении также применяется любое [`customMapping`](/docs/platform/core/reference/types/custom-mapping). ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | -------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------- | -------------- | ------------ | | [`sourceLocale`](#source-locale) | Локаль исходного контента. | `string` | Нет | — | | [`targetLocale`](#target-locale) | Локаль, в которую нужно перевести контент. | `string` | Нет | — | | [`approvedLocales`](#approved-locales) | Необязательный список разрешённых целевых локалей. | `string[]` | Да | — | | [`customMapping`](#custom-mapping) | Пользовательское сопоставление, применяемое при сравнении. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да | — | ### `sourceLocale` [#source-locale] **Тип** `string` · **Обязательно** Код локали BCP-47 для исходного контента. ### `targetLocale` [#target-locale] **Тип** `string` · **Обязательно** Код локали BCP-47, на которую нужно перевести контент. ### `approvedLocales` [#approved-locales] **Тип** `string[]` · **Необязательно** Необязательный список разрешённых целевых локалей. Если он указан, для целевой локали, которой нет в списке, возвращается `false`. ### `customMapping` [#custom-mapping] **Тип** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Необязательно** Пользовательское сопоставление, используемое при сравнении локалей. ## Возвращает [#returns] **Тип** `boolean` `true`, если требуется перевод, иначе `false`. ## Примеры [#examples] ```typescript import { requiresTranslation } from 'generaltranslation'; // Разные языки требуют перевода console.log(requiresTranslation('en-US', 'es-ES')); // true console.log(requiresTranslation('en-US', 'fr-FR')); // true // Один и тот же диалект не требует перевода console.log(requiresTranslation('en-US', 'en-US')); // false console.log(requiresTranslation('en-US', 'en')); // false (тот же диалект) // Разные диалекты одного языка всё равно требуют перевода console.log(requiresTranslation('en-US', 'en-GB')); // true (регионы отличаются) // С фильтром разрешённых локалей const approved = ['en-US', 'es-ES', 'fr-FR']; console.log(requiresTranslation('en-US', 'it-IT', approved)); // false (не разрешена) console.log(requiresTranslation('en-US', 'es-ES', approved)); // true (разрешена и отличается) ``` ## Заметки [#notes] * Учитывает ограничения на разрешённые локали. * Возвращает `false`, если целевая локаль не входит в список разрешённых. * Учитывает пользовательские сопоставления локалей.