Traduire un plugin en utilisant des fichiers .po .mo
5 réponses
- votes
-
- 2012-07-02
L'éditeur
Il yen a d'autres,mais celui-ciest leplus utilisé: Poedit ,un cataloguegettextmultiplateforme (fichiers .po) éditeur.
Lesformats
-
.mo
signifie Machine Object
-export compilé dufichier.po
quiest utilisépar WordPress -
.po
signifie Portable Object
-fichiertextemodifiable avec les chaînes detraductions
-basé sur lefichiermaître.pot
,en utilisant lafonction Mise àjour dufichier POT PoEdit
- certainespersonnes le distribuenten tant quefichiermaître,maisilne doit être utilisé quepour lestraductions -
.pot
signifie Portable Object Template
-fichiertextemodifiable utilisépour récupérertoutes les chaînestraduisibles de WordPress lui-mêmeet desthèmeset plugins,en utilisant lafonction Mise àjour àpartir des sources PoEdit
Laprocédure
- Dupliquez lefichier .potet renommez-leen
plugin-basename-lang_COUNTRY.po
- Exemplepour le cas duplugin référencé: <
subscribe-reloaded-pt_BR.po
- pt_BR signifieportugais du Brésil,mais denombreuses languesn'ontpas de variation depays ...
- vous devrez remplir votrepropre langue -
WPLANG
danswp-config.php
lefichier doit être défini dans votre langue,parexemplept_BR
- Chaquefois que vousenregistrez lefichier
.po
,PoEditgénère automatiquement unfichier.mo
,quiest celui que WordPress utiliseet fondamentalement le seul que vous deveztélécharger
Observations
- Si vouseffectuez unetraduction complète oupartielle décente,soumettez-la à l’auteur duplug-in afin qu’ilpuisse l’inclure dans le référentielet vous être crédité pour cela
- N'oubliezpas defaire une sauvegarde de votretraduction,car si vousmettez àjour leplugin,votrefichier seraperdu La suggestion duplugin
- @ user17078estplutôt sympa,maisje ne l'aijamaisbeaucoup utilisée
The Editor
There are others, but this is most used: Poedit, a cross-platform gettext catalogs (.po files) editor.
The Formats
.mo
stands for Machine Object
-- compiled export of the.po
file which is used by WordPress.po
stands for Portable Object
-- editable text file with the translations strings
-- based on the master.pot
file, using Update from POT file PoEdit function
-- some folks distribute this as a master file, but it should be used only for translations.pot
stands for Portable Object Template
-- editable text file used to grab all the translatable strings from WordPress itself and Themes and Plugins, using Update from Sources PoEdit function
The Procedure
- Duplicate the .pot file and rename it to
plugin-basename-lang_COUNTRY.po
- Example for the referenced plugin case:
subscribe-reloaded-pt_BR.po
-- pt_BR means Portuguese Brazil, but many languages don't have a country variation...
-- you'll have to fill in with your own language WPLANG
inwp-config.php
file must be set to your language, e.g.,pt_BR
- Every time you save the
.po
file, PoEdit automatically generates a.mo
file, which is the one WordPress uses and basically the only one you need to upload
Observations
- If you do a full or a decent partial translation, submit it to the plugin author so he can include it in the Repository and you get credited for it
- Don't forget to make a backup of your translation, because if you upgrade the plugin your file will be lost
- @user17078 plugin suggestion is quite nice, but I never used it much
-
Combien detemps lenouveaufichiermo/po doit-ilprendrepour avoireffet?How long is the new mo/po file supposed to take to have effect?
- 2
- 2015-12-14
- Nemo
-
- 2012-07-02
Vouspouvezessayer ce plug-in codestyling-localization: .Vouspouveztraduire vospluginset thèmesen utilisant ceci.
You can try this codestyling-localization plugin:. You can translate you plugins and themes using this.
-
C'est lemeilleurplugin detraduction quej'aijamais vu.Cepluginpeutposséderpoeditn'importe queljouret lameilleurepartieest qu'ilestgratuitet convivial.Cette réponse doit être votée aumoins.This is the best translation plugin I have ever seen. This plugin can own poedit anyday and the best part is that it is free and user-friendly. This answer should be voted up atleast.
- 1
- 2014-10-02
- Gogol
-
N'existeplus.No longer exists.
- 1
- 2015-06-03
- Chris Cox
-
Cela ressemble à unebonne alternative: https://wordpress.org/plugins/say-what/This looks like a good alternative: https://wordpress.org/plugins/say-what/
- 1
- 2015-06-10
- jetlej
-
@jetlejintéressant,ne semblepasfonctionnerpourmonfichierpo:/@jetlej interesting, doesn't seem to work for my po file though :/
- 0
- 2015-12-14
- Nemo
-
- 2013-10-24
(Voici un EXEMPLE detraductionen DEUTSCH. CHANGEZ les coutumesen VOS DÉSIRÉES.)
dans chaquetête deplugins,il y a unnom unique. (parexemple:
/* Plugin Name: my-pluginname ....... */
puis,dans le dossier de ceplugin,créez un dossier "languages";
puis,dans votrefichier .php duplugin (quelqueparten haut),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 ouvrezn'importe quel éditeur detexte,puisinsérez comme ce code (NOTEZ QUEnous ajoutons seulement deuxexemples demessages,"bonjour"et "au revoir",donc,vouspouvez AJOUTER autant demessages que vous le souhaitez avec les 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"
puisenregistrez cefichier sous "my-pluginname-en_US.po" (notez que .poest uneextension defichier,vérifiez donc que votreprogramme d'éditeur detexten'apasenregistré dans "my-pluginname-en_US.po.TXT ").
puistéléchargez le logiciel POEDITet ouvrez cefichier.puis éditez le champ "translation",puisenregistrez sous "my-pluginname-de_DE" deuxfichiers serontgénérés (sipoEditne génèrepas automatiquement le deuxièmefichier .mo,allez simplement dans Fichier -> Préférences -> Editeuret cochez la case "Compiler automatiquement lefichier .mo lors de l'enregistrement"),
puisplacez ces deuxfichiers dans le dossier "languages".
après cela,ouvrez wp-config.phpet trouvez ce code:
define ('WPLANG, '');
et changezen
define ('WPLANG, 'de_DE');
C'esttout. Lorsque WordPressest chargé,il lira lefichier de langue de vosplugins,avec lepréfixe -de_DE.
Donc,dans lefichier .php duplugin,au lieu de:
echo "Something string";
vous devriez utiliser:
echo __("mymessage1", 'my-pluginname');
Fini. Vous devezmaintenanttester votreplugin.p.s. liens utilisés:
(Here is an EXAMPLE of translation to DEUTSCH. CHANGE the customs to YOUR DESIRED ones.)
in every plugins head, there is an unique name. (for example:
/* Plugin Name: my-pluginname ....... */
then, in that plugin's folder, create a folder "languages";
then, into your plugin .php file (somewhere in the top), insert the initialization code:
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;
then open any text editor, then insert like this code (NOTE, THAT we are only adding two sample messages, "hello" and "bye", so , you can ADD AS MANY messages AS YOU WANT with the similar lines).
# 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"
then save this file as "my-pluginname-en_US.po" (note, that .po is an extension of file, so check that your text editor program has not saved to "my-pluginname-en_US.po.TXT").
then download POEDIT software, and open this file. then edit the "translation" field, and then save as "my-pluginname-de_DE" there will be generated two files ( If poEdit does not generate the second .mo file automatically, just go to File -> Preferences -> Editor and check the box that says "Automatically compile .mo file on save"),
then put those two file into "languages" folder.
after this, open wp-config.php and find this code:
define ('WPLANG, '');
and change to
define ('WPLANG, 'de_DE');
That's all. When WordPress is loaded, it will read your plugins language file, with prefix -de_DE.
So, in the plugin's .php file, instead of:
echo "Something string";
you should use:
echo __("mymessage1", 'my-pluginname');
Finished. Now you should test your plugin.p.s. used links:
-
J'aiessayé cela avecmonthème.Dans header.php,j'ai `echo __ ("merci de votre visite ",'transparent');`.Dans lethème \ languages \transparent-en_US.po,j'ai `msgid"thanks-for-visiter "` `msgstr" Bonjour! Merci de votre visite. Jetez un coup d'œilet abonnez-vous à lapage "`.Celagénère "mercipour votre visite" sur lefront-end.I tried this with my theme. In header.php, I have `echo __("thanks-for-visiting", 'transparent');`. In theme\languages\transparent-en_US.po, I have `msgid "thanks-for-visiting"` `msgstr "Hello! Thank you for visiting. Take a look around and subscribe to the "`. This outputs "thanks-for-visiting" on the front end.
- 0
- 2014-03-10
- Steve
-
- 2012-07-02
Vous souhaiterez utiliser POEdit .C'est une applicationgratuitepour créer desfichiers .po/.mo.
J'ai rédigé un didacticiel assez détaillé sur l'ensemble du sujet ici .Vouspouvezpasser à l'étape 3 - Créer lefichier detraductionpour le domaine detexte.
-
- 2013-01-29
Je suggère également h ttp://poeditor.com/.Il s'agit d'un outil detraductionbasé sur le Web quifonctionnetrèsbien avec .po,.mo,.potet d'autrestypes defichiers.
I suggest also http://poeditor.com/. It is a web-based translation tool that works great with .po, .mo, .pot and other types of files.
-
Un visiteur aproposé unemodificationpointant vers unnouveaupluginpour ce service: http://wordpress.org/extend/plugins/poeditor/A visitor proposed an edit pointing to a new plugin for this service: http://wordpress.org/extend/plugins/poeditor/
- 0
- 2013-05-17
- brasofilo
-
poeditor.comn'existeplus ...poeditor.com not longer exists...
- 0
- 2020-04-27
- Cypher
Je souhaitetraduire ceplugin .
Leplugin a déjà ététraduit dans d'autres langueset il contient desfichiers
.pot
pour ajouter denouvelles langues (d'après ce quej'ai compris d'après la description).Comment créer desfichiers
.po
et.mo
pourmanouvelle langueet les rendre accessibles afin d'être utiliséspar leplugin?J'aiessayé de définir la langue russe dansmonfichierwp-config.php
en insérant la définition ci-dessous: