Peut-on traduire les plugins via le fichier language de wordpress ?

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #447403
    jeanflo
    Membre
    Initié WordPress
    43 contributions

    Bonjour
    Peut-on traduire les plugins via le fichier language de wordpress ?
    C’est interessants pour fait des sites multilingues.

    Si oui comment faut-il faire ?

    Cordialement

    #572696
    z720
    Membre
    Maître WordPress
    579 contributions

    oui c’est possible, uniquement si le plugin est bien fait…
    ce qui veut dire que la plupart du temps non.

    Il faut vérifier dans le code du plugin que les chaines de caractères sont utilisée avec __() ou _e() puis il faut nommer le fichier mo en fonction du domaine utilisé par le plugin au moment de l’appel de load_text_domain.

    #572697
    jeanflo
    Membre
    Initié WordPress
    43 contributions

    Bonjour,
    Peux-tu m’expliquer précisément la démarche STP?

    #572698
    z720
    Membre
    Maître WordPress
    579 contributions

    Hypothèse 1 : le plugin est bien fait
    Tu peux remarquer dans le source que toutes les chaines sont à l’intérieur d’un appel de focntion __( ) ou _e( ) ou __(“”, ‘mondomain’) et __(“”, ‘mondomaine’)
    Tu lance poedit à la recherche des mots clé __ et _e sur le répertoire du plugin et un fichier po (et son mo) vont être généré => à toi de traduire.
    Ensuite tu renommes le fichier mo en mondomaine-fr_FR.mo et ça devrait fonctionner. Si le domaine n’est pas renseigné, il faut ajouter les lignes trouvée au fichier po de WordPress FR et remplacer le mo fournit

    Hypothèse 2 : le plugin n’est pas bien fait
    Tu parcours le source à la recherche des chaines de caractères que tu entoures avec __( et , ‘nom_du_plugin’)
    Ensuite tu es dans l’hypothèse 1

    #572699
    jeanflo
    Membre
    Initié WordPress
    43 contributions

    Merci,

    Je vais m’initier à poedit.
    A+

    #572700
    Jean-Marc
    Membre
    Chevalier WordPress
    142 contributions

    Dans un plugin j’utilise une traduction via un fichier NomDuPlugin-fr_FR.mo qui se trouve dans le répertoire Langages quis e trouve dans le répertoire du plugin.

    Ca fonctionne bien quand je change le WPLANG dans le wp-config.php.

    Le site étant “trilinguisé” (si si, ce mot existe. Je l’ai spécialement inventé il y a 4 secondes, et comme il a été inventé, il existe. 😆 ) via polyglot, j’utilise des fr_FR.mo, nl_NL.mo dans wp-includes/languages/ et dans le répertoire du thème et dans le wp-config.php le WPLANG est sur en_US, sinon certains “détails” ne se traduisent pas.

    Comme le WPLANG est sur en-US, le plugin reste invariablement en anglais.

    Je suppose que le plugin ne se traduit pas parce que le fichier porte le nom NomDuPlugin-fr_FR.mo et non fr_FR.mo, mais le fait de changer le nom du fichier en fr_FR.mo fait que le plugin ne se traduit plus du tout.

    Comment faire pour que le plugin accepte un fichier fr_FR.mo au lieu de NomDuPlugin-fr_FR.mo. Je me dis que ça doit être une variable quelque part ou qqch à change, mais quoi, et où ?

    Merci de vos z’avis z’avisé,
    Jean-Marc

    #572701
    z720
    Membre
    Maître WordPress
    579 contributions

    Il faudrait voir comment wp-polyglot fonctionne. pour voir s’il est capable de gérer les domaines sur la localisation.

    Explication : WordPress permet d’associer un domaine à la traduction justement pour avoir un fichier par plugin. Il construit ensuite le nom du ficheir à charger en ajoutan le domaine à la langue utilisée et va chercher le fichier au bon endroit.

    Conclusion : si wp-polyglot ne sait pas gérer les domaines, tu vas toujours avoir ce genre de problème.

    Tentative de Solution : déplace ton fichier mo du plugin dans le même dossier que ton plugin plutot qe dans le dossier languages.

    #572702
    Jean-Marc
    Membre
    Chevalier WordPress
    142 contributions

    Je viens d’essayer et il ne veut rien savoir.

    Que je mettre NomDuPlugin-fr_FR.mo ou fr_FR.mo dans le dossier du plugin, il ne traduit plus rien.
    J’ai même essayé en retiran le chemin de la commande load_plugin_textdomain(‘Nom du plugin‘, $path=’wp-content/plugins/’.$plugin_dir.’/languages/’);

    Pourtant je suis sur qu’il doit y avoir une solution. Mais laquelle … ?!

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