Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-10-2008 15:34:04

etaty
Membre
Date d'inscription: 16-10-2008
Messages: 49

[Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

Bonjour,
D'après cette image getEnvironment() est appelé à l'instanciation de Zend_Locale
http://php-dev-lab.net/zfdox/html/d1/dde/classZend__Locale_c23307ad0033a6e94e1bd1af5c093f1b_c23307ad0033a6e94e1bd1af5c093f1b_icgraph.png
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

 

#2 31-10-2008 16:13:30

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

Hello,

Je ne suis pas sûr de bien comprendre.

Code:

$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 :

Code:

$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+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 31-10-2008 16:42:08

etaty
Membre
Date d'inscription: 16-10-2008
Messages: 49

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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

 

#4 31-10-2008 18:00:32

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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 :

Code:

$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.

Code:

$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+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 31-10-2008 18:12:08

etaty
Membre
Date d'inscription: 16-10-2008
Messages: 49

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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

 

#6 31-10-2008 20:09:06

etaty
Membre
Date d'inscription: 16-10-2008
Messages: 49

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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

 

#7 03-11-2008 18:14:41

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

Même problème, même solution. Je suis étonné qu'ils laissent passer ce genre de bug...

Hors ligne

 

#8 03-11-2008 18:29:28

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#9 12-11-2008 03:06:50

dstauret
Nouveau membre
Date d'inscription: 28-10-2008
Messages: 5

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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

 

#10 12-11-2008 11:11:14

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

Hello,

Le bug est corrigé quand il est trouvé et annoncé, pas avant wink. 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)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#11 13-11-2008 08:11:42

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: [Zend_Locale][1.6.2] getEnvironment() toujours appelé pourquoi ?

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages