Précédent   Forum des professionnels en informatique > PHP > Outils > WAMP
WAMP Forum d'entraide sur WAMP (Windows Apache MySQL PHP) : installation, utilisation, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2011, 21h51   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Bonsoir,

Je me permets de venir vous déranger car j'ai un souci.
Je m'essaie à gettext pour réaliser un petit site multilingues. J'ai décoché dans le php.ini la ligne correspondante, j'ai redémarré mon wampserver et n'ai eu aucune erreur. (Je suis sous windows 7 - 64 bits.)

Sauf que ça ne fonctionne pas. La traduction ne se fait pas. Alors pendant plusieurs heures, je cherche sur le net où mon code pourrait être faux. J'essaie de nombreux codes mais rien ne marche. Comme mon environnement de prod (ovh donc linux) est déjà prêt, je le pousse et là magie ça fonctionne !! Donc mon code est bon.

Donc le souci vient de wampserver qui doit être mal configuré mais je n'ai pas d'erreur dans les logs ni au lancement.

Si vous connaissiez une batterie de tests à effectuer pour vérifier que ça fonctionne, je suis preneur.

Un grand merci d'avance.

Serait-ce possible que ce soit à cause du fait que je bosse sur windows ?
Et que pour mes trad, j'utilise fr_FR et en_US et que je compile mes .po en .mo sur mon ubuntu ?

Un conflit windows/linux ?
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 01h17   #2
Invité de passage
 
Inscription : septembre 2004
Messages : 4
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France

Informations forums :
Inscription : septembre 2004
Messages : 4
Points : 1
Points : 1
Bonsoir,

Je me suis pas mal documenté sur GetText et j'ai pu lire que ça ne fonctionne pas sous WampServer. J'imagine que t'as déjà eu ta réponse depuis. Envoie ça sur un serveur Linux par exemple et ça devrait marcher si tu as aucune erreur dans ton code.
ericdebra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 09h43   #3
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Envoyé par ericdebra Voir le message
Bonsoir,

Je me suis pas mal documenté sur GetText et j'ai pu lire que ça ne fonctionne pas sous WampServer. J'imagine que t'as déjà eu ta réponse depuis. Envoie ça sur un serveur Linux par exemple et ça devrait marcher si tu as aucune erreur dans ton code.
Ca fonctionne très bien sous wampserver.
Il y'a juste certaines version de PHP 5.3 (rien à voir avec wampserver) où gettext est buggé sous windows.

Si tu veux gettext sous wampserver soit tu passe en php 5.2 sois en php >=5.3.3
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 19h19   #4
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Salut,

Merci pour vos réponses.
En fait non ericdebra je n'ai pas trouvé ma réponse. Personne ne sait que faire et j'ai pourtant essayé plusieurs forums.

@grunk, j'ai installé la dernière version de wamp hier pour voir si ce n'était pas à cause de ça. J'ai donc PHP 5.3.5.

J'ai aussi essayé de télécharger un autre php_gettext.dll que celui fourni dans wamp. Le nouveau pèse 20 ko (contre 40) et me génère l'erreur suivante : Call to undefined function bindtextdomain().

J'ai donc remis l'ancien. J'ai lu aussi parfois qu'il fallait compiler gettext pour php. Qu'est-ce que ça veut dire ? Et comment le faire ? Quelle est cette commande : php --with-gettext et comment l'exécuter ?

J'suis toujours perdu

Ah je lis aussi qu'il faut installer les locales... de quoi il s'agit, comment installer des locales sous windows ?

Merci d'avance
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 08h59   #5
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Sur le tout dernier wampserver (32bit) ce code :

Code :
1
2
3
4
5
6
7
setlocale(LC_ALL,$langue);
putenv("LANG=$langue");
putenv("LC_ALL=$langue");
$tradFile = 'messages';
bindtextdomain($tradFile, ROOT_PATH."includes/lang/");
bind_textdomain_codeset($tradFile,'UTF-8');
textdomain($tradFile);
marche très bien chez moi.

Citation:
J'ai aussi essayé de télécharger un autre php_gettext.dll que celui fourni dans wamp. Le nouveau pèse 20 ko (contre 40) et me génère l'erreur suivante : Call to undefined function bindtextdomain().
Pour les extension , si tu veux les remplacer il faut trouver la bonne version et c'est généralement très compliquer selon si ton php à été compiler en Vc6, Vc9 et en thread safe ou Non thread safe.

Citation:
J'ai donc remis l'ancien. J'ai lu aussi parfois qu'il fallait compiler gettext pour php. Qu'est-ce que ça veut dire ? Et comment le faire ? Quelle est cette commande : php --with-gettext et comment l'exécuter ?
Ce sont des paramètres de compilation , dans ton cas quand tu télécharge PHP pour windows ou un wampserver , php est déjà compiler tu n'as donc pas à t'en occuper
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 14h36   #6
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Bonjour,

Merci pour ta réponse mais ça ne marche toujours pas.
J'ai installé rapidement sur mon serveur local au boulot (windows XP) qui est en PHP 5.2.11.

Ca ne fonctionne pas non plus. Mon code est le suivant, au cas où :

Code :
1
2
3
4
5
6
7
setlocale(LC_ALL, $langueLocale); // On modifie les informations de localisation en fonction de la langue
putenv('LANG = $langueLocale'); // On modifie la variable d'environnement
putenv('LC_ALL = $langueLocale');
$nomDesFichiersDeLangue = 'traductions'; // Le nom de nos fichiers .mo
bindtextdomain($nomDesFichiersDeLangue, 'locale'); // On indique le chemin vers les fichiers .mo
bind_textdomain_codeset($nomDesFichiersDeLangue, 'UTF-8');	
textdomain($nomDesFichiersDeLangue); // Le nom du domaine par défaut
Encore merci.
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h15   #7
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Si tu as effectivement des simple quote dans ton c'est normale que cela ne marche pas.

C'est soit :
Code :
putenv('LANG = '.$langueLocale);
soit
Code :
putenv("LANG = $langueLocale");
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 17h48   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
?

PHP 5.3.6 :
Citation:
Fixed bug #53837 (_() crashes on Windows when no LANG or LANGUAGE
environment variable are set). (Pierre)
http://bugs.php.net/bug.php?id=53837
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 19h07   #9
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
@grunk > Ca ne change rien

@stealth35 > T'es mignon mais je sais pas comment installer les langues sur mon windows. J'ai déjà cherché, installer une locale c'est chaud car google trouve tout sauf ça.
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h03   #10
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
En pièce jointe un code qui fonctionne sur mon wamp (5.3.5).

Vérifie de ton coté que tu utilises les bons nom de locales (en_EN pour l'anglais par exemple) que tu redémarre bien apache avant de tester tes scripts car il garde en cache les fichier mo.

Si ca peut aide la listes des extensions activé sur mon php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Core
bcmath
calendar
com_dotnet
ctype
date
ereg
filter
ftp
hash
iconv
json
mcrypt
SPL
odbc
pcre
Reflection
session
standard
mysqlnd
tokenizer
zip
zlib
libxml
dom
PDO
Phar
SimpleXML
wddx
xml
xmlreader
xmlwriter
apache2handler
fileinfo
gd
gettext
mbstring
mysql
mysqli
pdo_mysql
PDO_ODBC
pdo_sqlite
sockets
mhash
xdebug
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 10h06   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par Ennicolem Voir le message
@stealth35 > T'es mignon mais je sais pas comment installer les langues sur mon windows. J'ai déjà cherché, installer une locale c'est chaud car google trouve tout sauf ça.
oula, t'a rien lu ou quoi ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 12h00   #12
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Citation:
Envoyé par stealth35 Voir le message
oula, t'a rien lu ou quoi ?
Je pense ne pas avoir compris surtout . Mon anglais est bof (d'une) et de deux, ça part dans tous les sens...
Surtout ton message me paraissait clair :
Citation:
when no LANG or LANGUAGE
environment variable are set).
J'ai dû mal interpréter le set.

Citation:
Vérifie de ton coté que tu utilises les bons nom de locales (en_EN pour l'anglais par exemple) que tu redémarre bien apache avant de tester tes scripts car il garde en cache les fichier mo.
J'utilise en_US pour l'anglais... Sinon j'essaierai d'activer les mêmes modules. Je vide bien mon cache à chaque fois.

J'te tiens au jus.
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 09h30   #13
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
@grunk, j'ai testé ton fichier joint et ça fonctionne. J'avoue être un peu perdu car mon code est sensiblement le même... et fonctionne en prod.
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 21h15   #14
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Comme je pense que c'est mon code qui foire (bizarre vu qu'il fonctionne dans mon hébergement final OVH -il ne faudrait pas qu'ensuite ca fonctionne sur wamp mais plus sur OVH... ce serait le comble-), voici mon code, si vous trouvez où l'erreur peut être :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php if(isset($_GET['langue'])) { //Langue indiquée dans l'URL
 
	$langueSite = htmlspecialchars($_GET['langue']);
 
	switch($langueSite) {
		case 'fr':
			$langueLocale = 'fr_FR.utf8';
		break;
		case 'en':
			$langueLocale = 'en_US.utf8';
		break;
	}
 
	setcookie('langueLocale', $langueLocale, time() + (15778463), '/'); //Génération du COOKIE pour 6 mois
 
}
else { //Langue non indiquée dans l'URL
 
	if(!empty($_COOKIE['langueLocale'])) { //COOKIE présent
 
		$langueLocale = htmlspecialchars($_COOKIE['langueLocale']);
 
		$cookieExplode = explode('_', $langueLocale);
		$langueSite = $cookieExplode[0];
 
		header('Location: /'.$langueSite.'/');
 
	}
	else { //COOKIE absent
 
		header('Location: /fr/');
 
	}
 
}
 
setlocale(LC_ALL, $langueLocale); // On modifie les informations de localisation en fonction de la langue
putenv('LANG = '.$langueLocale); // On modifie la variable d'environnement
putenv('LC_ALL = '.$langueLocale);
$nomDesFichiersDeLangue = 'messages'; // Le nom de nos fichiers .mo
bindtextdomain($nomDesFichiersDeLangue, 'locale/'); // On indique le chemin vers les fichiers .mo
bind_textdomain_codeset($nomDesFichiersDeLangue, 'UTF-8');	
textdomain($nomDesFichiersDeLangue); // Le nom du domaine par défaut
?>
Encore merci.
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 22h29   #15
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Si tu supprime le .utf8 de tes locales ça marche ?
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 23h34   #16
Invité de passage
 
Inscription : décembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 22
Points : 2
Points : 2
Non
Ennicolem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h05.


 
 
 
 
Partenaires

Hébergement Web