Zend_Locale
debería ser capaz de ayudarnos, sobre eso.
Véanse los ejemplos y explicaciones en la página Using Zend_Locale(citando):
Para la mayoría de las situaciones, new Zend_Locale()
automáticamente seleccione la configuración regional correcta, con preferencia dada a la información proporcionada por web del usuario navegador.
Y hay un par de detalles más adelante en esa página (citando):
El algoritmo de búsqueda utilizado por Zend_Locale
para la selección automática de un local utiliza tres fuentes de información:
1.const Zend_Locale::BROWSER
- El navegador web del usuario proporciona información con cada solicitud , que se publica por PHP en la variable global HTTP_ACCEPT_LANGUAGE
. si no se puede encontrar la configuración regional correspondiente, entonces se da preferencia a y por último FRAMEWORK
.
2.const Zend_Locale::ENVIRONMENT
- PHP publica la configuración regional del servidor host a través de la función interna PHP setlocale()
. Si no se puede encontrar la configuración regional correspondiente , se dará preferencia a FRAMEWORK
y finalmente BROWSER
.
3.const Zend_Locale::FRAMEWORK
- Cuando Zend Framework tiene una forma estandarizada de que especifican valores por defecto de componentes (previsto, pero aún no está disponible), a continuación, utilizando esta constante durante instanciación se dará preferencia a la elección de una configuración regional según en estos valores predeterminados. Si no se puede encontrar ninguna configuración regional coincidente, se dará preferencia a ENVIRONMENT
y finalmente BROWSER
.
(consejo: ve a leer esa página - no voy a copiar y pegar todo lo que hay que leer ^^)
Editar: y aquí está la porción de código que ilustra mi Comentario:
$locale = new Zend_Locale();
var_dump($locale->getLanguage());
var_dump($locale->getRegion());
die;
me da:
string(2) "fr"
bool(false)
Bueno, mi navegador está pidiendo francés, sin especificar una región ^^
¿Qué sucede si la preferencia es solo "en" o "es"? http://stackoverflow.com/questions/16469629/zend-locale-zend-currency-region-code – Michelangelo
He respondido directamente a su pregunta. –