# generaltranslation: General Translation Core SDK: isSameDialect URL: https://generaltranslation.com/ru/docs/core/class/methods/locales/is-same-dialect.mdx --- title: isSameDialect description: Справка по API для метода GT isSameDialect --- ## Обзор Метод `isSameDialect` проверяет, обозначают ли несколько кодов локали BCP-47 один и тот же диалект. Он сравнивает языковые и региональные компоненты кодов локалей, чтобы определить, относятся ли они к одной и той же языковой разновидности. *** ## Справочник ### Параметры ### Описание параметров | Параметр | Описание | | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | | `...locales` | Переменное число кодов локали (строк) или массивов кодов локали для сравнения. Все указанные локали должны обозначать один и тот же диалект | ### Возвращает `boolean` — `true`, если все указанные коды локали относятся к одному и тому же диалекту; в противном случае — `false` ### Исключения Исключения не выбрасываются. Недопустимые коды локали обрабатываются корректно, и метод возвращает `false`. *** ## Принцип работы ### Логика сравнения диалектов Метод использует следующую логику для определения равенства диалектов: 1. **Нормализация локалей** - Приводит все входные коды локали к стандартному виду 2. **Сравнение кодов языков** - Все локали должны иметь один и тот же основной язык 3. **Обработка иерархии регионов** - Основной язык соответствует своим региональным вариантам 4. **Точное сопоставление диалектов** - Региональные варианты должны совпадать в точности ### Правила иерархии * Базовый язык (`'en'`) соответствует любому региональному варианту (`'en-US'`, `'en-GB'`) * Региональные варианты совпадают только при полном совпадении (`'en-US'` ≠ `'en-GB'`) * Варианты системы письма учитываются при сравнении, если они указаны * Разные языки никогда не совпадают (`'en'` ≠ `'es'`) ### Гибкость входных параметров Метод принимает: * Несколько строковых параметров: `isSameDialect('en-US', 'en-GB')` * Массивы строк: `isSameDialect(['en-US', 'en-GB'])` * Смешанный формат: `isSameDialect('en-US', ['en-GB', 'en-CA'])` * Одну локаль: `isSameDialect('en-US')` (всегда возвращает `true`) *** ## Примеры ### Сравнение основных диалектов ```typescript const gt = new GT({ sourceLocale: 'en-US', targetLocale: 'es-ES' }); // Одинаковые диалекты console.log(gt.isSameDialect('en-US', 'en-US')); // true console.log(gt.isSameDialect('zh-CN', 'zh-CN')); // true // Разные диалекты одного языка console.log(gt.isSameDialect('en-US', 'en-GB')); // false console.log(gt.isSameDialect('es-ES', 'es-MX')); // false console.log(gt.isSameDialect('pt-PT', 'pt-BR')); // false // Базовый язык с региональными вариантами console.log(gt.isSameDialect('en', 'en-US')); // true console.log(gt.isSameDialect('es', 'es-ES')); // true console.log(gt.isSameDialect('zh', 'zh-CN')); // true // Разные языки console.log(gt.isSameDialect('en-US', 'es-ES')); // false console.log(gt.isSameDialect('fr-FR', 'de-DE')); // false ``` *** ## Примечания * Использует стандартизированные коды локали для более точного сравнения * Принимает входные данные в разных форматах (строки, массивы, смешанные) ## Что дальше * Сравните языки с помощью [`isSameLanguage`](/docs/core/class/methods/locales/is-same-language) * Проверьте иерархию локалей с помощью [`isSupersetLocale`](/docs/core/class/methods/locales/is-superset-locale) * Проверьте корректность локалей с помощью [`isValidLocale`](/docs/core/class/methods/locales/is-valid-locale)