isSameDialect
Справочник API по методу GT isSameDialect
Обзор
Метод isSameDialect проверяет, представляют ли несколько кодов локалей BCP‑47 один и тот же диалект.
Он сравнивает языковой и региональный компоненты кодов локалей, чтобы определить, относятся ли они к одной и той же языковой разновидности.
Справка
Параметры
Prop
Type
Описание параметров
| Параметр | Описание |
|---|---|
...locales | Произвольное количество кодов локалей (строк) или массивов кодов локалей для сравнения. Все переданные локали должны относиться к одному и тому же диалекту |
Возвращает
boolean — true, если все переданные коды локалей относятся к одному и тому же диалекту; false — в противном случае
Исключения
Исключения не выбрасываются. Неверные коды локалей обрабатываются корректно, и функция возвращает false.
Поведение
Логика сравнения диалектов
Метод использует следующую логику для определения эквивалентности диалектов:
- Нормализация локалей — приведение всех входных кодов локалей к стандартному виду
- Сравнение языковых кодов — все локали должны иметь один и тот же базовый язык
- Учет иерархии регионов — базовый язык считается совпадающим со своими региональными вариантами
- Точное совпадение диалектов — региональные варианты должны совпадать полностью
Правила иерархии
- Базовый язык (
'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
Насколько полезно это руководство?