[Topic unique] Polyglot: plugin de traduction en dur pour wordpress

Suite à la migration du forum, chaque utilisateur devra lancer une procédure de réinitialisation du mot de passe pour pouvoir se connecter. Merci !

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 296)
  • Auteur
    Articles
  • #448645

    globule22
    Participant
    Padawan WordPress
    54 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.0.3
    – Thème utilisé : Simpla
    – Plugins en place : Akismet, Custon smileys, WP-Email, Flashfader, Polyglot, WP-Postratings, Text Control, Random Quotes, WordPress 2.0.3 Tuneup, WordPress Database Backup, WP-ContactForm, Tiger Style administration, Reverse order comments, Xinha4WP
    – Nom de l’hebergeur : 1and1

    UPDATE DU 5/05/08:

    Mise à jour wordpress 2.5.1, petits changements:

    La table catégories est tjs gréffée dans la table wp-terms, c’est donc là qu’il faudra éventuellement modifié les noms de catégories si vous voulez les traduire. Par contre j’ai remarqué que la longueur par défaut du champ name était de 55, ce qui risque d’être assez court; j’ai certaines catégories dont le nom était tronqué, et cela posait problème lors du changement de langue sur les articles; j’ai donc monté la veleur varchar(55) à varchar(100).

    FIN UPDATE DU 5/05/08:

    UPDATE DU 5/02/08:

    Mise à jour wordpress 2.3, petits changements:

    Les fichiers de traductions fr_FR.mo et fr_FR.po ont changé de place.
    Ils se trouvaient auparavant ds le répertoire: wp-includes/languages ; ils sont désormais dans le répertoire wp-content/languages .
    Pour ceux qui font un update vers la 2.3, il faut donc ouvrir le fichier fr_FR.po de la version 2.3 avec votre éditeur de texte et lui rajouter les lignes de traductions que vous aviez rajouté à votre version précédente, enregistrez, ouvrir le fichier avec poEdit, générer de nouveau le fichier fr_FR.mo et le placer sur votre serveur.

    La table catégories a disparu et est gréffée dans la table wp-terms, c’est donc là qu’il faudra éventuellement modifié les noms de cat si vous voulez les traduire.

    FIN UPDATE DU 5/02/08:

    Bonjour à tous,

    Je crée ce topic pour regrouper toutes les conversations que l’on pourra avoir sur ce plugin pour wordpress. Je vais détailler la manière dont je l’ai installé et comment il fonctionne, au passage je remercie Jean-Marc qui avait déjà commencer un topic du même style et où il avait bien détaillé la méthode à employer: ICI

    Son exemple de site superbement mieux traduit que le mien: http://www.crorb.org/wordpress

    Pour voir le résultat pour le mien c’est à cette adresse: http://www.photoglob.fr

    Je viens de l’installer hier soir donc tous les articles et pages ne sont pas encore bilingues.

    D’autre part désolé si c’est pas un vrai tutorial avec des images mais je rentre d’un gros festoch de ce weekend et après avoir passer 15h debout à prendre des photos je me sens pas la force de vous faire de beaux screenshots, mais je le ferai plus tard, promis 😉. Par contre si quelqu’un veut en ajouter qu’il post une réponse, ça améliorera ce topic.

    Fonctionnement:

    Alors ce plugin une fois installé et configuré permet de traduire en dur votre blog, je dis bien en dur car les autres plugins fonctionnent sur un service de traduction du genre google ou babelfish, pas super performant à mon avis. Il existe un autre plugin YammYamm mais il ne répondait pas à mes attentes en terme de traduction, il faut en plus créer je ne sais combien de catégories pour chaque langue, bref polyglot et 10 fois mieux une fois qu’on sait comment il fonctionne.
    Donc ce plugin fonctionne sur le principe de balise, vous écrivez d’habitude votre article directement en français soit avec un éditeur html intégré à WordPress, soit en dur comme je fais.
    Donc ça ressemble un peu à ça:

    <p align="justify">Bla bla bla Salut Bla bla bla</p>

    Avec ce plugin pour spécifier la langue dans laquelle vous voulez afficher votre article ou page, il suffit de rajouter les balises [lang_en] et [/lang_en], ce qui donne:

    [lang_fr]<p align="justify">Bla bla bla Salut! Bla bla bla</p>[/lang_fr]
    [lang_en]<p align="justify">Bla bla bla Hello! Bla bla bla</p>[/lang_en]

    Alors après le fonctionnement est simple, le plugin détecte la langue de votre visiteur et affiche la version correspondantes de votre article. Le plugin crée ensuite un cookie pour mémoriser la langue à afficher et votre visiteur va donc visiter votre site dans la langue qu’il veut.

    Le fonctionnement marche aussi pour les titres de pages et de catégories.

    [lang_fr]Titre en français[/lang_fr]
    [lang_en]Title in english[/lang_en]

    [lang_fr]Catégories en français[/lang_fr]
    [lang_en]Category in english[/lang_en]

    Pour les catégories, y a une petite astuce à faire, voir en bas dans la section installation.

    Vous pouvez aussi afficher un drapeau dans chaque article si l’utilisateur veut changer la langue mais à mon avis un visiteur anglais va pas chercher à voir la version anglaise de l’article, donc c’est pas forcément utile, moi j’ai juste mis les drapeaux dans le sidebar au cas où ça merdouille chez le visiteur.

    J’ai tester avec Firefox la détection de la langue, une fois vider le cache et les cookies et changer la langue par défaut des pages, ça fonctionne sans problèmes.

    Pour l’instant voilà où j’en suis avec ce plugin, le problème est qu’il ne traduit pas votre blog si vous avez votre thème écrit en dur. Il faut passer par les fichiers de traduction *.mo cf en bas !!!

    J’attends vos remarques, suggestions d’améliorations, vos avis d’utilisation en ce qui concerne ce plugin et son fonctionnement.

    PS: Essayer SVP de ne pas créer un autre topic pour votre problème en particulier, ce topic est là pour tout regrouper même si ça risque d’être chiant à lire.

    Installation et configuration:

    Donc j’ai d’abord téléchargé le plugin à cette adresse: http://fredfred.net/skriker/index.php/polyglot

    Ensuite il faut modifier le fichier polyglot.php:

    Choix de la langue par défaut:

    $polyglot_settings[‘default_lang’] = ‘fr’;

    Les lignes suivantes déterminent les textes à afficher pour les traductions correspondantes:

    $polyglot_settings[‘knownlangs’] = array(‘fr’,’es’,’en’);

    Si vous voulez afficher des drapeaux pour permettre la traduction:

    $polyglot_settings[‘use_flags’] = true;

    Pour changer l’écriture des dates et heure:

    $polyglot_settings[‘time_format’][‘en’] = ‘g.i a’;
    $polyglot_settings[‘time_format’][‘nl’] = ‘G:i’;
    $polyglot_settings[‘time_format’][‘fr’] = ‘G:i’;
    
    $polyglot_settings[‘date_format’][‘en’] = ‘Y-m-d’;
    $polyglot_settings[‘date_format’][‘nl’] = ‘j F Y’;
    $polyglot_settings[‘date_format’][‘fr’] = ‘j F Y’;

    Pour spécifier au plugin quel fichier de langue vous utilisez:

    $polyglot_settings[‘wplang’][‘fr’] = ‘fr_FR’;//fr_BE
    $polyglot_settings[‘wplang’][‘it’] = ‘it_IT’;
    $polyglot_settings[‘wplang’][‘ja’] = ‘ja_JP’;

    Donc ensuite le bout de code à rajouter dans votre sidebar pour faire apparaître les drapeaux:

    <?php if(function_exists('yy_lang_menu')) yy_lang_menu("lang_menu"); ?>
    <?php if(function_exists('yy_menu')) yy_menu('sort_column=menu_order&title_li=','title_li=&hierarchical=1'); ?>
    <?php if(function_exists('polyglot_list_langs')){
    polyglot_list_langs(true);
    }?>

    Pour afficher les dates dans les deux langues, vous devez mettre la langue par défaut de votre blog en (‘WPLANG’, ‘en_US’), dans le fichier wp-config.php à la racine de votre blog.

    Ensuite vous envoyer le fichier polyglot.php et le dossier polyglot_flags dans le répertoire des plugins /wp-content/plugins, et enfin on active le plugin dans l’inteface de WordPress.

    Pour l’affichage des catégories, le champ par défaut dans la console WordPress ne fait que 55 caractères, il vous faut donc agrandir cette valeur.
    Pour ceci, vous devez aller dans l’administration mysql de votre base de données, moi avec 1and1 j’y accède en quelques clics de mulot.
    Repérer la table wp_categories et ensuite le champ ‘cat_name’, son type est varchar(55), cliquer alors sur l’icône ‘modifier’ et rentrer 200 dans le champ taille, puis ok pour valider.
    Normalement maintenant pour le nom de votre catégorie en utilisant la syntaxe habituelle ça fonctionnera sans problèmes.

    UPDATE!!!

    J’ai enfin pigé comment fonctionne la méthode « guettexed » de WordPress. Le moteur avant d’afficher un mot le passe dans un traducteur, donc si vous tapez « chat » et que vous êtes en français ça affiche « chat », si votre wordpress est en anglais ça affiche « chat » aussi car il faut alors traduire le mot avec les balises polyglot [lang_fr].

    En ce qui concerne la traduction de votre thème, genre l’affichage des pages, etc… c’est très simple au final une fois qu’on a compris comment ça fonctionne.

    Alors pour mon thème, dans ma sidebar j’avais écrit en dur les liens pour certaines pages. Mais comment les traduire?

    Si vous devez traduire par exemple cette phrase là que vous avez mis en page d’accueil: « Bienvenue sur ma galerie » par « Welcome on my gallery »

    C’est très simple, il vous suffit de récupérer le fichier fr_FR.po.

    Ouvrez le fichier fr_FR.po avec un éditeur de texte genre Wordpad mais utiliser plutôt TextPad qui permet d’afficher les numéros de lignes. Vous avez normalement tout un paquet de truc comme ça:

    #: wp-content/themes/classic/sidebar.php:33
    msgid « Send »
    msgstr « Envoyer »

    ben ensuite c’est pas compliqué, vous entrez une nouvelle ligne:

    #: wp-content/themes/classic/sidebar.php:33
    msgid « Welcome on my gallery »
    msgstr « Bienvenue sur ma galerie »

    Attention respecter l’ordre, anglais et ensuite français, la 1ère ligne je l’ai copié-collé à chaque fois et ça a fonctionné.

    Enregistrer le fichier. Ensuite télécharger poEdit à cette adresse: ICI

    Ouvrez le fichier fr_FR.po avec poEdit, un tas de lignes s’affichent, avec à gauche la version anglaise, et à droite la version française. Votre ligne aura apparut en bas.
    Faites fichier->préférences puis onglet éditeur pour vérifier que lors de l’enregistrement, un fichier *.mo est créé.
    Ensuite cliquez sur la disquette et là le fichier fr_FR.mo est créé.
    Alors des erreurs peuvent apparaître lors de la compilation, quand vous avez rajouter une traduction qui existe déjà par exemple.

    Uploader ensuite ce fichier avec votre logiciel FTP dans le répertoire wp-include/languages/ (créé le s’il n’existe pas).

    Ensuite dans la page où vous avez votre phrase magique « Welcome on my gallery », remplacer

    Welcome on my gallery

    par

    < ?php _e("Welcome on my gallery"); ?>

    Sauvegardez, ensuite ouvrez deux onglets dans votre navigateur, un avec votre blog, l’autre avec l’interface de gestion.
    Si dans l’onglet blog vous sélectionner l’affichage en anglais, bon les articles et tt le reste se traduisent, allez maintenant dans l’onglet gestion et actualiser, normalement l’interface se traduit, c’est donc que votre fichier fr_FR.mo est bien pris en compte.

    Petites remarques:

    Alors cette méthode fonctionne bien, j’ai traduit tout mon blog comme ça, c’est un peu long quand vous en avez beaucoup à rajouter mais le fichier de base fr_FR.po en contient déjà pas mal.
    Vous pouvez insérer cette méthode dans la balise, dans des balise ‘value’ (value= »< ?php _e("Send"); ?>« ), dans des balises javascript <noscript></noscript> (ça fonctionne pour mon header), dans les attributs de la balise <a> genre </a><a href="<?php _e("...."); ? rel="nofollow"> » title= »< ?php _e("...."); ?>« >, mais pas dans du php qui utilise echo()</p><p>Quand vous avez cette fonction de ce type:</p><p>< ?php printf('You must be logged in to post a comment.', $redirect_url); ?> rajouter __(‘ devant.</p><p>< ?php printf(__('You must be logged in to post a comment.'), $redirect_url); ?></p><p>Voilà pour la fin de ce tutorial, allez au boulot maintenant!</p><p>Pour info j’ai regardé le thème guettexed fourni sur le site de polyglot pour voir comment ça fonctionnait alors n’hésitez pas à faire de même. </a><a href="http://fredfred.net/skriker/index.php/polyglot" class="bbcode_url" rel="nofollow">Thème guettexed</a>

    #579910

    AmO
    Participant
    Maître WordPress
    4961 contributions

    Merci pour ce tuto 🙂

    #579911

    benkenobi
    Gestionnaire du forum
    Maître WordPress
    4913 contributions

    Waoh ! Ca c’est génial comme tuto… je crois que j’ai ENFIN compris le fonctionnement de ce plugin… j’avais eu du mal jusque là…

    La seule chose qui reste contraignante finalement (mais qui qualitativement est la meilleure il est vrai !) c’est le fait d’avoir à taper ses articles en double l’un en français et l’autre en anglais…

    #579912

    AmO
    Participant
    Maître WordPress
    4961 contributions

    Lol Ben la féignasse

    #579913

    benkenobi
    Gestionnaire du forum
    Maître WordPress
    4913 contributions

    AmO > Ah oui tu as raison, j’avais pas précisé [Mode Feignasse on] :D

    Mais sinon étant donné que j’ai l’habitude de toujours faire des articles plus ou moins long… voilà quoi !
    Enfin on verra je comptais rendre mon blog international… donc je m’y mettrais surement dans pas tard.

    #579914

    globule22
    Participant
    Padawan WordPress
    54 contributions

    Mise à jour aujourd’hui à propos de la traduction de votre thème, lire plus haut

    #579915

    Jean-Marc
    Membre
    Chevalier WordPress
    142 contributions

    Afin que les dates se traduisent aussi, il faut modifier le fichier locale.php qui est dans wp-includes.

    Tout en haut du fichier, juste après le <?php, il faut place la ligne suivante :
    global $weekday, $weekday_initial, $weekday_abbrev, $month, $month_abbrev;

    En effet, sans placer cette ligne les variables gérant les dates et les jours ne seront pas globales, ce qui entraîne que les jours et les mois restent imperturbablements dans la langue du WPLANG du fichier wp-config,php.

    :happy:

    #579916

    David123
    Participant
    Initié WordPress
    4 contributions

    Salut tout le monde,
    Petit problème avec ce plugin de mon côté. J’ai ajouté le code suivant en tête de la sidebar afin que l’utilisateur puisse choisir manuellement sa langue préférée:

    if(function_exists(‘polyglot_list_langs’)){
    polyglot_list_langs(true);
    }

    Seulement voilà, quand je clique sur un des petits drapeaux alors que je suis sur la page principale de mon blog (le lien: ~/wordpress/lang-pref/fr/), j’ai le droit à une erreur 404: page non trouvée. Si je fais la même manip depuis n’importe quelle autre page publique, ça marche.
    Il doit avoir un problème avec les préférences de langage qui ne sont pas gérées sur la page principale mais n’y connaissant rien dans le domaine, je m’en remets à votre science !

    Merci d’avance…

    #579917

    Jean-Marc
    Membre
    Chevalier WordPress
    142 contributions

    Bizarre autant qu’étrange … :rolleyes:

    Je ne comprend pas pourquoi ça ne fonctionnerait pas. As-tu bien mis ton appel au plugin dans le div de ta sidebar et pas avant ?

    Personnellement j’ai ceci tout en haut de ma sidebar(et ça fonctionne très bien sur ce site) :

    <div id="sidebar">

    #579918

    David123
    Participant
    Initié WordPress
    4 contributions

    Bon, j’ai trouvé ce qu’il ne va pas mais je ne sais pas modifier le plugin…

    Quand je me rends sur mon site, j’utilise l’adresse ~/wordpress, puis je clique sur les drapreaux avec le lien ~/wordpress/lang-pref/fr/ –> ça ne marche pas.

    J’arrive sur ma page avec ~/wordpress/index.php, puis je clique sur les drapreaux avec le lien ~/wordpress/index.php/lang-pref/fr/ –> ça marche.

    Alors que ton plugin ajoute dans le lien /index.php/ si besoin, le mien ne le fait pas (!!??). Bref si quelqu’un sait modifier le code (la fonction polyglot_list_langs vers la ligne 460) je serais très reconniassant.

    A+ et merci pour ta réponse Jean Marc

    #579919

    David123
    Participant
    Initié WordPress
    4 contributions

    Argh je hais le php !
    En fait, je veux que mes drapeaux apparaissent exactement comme toi au lieu de un à chaque ligne avec un point devant (balise

  • ). Alors j’avais changé les balises de la fonction polyglot_list_langs vers la ligne 460 mais conclusion, ça ne marche plus !

    Comment as-tu fait pour avoir les drapeaux à l’horizontale et des petits espaces entre chaque ?

    A+

