web-dev-qa-db-fra.com

Traduire un plugin en utilisant des fichiers .po .mo

Je veux traduire this plugin.

Le plugin a déjà été traduit dans d'autres langues et contient des fichiers .pot permettant d'ajouter 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 soient utilisés par le plugin? 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');
33
s976

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

  • .mo signifie Machine Object
    - exportation compilée du fichier .po utilisé par WordPress
  • .po signifie Portable Object
    - fichier texte éditable avec les chaînes de traduction
    - basé sur le fichier maître .pot, utilisant mise à jour à partir du fichier POT fonction PoEdit
    - certaines personnes le distribuent en tant que fichier maître, mais il ne devrait être utilisé que pour les traductions
  • .pot signifie modèle d'objet portable
    - fichier texte modifiable utilisé pour récupérer toutes les chaînes traduisibles à partir de WordPress et de thèmes et de modules externes, à l’aide de Mise à jour à partir de sources Fonction PoEdit

La procédure

  • Dupliquez le fichier .pot et renommez-le en plugin-basename-lang_COUNTRY.po
  • Exemple pour le cas du plugin référencé:subscribe-reloaded-pt_BR.po
    - pt_BR signifie portugais Brésil, mais beaucoup de langues n'ont pas de variation de pays ...
    - vous devrez renseigner votre propre langue
  • WPLANG in wp-config.php Le fichier doit être défini dans 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 faites une traduction partielle complète ou correcte, soumettez-la à l'auteur du plug-in afin qu'il puisse l'inclure dans le référentiel et que vous soyez 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 du plugin @ user17078 est assez agréable, mais je ne l'ai jamais beaucoup utilisée
42
brasofilo

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

8
Aristeides

(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 "traduction", 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.

p.s. liens utilisés:

8
T.Todua

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.

5
Pippin

Je suggère aussi 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.

5
Taji M.