toutmulti:description

Bonjour,

Je traduis le module couteauprive, et je tombe sur ce texte qui fait parti de la chaîne toutmulti:description :

Cet outil accepte également les arguments. Par exemple, le raccourci <code><:chaine{arg1=un texte, arg2=un autre texte}:></code> permet de passer deux paramètres à la chaîne suivante : <code>'chaine'=>'Voici mes arguments : @arg1@ et @arg2@'</code>.$
$
La fonction SPIP utilisée est alors : <code>_T('chaine', array('arg1'=>'un texte', 'arg2'=>'un autre texte'))</code>.$
$

et je n'y comprends presque rien. Est-ce que quelqu'un peut me donner un exemple d'utilisation ?

Paolo

S'lt

Si je ne m'abuse, cela fait partie des nouveautés de SPIP 2.

Tu peux utiliser dans un chaine multi des arguments qui ne seront pas traduit.
Soit dans un squelette :
<:nbarticles{#COMPTEUR_BOUCLE}>

dans lang/***.php
'nbarticles' => 'Nous avons @arg1@ articles';

dans un code php quelconques (plugins, ...)
$nb = 5;
_T('nbarticles',array('arg1' => $nb));

Est ce ce que cela t'aide ?

Patrice Vanneufville wrote:

Par exemple, si on définit une chaine de langue comme ceci :
        dans local_en.php : 'hello' => 'Hello world, my name is @name@ !',
        dans local_fr.php : 'hello' => 'Bonjour le monde, je m'appelle @name@ !',
        etc.
Eh bien le raccourcis <:hello{name=Patrice}:> dans un texte provoquera l'affichage de la chaine dans la langue en cours où la variable @name@ aura été remplacée par 'Patrice'.

Ah d'accord, pigé ! Merci.
C'est surtout l'utilisation de "arg1" et "arg2" comme exemples qui m'a trompé. Je pensais que c'était obligatoire d'utiliser ces mots.
Je dirais peut-être des « variables » plutôt que des « arguments » dans l'explication?

Paolo

C'est ce que j'ai fait en anglais :

$
User variables can also be added to the shortcuts. For example, <code><:a_text{name=John, tel=2563}:></code> makes it possible to pass the values to the SPIP language file: <code>'a_text'=>'Please contact @name@, the administrator on @tel@.</code>.$
$
In this case, the SPIP function used is: <code>_T('a_text', array('var1'=>'first text', 'var2'=>'second text', ...))</code>.$
$

- - -

L'intérêt de la chose est limité à des textes statiques, n'est-ce pas ?
C'est à dire, dans un squelette, je ne peux pas mettre :
<:mon_texte{nom=#GET{ma_variable}}:>
je pense ?

Paolo

Patrice Vanneufville wrote:

D'accord,
Ce terme tiré des arguments d'une fonction...
Je pense qu'il faudrait changer l'exemple et mettre qq de plus parlant à la place :
        'ma_chaine'=>"Je m'appelle @nom@ et j'ai @age@ ans."
Ca serait plus explicite, non ?
Pat

At 21:46 26/10/2008, Paolo wrote:

Patrice Vanneufville wrote:

Par exemple, si on définit une chaine de langue comme ceci :
        dans local_en.php : 'hello' => 'Hello world, my name is @name@ !',
        dans local_fr.php : 'hello' => 'Bonjour le monde, je m'appelle @name@ !',
        etc.
Eh bien le raccourcis <:hello{name=Patrice}:> dans un texte provoquera l'affichage de la chaine dans la langue en cours où la variable @name@ aura été remplacée par 'Patrice'.

Ah d'accord, pigé ! Merci.
C'est surtout l'utilisation de "arg1" et "arg2" comme exemples qui m'a trompé. Je pensais que c'était obligatoire d'utiliser ces mots.
Je dirais peut-être des « variables » plutôt que des « arguments » dans l'explication?

Paolo

Paolo a écrit :

C'est ce que j'ai fait en anglais :

$
User variables can also be added to the shortcuts. For example, <code><:a_text{name=John, tel=2563}:></code> makes it possible to pass the values to the SPIP language file: <code>'a_text'=>'Please contact @name@, the administrator on @tel@.</code>.$
$
In this case, the SPIP function used is: <code>_T('a_text', array('var1'=>'first text', 'var2'=>'second text', ...))</code>.$
$

- - -

L'intérêt de la chose est limité à des textes statiques, n'est-ce pas ?
C'est à dire, dans un squelette, je ne peux pas mettre :
<:mon_texte{nom=#GET{ma_variable}}:>
je pense ?

normalement si, #GET, #ENV, n'importe quelle balise (sans doute meme avec filtre)