Bonjour,
J'ai fait une série d'essai (cakePHP 2.3), et je suis sur le TP1 ... et suis bloqué au placements des fichiers .po
Ils sont bien dans les bons répertoires :
E:\test\wamp\www\art-theme\app\Locale\fra\LC_MESSAGES
-> cake.po
-> cake_dev.po
Au rafraîchissement de la page (signup), le message sous le champs email, est toujours en anglais : "This field cannot be left blank"
Je ne voudrais pas skipper cette étape, afin de bien suivre l'évolution des autres TP.
D'avance, merci !
Merci pour tous ces tutos... je ne réagis pas souvent, mais suis là souvent
GrafikFan
J'ai trouvé pour moi :D
Il m'en a fallu du temps !!!
Donc le souci ne viens pas de la config mais bien des deux fichier, enfin 1 tres exactement.
Je sais pas pour les ancienne version de cakePHP mais maintenant, dans le fichier CakeValidationSet.php, le message se compose ainsi :
$message = __d('cake', 'This field cannot be left blank');
Or, quand j'ai ouvert le fichier cake.po, il n'y a aucune ligne correspondant au message 'This field cannot be left blank'.
Ce message etant dans cake_dev.po
Donc deux solution, ou bien rajouter les deux lignes correspondant au message en question de cake_dev.php dans cake.php ou bien changer le nom 'cake' par 'cake_dev' dans le fichier CakeValidationSet.php
En clair,
1ere solution: mettre ce code dans le fichier cake.po
msgid "This field cannot be left blank"
msgstr "Ce champs ne peut être vide"
2em solution: modifier la ligne 288 (fontion _processValidationResponse())
$message = __d('cake', 'This field cannot be left blank');
par
$message = __d('cake_dev', 'This field cannot be left blank');
C'est une solution pour moi mais après sa peut être différent pour d'autre ;)
PS: j'ai recréé un post pour une meilleur lisibilité
Un coup de psdpad, et j'avais également trouvé le fichier à modifier, et j'ai fait comme toi (la 2° option plus adéquate je trouve).
Mais j'espère que cela pourra s'expliquer dans le tuto de Grafikart pour les prochains nouveaux venus.
Bravo à Gyuki aussi !
Petite précision : le fichier à modifier se trouve dans le dossier :
\www\"CheminDeVotreProjet"\lib\Cake\Model\Validator\
Je valide le post.
Bisous
LoL, je surveille ce post car je suis dans le même cas que toi, sauf que j'ai continué et je reviendrais dessus plus tard. En voyant une reponse, j'ai cru que quelqu'un avais répondu.
En espérent une reponse rapide :)
Hé hé :) Mince alors ! Me suis dit " Wèèèè chouette enfin une réponse !" eh ben non :)
Oui, c'est dommage d'y revenir plus tard mais bon ... j'espère que le support proposé par Grafikart pour les membres premium suivra :p
@+
Le support pour les membres prémium ? oO (désolé ce n'est pas une réponse j'ai un soucis similaire)
Désolé bcp de sujet donc ça me prends du temps de les voir passer :)
Si tu prends les sources directement ça marche tu as le site en français ou pas ?
Si même avec les source ça ne marche pas c'est que ça doit venir de ta conf de PHP qui ne supporte pas gettext(), tu as bien PHP 5.4/5.3 ?
Il me semble que le fichier de traduction doit s'appeler default.po pour que ça fonctionne. Aussi, montres nous ton code, celui permettant de changer de langue, ça pourrai être utile.
Essayes ça déjà
Bonjour,
Merci pour vos messages.
@ > Grafikart : J'utilise actuellement Wamp 2.1
Apache 2.2.22
Php : 5.4.3
Visiblement, je ne suis pas le seul à avoir ce souci ...
@ > kal-el : Quel fichier veux-tu exactement ?
encore merci pour le suivi...
<u>Pour ma part:</u>
Wamp fraichement installé (WampServer (64Bits & Apache 2.4) 2.2 (Apache 2.4.2, Mysql 5.5.24, PHP 5.4.3)),
Cake Fraichement installé (2.3.5 stable),
extension php_gettext activée,
lorque je fais un debug(CakeSession::read('Config.language')); il m'affiche bien 'fra'
j'ai essayé de changer la locale en faisant des
CakeSession::write('Config.language', 'fra'); >> aucun effet,
CakeSession::write('Config.language', 'fr-fr'); >> aucun effet,
CakeSession::write('Config.language', 'fr_fr'); >> aucun effet,
CakeSession::write('Config.language', 'fre'); >> aucun effet,
CakeSession::write('Config.language', 'fr'); >> aucun effet,
je suis même allé faire un tour dans le fichier l10n.php et voila l'info qui m'interresse:
'fr-fr' => array('language' => 'French (France)', 'locale' => 'fr_fr', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
Heu la, perso, je sais plus quoi essayer ...
Edit (11:41): J'ai fait un test, j'ai ecrit __(hello world) dans une de mes page, et ai éditer le fichier .po inclus dans ton archive, en mettant
msgid "hello world"
msgstr "Bonjour Monde"
La traduction s'est bien effectué. j'ai fait une petite recherche dans le core de cake et lui utilise __d() et pas __(), J'ai pas encore compris l'utilité de __d() :)
Humm si j'etais toi, je ferais plutot la première solution, car si un jour tu met a jour ton framework, tu vas perdre la modif que tu as fait et donc revenir a ce problème.
Et pour peu que tu oublie que tu avais fait cette modif...
Un conseil que Graf avais donné dans l'une de ses video, c'est d'éviter d'éditer le core de cake ;)
C'est juste :)
Je n'ai pas pris la peine de regarder les fichiers .po et donc, je pensais qu'il fallait tout ré-écrire.
Mais suis d'accord pour ton explication...
Merci ;)