WordPress Theme übersetzen

Da ist es schon soweit: beim Einrichten dieses Blogs bin ich gleich auf ein Problem gestoßen: in meinem Theme für WordPress wurde nach dem Intro-Text zu einem Artikel der Link mit „Continue Reading“ beschrieben, ebenso verhält es sich in anderen Teilen des Themes. Da der Blog allerdings in der deutschen Sprache verfasst ist, sollte entsprechender Link auch eine deutsche Bezeichnung haben.

Um das Problem zu lösen, habe ich ein paar Nachforschungen (mittels Google) angestellt, da ich mich zum aktuellen Zeitpunkt noch nicht hundertprozentig mit WordPress auskenne. Durch einige Foreneinträge (u. a. hier: http://forum.wpde.org/allgemeines/85197-continue-reading-auf-deutsch-uebersezten.html#post384024) bin ich darauf gekommen, dass dies entsprechend im Code des Templates hinterlegt ist und nicht per Einstellung gesetzt werden kann.

Theme übersetzen

Meine erste Lösung hatte vorgesehen, dass ich einfach die entsprechenden Stellen in den PHP-Dateien geändert habe. Das ist natürlich zum einen mühselig, zum anderen gehen die Änderungen bei einem Update verloren, wodurch alles von Vorne beginnt. Einfacher ist es, eine Übersetzungsdatei einmalig anzulegen und diese nach dem Update (bei dem die Datei oft gelöscht oder überschrieben werden) wieder einzuspielen. In den neueren WordPress Versionen sind für die Themes keine „.po“ und „.mo“ Dateien mehr vorhanden, sondern lediglich eine „.pot“ Datei. Diese liegt beim Theme „Twentyeleven“ im Verzeichnis „wp-content\themes\twentyeleven\languages“.  Durch einen POT Editor wie z.B. PO file editor kann die Datei in die „.po“ und „.mo“ Dateien aufgeteilt und übersetzt werden. Dazu per Drag&Drop die Datei „twentyeleven.pot“ hineinziehen und oben links auf die Schaltfläche „POT“ klicken (siehe Abbildung 1).

Abbildung 1: POT entriegeln

Abbildung 1: POT entriegeln

Im unteren Bereich sollte nun statt „Context“ das Wort „Translation“ stehen. Man kann sich nun durch die einzelnen Zeilen unter „Source“ klicken und einen Übersetzungstext definieren. Wenn die Arbeit beendet ist, können über den „Save“ Button die „.po“ und „.mo“ Dateien heruntergeladen werden. Anschließend klickt man wieder oben links auf den Button „PO“ (der vorher noch „POT“ hieß), um wieder die „.pot“ Datei zu bekommen und per „Save“ zu sichern. Anschließend lädt man die Dateien folgendermaßen hoch: alle Dateien in das Verzeichnis „wp-content\themes\twentyeleven\languages“, dabei die Dateien „twentyeleven“ (z.B. „twentyeleven.pot“) nennen. Anschließend kopiert ihr die „.po“ und „.mo“ Dateien in das Verzeichnis „wp-content\languages\themes“, die Dateien müssen dabei „twentyeleven-de_DE.po“ und „twentyeleven-de_DE.mo“ heißen. Sichert die Dateien am Besten nochmals in einem anderen Verzeichnis, damit sie bei einem Update nicht verloren gehen. Fertig seid ihr mit dem Theme übersetzen. Für alle, die eine fertige Übersetzung ins Deutsche benötigen, sind die Dateien hier zu finden: twentyeleven.zip.

Alternative

Alternativ dazu der von mir zuerst beschrittene Weg. Dieser ist jedoch nicht zu empfehlen, da bei einem Update die Änderungen verloren gehen. Der Vollständigkeit halber nun das Vorgehen. Hierzu einfach im Administrationspanel von WordPress in der linken Menüleiste unter „Design“ auf „Editor“ gehen. In der rechten Leiste sind nun alle benötigten PHP-Dateien (und auch CSS Dateien) aufgelistet. Ich bin nun alle PHP-Dateien durchgegangen und habe mit der Suchfunktion des Browsers (Strg + F in Chrome) nach „Continue Reading“ gesucht und durch „Weiterlesen“ ersetzt. In den meisten Dateien hat es keine Auswirkung auf das Intro gehabt. Nach der Änderung in der „functions.php“ hat sich der gewünschte Effekt eingestellt. Deshalb empfehle ich, zuerst in dieser PHP-Datei die Änderungen vorzunehmen. Falls an anderer Stelle Übersetzungen fehlen, kann ähnlich vorgegangen werden. Diese Änderungen werden allerdings bei einem Update der Templatedateien ohne Rückfrage überschrieben.

Ein Gedanke zu „WordPress Theme übersetzen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.