iGalerie

Vous n'êtes pas identifié(e).

#1 06-12-2010 15:51:42

David
Développeur d'iGalerie
Inscription : 12-05-2006
Messages : 3 975
Site Web

Comment traduire iGalerie ?

Depuis iGalerie 2.0, il est désormais possible de traduire l'application dans d'autres langues. Dans ce qui suit, nous allons détailler la procédure à suivre pour y parvenir.

---

Sommaire

1 - Répertoires et fichiers de langue
1.1 - Fichiers d'aide contextuelle
1.2 - Fichier de langue principal
1.3 - Fichier lang.php
2 - Icône de langue
3 - Proposer une nouvelle langue
4 - Installer une langue

---

1 - Répertoires et fichiers de langue

Tout d'abord, sachez que les fichiers de langue se trouvent dans un répertoire de langue lui-même situé dans le répertoire "locale" d'iGalerie. Le répertoire de langue doit être composé de 5 caractères, qui correspondent au code de langue. Exemples :

en_GB
fr_FR
it_IT

Les deux premiers caractères constituent le code de langue proprement dit, par exemple "fr" pour le français, "it" pour l'italien, etc. Ils doivent toujours être écrits en minuscules et correspondre à la norme ISO 639. Les deux derniers caractères correspondent au code pays. Le code "en_GB" correspond ainsi à l'anglais du Royaume-Uni tandis que "en_US" correspond à l'anglais des États-Unis. Ce code de pays doit toujours être écrit en majuscule et séparé du code de langue par un caractères souligné (_). Le code pays doit correspondre à la norme ISO 3166-1 alpha-2.

Analysons maintenant le contenu d'un répertoire de langue :

fr_FR
   |- help
      |- comments_options.html
      |- ftp .html
      |- functions.html
      |- options_blacklists.html
      |- options_gallery.html
      |- options_images.html
      |- sort_album.html
      |- sort_category.html
      |- themes.html
      |- watermark.html
      |- widget_image.html
   |- igalerie.php
   |- lang.php

Pour créer une nouvelle langue, il suffit donc de copier-coller le contenu de ce répertoire dans un autre répertoire de langue, puis d'effectuer la traduction de ces fichiers que nous allons à présent détailler.


1.1 - Fichiers d'aide contextuelle

Le répertoire de langue contient un sous-répertoire "help" contenant lui-même plusieurs fichiers HTML. Ces fichiers HTML contiennent le texte des aides contextuelles de la partie d'administration d'iGalerie, c'est à dire le contenu qui s'affiche lorsque l'on clique sur l'icône d'aide. Pour la traduction de ces fichiers, il suffit donc de traduire le texte sans toucher au code HTML de ces fichiers.


1.2 - Fichier de langue principal

Le fichier igalerie.php est le fichier de langue principal, celui qui contient tout le texte de l'application hormis l'aide contextuelle. Pour le traduire, il convient de connaître quelques points essentiels. Tout d'abord, ce fichier contient un peu plus de 1300 mots ou phrases qu'il faudra traduire. Ensuite, chaque ligne de ce fichier (hormis la première et la dernière qui correspondent aux tags PHP) contient un texte présent dans un ou plusieurs fichiers d'iGalerie. Par exemple :

$L10N["Options d'affichage"] = "";

Pour traduire ce texte, il suffit simplement de mettre le texte traduit entre les guillemets situés à droite du signe =. Par exemple, pour le français, cela donnerait :

$L10N["Options d'affichage"] = "Options d'affichage";

Évidemment, comme le texte est déjà en français, cela est inutile. Et c'est là qu'il faut comprendre un point important : s'il n'y a rien entre les guillemets situés à droite du signe =, c'est le texte original qui sera utilisé à la place. Voilà pourquoi le fichier de langue pour le français ne contient aucun texte situé à droite du signe =, à quelques exceptions près. La première exception concerne des mots qui, dans iGalerie, ne sont pas en français et correspondent aux mois et jours de la semaine, comme par exemple :

$L10N["Jan"] = "jan";
$L10N["January"] = "janvier";
$L10N["Mon"] = "lun";
$L10N["Monday"] = "lundi";

Vous devrez bien sûr aussi traduire ces mots.

Les deux autres exceptions sont celles-ci :

