Как определить направление языка по его локальному коду? (RTL или LTR)

Используя встроенные функции и расширения PHP (в частности, intl), как определить направление языка по его локальному коду? (RTL или LTR)

1 ответ

В Unicode есть что-то под названием "Unicode Common Locale Data Repository", то есть CLDR, которые предоставляют именно эту информацию.

Вы можете увидеть эту страницу, которая представляет, какие функции доступны в CLDR, включая направление сценария.

Как примечание, направление скрипта - это не просто ltr или rtl, есть и другие направления.

И затем, для доступа через PHP, вы можете посмотреть, например, Punic или любую другую библиотеку, которая появится, когда вы будете искать PHP и CLDR вместе в Google.

/**
 * Retrieve the character order (right-to-left or left-to-right).
 *
 * @param string $locale The locale to use. If empty we'll use the default locale set in \Punic\Data
 *
 * @return string Return 'left-to-right' or 'right-to-left'
 */
public static function getCharacterOrder($locale = '')
{
    $data = Data::get('layout', $locale);
    return $data['characterOrder'];
}
Другие вопросы по тегам