Zend_Locale
dovrebbe essere in grado di aiutare, a tale proposito.
Vedi gli esempi e spiegazioni sulla pagina Using Zend_Locale(citando):
Per la maggior parte delle situazioni, new Zend_Locale()
verrà automaticamente selezionare le impostazioni internazionali corrette, con preferenza data alle informazioni fornite dal web dell'utente browser.
E ci sono un altro paio di dettagli in seguito in quella pagina (citando):
L'algoritmo di ricerca utilizzato da Zend_Locale
per la selezione automatica di un locale utilizza tre fonti di informazioni:
1.const Zend_Locale::BROWSER
- Il browser Web dell'utente fornisce informazioni con ogni richiesta , che è pubblicata da PHP in la variabile globale HTTP_ACCEPT_LANGUAGE
. se non è possibile trovare locale corrispondente , la preferenza viene assegnata a ENVIRONMENT
e infine a FRAMEWORK
.
2.const Zend_Locale::ENVIRONMENT
- PHP pubblica locale del server host tramite la funzione interna di PHP setlocale()
. Se non è possibile trovare la locale corrispondente , la preferenza è data da a FRAMEWORK
e infine da BROWSER
.
3.const Zend_Locale::FRAMEWORK
- Quando Zend Framework ha un modo standardizzato di specificando default dei componenti (previsto, ma non ancora disponibile), quindi utilizzando questa costante durante esemplificazione darà la preferenza ad la scelta di un locale a base su questi valori predefiniti . Se nessuna locale corrispondente può essere trovata , viene data la preferenza a ENVIRONMENT
e infine a BROWSER
.
(Consigli: andare a leggere quella pagina - non voglio copiare e incollare tutto quello che c'è da leggere ^^)
Edit: Ed ecco la parte di codice che illustra il mio commento:
$locale = new Zend_Locale();
var_dump($locale->getLanguage());
var_dump($locale->getRegion());
die;
mi dà:
string(2) "fr"
bool(false)
Beh, il mio browser chiede per il francese, senza specificare una regione ^^
fonte
2010-03-06 21:11:16
Cosa succede se la preferenza è solo "en" o "es"? http://stackoverflow.com/questions/16469629/zend-locale-zend-currency-region-code – Michelangelo
Ho risposto direttamente alla tua domanda. –