Арабский язык в Intl API представлен основной локалью
ar и её региональными вариантами: ar-SA,
ar-EG, ar-AE, ar-MA и другими.
Различия между ними затрагивают календарные системы, стандарты чисел,
формат валюты и даже правила сортировки строк.
Ключевая особенность арабской локализации — сочетание языковой
специфики и культурных стандартов региона. Поэтому при работе с
Intl важно учитывать не только язык, но и региональный
суффикс.
new Intl.DateTimeFormat("ar-SA").format(new Date());
new Intl.NumberFormat("ar-EG").format(1234567);
Арабский язык является правосторонним (RTL — right-to-left). Это влияет не только на отображение текста, но и на визуальное построение интерфейса при работе с форматированием данных.
Intl API не изменяет направление текста напрямую, однако
результаты форматирования учитывают особенности RTL-скрипта:
Пример форматирования числа в арабской локали:
new Intl.NumberFormat("ar").format(12345.67);
В зависимости от окружения результат может отображаться с арабскими цифрами и специфической группировкой разрядов.
В арабских локалях используются две основные системы записи чисел:
Выбор системы управляется опцией numberingSystem.
new Intl.NumberFormat("ar-EG", {
numberingSystem: "arab"
}).format(123456);
Основные варианты:
latn — латинские цифры (0–9)arab — восточные арабские цифрыarabext — расширенный вариант индик-цифрОсобенность заключается в том, что даже при одинаковом числовом значении визуальное представление может радикально отличаться.
Арабские локали используют специфические правила группировки чисел. Например, разделители тысяч и десятичных дробей могут отличаться:
ar-EG используется запятая как десятичный разделитель
в некоторых контекстахnew Intl.NumberFormat("ar-EG").format(1234567.89);
Дополнительно учитываются:
Intl.NumberFormat в арабских локалях поддерживает
адаптацию валютных символов и их позиции относительно числа.
new Intl.NumberFormat("ar-SA", {
style: "currency",
currency: "SAR"
}).format(1234.5);
Особенности:
В странах Персидского залива часто используется строгая стандартизация валютного отображения, тогда как в Северной Африке формат более гибкий.
Арабские локали активно используют несколько календарных систем:
Intl)islamic)new Intl.DateTimeFormat("ar-SA", {
calendar: "islamic"
}).format(new Date());
Особенности:
В арабских локалях порядок компонентов даты отличается от западного стандарта:
new Intl.DateTimeFormat("ar-EG", {
year: "numeric",
month: "long",
day: "numeric"
}).format(new Date());
Также учитываются:
Intl.RelativeTimeFormat в арабском языке демонстрирует
одну из самых сложных систем склонений.
new Intl.RelativeTimeFormat("ar", {
numeric: "auto"
}).format(-1, "day");
Арабский язык использует множественные формы:
Это делает систему выбора форм значительно сложнее по сравнению с европейскими языками.
Пример единиц:
Intl.PluralRules в арабском языке особенно сложен и
включает шесть категорий:
new Intl.PluralRules("ar").select(3);
Эта система значительно отличается от английского (two-category system) и требует точной логики при построении UI.
Особенности:
two активна для числа 2few обычно охватывает 3–10many применяется для больших чисел в
зависимости от правил регионаАрабская письменность влияет на правила сортировки через
Intl.Collator.
new Intl.Collator("ar").compare("كتاب", "قلم");
Особенности:
Дополнительно:
Intl.DisplayNames позволяет получать локализованные
названия в арабской системе письма.
new Intl.DisplayNames("ar", { type: "language" }).of("en");
Особенности:
В реальных приложениях арабский текст часто содержит:
Intl API не выполняет полного преобразования таких
смешанных строк, но обеспечивает корректное форматирование числовых и
временных компонентов.
Проблемные аспекты:
Арабская локализация тесно связана с культурными стандартами:
Intl API отражает эти различия через комбинацию локали и
параметров форматирования, обеспечивая вариативность представления
данных без изменения исходных значений.