Outils pour utilisateurs

Outils du site


Panneau latéral

ref:phptal:internationalisation

Internationalisation

trans:

A partir de la version 3.5.0.

Le préfixe PHPTal trans permet la traduction de clefs de localisation, pour la langue courante. Il est préféré aux extensions change:translate et change:i18nattr, toujours supportées mais moins puissantes et amenées à disparaitre.

Par défaut, trans utilise le formateur “html”, qui gère l'échappement des caractères pour le contexte HTML : pas besoin de le spécifier. Pour utiliser d'autres formateurs, il suffit de les ajouter en fin de clef, séparés par des virgules.

Exemple : traduction de la clef m.mymodule.fo.mykey, avec le formateur ucf (UpperCaseFirst) :

<p>${trans: m.mymodule.fo.mykey,ucf}</p>

Les paramètres de substitution se transmettent sous la forme <nomParametre>=<valeurParameter>, de la même manière que les formateurs, séparés par des virgules.

Exemple : traduction de la clef m.mymodule.fo.email-sent, avec pour valeur du paramètre “email” le retour de la méthode getEmail() de l'objet user :

<p>${trans: m.mymodule.fo.email-sent,ucf,email=user/getEmail}</p>

Ainsi, si m.mymodule.fo.email-sent vaut “Une confirmation a été envoyée à l'adresse {email}” et getEmail() retourne “johndoe@rbschange.fr”, le code précédent génèrera :

<p>Une confirmation a été envoyée à l'adresse johndoe@rbschange.fr</p>

Pour plus d'informations, consultez internationalisation de l'interface.

Cas des attributs XML

Si trans: est utilisé pour définir la valeur d'un attribut XML, il faut utiliser le formateur attr :

<input type="submit" value="${trans: m.mymodule.fo.send,attr}" />

Cas du Javascript

Si trans: est utilisé pour définir la valeur d'une chaîne Javascript le formateur js :

<script type="text/javascript">
var myString = "${trans: m.mymodule.fo.send,js}";
</script>

change:translate

Déprécié en version 3.5.0 au profit du mot-clé trans:.

change:translate définit le contenu de la balise à partir de clefs de localisation (en utilisant la langue courante) :

Paragraphe dont le contenu vaut la locale “modules.monmodule.frontoffice.maclef” :

<p change:translate="modules.monmodule.frontoffice.maclef">Contenu remplacé par la locale utilisée</p>

Si la clef de locale contient des substitutions, il suffit de renseigner le paramètre y correspondant. Ainsi, avec :

  • modules.monmodule.frontoffice.maclef = “Agir sur '{label}'”
  • $mydoc→getLabel() = “mon document”

Le gabarit suivant :

<p change:translate="modules.monmodule.frontoffice.maclef; label mydoc/getLabel">Agir sur le document XXX</p>

Donnera le résultat :

<p>Agir sur 'mon document'</p>

change:i18nattr

Déprécié en version 3.5.0 au profit du mot-clé trans:.

change:i18nattr permet de renseigner un attribut avec la valeur d'une clef de localisation

Renseigner l'attribut title avec la locale “modules.monmodule.frontoffice.maclef” et l'attribut alt avec “modules.monmodule.frontoffice.monautreclef” :

<a change:i18nattr="title &modules.monmodule.frontoffice.maclef;; alt &modules.monmodule.frontoffice.monautreclef;" />

Tout comme pour change:translate, les substitutions sont possibles.

Renseigner l'attribut title avec la locale “modules.monmodule.frontoffice.maclef” et l'attribut alt avec “modules.monmodule.frontoffice.monautreclef”, en y substituant “label” par le libellé du document “mydoc” :

Exemple :

<a change:i18nattr="title[label] mydoc/getLabel; title &modules.monmodule.frontoffice.maclef;; alt[label] mydoc/getLabel; alt &modules.monmodule.frontoffice.monautreclef;;" />
ref/phptal/internationalisation.txt · Dernière modification: 2017/01/19 14:54 (modification externe)