Utility FunctionsLocales

getLocaleDirection

Справка по API функции getLocaleDirection

Обзор

Функция getLocaleDirection определяет направление текста (слева направо или справа налево) для заданной локали без необходимости создавать экземпляр класса GT. Она использует API Intl.Locale для точного определения направления для любого корректного кода локали по стандарту BCP‑47.

Эту функцию чаще всего используют для установки атрибута dir HTML‑элемента в зависимости от локали.

import { getLocaleDirection } from 'generaltranslation';

const direction = getLocaleDirection('ar-SA');
console.log(direction); // «rtl»

const englishDirection = getLocaleDirection('en-US');
console.log(englishDirection); // «ltr»

Справочник

Параметры

Prop

Type

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

ПараметрОписание
localeКод локали по BCP‑47, для которой определяется направление текста

Возвращает

'ltr' | 'rtl' — направление письма для локали:

  • 'ltr': слева направо (большинство языков, включая английский, испанский, французский, немецкий, китайский, японский и т. д.)
  • 'rtl': справа налево (арабский, иврит, персидский, урду и другие семитские/ближневосточные языки)

Поведение

Алгоритм определения направления письма

Функция использует свойство textInfo.direction из API Intl.Locale:

  1. Создаёт объект Intl.Locale для переданной локали
  2. Получает значение textInfo.direction, определяющее направление письма для языка
  3. Возвращает 'rtl' для языков с письмом справа налево, 'ltr' — для всех остальных
  4. По умолчанию возвращает 'ltr', если локаль некорректна или приводит к ошибке

Распознавание языков с письмом справа налево (RTL)

Автоматически определяет языки с письмом справа налево, включая:

  • арабский (ar, ar-SA, ar-EG, ar-AE и др.)
  • иврит (he, he-IL)
  • персидский (фарси) (fa, fa-IR)
  • урду (ur, ur-PK, ur-IN)
  • пушту (ps)
  • синдхи (sd)
  • курдский (сорани) (ckb)
  • и другие RTL‑сценарии письма

Обработка ошибок

  • Для неверных или некорректно сформированных кодов локали по умолчанию используется 'ltr'
  • Исключения при некорректном вводе не выбрасываются
  • Надежная стратегия отката для пограничных случаев

Примеры

Базовое обнаружение направления

import { getLocaleDirection } from 'generaltranslation';

// Языки, пишущиеся слева направо
console.log(getLocaleDirection('en-US')); // "ltr"
console.log(getLocaleDirection('es-ES')); // "ltr"
console.log(getLocaleDirection('fr-FR')); // "ltr"
console.log(getLocaleDirection('ja-JP')); // "ltr"
console.log(getLocaleDirection('zh-CN')); // "ltr"

// Языки, пишущиеся справа налево
console.log(getLocaleDirection('ar-SA')); // "rtl"
console.log(getLocaleDirection('he-IL')); // "rtl"
console.log(getLocaleDirection('fa-IR')); // "rtl"
console.log(getLocaleDirection('ur-PK')); // "rtl"

Примечания

  • Возвращает 'ltr' для всех языков с письмом слева направо (большинство языков мира)
  • Возвращает 'rtl' для языков с письмом справа налево (арабский, иврит, персидский и т. д.)
  • Использует современный API Intl.Locale для точного определения
  • Работает со всеми локалями по стандарту BCP‑47

Дальнейшие шаги

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

getLocaleDirection