Comment créer/modifier des traductions ?

Il existe plusieurs manières de créer ou de modifier les traductions, selon 2 principaux schémas :

 

Directement sur le site, via un plugin de traduction, par exemple "Translation Browser" ou "Translation editor"

Cette méthode permet de traduire plus ou moins "en contexte", et présente certains avantages de ce fait, toutefois elle peut poser des problèmes de sécurité sur des sites en production, est susceptible d'occasionner des pertes d'informations (les chaînes traduites étant perdues suite à une déconnexion ou autre), et peut ajouter de nouvelles difficultés selon les serveurs (pour des questions de droits d'accès au fichier via FTP notamment). Je ne la détaillerai donc pas ici.

 

Méthode standard, en modifiant directement les fichier de langues :

  1. récupérer le fichier "source" à traduire, généralement un fichier en.php (version anglaise)
  2. le dupliquer, et renommer la copie en fr.php
  3. l'éditer : il s'agit d'abord de modifier 3 courtes chaînes
    • en début de fichier :

    $english = array(

    devient :

    $french = array(

    • en fin de fichier :
    add_translation('en', $english);

    devient :

    add_translation('fr', $french);
  4. puis le gros du travail consiste à modifier chacune des chaînes, sans toucher aux clefs, en faisant attention aux délimiteurs de chaîne de texte " ou ', ainsi qu'aux codes d'échappement \ et aux jokers %s. Le principe est de ne jamais toucher aux clefs (celles-ci servent à identifier, dans le code, les endroits où insérer les traductions), mais seulement à la chaîne de caractères qui suit => et est entre guillemets simples ou doubles :

    'clef' => "Chaîne de caractères (= la traduction)",

  5. enfin, enregistrer cette nouvelle version, et la tester sur le site : il faut souvent quelques aller-retours pour affiner les traductions !
  6. partager ces efforts auprès de la communauté : cela intéresse tout le monde, et permet d'améliorer les versions francophones d'Elgg et des plugins  !~)

 

Notes et conseils :

  • contrairement à l'anglais, le français use de nombreuses apostrophes, aussi est-il généralement recommandé de préférer les guillemets doubles aux guillets simples dans les traductions, pour éviter de "terminer" la chaîne plus tôt que prévu, ou d'avoir à insérer systématiquement des antislashs \ :

'username'  =>  'User name',   // version EN

'username'  =>  'Nom d\'utilisateur',   // version FR ave guillemets simples (et antislash)

'username'  =>  "Nom d'utilisateur",   // version FR avec guillemets doubles (plus simple)

  • les caractères %s servent à remplacer des variables définies dans le code du système ou des plugins : ils sont utilisés pour permettre de changer l'ordre de certains éléments et d'améliorer le rendu des traductions :

'profile:user'  =>  "%s's profile",   // ex.: Mark's profile

'profile:user'  =>  "Le profil de %s",   // ex.: Le profil de Mark

  • lorsqu'on utilise des guillemets ou apostrophes, selon le type de délimiteur choisi, il faut penser à échapper le type de guillemet avec un antislash :

'J\'utilise des guillemets simples dits "guillemets typographique anglais".'

"J'utilise des guillemets doubles dits \"guillemets typographique français\"."