Ich habe gestern Nacht einen neuen Patch für WordPress 3.3 zusammengeschrieben, da mehr und mehr Kunden (aber auch nicht-kunden) ihre Installation updaten wollten und wieder auf diesen Speicherhunger gestoßen sind.
Mit dem neuen Patch bin ich allerdings einen anderen Weg gegangen als in den vorhergehenden Versionen:
Anstelle die Datei wp-includes/l10n.php aufwändig zu patchen, habe ich eine eigene Klasse erstellt, die die PoMo-Klasse "MO" simuliert. Lädt man die Klasse nun also vor der eigentlichen, benutzt WordPress fortan die native GetText-Schnittstelle. Ist kein GetText vorhanden, wird der Patch automatisch nicht geladen.
Durch die neue Klasse ist es lediglich notwendig eine einzelne Zeile zum ursprünglichen WordPress-Code hinzu zu fügen (siehe Diff ganz unten), alles andere geschieht unabhängig. Da die MO-Klasse API-Bedingt nie weiß, in welcher Text-Domain sie gerade arbeitet und WordPress sowieso das "mergen" von Sprachdateien benötigt, ist das Handling an dieser Stelle etwas "chaotisch" und undurchsichtig geworden - funktioniert jedoch recht problemlos und lässt meines Wissens nach keine Wünsche der Entwickler offen (zumindest nicht solche, die im Trac von WordPress geäußert wurden).
An dieser Stelle möchte ich mich auch noch bei Linus bedanken, dass er bzgl. des Trac jede Menge Arbeit und Zeit investiert hat und auch weiterhin tut. Mir war es ja wichtig, dass ich das nicht auch noch übernehmen muss
Ach ja: Den Patch samt allen weiteren Dateien gibt es unter
http://oss.tiggerswelt.net/wordpress/3.3.0/
Jeder Interessierte ist herzlich eingeladen den Patch zu nutzen (bzw. zu testen). Support ist recht schwer, da es sich um ein kostenfreies Angebot handelt und ich momentan mehr als gut ausgelastet bin. Allerdings sollte da auch nicht so viel notwendig sein - die INSTALL-Datei gibt kurz Anweisung und sobald es läuft, sollte es laufen (naiv gesagt)
Nachtrag (27.12.2011, 17:12):
Der neue Patch hatte einen nicht-fatalen Schreibfehler in Zeile 217 der Datei /wp-includes/pomo/native.php der zu Problemen mit Sonderzeichen geführt hat. Der Fehler ist behoben! Jeder, der den Patch vorher installiert hat, sollte die native.php erneut einspielen. Vielen Dank an Schrottie für die Zusammenarbeit in dieser Sache!
Kommentare