(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Locale::composeLocale -- locale_compose — Retorna un identificador de configuración regional correcto
Estilo orientado a objetos
Estilo por procedimientos
Retorna un identificador de configuración regional correcto, ordenado y delimitado, con las claves para identificar las particularidades regionales, y los valores asociados a estas subconfiguraciones regionales.
subtags
Un tableau que contiene la lista de pares clave-valor, donde las claves representan los identificadores de subconfiguraciones regionales, y sus valores asociados son los valores de los subtags.
Nota:
Los subtags
'variant'
y'private'
pueden tomar hasta 15 valores mientras que'extlang'
no puede tomar más de 3 valores. Por ejemplo, las variantes están permitidas con un sufijo que va de 0 a 14. Por lo tanto, las claves del array sonvariant0
,variant1
, …,variant14
. En el identificador de configuración regional retornado, los subtags están ordenados por sufijo, convariant0
seguido devariant1
seguido devariant2
y así sucesivamente.Alternativamente, los valores de
'variant'
,'private'
y'extlang'
pueden ser especificados como un array bajo una clave específica (por ejemplo,'variant'
). En este caso no se aplica ninguna limitación sobre el número de subtags reconocidos.
El identificador de configuración regional correspondiente, o false
cuando subtags
está vacío.
Ejemplo #1 Ejemplo con locale_compose(), procedimental
<?php
$arr = array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2'
);
echo locale_compose($arr);
?>
Ejemplo #2 Ejemplo con locale_compose(), POO
<?php
$arr = array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2'
);
echo Locale::composeLocale($arr);
?>
El resultado del ejemplo sería:
Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2
Ejemplo #3 Límites de los Subtags
Si subtags
se proporciona como claves diferentes
con un sufijo numérico, las claves no soportadas son ignoradas
silenciosamente (en este caso 'extlang3'
),
y ordenadas en el resultado por el sufijo numérico.
No hay límites, si los subtags se proporcionan como
tableau; su orden es como se indica.
<?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;
?>
El resultado del ejemplo sería:
en_a_b_c_Hans_CN en_a_b_c_d_Hans_CN