Communauté Elgg francophone

Créer un compteAide  
Connexion
Traductions et multilinguisme
Tout savoir sur les traductions d'Elgg et des plugins, partage de traductions, trucs et astuces et multilinguisme

Navigation

Aucune page wiki créé pour l'instant

Comment créer ou 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\"."

Commentaires

  • Florian DANIEL ~ Facyla le 16 janvier 2014

    Une réponse au message reçu :

    J'ai lu votre artcile https://elggfrance.inria.fr/pages/view/20168/comment-creer-ou-modifier-des-traductions . J'ai téléchargé le plugin calendar à cette adresse https://github.com/kevinjardine/Elgg-Event-Calendar

    Cependant je ne parviens pas a le traduire en francais ! J'ai bien lu votre article et un fichier "fr.php" se trouve dans le dossier languages de event_calendar je n'ai donc pas à en créer un si j'ai bien compris... Cependant je ne sais pas comment l'utiliser

    Pourriez-vous m'aider ?

    Il s'agit bien de modifier ce fichier, mais aussi de vérifier que dans les réglages du compte utilisateur la langue choisie est bien le français.

    Une erreur dans le fichier de langue peut aussi poser problème : ça peut aller très vite, lorsqu'on se trompe de guillemet utilisé (pour cette raison, en français, j'utilise plutôt les guillemets doubles pour les traductions, ça permet d'éviter les erreurs dues aux apostrophes...

    Enfin, lorsqu'on utilise le plugin translation_manager, celui-ci prend le pas sur la traduction faite dans les fichiers.

    Est-ce que ça vous aide à résoudre le problème de traduction ?   Il y a peut-être d'autres raisons mais il me faudrait plus d'infos sur el contexte d'utilisation si ça ne fonctionne toujours pas  :)

    Bonne journée

  • Alex le 22 janvier 2014

    Bonjour ,

    Merci pour votre réponse ! J'ai été très pris et n'ai pas eu le temps de vous répondre avant désolé! La langue choisit est bien le français , en effet tout le reste est en francais .

    Dans le fichier "fr.php" que j'ai téléchargé il n'y a que des quotes (guillemets simple) et non pas des guillemets double .


    Je n'utilise pas ce plugin donc le problème ne peut pas venir de là .

    J'ai remarqué quelque chose d'étrange c'est que quand je change la langue dans l'admistration et que je choisis "english" le site reste quand même en francais !!

    En fait , j'ai un fichier "fr.php" et "en.php"(celui de base) dans "elgg-1.8.18\languages" c'est grâce au fichier "fr.php" que l'ensemble du site à été traduit en francais ! Ensuite j'ai téléchargé le plugin calendar dans lequel se trouve un fichier "fr.php" , "en.php" , "es.php" dans "elgg-1.8.18\mod\event_calendar\languages"

    Peut-être que cette précision vous permettra de mieux m'aider !

    Je vous remercie pour votre aide en tout cas ;)

    Bonne journée

  • Florian DANIEL ~ Facyla le 22 janvier 2014

    Bonjour,

    J'ai remarqué quelque chose d'étrange c'est que quand je change la langue dans l'admistration et que je choisis "english" le site reste quand même en francais !!

    Oui c'est "normal", le réglage est à 2 niveaux :

    1. Site => langue en mode public et pour tous les nouveaux membres
    2. Pour chaque membre => choix de la langue via ses Paramètres personnels

     

    Le fichier fr.php "principal" gère toutes les traductions du site, mais chaque plugin dispose des siennes propres, qui complète les traductions pour les nouvelles fonctionnalités qu'il apporte.

    Il arrive parfois que certaines traductions soient incomplètes : dans ce cas certains élémnets sont traduits, mais pas d'autres.Translation_manager permet justement de bien repérer ces chaines manquantes et facilite la traduction.

    Si rien de ce qui est lié aux événements ne s'affiche en français, il y a sans doute une erreur sur le fichier de traduction du plugin. Dans ce cas vous pouvez essayer celui-ci à la place : https://github.com/Facyla/esope/blob/master/mod/event_calendar/languages/fr.php

    Une autre piste est de regarder ce qu'il y a dans les logs d'erreur d'apache, pour voir s'il y a une erreur repérable au niveau de la traduction...

    Bonne recherche !

  • Alex le 22 janvier 2014

    J'ai finalement réussis à faire la traduction j'ai du supprimer une balise "?>" qui semblait être de trop dans le fichier "fr.php" . Puis j'ai effectué les modifs dans le fichier "en.php" et avant d'enregistrer j'ai vider le cache c'est très important !!! Le texte s'affiche maintenant en francais je n'ai pas trop comprit comment mais ça fonctionne c'est le principal ! Merci de m'avoir mit sur la piste ;)

  • Florian DANIEL ~ Facyla le 22 janvier 2014

    Effectivement, quand on change quoi que ce soit sur le site (dans les fichiers), il vaut mieux désactiver les 2 caches, ou vider le cache (et lorsqu'on ajoute des fichiers, faire un "upgrade")