Kategorien
Projekt-Ecke Techi-Ecke

WordPress PlugIn Localization

Hier beschreibe ich kurz, wie ich für das Chidoo Quizmaster Plugin Übersetzungsdateien generiere. Wie der Prozeß allgemein funktioniert und welche Tools es dafür gibt, ist im Plugin Develper Handbook ausführlich beschrieben. Dennoch blieben auch mir einige Trial-and-Errors nicht erspart, um den optimalen Workflow zu finden. Vielleicht kann jemand von dieser Zusammenstellung profitieren.

In Kürze zusammengefasst, das generieren der Übersetzungen geschieht in 5 Schritten:

  1. Mit wp-cli i18n make-pot die POT-Datei erstellen
  2. Im Übersetzungs-Editor poedit die bestehende PO-Datei öffnen/ neu anlegen
  3. Generierte POT-Datei einlesen
  4. Gewünschte Übersetzungen eintragen
  5. MO-Datei erstellen

Hier nun die ausführliche Beschreibung des Prozesses

POT-Datei mit Hilfe von wp-cli generieren

Das Programm wp-cli ist das WordPress Command Line Interface. Hierüber lassen sich über die Kommandozeile viele Dinge in einer WordPress-Umgebung konfigurieren. [WPCLI]

Ein Kommando des wp-cli ist i18n, und dieses stellt das Unterkommando make-pot zum Generieren der POT-Datei aus WordPress-Dateien, in diesem Fall aus den Dateien des PlugIns, zur Verfügung.

In diesem Beispiel ist my-plugin der PlugIn-Ordner mit dem Unterordner languages, standardmäßig sind die Texte im PlugIn englischer Sprache hinterlegt, es sollen deutschsprachige Übersetzungsdateien erstellt werden:

# cd my-plugin
# wp-cli.phar i18n make-pot . languages/my-plugin-de_DE.pot --skip-js

Das Programm durchsucht die PlugIn-Ordnerstruktur und extrahiert übersetzungsfähige Strings aus dem Quellcode. Hieraus entsteht zur weiteren Verarbeitung die POT-Datei my-plugin-de_DE.pot.

Ich habe im Fall des PugIns Chidoo Quizmaster dem Programm die Option –skip-js aus zwei Gründen mitgegeben: Erstens befinden sich in einem Unterordner meines PlugIns komprimierte min.js-Dateien, in denen es nichts zu übersetzen gibt. Außerdem kam meine Version des wp-cli anscheinend nicht so richtig damit klar und lief eine Ewigkeit.

Zweitens sind in dem PlugIn in keinen, also auch unkomprimierten Javascript-Dateien zu übersetzende Texte hinterlegt. Diese werden per Objekt mittels wp_localize_script an das Sktipt übergeben [LSJS]. Ab WordPress 5.0 gibt es eine weitere Möglichkeit, in Javascript-Dateien Texte zu übersetzen [IWP5]. Für das Chidoo Quizmaster Plugin ist die Verwendung von wp_localize_script hinreichend und hat den Vorteil, dass ich auf das Differenzieren zwischen min.js-Dateien und unkomprimierten JS-Dateien im Übersetzungsprozess verzichten kann.

Der Übersetzungs-Editor

Das Programm poedit ist für alle größeren Plattformen verfügbar. Hiermit lassen sich PO-Dateien und MO-Dateien generieren. Um den Workflow rund zu machen, musste ich allerdings erst einiges ausprobieren, ganz intuitiv war das nicht.

Mit der Übersetzung initial beginnen

Gibt es nämlich noch keine Übersetzungs-Datei (PO-Datei) dann muss zunächst ein neues, zunächst leeres „Projekt“ erstellt werden. Dies geschieht mit „Datei“ →“Neu“ oder „Datei“ → „Neu aus POT-/ PO-Datei“. Im zweiten Fall kann man direkt die generierten Strings aus der POT-Datei einlesen und mit dem Übersetzen beginnen.

PO-Datei speichern

Wenn alle Übersetzungen gemacht sind, lässt sich die Datei mittels „Datei“ → „Speichern“ oder „speichern unter…“ als PO-Datei speichern.

Im Anschluss kann über „Datei“ → „MO-Datei erstellen…“ die zugehörige MO-Datei exportiert werden.

Weitere Übersetzungen einpflegen

Natürlich wird jedes PlugIn weiterentwickelt und neue zu übersetzende Strings kommen hinzu.

Zunächst habe ich wieder mit wp-cli die POT-Datei mit allen Änderungen generiert. Wenn man diese in poedit öffnet, legt der Editor ein neues Projekt an und es sind dann natürlich keine Übersetzungen mehr vorhanden.

Also muss stattdessen die zuvor generierte PO-Datei geöffnet werden, hier sind alle bereits gemachten Übersetzungen drin. Bleibt die Frage, wie die neu hinzugekommenen Strings aus der POT-Datei in die PO-Datei gemerged werden können.

Dies geschieht über den Menüpunkt „Katalog“ → „Aus POT-Datei aktualisieren…“. Im nächsten Dialog die neu generierte POT-Datei auswählen und schon tauchen die neuen Strings in der Liste auf und können übersetzt werden!

MO-Datei generieren

Sind alle Übersetzungen gemacht, bleibt als vorerst letzter Schritt, die MO-Datei zu generieren. Dies geschieht über den Menüeintrag „Datei“ → „MO-Datei erstellen…“.

Diese muss im languages-Ordner des PlugIns in dem von WordPress geforderten Dateinamens-Format, zum Beispiel plugin-slug-de-DE.mo abgelegt werden. [L10N]

Weiterführende Links

[WPCLI] Download und Installation von WP-CLI: https://make.wordpress.org/cli/handbook/guides/installing/

[LSJS] Using wp_localize_script for creating JS objects with translated strings.

[IWP5] https://pascalbirchler.com/internationalization-in-wordpress-5-0/

[L10N] https://developer.wordpress.org/plugins/internationalization/localization/

Kategorien
Projekt-Ecke

Conference by Chidoo

Another long-term „Project“ I’ve successfully been running together with my colleague Thorsten Schiller is the chidoo company. Since 2012, we are managing various web services including hosting, consultancy and web conferencing systems. The latter became even more important since Covid-19 was an issue in 2020.

Our mission is to provide open-source based software for both, national and international companies with respect to GDPR compliance.

Screenshot: Conference by Chidoo
Screenshot: Conference by Chidoo
Auszug: Conference by Chidoo

Kategorien
Projekt-Ecke

Musik Individuell

Derzeit arbeite ich an einem virtuellen Musikladen. Die hier angebotenen Formate sind ausgesuchte MP3s, Noten interessanter zeitgenössischer Kompositionen, Solo-Transskiptionen, Video-Tutorials und Mastertracks. Der Laden heißt Musik Individuell und ist unter https://musik-individuell.de zu finden.

Musik Individuell
Screenshot der Eingangsseite musik-individuell.de

Die Regale im Laden füllen sich langsam. Viele Schätze stehen bereit, benötigen aber noch den letzten Schliff. Ihr dürft gespannt sein!

Tragt euch ein in den Newsletter, damit ihr erfahrt, wann die offizielle Eröffnung ist.

Kategorien
Projekt-Ecke

Geigenunterricht

Nicht nur, weil ich selbst seit vielen Jahren Geige spiele und auch das Spielen und Unterrichten dieses Instrumentes studiert habe, sondern auch, weil es einfach Laune macht und ich es niemals als vergeudete Lebenszeit empfunden habe, unterrichte ich seit nunmehr fast 20 Jahren Geige.

Auf der Webseite https://geigekoeln.de findest du alle relevanten Informationen zum Unterricht.

Meistens unterrichte ich im Einzelunterricht, seit diesem Jahr vermehrt auch über Video-Sessions. Hier greife ich auf die Videokonferenz-Software der Angebote von chidoo zurück, was sich als sehr praktisch herausgestellt hat.

Schöne Quellen für Notenmaterial sind unter anderem IMSLP oder TheSession. Über die Jahre habe ich aber auch eine eigene große Notensammlung zusammengestellt.

Als Notations-Software habe ich lange Jahre das Programm abcm2ps benutzt. Ausschlaggebend war, dass Noten einfach über einen Texteditor eingegeben werden können. Auch die Weiterverarbeitung zu PDF- und MIDI-Dateien ist flexibel gestaltbar.

Mittlerweile bin ich zu MuseScore umgeschwenkt. Auch wenn ich mit einigen Denkweisen des Programms bezüglich Vorlagengestaltung und Layout noch nicht ganz vertraut bin, ist es doch im Großen und Ganzen wesentlich flexibler. Vielleicht muss ich einfach noch mal genauer die Doku durchforsten, aber alles zu seiner Zeit…