(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Locale::composeLocale -- locale_compose — Retourne un identifiant de locale correct
Style orienté objet
Style procédural
Retourne un identifiant de locale correct, ordonné et délimité, avec les clés pour identifier les particularités régionales, et les valeurs associées à ces sous-locales.
subtags
Un tableau contenant la liste des paires clé-valeurs, où les clés représentent les identifiants de sous-locales, et leur valeur associées sont la valeur des sous-tags.
Note:
Les sous-tags
'variant'
et'private'
peuvent prendre jusqu'à 15 valeurs alors que'extlang'
ne peut prendre qu'un maximum de 3 valeurs. Par exemple les variantes sont autorisées avec un suffixe allant de 0 à 14. Par conséquent, les clés du tableau sontvariant0
,variant1
, …,variant14
. Dans l'identifiant de locale retourné, les sous-tags sont ordonnés par suffixe, avecvariant0
suivi devariant1
suivi devariant2
et ainsi de suite.Alternativement, les valeurs de
'variant'
,'private'
et'extlang'
peuvent être spécifié en tant qu'un tableau sous une clé spécifique (e.g.'variant'
). Dans ce cas aucune limite sur le nombre de sous-tags reconnus n'est appliqué.
The corresponding locale identifier, ou false
quand subtags
est vide.
Exemple #1 Exemple avec locale_compose(), procédural
<?php
$arr = array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2'
);
echo locale_compose($arr);
?>
Exemple #2 Exemple avec locale_compose(), POO
<?php
$arr = array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2'
);
echo Locale::composeLocale($arr);
?>
L'exemple ci-dessus va afficher :
Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2
Exemple #3 Limites des Sous-tags
Si subtags
sont fournit en tant que clés différente
avec un suffixe numérique, les clés non supportés sont ignoré
silencieusement (dans ce cas 'extlang3'
),
et ordonné dans le résultat par le suffixe numérique.
Il n'y a pas de limites, si les sous-tags sont fournit en tant que
tableau; leur ordre est comme donné.
<?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;
?>
L'exemple ci-dessus va afficher :
en_a_b_c_Hans_CN en_a_b_c_d_Hans_CN