Hello,

En regardant de plus près, on peut faire encore plus de choses que je
ne l'imaginais dans le sfGuardUserFormFilter si on veut tout mettre
dans le catalogue de traduction.

Pour l'empty_label, on le déclare dans le catalogue de traduction, et
on force la traduction :

                $this->getWidget('username')->setOption('empty_label', $this-
>widgetSchema->getFormFormatter()->translate($this->getWidget
('username')->getOption('empty_label')));

Pour les date range, on redéfinit l'ordre des champs dans le template

                
$this->getWidget('last_login')->getOption('from_date')->setOption
('format','%day% %month% %year%') ;
                $this->getWidget('last_login')->getOption('to_date')->setOption
('format','%day% %month% %year%') ;

On force ensuite la traduction de la manière suivante :

                $this->getWidget('last_login')->setOption('template','from 
%from_date
% to %to_date%') ;

$this->getWidget('last_login')->setOption('template',$this-
>widgetSchema->getFormFormatter()->translate($this->getWidget
('last_login')->getOption('template'))) ;

Notez la première ligne qui est obligatoire car, par défaut, il y a un
<br> qui n'est pas supporté dans le catalogue de traductions.

Pour rendre cela encore plus joli, il faudrait probablement rajouter
des fonctions au sfGuardUserFormFilter. Or ces fonctions, on pourrait
en voir besoin dans d'autres objets de type filters.

Je me verrais bien aller jeter mon dévolu sur
BaseFormFilterDoctrine.class.php dans /lib/filter pour ses fonctions
de forçage de traductions. Est-ce que cela vous semble cohérent, ou
bien m'égare-je ?

Merci d'avance pour toute réponse. ;-)

@+

NicoD.

On 17 mar, 13:54, Nicolas Deguine <[email protected]> wrote:
> Bonjour,
>
> Effectivement, ta solution fonctionne.
>
> Je suis d'accord avec toi sur le fait que ce n'est pas élégant. Dans mon cas
> particulier, cela sera bien suffisant. Je voulais tester l'internationaliser
> jusqu'au bout.
>
> A priori, pour faire une jolie internationalisation dans les filtres d'un
> admin generator, il faudra peut-être directement overrider les partials
> générant les filtres.
>
> La prise en compte de l'I18n des filtres de l'admin generator sera peut-être
> une prochaine évolution, qui sait ?
>
> @+ et encore merci.
>
> NicoD.
>
> Le 16 mars 2009 13:22, Tanguy Le Meur <[email protected]> a écrit :
>
>
>
> > Voici ce que j'ai fait :
> > Dans la classe du formulaire de filtre, dans le configure() :
> > $this->getWidget('nom')->setOption('empty_label', 'vide ?');
>
> > C'est court et ça fonctionne bien. Donc tu peux utiliser. Le soucis
> > c'est que je trouve ça un peu bof. Pourquoi ne pas utiliser l'i18n ?
> > Comment changer pour tous les champs d'un coup d'un seul ?
>
> > Il semblerait que ces champs aient été oublié de l'i18n !
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à