Jump to content

Traduction + Smarty modifiers


Enisséo

Recommended Posts

Bonjour,

J'ai besoin d'un système de traduction qui puisse alimenter une fonction de formatage. Par exemple, pouvoir traduire "Hello, %s!" et ensuite passer en paramètre le nom de l'utilisateur connecté (comme la fonction PHP sprintf()).

Pour cela, j'ai écrit dans mon template :

{l s="Hello, %s!" mod="blockhello}

Je veux donc pouvoir ensuite passer les paramètres. Pour cela, je comptais utiliser les modifiers Smarty :

{l|args:$customerName s="Hello, %s!" mod="blockhello}

. J'ai donc enregistré un modifier appelé args et qui pointe pour le moment vers la fonction sprintf().

Comme la traduction dans l'interface n'est détectée qu'avec un masque de type

{l s=...}

(AdminTranslations:185 entre autres), j'ai donc modifié le masque pour avoir :

$tplRegex = '/\{l(?:\|(?:\'(?:\\\.|[^\\\'])*\'|"(?:\\\.|[^\\"])*"|[^\'"\s])*)? s=\''._PS_TRANS_PATTERN_.'\'( mod=\'.+\')?( js=1)?\}/U';


Et ce pour les autres variables $tplRegex dans le fichier.

Y a-t-il un autre moyen de faire cela ?
Sinon, serait-il possible de prévoir ce même masque dans les prochaines versions de Prestashop ?

Merci d'avance pour vos réponses :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...