J'utilise Locale::TextDomain dans un environnement Dancer avec Template-Toolkit.Comment créer des ROOT_OPS spéciaux dans Template-Toolkit?
Et oui, je connais Dancer-Plugin-I18N et l'ai essayé, mais je ne veux pas l'utiliser! J'ai lu Defining_Custom_Virtual_Methods et l'ai ajusté à mes besoins.
# load Template::Stash to make method tables visible
use Template::Stash;
$Template::Stash::ROOT_OPS->{ 'localize' } = sub {
return __(shift);
};
et en vue
[% localize("Hello") %]
Cela fonctionne très bien.
Mais je voudrais WRAPP tous les Locale::TextDomain functions comme:
$Template::Stash::ROOT_OPS->{__} = sub { return __x(shift) };
$Template::Stash::ROOT_OPS->{__x} = sub { return __x(shift, @_) };
$Template::Stash::ROOT_OPS->{__n} = sub { return __n(shift, shift, shift) };
$Template::Stash::ROOT_OPS->{__nx} = sub { return __nx(shift, shift, shift, @_) };
$Template::Stash::ROOT_OPS->{__xn} = sub { return __xn(shift, shift, shift, @_) };
$Template::Stash::ROOT_OPS->{__p} = sub { return __p(shift, shift) };
$Template::Stash::ROOT_OPS->{__px} = sub { return __px(shift, shift, @_) };
$Template::Stash::ROOT_OPS->{__np} = sub { return __np(shift, shift, shift, shift) };
$Template::Stash::ROOT_OPS->{__npx} = sub { return __npx(shift, shift, shift, shift, @_) };
mais malheureusement il est impossible l'utilisation « __ » ou « __x » comme jeton. Donc, ma question: Comment créer des opérations root '__' (et friends) dans Template-Toolkit?
Génial. Maintenant, j'ai lu à ce sujet dans http://www.template-toolkit.org/docs/manual/Variables.html. Doit l'avoir manqué. Merci. – smartmeta