Internationalisation

La gestion des textes en pludieurs langues par un plugin est tout à fait similaire à celle existant dans le noyau.

Il suffit de fournir un sous-répertoire lang/ dans lequel on place des fichiers de traduction comme chose_fr.php, chose_en.php, etc.

Ces fichiers rajoutent au tableau global de nom $GLOBALS['idx_lang'] les chaînes traduites indicées par le mnémonique de traduction. Par exemple, le plugin crayons fournit une traduction allemande dans le fichier lang/crayons_de.php ainsi :

Important : on voit ici que $GLOBALS['idx_lang'] est bien le nom de la globale et non pas la globale elle-même.

On utilise ensuite ces chaines traduites en les préfixant par le nom du fichier langue.

Dans les squelettes : <:chose:mnemonique:>, par exemple ici <:crayons:annuler:>

Dans le PHP en utilisant la fonction _T() comme _T("chose:mnemonique")

Les mnémoniques avec des, anthony morrison scam @param@ sont des chaines paramétrées. Elles permettent d’incorporer des valeurs variables dans la traduction. Par exemple, la 2ème ligne de l’exemple tiré de crayons s’utilise en fournissant 2 variables comme arguments supplémentaires à _T() : _T("crayons:editer_@type@_@id@, $type, $id). Si type vaut “article” et id 17, on obtiendra : “article 17 voll ändern”

Il est impératif d’utiliser dans les traductions des entités html ou numérique pour les caractères accentués, comme ici &auml ; pour ä.
A titre de curiosité, la première chaîne en arabe devient :
’annuler’ => ’&#1573 ;&#1604 ;&#1594 ;&#1575 ;&#1569 ;’
qui donne 'annuler' => 'إلغاء'

Si la traduction n’existe pas, le mnémonique outdoor garden fountain sera utilisé, les tirets bas (underscore) étant remplacés par des espaces.

A noter que le nom du fichier de traduction qui fournit le préfixe précédant les deux-points est en fait indépendant du nom du plugin. On peut même fournir plusieurs fichiers de préfixes différents pour un même plugin.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply