GT ClassMethodsLocales

isSameDialect

Справочник API по методу GT isSameDialect

Обзор

Метод isSameDialect проверяет, представляют ли несколько кодов локалей BCP‑47 один и тот же диалект. Он сравнивает языковой и региональный компоненты кодов локалей, чтобы определить, относятся ли они к одной и той же языковой разновидности.


Справка

Параметры

Prop

Type

Описание параметров

ПараметрОписание
...localesПроизвольное количество кодов локалей (строк) или массивов кодов локалей для сравнения. Все переданные локали должны относиться к одному и тому же диалекту

Возвращает

booleantrue, если все переданные коды локалей относятся к одному и тому же диалекту; 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)

Примеры

Базовое сравнение диалектов

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
  • Проверьте иерархию локалей с помощью isSupersetLocale
  • Проверьте валидность локалей с помощью isValidLocale

Насколько полезно это руководство?

isSameDialect