Bonjour avairet :
> Bonjour Marc,
>
> Je ne suis pas sûr de très bien comprendre ce que tu dis...
> Mais une première chose me semble claire : pourquoi tu ne mets pas tes
> accents dans la traduction de previous ?
>
Et bien, parce que, comme je l'ai indiqué, ça ne marche pas.....
Pourtant, la première traduction que j'ai indiquée dans mon mail, elle,
s'affiche bien.
> Moi j'ai fait :
>
> msgid "previous"
> msgstr "Précédent"
>
> Et mon prev() marche impec.
>
> Si la traduction de "previous" n'est pas trouvée dans le fichier .po
> français, alors Cake affichera le mot "previous" ! C'est le principe
> du gettext().
>
Entièrement d'accord avec toi.
> Enfin, je ne pense pas que l'UTF 8 et l'ISO soient en cause, mais le
> fait de passer de l'un à l'autre a peut-être provoqué des schmilblicks
> dans ton fichier .po et du coup gettext() ne retrouve plus la string
> initiale...
>
Là, je ne suis pas d'accord. Relit ce que j'ai écris :
> J'ai testé si __('previous') fonctionnait bien et me retournait sa
> traduction : pas de problème. Le hic semble se situer dans prev()
La string initiale est donc bien trouvée. C'est dans prev() que ça coince.
> Les chevrons sont concaténés au mot "previous" donc s'ils sont
> affichés, ton mot aussi et si le mot ne s'affiche pas, les chevrons
> non plus.
>
Toujours pas d'accord : les chevrons sont, dans le code indiqué,
indépendant de la recherche de la traduction.
Relit aussi ce que j'ai écris : je n'ai RIEN qui s'affiche, preuve donc
que le hic est dans prev()
> Quelle release de Caake utilises-tu ?
>
>
1.2.0.7125 RC1
J'ai eu un peu plus de temps pour creuser : j'ai "tracé" l'exécution de
prev().
Voici brièvement les étapes :
Dans l'ordre,
prev appelle __pagingLink, qui appelle $this->Html->tag($tag, $title,
$options, $escape);
tag appelle la méthode h() (définie dans basics.php)
if ($escape) {
$text = h($text);
}
A l'issu de cet appel, $text est vide...
Or, $text est (indirectement) la valeur '<< '.__('previous', true).
Donc, comme il est mis à vide, cela explique pourquoi les chevrons
n'apparaissent même pas.
J'ai essayé de ne pas activer l' "escape" en faisant :
<?php echo $paginator->prev('<< '.__('previous', true),
array('escape'=>false), null, array('class'=>'disabled'));?>
mais, ça n'a pas l'air d'avoir bp d'effet... et là, je suis à la bourre
pour fouiller plus
De retour vendredi !
>
> On 9 juil, 14:27, Marc MENDEZ <[EMAIL PROTECTED]> wrote:
>
>> Bonjour,
>>
>> Dans app/locale/fre/LC_MESSAGES/default.po, j'ai traduis certaines
>> expressions et mots standards que l'on trouve lorsqu'on utilise Bake.
>> Exemples :
>>
>> msgid "Page %page% of %pages%, showing %current% records out of %count%
>> total, starting on record %start%, ending on %end%"
>> msgstr "Enregistrements de %start% à %end% - Page %page%/%pages%"
>>
>> msgid "previous"
>> msgstr "Precedent"
>>
>> msgid "next"
>> msgstr "Suivant"
>>
>> J'ai enregistré le fichier tantôt en UTF-8 comme recommandé, tantôt en
>> ISO-8859-1, mais le résultat est le même :
>> Alors que la traduction du message "Page %page% of %page...." qui
>> contient un caractère accentué est parfaitement affiché, pour la
>> traduction de "previous", je n'ai rien à l'écran dès lors que j'écris
>> "Précédent" au lieu de "Precedent".
>> Je n'ai rien touché au code généré en standard :
>>
>> <?php echo $paginator->prev('<< '.__('previous', true), array(), null,
>> array('class'=>'disabled'));?>
>>
>> Vu ce qui est écrit, si la traduction de "previous" ne pouvait pas être
>> trouvé, je devrais au moins avoir les deux chevrons affichés. Et bien
>> non : rien, comme si la méthode prev() échouait en silence...
>>
>> J'ai testé si __('previous') fonctionnait bien et me retournait sa
>> traduction : pas de problème. Le hic semble se situer dans prev()
>>
>> Une idée ?
>>
> >
>
>
--~--~---------~--~----~------------~-------~--~----~
Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---