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');
Shimon S
la source

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
brasofilo
la source
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.

Aristeides
la source
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:

T.Todua
la source
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.

Pomme reinette
la source
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.

Taji M.
la source
Un visiteur a proposé une modification pointant sur un nouveau plugin pour ce service: wordpress.org/extend/plugins/poeditor
brasofilo