Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
D'après cette image getEnvironment() est appelé à l'instanciation de Zend_Locale
voir : http://php-dev-lab.net/zfdox/html/d1/dd … 93f1b.html
Hors ça me fausse la détection de la langue :
Pour un HTTP_ACCEPT_LANGUAGE = en,de;q=0.7,fr;q=0.3
J'obtient à la sortie du 1er appel à getBrowser();
self::$_browser =
array(3) {
["en"] => float(1)
["de"] => float(0.7)
["fr"] => float(0.3)
}
ensuite je me retrouve avec ceci :
self::$_browser =
array(3) {
["fr"] => int(1)
["en"] => float(1)
["de"] => float(0.7)
}
La ligne 317 contenant :
$language = setlocale(LC_ALL, 0);
renvoie
$language = "LC_COLLATE=C;LC_CTYPE=French_France.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C"
Et donc en partant d'une langue différent du français je retombe tous le temps dessus, bref que faire ?
1) modifier Zend_Locale à ma convenance (respect licence BSD ???)
2) J'ai raté un paramétrage ? lequel ?
3) C'est un bug ?
Dernière modification par etaty (31-10-2008 16:42:30)
Hors ligne
Hello,
Je ne suis pas sûr de bien comprendre.
$locale = new Zend_Locale();
tient compte en premier de ton navigateur puis ensuite de l'environnement. Mais effectivement, il va chercher l'info dans le navigateur, dans l'environnement et dans le framework.
Si tu veux pouvoir envoyer une autre langue pour tes tests, tu peux utiliser Quick Locale Switcher pour Firefox.
Ensuite j'imagine que c'est pour de la traduction, donc tu peux faire :
$translate = new Zend_Translate('gettext', '../data/languages/en/LC_MESSAGES/en.mo', 'en'); $translate->addTranslation('../data/languages/fr/LC_MESSAGES/fr.mo', 'fr'); $translate->addTranslation('../data/languages/de/LC_MESSAGES/de.mo', 'de'); $translate->setLocale(Zend_Registry::get('Zend_Locale')); Zend_Registry::set('Zend_Translate', $translate);
A+
Hors ligne
J'aimerai juste que Zend_Locale() me renvoie la bonne langue, celle paramétré dans le navigateur (Quick Locale Switcher fait la même chose)
Hors peut importe la langue du navigateur, je retombe toujours en français
info complémentaire:
je suis sous wamp => php 5.2.6
Hors ligne
Hello,
Quick Locale Switcher permet de rapidement modifier la locale de ton navigateur et accessoirement (si tu veux) de la lire.
Je répète, par défaut :
$locale = new Zend_Locale();
renvoie la locale du navigateur (mais cela va aussi lire celle de l'environnement). Si tu voulais une autre locale, tu serais obligé de la forcer.
$locale = new Zend_Locale(); // default behavior, same as above $locale1 = new Zend_Locale(Zend_Locale::BROWSER); // prefer settings on host server $locale2 = new Zend_Locale(Zend_Locale::ENVIRONMENT); // perfer framework app default settings $locale3 = new Zend_Locale(Zend_Locale::FRAMEWORK); // ou encore $locale4 = new Zend_Locale('en-US');
A+
Hors ligne
Je viens de faire un test avec un serveur debian + php 5.2.6 (même chose sur une page perso free)
J'obtiens bien la locale du navigateur
de plus sous debian
$language = setlocale(LC_ALL, 0);
renvoie string(1) "C"
Hors sous wamp j'ai
"LC_COLLATE=C;LC_CTYPE=French_France.1252;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C"
Je ne sais pas trop d'où sorte ces valeurs m'enfin ...
EDIT:
http://framework.zend.com/issues/browse/ZF-3785
c'est donc un bug avec correction pour la 1.7 ?
Thomas Weidner - 08/Aug/08 01:59 PM
The issue has been fixed for the trunk.
Not sure for RC2 as I18N changes have been put on hold until 1.7 due to BC problems.
Dernière modification par etaty (31-10-2008 19:37:31)
Hors ligne
Bon finalement, j'ai patché le fichier comme proposé puis on vera lors de la 1.7 si c'est bon ou pas ...
Hors ligne
Même problème, même solution. Je suis étonné qu'ils laissent passer ce genre de bug...
Hors ligne
Hello,
Pourquoi "...ils laissent passer ce genre de bug..." ?
D'après http://framework.zend.com/issues/browse/ZF-3785, le bug est bien corrigé pour la 1.7.
A+
Hors ligne
mikaelkael a écrit:
Hello,
Pourquoi "...ils laissent passer ce genre de bug..." ?
D'après http://framework.zend.com/issues/browse/ZF-3785, le bug est bien corrigé pour la 1.7.
A+
Justement la version stable actuelle est la 1.6
Hors ligne
Hello,
Le bug est corrigé quand il est trouvé et annoncé, pas avant . Ensuite il ne doit pas impliquer de cassures dans la compatibilité ascendante, ce qui est le cas avec celui-ci.
Pour terminer, la 1.7 sort lundi prochain.
A+
Dernière modification par mikaelkael (12-11-2008 11:11:34)
Hors ligne
Ce que je veux dire c'est que malgré 2 tonnes de tests unitaires et un serveur d'intégration continu, une régression aussi flagrante sur une fonctionnalité relativement importante (la détection de la langue) passe à travers.
Comme quoi écrire des tests c'est pas évident.
Hors ligne
Pages: 1