Zend_Locale
devrait être en mesure d'aider, à ce sujet.
Voir les exemples et explications sur la page Using Zend_Locale(citant):
Pour la plupart des situations, new Zend_Locale()
sera automatiquement sélectionnez les paramètres régionaux correct, avec préférence donnée à l'information fournies par le web de l'utilisateur navigateur.
Et il y a deux plus de détails plus tard sur cette page (citant):
L'algorithme de recherche utilisé par Zend_Locale
pour la sélection automatique d'une locale utilise trois sources de information:
1.const Zend_Locale::BROWSER
- Le navigateur Web de l'utilisateur fournit des informations avec chaque demande, qui est publié par PHP dans la variable globale HTTP_ACCEPT_LANGUAGE
. si aucun locale correspondant peut être trouvé, alors la préférence est donnée à ENVIRONMENT
et enfin FRAMEWORK
.
2.const Zend_Locale::ENVIRONMENT
- PHP publie la localisation du serveur hôte via la fonction interne PHP setlocale()
. Si aucun local correspondant peut être trouvé, alors la préférence est donnée à FRAMEWORK
et enfin BROWSER
.
3.const Zend_Locale::FRAMEWORK
- Lorsque Zend Framework a une façon standardisée de spécifiant les valeurs par défaut des composants (prévu, mais pas encore disponible), puis en utilisant cette constante pendant instanciation donnera la préférence à une locale à base sur ces par défaut. Si aucun paramètre régional correspondant ne peut être trouvé, la préférence est donnée à ENVIRONMENT
et enfin BROWSER
.
(Conseil: allez lire cette page - Je ne vais pas tout copier-coller, il est à lire ^^)
Edit: Et voici la partie du code qui illustre mon Commentaire:
$locale = new Zend_Locale();
var_dump($locale->getLanguage());
var_dump($locale->getRegion());
die;
Donne-moi:
string(2) "fr"
bool(false)
Eh bien, mon navigateur réclame français, sans préciser une région ^^
Que se passe-t-il si la préférence est seulement "en" ou "es"? http://stackoverflow.com/questions/16469629/zend-locale-zend-currency-region-code – Michelangelo
J'ai directement répondu à votre question. –