$L10N["Hauteur :"] = "H :";
$L10N["Largeur :"] = "L :";

Ils correspondent aux abréviations des mots "Hauteur" et "Largeur" utilisés notamment dans le widget "Options d'affichage". En anglais, par exemple, il faudra donc mettre ceci :

$L10N["Hauteur :"] = "H :";
$L10N["Largeur :"] = "W :";

C'est à dire "H" pour "Height" et "W" pour "Width".


Textes à variables

Certains textes à traduire contiennent les caractères "%s", comme ici :

$L10N["%s commentaires"] = "";

Ces caractères seront remplacés au moment de l'affichage par une valeur variable, comme "3 commentaires" ou "15 commentaires" par exemple. Il convient donc de ne pas les modifier mais d'en tenir compte pour la traduction en imaginant la valeur qu'ils peuvent prendre. Pour la traduction anglaise, cela donnerait donc :

$L10N["%s commentaires"] = "%s comments";

Certains textes contiennent plusieurs de ces "variables", comme par exemple :

$L10N["Classement des %s images %s de %s"] = "";

Lequel pourra afficher quelque chose du genre :

Classement des 42 images de moins de 7 jours de la catégorie nature

Les deuxième et troisième %s de ce texte peuvent donc être remplacés par d'autres textes localisés :

$L10N["de moins de %s jours"] = "";
$L10N["la catégorie %s"] = "";

Dates

Enfin, certains textes à traduire correspondent en fait à des formats de dates. Ce sont les 6 premiers du fichier igalerie.php :

$L10N["%A %d %B %Y à %H:%M:%S"] = "";
$L10N["%A %d %B %Y"] = "";
$L10N["%A %d"] = "";
$L10N["%B %Y"] = "";
$L10N["%d %B %Y"] = "";
$L10N["%H:%M:%S"] = "";

Pour savoir à quoi correspond chaque caractère, vous pouvez vous reporter à la documentation de PHP : http://fr.php.net/manual/fr/function.strftime.php.


1.3 - Fichier lang.php

Ce dernier fichier est le plus simple puisqu'il contient juste le nom de la langue qui s'affichera dans l'interface d'iGalerie :

<?php
$name = 'Français';
?>

Vous devez donc remplacer "Français" par le nom de la langue dans cette langue, par exemple "English" pour l'anglais.


2 - Icône de langue

La dernière chose à faire pour créer une nouvelle langue est de créer une icône de langue. Pour cela, vous devez utiliser une icône issue de ce jeu d'icônes et la placer dans le répertoire "images/flags" en la renommant avec le code de langue utilisé par iGalerie, comme par exemple "fr_FR.png" pour le français. L'extension du fichier doit toujours être ".png".


3 - Proposer une nouvelle langue

Si vous souhaitez proposer une langue à la communauté d'iGalerie, vous devrez créer une archive .zip contenant l'arborescence suivante :

locale
   |- it_IT
      |- help
         |- comments_options.html
         |- ftp .html
         |- functions.html
         |- options_blacklists.html
         |- options_gallery.html
         |- options_images.html
         |- sort_album.html
         |- sort_category.html
         |- themes.html
         |- watermark.html
         |- widget_image.html
      |- igalerie.php
      |- lang.php
      |- readme.txt (facultatif)
images
   |- flags
      |- it_IT.png

De façon à ce que l'on puisse installer une nouvelle langue en effectuant un simple copier-coller dans le répertoire d'iGalerie. Il faudra également nommer l'archive avec le code de langue d'iGalerie, par exemple "it_IT.zip". Vous pouvez également placer un fichier "readme.txt" dans le répertoire de langue afin d'y placer d'éventuels commentaires et informations (comme votre nom, votre site Web, etc.).

Une fois l'archive prête, il vous suffit de me l'envoyer par mail à l'adresse "contact AT igalerie DOT org", en spécifiant :

* La version exacte d'iGalerie.
* Votre nom ou pseudonyme.
* Et éventuellement votre site Web.

Ces informations seront affichées dans ce forum.


4 - Installer une langue

Pour installer une nouvelle langue, il faut copier-coller le contenu d'une archive de langue dans le répertoire d'iGalerie, puis installer la langue dans la partie "langues" de la section Options / Galerie de la partie d'administration.

Hors ligne

Pied de page des forums