WordPress Theme lokalisieren- Sprachdatei erstellen-Schritt für Schritt Anleitung

Ein WordPress Theme oder ein WordPress Plugin für viele verschiedene Sprachen anzubieten ist extrem leicht, weil WordPress „gettext“ in sich beheimatet. Für technik Freaks, dies ist eine Library, die Übersetzungen einfach machen sollte.

If you would like to read this tutorial in english, please visit Weblogtoolscollection.

Für nicht Technik Freaks, dieses gettext ermöglicht, dass Übersetzungen nicht im HTML Quelltext gemacht werden müssen.

Also die Sprachdatei wird ausgelagert-ist extra. Ein einziges Mal muss man die Templates von WordPress-also alle Dateien, die ein WordPress Theme hat bearbeiten.

In diesem Artikel erkläre ich wie man die Templates, die einzelnen Dateien eines WordPress Themes vorbereitet, anschließend wie man den Editor PoEdit dann verwendet. PoEdit gibt es für viele Betriebssysteme, sein System bleibt aber gleich.

Meine Erklärungen sind einfachst, denn wer PHP kann, der weiß ja auch so wie es geht. ;)

Ich verwende hier viele Screenshots und viele Codebeispiele daher wird der Artikel lang. Ich empfehle auch diesen Artikel entweder bei einem der Social Bookmark Dienste zu bookmarken oder auszudrucken, denn so kann man leicht nachlesen.

WordPress Theme Templates für die Sprachdatei vorbereiten.

Einach eine Datei eines WP Themes mit einem Texteditor öffnen und nach „Worten“ suchen oder ganzen Sätzen.

Beispiel aus meinem my-photo-blog.

Zuerst stand da wo:“Something about you.“

 <?php _e('Something about you.','mtsphoto') ;?>

Dies bedeutet:

<?php

PHP Du bekommst Arbeit. ;)

_e('Something about you.','mtsphoto')

Findet PoEdit nachher wo einen Unterstrich mit einem „e“, dann weiß es:Jetzt muss ich übersetzen. Die Klammer und die Hochkoma mag PHP.

Something about you soll übersetzt werden, dann ein Koma, dann der Name des Projektes.

Eine Übersetzung ist ein Projekt und braucht daher einen Namen.

„mtsphoto“ ist ein frei gewählter Name. Ich empfehle einen aussagekräftigen Namen und kurz. Keine Sonderzeichen, keine Ziffern, Groß und Kleinschreibung ist wichtig, daher am besten immer kleine Buchstaben,sonst vertippt man sich zuoft.

Der Freiraum zwischen den Hochkoma ist dann für die Übersetzung wichtig. Es macht also Unterschied, ob man

 <?php _e('Something about you.     ','mtsphoto') ;?>

oder

 <?php _e('Something about you.','mtsphoto') ;?>

getippt hat. Sorgsames Arbeiten erleichtert einiges.

 ;?>

PHP Dein Job ist aus.

Wie geht das, wenn da schon wo PHP beim Arbeiten ist.

Aus

<?php comments_number('Leave a reply', '1 Comment', '% Comments' );?> <?php the_title(); ?>

wird dann:

<?php comments_number(__('Leave a reply','mtsphoto'), __('1 Comment','mtsphoto'), __('% Comments','mtsphoto') );?>

So bereitet man alle zu übersetzenden Worte, Phrasen, Sätze vor.

WordPress Theme und Sprachdatei bekannt machen.

Dafür gibts zwei Möglichkeiten: im Parent Theme oder im Child Theme.

1. in der functions.php des Parent Themes:

Diese mit einem einfachen Texteditor öffnen und ganz oben nach dem Beginn von <?php

load_theme_textdomain( 'mtsphoto', get_template_directory() . '/languages');

Hier sind die Sprachdateien im Ordner *languages*, der innerhalb des Theme Ordners erstellt werden muss.

Sonst weiß das WordPress Theme nicht, dass es da wo eine Datei gibt, die übersetzt.

