PHP 8.3.7 Released!

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_composeВозвращает правильно упорядоченный и разделенный идентификатор локали

Описание

Объектно-ориентированный стиль

public static Locale::composeLocale(array $subtags): string|false

Процедурный стиль

locale_compose(array $subtags): string|false

Функция возвращает правильно упорядоченный и разделенный идентификатор локали. Ключи идентифицируют конкретные подтеги идентификатора локали, а значения — связанные значения подтегов.

Список параметров

subtags

Массив (array), который содержит список пар ключ-значение, где ключи — имена подтегов идентификатора локали, а значения, соответственно, значения этих подтегов.

Замечание:

Разрешается не более 15 подтегов 'variant' и 'private', подтегов 'extlang' не более 3 и т. д. Варианты допустимы с суффиксами от 0 до 14. Ключи для этого подтега должны называться так: variant0, variant1, …,variant14. В возвращаемом идентификаторе локали вложенный тег упорядочен по суффиксу, в результате чего следует variant0, за которым следует variant1, за которым следует variant2 и так далее.

В качестве альтернативы, множественные подтеги 'variant', 'private' и 'extlang' можно задать в виде массива под соответствующим ключом (например 'variant'). Тогда ограничения на количество распознанных вложенных тегов не применяются.

Возвращаемые значения

Функция возвращает соответствующий идентификатор локали или false, если параметр subtags не задали.

Примеры

Пример #1 Пример использования функции locale_compose()

<?php

$arr
= array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2',
);

echo
locale_compose($arr);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php

$arr
= array(
'language'=>'en' ,
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2',
);

echo
Locale::composeLocale($arr);

?>

Результат выполнения приведённого примера:

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Пример #3 Пределы подтегов

Если параметр subtags задали как отдельные ключи с числовым суффиксом, неподдерживаемые ключи игнорируются (в этом случае 'extlang3') и упорядочиваются в результате по числовому суффиксу. Ограничений нет, если подтеги задали в виде массива (array); порядок такой, как задали.

<?php

$arr
= array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang3' => 'd',
'extlang2' => 'c',
'extlang1' => 'b',
'extlang0' => 'a',
);

echo
locale_compose($arr), PHP_EOL;

$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang' => ['a', 'b', 'c', 'd'],
);

echo
locale_compose($arr), PHP_EOL;

?>

Результат выполнения приведённого примера:

en_a_b_c_Hans_CN
en_a_b_c_d_Hans_CN

Смотрите также

  • locale_parse() - Получить ассоциативный массив всех подтегов локали

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top