1. Page d'accueil
  2. Documentation
  3. Guides

Localisation du plugin

Dans un souci d'internationalisation, il est demandé aux développeurs d'utiliser l'anglais pour l'écriture des textes de l'interface du plugin. Ce sera ainsi la langue par défaut lorsqu'un utilisateur ne disposera pas d'une version localisée, c'est à dire traduite dans sa langue.

La gestion des dictionnaires de traductions se fait par l'intermédiaire de fichiers .lang, placés dans des sous répertoires de /locale , ces derniers étant nommés en fonction du code ISO du pays à deux lettres.

Pour faciliter la mise en place de ce procédé, deux outils sont disponibles, l'un pour prendre en charge la traduction de l'interface, l'autre pour traiter le fichier .lang correspondant.

Le fichier .lang

La structure du fichier est simple : deux lignes d'entête puis les traductions.

Voici en exemple un extrait de info.lang :

# -*- coding: iso-8859-1 -*-
# (C) 2004 Loïc d'Anterroches, Cédric Arrabie
;Information
Informations

;General information
Informations générales

La première ligne contient la déclaration de l'encodage du fichier. Il est important de bien le déterminer sans quoi des problèmes d'affichage pourraient survenir. Si vous devez manipuler une traduction qui ne serait pas encodée en ISO-8859-1 ou UTF-8, il faudrait alors placer le fichier .lang dans un sous répertoire nommé en "XX_src" et utiliser l'outil getlocale.php pour le convertir. Ceci parce que PHP manipule seulement ces deux encodages par défaut.

La deuxième ligne concerne les droits d'auteur, puis viennent les traductions, réparties en bloc de trois lignes :

Fonction de localisation

Le travail de traduction est pris en charge par la fonction particulière __().

Si par exemple vous souhaitez afficher "Bonjour tout le monde !" en français, il suffit d'écrire dans votre script :

<?php echo __('Hello world!'); ?>

Puis, après avoir crée dans l'arborescence de votre plugin un sous-répertoire nommé fr, de simplement placer dans le fichier nom_du_plugin.lang la traduction correspondante, disposée selon la structure expliquée précédemment.

;Hello world!
Bonjour tout le monde&nbsp;!

Dès lors, chaque utilisateur ayant configuré son manageur sur "français" pourra admirer votre prose dans la langue de Molière.

A chaque appel, la fonction __() viendra chercher dans le fichier .lang, parmi toutes les lignes commençant par un point-virgule (";"), la correspondance exacte pour en extraire la chaîne associée.

L'outil getlocale.php

�tant donné qu'il peut être fastidieux tant de générer que de mettre à jour le fichier .lang, un script, "getlocale.php" est fourni pour en faciliter la maintenance. Disponible dans le répertoire /manager, il ne peut, pour des raisons de sécurité, qu'être utilisé en local (127.0.0.1 ou localhost).

Utilisation de getlocale.php

Ce sont les paramètres passés au script lors de son appel qui vont spécifier l'action à effectuer.

getlocale.php?w=pluginname&l=(fr|dk|sk_src|...)[&c=1]

Prenons l'exemple de la création du fichier mon_plugin.lang, traduction française pour le plugin nommé mon_plugin.

  1. Créer le répertoire /manager/tools/mon_plugin/locale/fr/
  2. Par l'intermédiaire du navigateur, lancer le script
    getlocale.php?w=mon_plugin&l=fr ( le "l" est la minuscule de "L")

Ceci générera le fichier mon_plugin.lang, contenant toutes les chaînes trouvées dans les fichiers .php et .xml du répertoire du plugin. Il ne restera plus qu'à éditer ce fichier et effectuer les traductions.

Si il s'agit d'une mise à jour, le script créera, si elle n'existe pas, une sauvegarde de la forme .lang.back, ajoutera les nouvelles chaînes et mettra sous la forme de commentaires en fin du fichier celles devenues obsolètes.

Conversion de XX_src vers XX

Une fois le fichier .lang constitué dans un répertoire XX_src, la conversion s'effectue de la même manière que précédemment, mais avec le paramètre optionnel &c=1, ce qui créera le répertoire XX correspondant et y placera la traduction encodée en UTF8.

Pages

  1. Introduction
  2. Structure d'un plugin
  3. Localisation du plugin
  4. Outils de rendu HTML
  5. Variables accessibles

Partagez vos idées sur cet article.

Retour en haut de page