#579920

David123
Participant
Initié WordPress
4 contributions

Problème résolu, j’ai finalement changé
$polyglot_settings = true;

pour
$polyglot_settings = false;

dans les settings.

A+ Dav

#579921

ramenian
Membre
Chevalier WordPress
192 contributions

Bonjour à tous, j’ai un peu lu le premier post avec le tutoriel et tout. Je dois également faire un site en 2 langues pour une société (english and french). Avec la MAJ de ce plugin, les changements, les bugs etc… Y a t il des conseils supplémentaires ?
Apparemment le client a souscris sur online.net (j’espere que c un bon hebergeur qui acceptera sans souci mon WordPress) :p si j’utilise ce cms

#579922

benkenobi
Gestionnaire du forum
Maître WordPress
4913 contributions

Modération : J’épingle la discussion… car ce tuto est très intéressant. 😉
… et je le déplace en zone « plugin ».

#579923

gwengwen
Participant
Initié WordPress
30 contributions

J’ai suivi le tuto mais ça ne marche paaaas ! :boulet:

Est-ce parce que j’ai placé le code php des drapeaux au mauvais endroit càd à mon fichier « article seul » ?

merci de m’aider ! :D

15 sujets de 1 à 15 (sur un total de 296)
  • Vous devez être connecté pour répondre à ce sujet.