Traduire un plugin à l'aide de fichiers .po .mo

33

Je souhaite traduire le ce plugin .

Le plugin a déjà été traduit dans d'autres langues et il contient .pot fichiers pour l'ajout de nouvelles langues (d'après ce que j'ai compris de la description).

Comment créer des fichiers .po et .mo pour ma nouvelle langue et les rendre accessibles afin qu'ils puissent être utilisés par le plug-in? J'ai essayé de définir la langue russe dans mon fichier wp-config.php en insérant la définition ci-dessous:

define ('WPLANG', 'ru_RU');
    
posée s976 02.07.2012 - 21:20

5 réponses

41

L'éditeur

Il y en a d'autres, mais c'est le logiciel le plus utilisé: Poedit , catalogues gettext multiplates-formes (fichiers .po). éditeur.

Les formats

  • .mo signifie Machine Object
    - exportation compilée du fichier .po utilisé par WordPress
  • .po signifie «objet portable»
    - fichier texte éditable avec les chaînes de traduction
    - basé sur le fichier maître .pot , à l'aide de la fonction Mise à jour à partir du fichier POT PoEdit
    - certaines personnes le distribuent en tant que fichier maître, mais il ne devrait être utilisé que pour les traductions
  • .pot signifie Portable Object Template
    - fichier texte éditable utilisé pour récupérer toutes les chaînes traduisibles à partir de WordPress et de thèmes et plug-ins, à l'aide de la fonction Mise à jour à partir des sources 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é: subscribe-reloaded-pt_BR.po
    - pt_BR signifie portugais brésilien, mais de nombreuses langues ne présentent pas de variation de pays ...
    - vous devrez renseigner votre propre langue
  • WPLANG dans wp-config.php le fichier doit être défini sur votre langue, par exemple, pt_BR
  • Chaque fois que vous enregistrez le fichier .po , PoEdit génère automatiquement un fichier .mo , qui est celui que WordPress utilise et qui est essentiellement le seul que vous devez 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 être crédité pour cela
  • N'oubliez pas de faire une sauvegarde de votre traduction, car si vous mettez à jour le plugin, votre fichier sera perdu
  • La suggestion de plugin @ user17078 est très agréable, mais je ne l'ai jamais beaucoup utilisée
réponse donnée brasofilo 03.07.2012 - 00:02
8

Vous pouvez essayer ce plugin codestyling-localization: . Vous pouvez traduire vos plugins et vos thèmes en utilisant ceci.

    
réponse donnée Aristeides 02.07.2012 - 22:20
8

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

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

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

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

puis, dans le 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;

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 le nom "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. ").

téléchargez ensuite le logiciel POEDIT et ouvrez ce fichier. puis éditez le champ "traduction", puis enregistrez-le sous "my-pluginname-de_DE" il y aura deux fichiers générés (si poEdit ne génère pas automatiquement le second fichier .mo, il suffit d'aller dans Fichier - > Préférences - > Editeur et cochez la case "Compiler automatiquement le fichier .mo lors de l'enregistrement"),

placez ensuite ces deux fichiers dans le dossier "langues".

après cela, ouvrez wp-config.php et recherchez ce code:

define ('WPLANG, '');

et passez à

define ('WPLANG, 'de_DE');

C'est tout. Lorsque WordPress est chargé, il lit 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";

vous devriez utiliser:

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



Fini. Maintenant, vous devriez tester votre plugin.

p.s. liens utilisés:

réponse donnée T.Todua 25.10.2013 - 01:37
5

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

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

    
réponse donnée Pippin 02.07.2012 - 23:29
5

Je suggère également h ttp: //poeditor.com/ . C’est un outil de traduction Web qui fonctionne très bien avec les fichiers .po, .mo, .pot et d’autres types de fichiers.

    
réponse donnée Taji M. 29.01.2013 - 12:56

Lire d'autres questions sur les étiquettes