Codes de langue variables ?

Bonjour,

J'ai vu qu'on pouvait mettre des paramètres dans ces codes de langue, du style <:code_de_langue{param=valeur}:>. Ce qui ressemble un peu au vsprintf de PHP.

Mais j'ai besoin aussi de codes de langue variable. Par exemple pour afficher les noms des pays à partir de codes pays. J'ai des codes pays dans ma base de données, qui permettent donc d'indiquer les pays quelque soit la langue du site. Mais il faut ensuite les afficher dans la langue du site.

J'ai essayé <:code_pays_#PAYS:> avec dans local_fr.php :
"code_pays_fr" => "France",
"code_pays_de" => "Allemagne"
...

Mais on ne peut pas indiquer de balise dans les codes de langue.

J'ai essayé avec un filtre, par exemple [(#PAYS|code_pays{#LANG})]. Le pb est que j'aurai des codes de langue dans local_xx.php et dans mes_fonctions.php ou même dans squelette_fonctions.php. Alors qu'il serait préférable - pour les traducteurs - que tous les codes de langue se trouvent dans un seul et même fichier.

Finalement, j'ai trouvé la soluce (donc ce post sert juste d'aide au cas où ça intéresse qqn en faisant une recherche un jour). Grâce à http://programmer.spip.org/Codes-de-langue-en-PHP (merci Matthieu Marcillaud).

function code_langue_variable($variable, $code_langue) {
     return _T($code_langue . $variable);
}

Evidemment, ça nécessite que la partie variable se trouve en bout de code de langue, qu'il n'y ait pas dexceptions... Mais bon ça peut fonctionner dans le cas général. Sinon il faut un filtre spécifique, mais tout en conservant les codes de langue dans local_xx.php :

function mon_filtre($variable) {
     if ($variable == 'X') return null;
     else return _T('mon_code_langue_' . $variable);
}

Voilà. Bonne nuit,

Bernard