Usages avancés : comment aller plus loin avec les traductions ?

Des tableaux PHP

Les fichiers de langues sont des fichiers PHP : on peut donc utiliser des variables dedans..

Ce sont aussi des tableaux qui utilisent un système de clefs.

 

L'utilisation de sprintf et de %s

Les jokers %s renvoient à l'utilisation de la fonction php sprintf(), et peuvent donc être avantageusement remplacés par un code qui indique quelle variable utiliser, au lieu de les utiliser une seule fois dans l'ordre ; on utilise pour cela %1$s et suivants :

en version de base :

'clef:exemple:inversion_variables' => "%s a écrit %s",   // 1er %s = Utilisateur, et 2e %s = Titre de l'article

 

en version améliorée :

'clef:exemple:inversion_variables' => "%1\$s a écrit %2\$s",   // %1\$s = Utilisateur, et %2\$s = Titre de l'article

qui produit par ex.: Mark a écrit Bienvenue sur le réseau !  (même rendu)

ou :

'clef:exemple:inversion_variables' => "%2\$s (rédigé par %1\$s)",   // %1\$s = Utilisateur, et %2\$s = Titre de l'article

qui donne cette fois : Bienvenue sur le réseau ! (rédigé par Mark)   (inversion de l'ordre des variables)

Cela permet aussi de placer plusieurs fois un même élément..

 

L'intérêt principal concerne bien évidemment les messages d'invitation, et toutes les notifications automatiques par mail  ;)

 

Cascade inversée

L'ordre de préséance des traductions est inverse de celle des plugins : premier chargé, premier servi (les traductions du core prennet le pas sur celles du dernier plugin).