Как определить направление языка по его локальному коду? (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'];
}