2. in der functions.php des Child Themes:

load_child_theme_textdomain('mtsphotochild', get_stylesheet_directory().'/languages');

Und außerdem den Ordner languages vom Parent Theme in den Theme Ordner des Child Themes kopieren!

PoEdit erzeugt jetzt die Sprachdatei,die man dann übersetzen kann.

Den Editor PoEdit kann man tatsächlich einfachst installieren.

PoEdit herunterladen. Die Ausführungsdatei anklicken, den Anweisungen während der Installationsroutine folgen. Kennt man ein englisches Wort nicht, hilft wie immer dict.leo.org. ;)

PoEdit Einstellungen

PoEdit Datei==>Einstellungen
 PoEdit erste Einstellungen

PoEdit das erste Mal öffnen und unter Datei==>Einstellungen den Namen und eine Emailadresse angeben. Mehr habe ich da nicht gemacht.

Eine Sprachdatei ist für PoEdit ein Katalog.

PoEdit neuen Katalog erstellen
 PoEdit Katalogeinstellungen erstellen

Unter Projektinfo gibt man der Reihe nach an: Projektname – am besten den kurzen Namen, der auch in den Templates steht,also: „mtsphoto“.

Übersetzungsteam: Namen des Übersetzers.

Eine Emailadresse.

Sprache und dann Land kann man aus einer langen Liste auswählen.

Zeichensatz und Zeichensatz des Quellcodes ist zu 99,99% UTF 8.

PoEdit Pfad zum Katalog

PoEdit Pfad zum Katalog
 PoEdit Pfad zum Katalog

Wenn die Sprachdatei einfach im Ordner des WordPress Themes liegt, dann gehört da zweimal einfach ein Punkt hin. PoEdit stellt sich da öfters an. Liegt sie im Unterordner : 1 Punkt.
Ich musste den Punkt dreimal angeben bis PoEdit sich diesen merkte. Also wenn was nicht geht diesen Pfad kontrollieren.

PoEdit Schlüsselwörter des Katalogs

PoEdit Schlüsselwörter des Katalogs
 PoEdit Schlüsselwörter des Katalogs

Die Schlüsselwörter sind einerseis der Unterstrich und das kleine e und ein doppelter Unterstrich. Auch hier musste ich zweimal auf das kleine gepunktete Kästchen klicken bis mir PoEdit erlaubte da die Schlüsselwörter einzutragen. Hat man sich vertippt kann man das Schlüsselwort mit Klick auf das „a|e“ Kästchen bearbeiten.

Alle mir bekannten Schlüsselwörter /Pfade von WordPress

__()
_e()
__ngettext()
_n()
__ngettext_noop()
_n_noop()
_x()
_nx()
_nx_noop()
_ex()
esc_attr__()
esc_attr_e()
esc_attr_x()
esc_html__()
esc_html_e()
esc_html_x()
_c()
_nc()


PoEdit speichern unter de_DE

PoEdit speichern unter de_DE
 PoEdit speichern unter de_DE

Jetzt alles speichern. Datei==>Speichern unter==>WordPress Theme Ordner suchen und den Dateinamen de_DE vergeben. de_DE ist das Sprachländerkürzel für unsere schöne deutsche Sprache. Es ist sinnvoll dies so zu tun, denn 1. irgendwann gibt es zig solcher Sprachdateien in einem WP Theme, mit de_DE sieht man gleich welche Datei welche Sprache beinhaltet. 2. funktionierts sonst nicht wirklich gut.

PoEdit erstellt nach dem Speichern ganz automatisch zwei Dateien. Eine mit der Endung .mo eine mit der Dateiendung .po. Ich betrachte diese Dateien als Zwillinge, also nicht trennen.

PoEdit endlich übersetzen

Umlaute, Sonderzeichen
 Umlaute und Sonderzeichen als html entities

Mit einem Klick auf die Weltkugel müßte PoEdit jetzt alle zu übersetzenden Worte, Sätze etc. finden und in einer Liste anzeigen. Anklicken und im Feld unterhalb die Übersetzung hineintippen.

