par le mot ou la phrase associée dans la langue du blog. Pour ceci, il faut que le plugin dispose d'une traduction dans la langue souhaitée. Vous trouverez ci-dessous le détail des différents fichiers.
==== Organisation des fichiers ====
=== Le dossier locales ===
Nommé **locales**, ce dossier accueille les dossiers contenant les langues vers lesquelles le plugin est traduit. Par exemple il peut contenir :
* un dossier **fr** qui contiendra les fichiers pour la traduction en français
* un dossier **en** qui lui sera pour la version anglaise (facultatif)
* etc.
==== Le fichier main.po ====
Exemple de localisation :
# French translation of DotClear
# Copyright (C) 2006.
# Olivier Meunier , 2006.
#
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
...
#: plugins/maintenance/index.php:74
#, php-format
msgid "Indexing entry %d to %d."
msgstr "Index des billets %d à %d"
...
Les 3 premières lignes contiennent les commentaires du traducteur.
* La langue de traduction,
* La licence associée au fichier,
* Le nom, le mail de l'auteur ainsi que la date de traduction du fichier.
Décomposons ce code pour définir les fonctions de chaque ligne utilisée :
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
Ces deux lignes permettent de définir le format du fichier ainsi que la méthode de codage des caractères. Ici, il est de type texte et utilise l'encodage UTF-8.
(pour plus d'information sur les encodages : [[http://www.w3.org/International/O-HTTP-charset.fr.php|Site du W3C]])
#: plugins/maintenance/index.php:74
Cette ligne indique le fichier dans lequel est appelé la traduction et à quelle ligne elle est appelée.
Si il y a plusieurs appels d'une même traduction, il suffit d'indiquer toutes les lignes comme dans l'exemple suivant :
#: plugins/maintenance/index.php:87 plugins/maintenance/index.php:111
Si les appels sont nombreux, vous pouvez également utiliser une syntaxe qui tient sur plusieurs lignes, comme dans cet autre exemple :
#: inc//core/class.dc.blog.php:1497 inc//core/class.dc.blog.php:1503
#: inc//core/class.dc.blog.php:1565
msgid "No such comment ID"
msgstr "Identifiant du commentaire inconnu"
Optionnellement, on peut indiquer que la traduction contient des variables PHP :
#, php-format
Dans notre cas, le %d est une variable PHP de type numérique.
msgid "Indexing entry %d to %d."
msgstr "Index des billets %d à %d"
Enfin le mot-clé **msgstr** contient la traduction tant attendue.
Si on regarde dans le fichier index.php comme indiqué, à la ligne 74... heu 77 ;-)
echo ''.sprintf(__('Indexing entry %d to %d.'),$start,$start+$limit).'
';
Voici donc l'appel de la traduction. À la place de "%d to %d", elle contiendra le contenu des variables **$start** et **$start+$limit**.
$GLOBALS['__l10n']['Newsletter'] = 'Lettre d\'informations';