Übersetzen Sie ein Plugin mit .po .mo-Dateien
5 Antworten
- Stimmen
-
- 2012-07-02
Der Editor
Esgibt andere,aber diese werden am häufigsten verwendet: Poedit ,ein plattformübergreifender Gettext-Katalog Editor (.po-Dateien).
Die Formate
-
.mo
stehtfür Machine Object
- Kompilierter Export der Datei.po
,die von WordPress verwendet wird
-
.po
stehtfür Portable Object
-bearbeitbare Textdateimit den Übersetzungszeichenfolgen
-basierend auf der Masterdatei.pot
mit der PoEdit-Funktion
Aus POT-Datei aktualisieren - Einige Leute verteilen dies als Master-Datei,aberes solltenurfür Übersetzungen verwendet werden -
.pot
stehtfür Portable Object Template
- Bearbeitbare Textdatei,mit der alle übersetzbaren Zeichenfolgen aus WordPress selbst und Themen und Pluginsmithilfe der PoEdit-Funktion Aus Quellen aktualisieren abgerufen werden
Die Prozedur
- Duplizieren Sie die .pot-Datei undbenennen Sie siein
plugin-basename-lang_COUNTRY.po
um
- Beispielfür den Fall des referenzierten Plugins:
subsubs-reloaded-pt_BR.po
- pt_BR bedeutetportugiesisches Brasilien,aber viele Sprachen haben keine Ländervariation ...
- Siemüssen Ihreeigene Spracheeingeben -
WPLANG
inwp-config.php
Dateimuss auf Ihre Spracheeingestellt sein,z. B.pt_BR
- Jedes Mal,wenn Sie die Datei
.po
speichern,generiert PoEdit automatischeine.mo
-Datei,die WordPress verwendet undim Grunde dieeinzige,die Sie hochladenmüssen
Beobachtungen
- Wenn Sieeine vollständige oder anständige Teilübersetzung durchführen,senden Sie diese an den Plugin-Autor,damiter siein das Repository aufnehmen kann,und Sie wird dafürgutgeschrieben
- Vergessen Sienicht,eine Sicherungskopie Ihrer Übersetzung zuerstellen,da Ihre Dateibeim Upgrade des Plugins verlorengeht.
- @ user17078 Plugin Vorschlagistganznett,aberich habeesnie viel verwendet
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
-
Wie lange soll dieneue Mo/Po-Datei wirksam werden?How long is the new mo/po file supposed to take to have effect?
- 2
- 2015-12-14
- Nemo
-
- 2012-07-02
Sie können dieses Codestyling-Lokalisierungs-Plugin ausprobieren: .Damit können Sie Ihre Plugins und Themes übersetzen.
You can try this codestyling-localization plugin:. You can translate you plugins and themes using this.
-
Diesist dasbeste Übersetzungs-Plugin,dasichje gesehen habe.Dieses Plugin kannjeden Tagpoeditbesitzen und das Beste daranist,dasses kostenlos undbenutzerfreundlichist.Diese Antwort solltemindestens abgestimmt werden.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
-
Existiertnichtmehr.No longer exists.
- 1
- 2015-06-03
- Chris Cox
-
Dies scheinteine gute Alternative zu sein: https://wordpress.org/plugins/say-what/This looks like a good alternative: https://wordpress.org/plugins/say-what/
- 1
- 2015-06-10
- jetlej
-
@jetlejinteressant,scheint abernichtfürmeine Po-Datei zufunktionieren:/@jetlej interesting, doesn't seem to work for my po file though :/
- 0
- 2015-12-14
- Nemo
-
- 2013-10-24
(Hieristein BEISPIELfür die Übersetzungin DEUTSCH. Ändern Sie die Bräuchein Ihregewünschten.)
Injedem Plugin-Kopfgibt eseinen eindeutigen Namen. (zum Beispiel:
/* Plugin Name: my-pluginname ....... */
Erstellen Sie dannim Ordner dieses Pluginseinen Ordner "Sprachen";
Geben Sie dannin Ihre .php-Datei des Plugins (irgendwo oben) den Initialisierungscodeein:
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;
Öffnen Sie danneinen beliebigen Texteditor undfügen Sieihn wiefolgtein (HINWEIS: Wirfügennur zwei Beispielnachrichten hinzu: "Hallo" und "Tschüss",sodass Siemit den ähnlichen Zeilen so viele Nachrichten hinzufügen können,wie Siemöchten.) .
# 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"
Speichern Sie diese Datei dann als "my-pluginname-en_US.po" (beachten Sie,dass .poeine Dateierweiterungist. Überprüfen Sie daher,ob Ihr Texteditorprogrammnichtin "my-pluginname-en_US.po.TXT"gespeichert wurde ").
Laden Sie dann die POEDIT-Software herunter und öffnen Sie diese Datei. Bearbeiten Sie dann das Feld "Übersetzung" und speichern Siees als "my-pluginname-de_DE". Es werden zwei Dateiengeneriert (WennpoEdit die zweite .mo-Dateinicht automatischgeneriert,gehen Sieeinfach zu Datei -> Einstellungen -> Editor und aktivieren Sie das Kontrollkästchen ".mo-Dateibeim Speichern automatisch kompilieren"),
Legen Sie diesebeiden Dateien dannin den Ordner "Sprachen".
Öffnen Sie anschließend die Datei wp-config.php und suchen Sie denfolgenden Code:
define ('WPLANG, '');
und wechseln Sie zu
define ('WPLANG, 'de_DE');
Dasist alles. Wenn WordPressgeladen wird,liestes die Plugin-Sprachdateimit dem Präfix -de_DE.
Alsoin der .php-Datei des Plugins anstelle von:
echo "Something string";
sollten Sie verwenden:
echo __("mymessage1", 'my-pluginname');
Fertig. Jetzt sollten Sie Ihr Plugintesten.p.s. verwendete Links:
- codex.wordpress.org/Translating_WordPress
- codex.wordpress.org/Writing_a_Plugin
- codex.wordpress.org/Installing_WordPress_in_Your_Language
(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:
-
Ich habe dasmit meinem Thema versucht.In header.php habeich "echo __" ("dankefür den Besuch","transparent");Im Thema \ Languages \transparent-en_US.po habeich "msgid" dankefür den Besuch " `msgstr" Hallo! Vielen Dankfür Ihren Besuch. Schauen Sie sich um und abonnieren Sie das "`.Diesgibt "Dankefür den Besuch" am Frontend aus.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
Siemöchten POEdit verwenden.Esisteine kostenlose Anwendung zum Erstellen von .po/.mo-Dateien.
Ich habeein ziemlich ausführliches Tutorial zumgesamten Themageschrieben. hier .Sie könnenmit Schritt 3 - Erstellen der Übersetzungsdateifür die Textdomänefortfahren.
-
- 2013-01-29
Ich schlage auch vor,ttp://poeditor.com/.Esistein webbasiertes Übersetzungstool,das hervorragendmit .po,.mo,.pot und anderen Dateitypenfunktioniert.
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.
-
Ein Besucher schlugeine Änderung vor,die aufein neues Pluginfür diesen Dienst verweist: 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.comexistiertnichtmehr ...poeditor.com not longer exists...
- 0
- 2020-04-27
- Cypher
Ichmöchte dieses dieses Plugin übersetzen.
Das Plugin wurdebereitsin andere Sprachen übersetzt und verfügt über
.pot
-Dateien zum Hinzufügenneuer Sprachen (soweitich dies aus der Beschreibung verstanden habe).Wieerstelleich
.po
und.mo
-Dateienfürmeine neue Sprache undmache sie zugänglich,damit sie vom Plugin verwendet werden können?Ich habe versucht,die russische Sprachein meiner Dateiwp-config.php
zu definieren,indemich diefolgende Definitioneingefügt habe: