WordPress 2.9: Normaler String vs. Pluralstring

In WordPress gibt es eine Komponente namens „POMO“ und diese ist für die Übersetzung des Interfaces zu ständig. Dieser Teil hat vor einigen Wochen, auf Vorbereitung auf WordPress 2.9, eine Generalüberholung erhalten, damit das Laden von Gettext-Dateien schneller geht. Seit dem geht die deutsche Sprachdatei nicht mehr, hier meine Ursachenforschung inkl. Lösung.

Wir, damit meine ich das Team von WordPress Deutschland, erstellen unsere Sprachdatei für WordPress mit dem durchaus praktischen Plugin „Codestyling Localization„. Es erlaubt uns direkt aus dem Backend heraus Änderungen an der Sprachdatei vorzunehmen und diese live anzusehen und auszuprobieren. Bisher hat das auch wunderbar geklappt, jedoch erzeugt das Plugin einen kleinen Fehler, der früher keine Probleme gemacht hat, aber bei WordPress 2.9 das Backend englisch lässt.

Die neue Version der POMO-Klassen ist weniger fehlertoleranter als die Vorgängerversion, die den mit eingebauten Fehler vom Plugin einfach ignoriert hat. In der Sprachdatei gibt es nämlich zwei Strings (Übersetzungsketten), die es einmal „normal“ und als Pluralform gibt:

#: wp-admin/includes/dashboard.php:306
msgid "Spam"
msgid_plural "Spam"
msgstr[0] "Spam"
msgstr[1] "Spam"

#: wp-content/plugins/akismet/akismet.php:909
msgid "Spam"
msgstr "Spam"

#: wp-admin/edit-comments.php:144
msgid "All"
msgid_plural "All"
msgstr[0] "Alle"
msgstr[1] "Alle"

#: wp-content/plugins/akismet/akismet.php:753
msgid "All"
msgstr "Alle"

Nach der Spezifikation darf es diesen Fall jedoch nicht geben. Der normale String muss über den Pluralstring abgewickelt werden. Beweisen lässt sich sich das ganz einfach mit dem Gettext-Tool „msgfmt“, der bei der Kompilierung folgende Fehlermeldung heraus gibt:

de_DE.po:16067: duplicate message definition...
de_DE.po:1689: ...this is the location of the first definition
de_DE.po:16071: duplicate message definition...
de_DE.po:10108: ...this is the location of the first definition
msgfmt: found 2 fatal errors

Das Plugin erzeugt somit eine falsche MO-Datei, die vom neuen POMO-Reader nicht gelesen werden kann. Das Problem lässt sich einfach mit einem Texteditor beheben und das man die MO-Datei vorerst mit „msgfmt“ erstellt, bis das Plugin eine Aktualisierung erfahren hat. So eine Kleinigkeit kann so viele Nerven kosten und der Benutzer merkt es zum Glück am Ende nicht. Das ist wahre Übersetzer-Arbeit.

BarCamp Braunschweig 2009: Fazit & Danksagungen

„Den größten Run gab es jedoch bei der BuddyPress-Session am Samstag, weil wir mit Dennis Morhardt einen Superreferenten vor Ort hatten, der natürlich bestens aus dem Social-Networks-Kästchen plaudern konnte. Deshalb gab es am Sonntag einfach noch einmal einen Slot zu diesem Thema“

Mit diesem Eigenlob möchte ich auch mein BarCamp-Fazit eröffnen. Zusammenfassend natürlich kann man sagen: Genial. Dies war mein 5. BarCamp-Besuch und das Zweite, dass ich mit organisiert habe. Des halb vorweg: Ein dickes fettes Lob an alle Mit-Orgas und ich freue mich schon auf nächstes Jahr!

Das besondere an diesem BarCamp war, dass es regional ist und dennoch gut besucht war und auch die Teilnehmer waren richtige BarCamper, denn am Samstag wollten knapp 50% Teilnehmer eine eigene Session halten und am Sonntag war sogar diese Zahl noch höher und ich denke, dass das nur auf solchen „kleinen“ BarCamps möglich ist. Eine Massenabfertigung wie in Hamburg oder Berlin schadet nur dem Austausch zwischen den Teilnehmern.

Daher sollten mehr regionale und mehr themenbezogene BarCamps stattfinden und hier sollte auch von seitens der Firmen mehr Unterstützung kommen, denn oft erreicht man so bessere Resonanz, bestes Beispiel ist für mich das BarCamp Braunschweig.

Ich gönne mir nun eine kleine BarCamp-Pause, denn bald geht es in die BarCamp-Sommersaison 2010 und auch mit einigen BarCamps, an denen ich mitarbeite – sicher auch in Braunschweig!

BarCamp Braunschweig 2009: BuddyPress – Social Networks mit WordPress

Hier noch die passenden Folien zur Session „BuddyPress – Social Networks mit WordPress“, die ich beim BarCamp Braunschweig 2009 am 29. November 2009 gehalten habe.

http://speakerdeck.com/dennismorhardt/buddypres-social-networks-mit-wordpress