Traduire un plugin en utilisant des fichiers .po .mo


34

Je veux traduire ce plugin.

Le plugin a déjà été traduit dans d'autres langues et contient des .potfichiers pour ajouter de nouvelles langues (d'après ce que j'ai compris de la description).

Comment puis-je créer .poet .mofichiers pour ma nouvelle langue et les rendre ainsi accessibles à être utilisé par le plug - in? J'ai essayé de définir la langue russe dans mon wp-config.phpfichier en insérant la définition ci-dessous:

define ('WPLANG', 'ru_RU');

Réponses:


44

L'éditeur

Il y en a d'autres, mais c'est le plus utilisé: Poedit , un éditeur de catalogues gettext multiplateformes (fichiers .po).

Les formats

  • .mosignifie «Machine Object»
    - exportation compilée du .pofichier utilisé par WordPress
  • .posignifie «objet portable»
    - fichier texte éditable avec les chaînes de traduction
    - basé sur le .potfichier maître , utilisant la fonction de mise à jour du fichier POT de PoEdit
    - certaines personnes le distribuent en tant que fichier maître, mais ne doit être utilisé que pour les traductions
  • .potPortable Object Template
    - fichier texte éditable utilisé pour récupérer toutes les chaînes traduisibles à partir de WordPress et de thèmes et de plug-ins, à l'aide de la fonction de mise à jour à partir des sources de PoEdit

La procédure

  • Dupliquez le fichier .pot et renommez-le en plugin-basename-lang_COUNTRY.po
  • Exemple pour le cas de plug-in référencé: - pt_BR signifie le portugais portugais, mais de nombreuses langues n'ont pas de variation de pays ... - vous devrez renseigner votre propre languesubscribe-reloaded-pt_BR.po

  • WPLANGdans le wp-config.phpfichier doit être réglé sur votre langue, par exemple,pt_BR
  • Chaque fois que vous enregistrez le .pofichier, PoEdit génère automatiquement un .mofichier, qui est celui que WordPress utilise et qui est essentiellement le seul dont vous avez besoin de télécharger.

Observations

  • Si vous effectuez une traduction partielle complète ou correcte, envoyez-la à l'auteur du plug-in afin qu'il puisse l'inclure dans le référentiel et vous serez crédité pour cette traduction.
  • N'oubliez pas de faire une sauvegarde de votre traduction, car si vous mettez à jour le plugin, votre fichier sera perdu.
  • La suggestion du plugin @ user17078 est très agréable, mais je ne l'ai jamais beaucoup utilisée

1
Combien de temps le nouveau fichier mo / po est-il censé prendre effet?
Nemo

8

Vous pouvez essayer ce plug - in codestyling-localisation: . Vous pouvez traduire vos plugins et thèmes en utilisant ceci.


1
C'est le meilleur plugin de traduction que j'ai jamais vu. Ce plugin peut posséder poedit tous les jours et la meilleure partie est qu’il est gratuit et convivial. Cette réponse devrait être votée au moins.
Gogol

1
N'existe plus.
Chris Cox

1
Cela ressemble à une bonne alternative: wordpress.org/plugins/say-what
jetlej

@jetlej intéressant, ne semble pas fonctionner pour mon fichier po cependant: /
Nemo

8

(Voici un exemple de traduction en DEUTSCH. Changez les coutumes en VOS DESIRÉES.)

dans chaque tête de plugins, il y a un nom unique. (par exemple:

/*
Plugin Name: my-pluginname
.......
*/

puis, dans le dossier de ce plugin, créez un dossier "languages";

puis, dans votre fichier plugin .php (quelque part dans la partie supérieure), insérez le code d'initialisation:

class load_language 
{
    public function __construct()
    {
    add_action('init', array($this, 'load_my_transl'));
    }

     public function load_my_transl()
    {
        load_plugin_textdomain('my-pluginname', FALSE, dirname(plugin_basename(__FILE__)).'/languages/');
    }
}

$zzzz = new load_language;

puis ouvrez n’importe quel éditeur de texte, puis insérez-le comme ce code (NOTE: Nous n’ajoutons que deux exemples de messages, "hello" et "bye", vous pouvez donc ajouter autant de messages que vous le souhaitez avec des lignes similaires).

# English translations for PACKAGE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Automatically generated, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: my-pluginname 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-06 13:46-0400\n"
"PO-Revision-Date: 2013-03-21 11:20+0400\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"


#: mypluginindex.php:87 (it is just a line of a note, to remind where our code appears)
msgid "mymessage1"
msgstr "Hello"

#: mypluginindex.php:88
msgid "mymessage2"
msgstr "Bye"

puis enregistrez ce fichier sous "my-pluginname-en_US.po" (notez que .po est une extension de fichier, vérifiez donc que votre programme d'éditeur de texte n'a pas été enregistré dans "my-pluginname-en_US.po.TXT").

Ensuite, téléchargez le logiciel POEDIT et ouvrez ce fichier. éditez ensuite le champ "translation", puis enregistrez-le sous "my-pluginname-de_DE", deux fichiers seront générés (si poEdit ne génère pas automatiquement le deuxième fichier .mo, allez simplement dans Fichier -> Préférences -> Editeur et cochez la case "Compiler automatiquement le fichier .mo lors de l'enregistrement"),

puis mettez ces deux fichiers dans le dossier "languages".

Après cela, ouvrez wp-config.php et trouvez ce code:

define ('WPLANG, '');

et changer à

define ('WPLANG, 'de_DE');

C'est tout. Lorsque WordPress est chargé, il lira le fichier de langue de vos plugins, avec le préfixe -de_DE.

Donc, dans le fichier .php du plugin, au lieu de:

echo "Something string";

Tu devrais utiliser:

echo __("mymessage1", 'my-pluginname');



Fini. Maintenant, vous devriez tester votre plugin.

ps liens utilisés:


J'ai essayé cela avec mon thème. Dans header.php, j'ai echo __("thanks-for-visiting", 'transparent');. Dans le thème \ langues \ transparent-en_US.po, j'ai msgid "thanks-for-visiting" msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the ". Cette sortie "Merci pour visiter" sur le front-end.
Steve

5

Vous voudrez utiliser POEdit . C'est une application gratuite pour créer des fichiers .po / .mo.

J'ai écrit un tutoriel assez approfondi sur l'ensemble du sujet ici . Vous pouvez passer à l'étape 3 - Créer le fichier de traduction pour le domaine de texte.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.