WordPress: Bearbeitung der Sprachdatei

Ausnahmefehler
Schwerer Ausnahmefehler

Es gibt Begriffe, die scheinen aus dem Präteritum des deutschen Sprachschatzes zu kommen. Der Begriff »Stolz«, der zudem noch vielfältig und höchst unterschiedlich aufgeladen ist – von Hochmut bis Hochachtung ist alles dabei – gehört mit Sicherheit dazu. Im Footer des WordPress Themas Twentyfifteen ist es mal wieder so weit. Dort ist der Link zu WordPress mit dem Halbsatz »Stolz präsentiert von WordPress« belegt. Eine wohl eher gedankenlose direkte Übersetzung aus dem Englischen.
Daß diese Begrifflichkeit viele deutschsprachige WordPress-User stört, belegen die zahlreichen Anfragen auf Beseitigung im Netz. Das kann nun zweierlei bedeuten. Entweder das vollständige Entfernen des Links aus dem Footer oder die Abänderung des darauf hinterlegten Textes. Unabhängig von lizenzrechtlichen Imponderabilien würde sich das vollständige Löschen aus moralischen Gründen verbieten. Schließlich leistet WordPress hier hervorragende Arbeit, die auch entsprechend gewürdigt werden muß. Die zweite Variante sollte (ungeprüft) möglich sein, wenn man von der Aussage her nah am Original bleibt.
Ich betrachte diesen sprachlichen Ausrutscher ähnlich wie einen Rechtschreibfehler, den es zu korrigieren gilt und zwar direkt dort, wo er entsteht, in der zuständigen Sprachdatei. Eine fehlerträchtige Manipulation des PHP-Codes wäre damit nicht erforderlich.

Wer die nächsten Schritte nicht versteht oder unsicher ist, sollte sich andere Lösungswege suchen. Die Kenntnis um eine Datensicherung und die sichere Beherrschung einer Rücksicherung im Schadensfall, wird hier ohnehin unterstellt.

Der erste Schritt ist für die Maßnahme selbst nicht erforderlich, kann aber die Prozedur erhellen. Wenn man sich per ssh mit dem betreffenden Server verbindet und sich in das WordPress-Verzeichnis begibt, läßt sich prüfen in welchen Dateien der Begriff »Stolz« enthalten ist:

$ find . -type f -print0 | xargs -0 grep 'Stolz'
Binary file ./wp-content/languages/themes/twentythirteen-de_DE.mo matches
./wp-content/languages/themes/twentyfifteen-de_DE.po:msgstr "Stolz präsentiert von %s"
Binary file ./wp-content/languages/themes/twentyfourteen-de_DE.mo matches
./wp-content/languages/themes/twentyfourteen-de_DE.po:msgstr "Stolz präsentiert von %s"
Binary file ./wp-content/languages/themes/twentyfifteen-de_DE.mo matches
./wp-content/languages/themes/twentythirteen-de_DE.po:msgstr "Stolz präsentiert von %s"

Der gesuchte String befindet sich also in den Themen begleitenden Sprachdateien (.po-files = Portable Object) und den daraus übersetzten Binärdateien (.mo-files = Machine Object). Zudem haben wir jetzt die genaue Pfadangabe zu diesen Dateien. Die .po-Dateien sind reine Textdateien, die mit jedem beliebigen Text-Editor bearbeitet werden können. Die Übersetzung in eine binäre .mo-Datei erfolgt unter Linux beispielsweise im Terminal mit dem Programm msgfmt:

$ msgfmt -c -v -o twentyfifteen-de_DE.mo twentyfifteen-de_DE.po

Aber der Reihe nach. Für das hier betreffende Thema Twentyfifteen wird zunächst die Datei ./wp-content/languages/themes/twentyfifteen-de_DE.po per FileZilla oder ähnlichem auf den Client gezogen. Dann werden die beiden auf dem Server befindlichen .po- und .mo-Dateien durch Umbenennung gesichert (twentyfifteen.po.bak oder ähnlich). Auch das läßt sich per FileZilla durchführen.
Die lokale .po-Datei wird in einem Editor geöffnet. Ab der Zeile 179 ist folgendes zu lesen:

#: footer.php:25
msgid "Proudly powered by %s"
msgstr "Stolz präsentiert von %s"
...

Das macht die Entscheidung leicht. Einfach bei dem entschärften Original bleiben und den String »Stolz präsentiert von« durch »Powered by« ersetzen. Das sieht dann so aus:

#: footer.php:25
msgid "Proudly powered by %s"
msgstr "Powered by %s"
...

Jetzt muß die Übersetzung der .po-Datei in eine binäre .mo-Datei erfolgen. Das Programm PoEdit (hier unter Mac OS X) kann das, aber jede Linux Umgebung kann das auch (siehe oben [viel besser]).

Abschließend bleibt nur noch die beiden Sprachdateien wieder auf den Server in ihr angestammtes Verzeichnis ./wordpress/wp-content/languages/themes/ hochzuladen. Es ist klar, daß diese Anpassung das nächste Themen-Update nicht überleben wird. Das ist bei den PHP-Code Modifikationen aber auch nicht anders. Dennoch ist es meines Erachtens sauberer die Störung direkt an der Quelle zu beheben als nur ihr Auftreten zu verhindern.
rh2015-12-002