Aufpassen: Abstände sind wichtig. Umlaute sind wichtig. Diese müssen als Entities getippt werden.

PoEdit zeigt Fehler auf

Fehleranzeige
 PoEdit zeigt Fehler an

PoEdit zeigt in einer Statusleiste an, ob eine Übersetzung für den Editor verständlich ist.

Fehler finden
 PoEdit zeigt Fehler an auch im Quelltext an

Wenn man nicht weiß wieso PoEdit mit der Übersetzung nicht zufrieden ist. Kann man unter Bearbeiten==>Verweis finden sich die Stelle im Quelltext anzeigen lassen.

Dort findet man oft einen Abstand oder wie meist bei den XYZ Kommentaren einen Fehler. Ausprobieren bis PoEdit in der Statusleiste überall zufrieden ist. Daran denken: Wortabstände sind ebenfalls wichtig.

Datei==>Speichern.

WordPress Theme mit Sprachdatei Kontrolle und mögliche Fehler

Das WordPress Theme hochladen und aktivieren.

Bleibt die Seite dann Weiß, so richtig schön jungfräulich Weiß hat man irgendwo in einem Template bei den Übersetzungsangaben einen PHP Fehler. Eine vergessene Klammer, ein Hochkoma nicht gemacht oder eines zuviel. Den Strichpunkt nicht angegeben. Das Fragezeichen verloren oder eine spitze Klammer.

Bleiben die Worte English, obwohl PoEdit keinen Fehler gemeldet hat, dann hat man vergessen in der header.php//functions.php die Sprachdatei mit dem WordPress Theme bekannt zu machen. Erklärung wie das geht viel weiter oben. ;)

Ich wünsche viel Freud mit dem lokalisierten WordPress Theme, auf dass es von China bis Afrika und sonst wo auf der Welt oft genutzt wird.

Andere Toturials zum Thema:

Fragen:

bitte mein EmailFormular nutzen, so ich Zeit habe beantwort ich gern Fragen dazu – das mache ich in der Freizeit, da kanns ein bisschen dauern, aber Antwort kommt immer. Danke!

War dies hilfreich so ist weitersagen ausdrücklichst erlaubt ;-)
34

