It worth to note that if $langtag array is empty this function returns empty string and not $default . Use array(false) if your $langtag array is empty in order to get default locale.
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Locale::lookup -- locale_lookup — Recherche dans la liste la meilleure langue
Style orienté objet
$langtag
,$locale
,$canonicalize
= false
,$default
= ?Style procédural
$langtag
,$locale
,$canonicalize
= false
,$default
= ?
Recherche dans la liste langtag
la meilleure langue,
pour la locale spécifiée par locale
, en fonction
de l'algorithme de la RFC 4647.
langtag
Un tableau contenant une liste de langues à comparer
à la locale locale
.
Un maximum de 100 éléments est autorisé.
locale
La locale à utiliser pour effectuer la recherche.
canonicalize
Si true
les arguments seront convertis en leur forme
canonique avant leur recherche.
default
La locale à utiliser si aucune solution n'est trouvée.
La langue la plus proche qui ait été trouvée dans la liste, ou bien la valeur par défaut.
Exemple #1 Exemple avec locale_lookup(), procédural
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
Exemple #2 Exemple avec Locale::lookup(), POO
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
L'exemple ci-dessus va afficher :
de_de_1996
It worth to note that if $langtag array is empty this function returns empty string and not $default . Use array(false) if your $langtag array is empty in order to get default locale.
Note that this method does not understand "similar" languages, so the following:
Locale::lookup(["en-US"], "en-GB", false);
Or:
Locale::lookup(["es-ES"], "es-CO", false);
Does not work as you would expect (empty result). To get a match in those cases you will have to use two letter language codes instead:
Locale::lookup(["en"], "en-GB", false);
Or:
Locale::lookup(["es"], "es-CO", false);
These do return 'en' and 'es' respectively.