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