34 Beiträge zu “WordPress Theme lokalisieren- Sprachdatei erstellen-Schritt für Schritt Anleitung

  1. Kommentar Autor
    bosch
    Kommentar

    Vielen Dank für die ausführliche Anleitung. Nun habe auch ich endlich verstanden, wie es geht. Veilleicht kann ich dieses Wissen bald mal umsetzten … Nötig hätte es meine Seite jedenfalls.

  2. Kommentar Autor
    juliaL49
    Kommentar

    Respekt, eine wunderbar verständliche Einführung in die Welt von poEdit.
    Ich werde von meinem Artikel hierher verlinken, denn du hast einiges sehr viel knackiger formuliert :-)

  3. Kommentar Autor
    Chris
    Kommentar

    Danke, mit dieser Anleitung gehts ganz einfach!

  4. Kommentar Autor
    Monika
    Kommentar

    schau mal in den WP Dateien, wie da die Englischen Begriffe angegeben sind, so ergänzt Du die Deinen, dann öffnest Du die deutsche Sprachdatei, läßt sie alle neuen Begriffe suchen und übersetzt dann

    lg

  5. Kommentar Autor
    Nachtmeister
    Kommentar

    Wie mache ich denn das, wenn ich meine deutsche Sprachdatei bearbeiten möchte? Ich habe die englische WordPress Software installiert und nutze per Plugin sowohl die Deutsche als auch englische Sprache. Ich möchte aber die deuscthe Sprachdatei um ein paar Begriffe erweitern. Geht das?

  6. Kommentar Autor
    Seb
    Kommentar

    Dankeschön!
    Besonders der Hinweis, das Theme mit der Datei „bekannt zu machen“ ist wirklich Gold wert ;)

  7. Kommentar Autor
    Christoph
    Kommentar

    Die Anleitung ist sehr gut, ich habe allerdings noch ein Problem:

    Übersetzungen die so aussehen

    <?php comments_number(__(‚Leave a reply‘,’coda‘),

    funktionieren. Texte die im Ursprung so aussehen

    Comments are closed.

    bekomme ich nicht übersetzt. Ist das evtl. gar nicht möglich?

  8. Kommentar Autor
    Monika
    Kommentar

    Hallo Christoph doch das geht auch, Du mußt sie vorher nur so vorbereiten wie eben Leave a reply vorbereitet ist, das habe ich versucht oben zu erklären

    <?php _e('Comments are closed','coda')?>

    lg

  9. Ping Sprachanpassung | Die Metaphorik des Seins

  10. Kommentar Autor
    Sascha
    Kommentar

    Hallo,

    es scheint, dass die aktuelle PoEdit-Version einen Fehler hat. Zumindest bei mir erzeugt sie beim Speichern einen Fehler, der die erzeugten Dateizwillinge unbrauchbar macht. Das WP-Plugin „Codestyling Localization“ erzeugt Abhilfe (dies ist quasi ein PoEdit für das WP-Backend).

    LG, Sascha

  11. Kommentar Autor
    Monika
    Kommentar

    Hi Sascha ich nutze Version 1.4.1 und die funktioniert tadellos

    Codestylings Plugin gab es noch nicht als der Artikel entstand ;)

    lg

  12. Kommentar Autor
    Sascha
    Kommentar

    Hallo,

    ich benutze v1.4.2
    Vielleicht ist auch nur bei der Installation irgendwas schief gegangen oder die Version verträgt sich mit irgend einer anderen installierten Software nicht.

    LG, Sascha

  13. Kommentar Autor
    Monika
    Kommentar

    Hi Sascha das kann sein, auf alle Fälle ist das Übersetzungsplugin von Codestyling ja ne tolle Alternative .. und Du hast es geschafft, das zählt ;)

    lg

  14. Kommentar Autor
    Annette
    Kommentar

    Super! Vielen Dank für die Anleitung! Ich bin gerade über einen Link bei Xing aus dieser Woche hergekommen…

    LG, Annette

  15. Kommentar Autor
    Monika
    Kommentar

    freut mich Annette – ich vermut so ganz stark , dass ich ihn dort setzte ;)

  16. Kommentar Autor
    Stewart
    Kommentar

    hi,

    Ich weiß nicht, ob das hier so gut reinpasst, aber ich habe auch eine Webseite, die ich in andere Sprachen übersetzen möchte, bis jetzt wurde mir nur eine Agentur dazu empfohlen:deu.uebersetzungsagentur24.com // Übersetzungsbüro

    hat noch jemand gute Erfahrungen gehabt?

    Danke

    gruß

  17. Kommentar Autor
    Monika
    Kommentar

    Hi Stewart dies ist hier falsch,
    da gehts um was anders, darum lösch ich auch den Link wieder ;)

  18. Kommentar Autor
    Jurek
    Kommentar

    Danke für die super Anleitung. Es klappt!!!

  19. Kommentar Autor
    Andrew
    Kommentar

    Hat auch bei mir geklappt, besten Dank. Allerdings: In WP 2.9.1 müssen die beiden de_DE Dateien unbedingt in den Ordner „languages“ des themes-ordner.
    Wer Glück hat, findet dort bereits ein für die Übersetzung vorbereitetes Dokument. Beim themes „magazine-basic“ war es so.

  20. Kommentar Autor
    Patrick
    Kommentar

    Super Tutorial, nur leider bleiben bei mir die Worte Englisch. :( Habe auch die in die header.php eingefügt. Muss denn noch was anderes gemacht werden? In der config.php hab ich WPLANG auch auf de_DE.

    Danke schonmal. :P

  21. Kommentar Autor
    Valentin
    Kommentar

    Na, keine Antwort auf Patricks Frage? Hab nämlich das selbe Problem….. Was ist mit .mo-Dateien?

  22. Kommentar Autor
    juliaL49
    Kommentar

    Patrick und Valentin: was für eine Sprachdatei ist es denn? WordPress-System, Theme oder Plugin? Davon hängt es ab, wo die mo-Datei hingehört (po ist unwichtig). Das Einfügen in die header.php ist nur in Sonderfällen nötig.

  23. Kommentar Autor
    Valentin
    Kommentar

    Um die fürs Theme. Hab die .mo-Datei an den gewünschten Stellen editiert, Zeilen geändert etc pp aber nichts ändert sich und ich versteh nicht weshalb.

  24. Kommentar Autor
    juliaL49
    Kommentar

    Dann müsste die mo-Datei in den languages-Ordner des Themes. (vorausgesetzt du hast das aktuelle WP 2.9.2) und dass dein Theme verschiedene Sprachen unterstützt (alle Texte mit _e).
    Heißt die Datei de_DE.mo? (keine Tippfehler)

  25. Kommentar Autor
    Valentin
    Kommentar

    Ja, keine Tippfehler, Sprachunterstützung, languages-Ordner, alles wie gehabt. Ich glaub ich kämm einfach mal den WordPress Codex durch. Trotzdem danke!

  26. Kommentar Autor
    Patrick
    Kommentar

    Also ich hab auch eine Sprachdatei für ein Theme erstellt. Für das Theme gibt es auch schon mehrer andere Sprachen – also ist es mehrsprachenfähig. Und habe auch kein Schreibfehler. Im Theme Ordner sind die anderen Sprachen in dem Unterordner „lang“ auch wenn ich einen neuen Ordner mit dem Namen „languages“ oder „language“ erstelle funktioniert es auch nicht. Habe auch die aktuelle Version von WordPress. :(

    Danke für jede Hilfe! :)

  27. Kommentar Autor
    Monika
    Kommentar

    meist muss man dann in der functions.php die Sprachdateien auch mal verlinken…

    findest du in der functions.php wo eine Angabe bei der der Sprachordner dabei ist?

    ist bei der Installation WordPress auch in Deutsch?

    lg

  28. Kommentar Autor
    Patrick
    Kommentar

    Hey,

    naja wie gesagt, das Theme gibt es in verschiedenen Sprachen aber die anderen Sprachen funktionieren auch nicht.

    In der functions.php im Themeordner steht schon folgendes drin:

    load_theme_textdomain(‚destyle‘,TEMPLATEPATH . ‚/lang‘);

    also gleich der Ordner wo alle anderen Sprachen auch drin sind. Und wenn man bei der config.php von WordPress bei WPLANG einfach de_DE angibt sollte es auch funktionieren, laut der Dokumentation des Themes.
    Aber funktioniert nicht. :(

  29. Kommentar Autor
    skyfya
    Kommentar

    Super klasse der Artikel. Hab mich grade dran gemacht ein Theme zu übersetzen. Und siehe da es geht super, danke für den einfach zu verstehenden Artikel.

  30. Kommentar Autor
    Stefan M.
    Kommentar

    Danke, ich habe gestern 3 Stunden gebraucht zum schaitern. Tanja hat mir dein Link gegeben und mein Fehler war der tolle ‚Punkt‘ wo ich immer irgendwie vergessen habe, bzw es nie gefressen hat.
    Danke, mein Plugin kann endlich andere Sprachen.

  31. Kommentar Autor
    Maria
    Kommentar

    Danke für eure guten Beiträge und Tips.Haben mir sehr weiter geholfen.

  32. Ping Sprachdatei in WordPress erstellen » SigisWorld

  33. Ping WordPress Kolumne: #2 Wie bringe ich engl. Themes die deutsche Sprache bei? | WordPress Training und Consulting

  34. Ping im Child Theme die richtige Sprachdatei laden | Texto.de - Mein WordPress Magazin