Локаль тайского языка в формате th-TH относится к числу культурно специфичных локалей, в которых стандартные европейские представления о датах, числах и текстовой обработке существенно изменяются. В JavaScript Intl API она демонстрирует ряд особенностей, связанных с национальной письменностью, календарными системами и форматированием числовых данных.
Одной из ключевых особенностей локали th-TH является использование тайских цифровых символов вместо арабских цифр.
При включённом форматировании:
new Intl.NumberFormat('th-TH').format(1234567);
результат может быть представлен как:
๑,๒๓๔,๕๖๗
В основе лежит соответствие:
Это поведение зависит от реализации окружения и параметров
useGrouping, но концептуально Intl учитывает национальную
систему записи чисел.
При необходимости сохранения арабских цифр используется явное указание:
new Intl.NumberFormat('th-TH-u-nu-latn').format(1234567);
где nu-latn отключает локальную цифровую систему.
Тайская локаль тесно связана с буддийской эрами (Buddhist Era, BE), которая опережает григорианский календарь на 543 года.
new Intl.DateTimeFormat('th-TH', {
year: 'numeric',
month: 'long',
day: 'numeric'
}).format(new Date(2026, 0, 1));
Типичный результат:
1 มกราคม 2569
Здесь:
Для переключения на григорианский календарь применяется календарный параметр Unicode extension:
new Intl.DateTimeFormat('th-TH-u-ca-gregory').format(new Date());
Особенность реализации заключается в том, что даже при одинаковых
форматах (long, short, full)
смещается только календарная база, а структура вывода сохраняется.
Тайский формат дат отличается от западного порядка:
Пример:
new Intl.DateTimeFormat('th-TH', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
}).format(new Date(2026, 4, 27));
Результат может иметь форму:
วันพุธที่ 27 พฤษภาคม 2569
Характерные особенности:
Локаль th-TH использует валюту THB (тайский бат) как стандартную единицу.
new Intl.NumberFormat('th-TH', {
style: 'currency',
currency: 'THB'
}).format(1234.56);
Возможный результат:
฿1,234.56
Особенности:
В Unicode-расширениях можно дополнительно контролировать форматирование:
new Intl.NumberFormat('th-TH-u-nu-latn').format(1234.56);
Сравнение строк в тайской локали учитывает особенности письменности, включая тональные знаки и диакритические символы.
new Intl.Collator('th-TH').compare('กา', 'ก้า');
Особенности поведения:
Пример сортировки массива:
['ก', 'ข', 'ค', 'กา', 'ก้า']
.sort(new Intl.Collator('th-TH').compare);
В результате порядок будет соответствовать правилам тайской орфографии, а не Unicode-коду.
Тайская письменность не использует пробелы между словами в традиционном виде, что делает стандартное разбиение текста сложной задачей. В современных реализациях используется:
new Intl.Segmenter('th-TH', { granularity: 'word' });
Особенности:
Пример:
const segmenter = new Intl.Segmenter('th-TH', { granularity: 'word' });
[...segmenter.segment('ประเทศไทยเป็นประเทศใหญ่')]
Результат включает логические сегменты, а не просто символы.
При форматировании времени для th-TH часто используется азиатский региональный контекст:
new Intl.DateTimeFormat('th-TH', {
hour: '2-digit',
minute: '2-digit',
timeZone: 'Asia/Bangkok'
}).format(new Date());
Особенности:
Intl API позволяет тонко управлять тайской локалью через Unicode extension keys:
nu-latn — арабские цифрыca-gregory — григорианский календарьkb — управление коллатором (в некоторых
реализациях)Пример комбинирования:
new Intl.DateTimeFormat('th-TH-u-ca-gregory-nu-latn').format(new Date());
Такой подход позволяет отключать культурные дефолты и возвращать «нейтральный» формат.
При работе с тайской локалью косвенно проявляются особенности языковой структуры:
Хотя Intl API напрямую не форматирует списки как отдельный объект в базовом наборе, поведение связанных локалей влияет на визуальное восприятие при генерации текста через другие международные стандарты.
Поддержка th-TH зависит от ICU-библиотек:
Ключевые различия между окружениями:
При отсутствии явных опций Intl использует:
Явное управление через options или Unicode extension является единственным способом стабилизировать поведение между платформами.