• News
  •  
  • Tools
  •  
  • Bücher
  •  
  • Fotos
  •  
  • Impressum
  •  
  • Be social!
  • RSS
  • FaceBook
  • Google Buzz
  • Mister Wong
  • Delicious
  • Xing
  •  
 

Wie erstelle ich ein sprachunabhängiges WordPress-Theme (Teil 1)

WordPress

WordPress

Heute ist es ja nicht mehr so, dass wir auf einer Insel der seligen Leben und nur Englisch, Deutsch, Französisch oder was auch immer sprechen. Nein, heute sollte unsere WebSite schon in mehreren verschiedenen Sprachen vorliegen. Aber wie machen wir das ganze mit WordPress?

Ich habe mir gedacht ich stelle euch die Möglichkeiten in einer losen Artikelserie vor. Besonders hat mich in den letzten Wochen ein “Premium” Theme genervt, welches vorgab internationalisiert zu sein. Nach dem ich über 40 Arbeitsstunden investiert habe, klappte auch alles sauber. Hätten die Programmierer von Anfang an, ein paar Kleinigkeiten berücksichtigt, wäre alles viel leichter gegangen.

Aber fangen wir von vorne an. Zuerst ein grundlegender Gedanke: Wollen wir uns die Übersetzung des Blogs überhaupt antun oder verlassen wir uns wieder auf Tante Google (besser ein PlugIn für den Google Translator [EN])? Ich denke ein manuell übersetztes Blog zeigt einfach mehr Professionalität.

Also der nächste Gedanke: Wie gehen wir an die Übersetzung heran. WordPress bietet Funktionen für die Ausgabe von sprachunabhängigen Text. Also kein Problem, dass wir die verwenden. (Wir werden sie weiter unten kennenlernen.) Dafür müssen wir aber die Funktionen unseres Themes gut kennen. Dafür empfehle ich euch den Post von Sensei: Die Anatomie eines WordPress Themes.

Was brauchen wir jetzt noch? Ganz einfach! Wir durchsuchen denn QuellCode jeder einzelnen(!!) Datei nach Texten, die auf der WebSite erscheinen werden. Dazu müssen wir einerseits alle HTML-Elemente durchsuchen. Andererseits müssen wir die php-Befehle für die Ausgabe erkennen. Die HTML-Elemente sind leicht zu identifizieren, aber…

1. PHP-Befehle für die Ausgabe

Auch hier gibt es kein Problem es gibt nicht sehr viele. Der Befehl echo (PHP-Manual) gibt einen Text direkt aus. Das Kommando printf() (PHP-Manual) erzeugt eine formatierte Ausgabe direkt im Dokument. Und der Befehl sprintf() (PHP-Manual) erzeugt ebenfalls eine Ausgabe, gibt sie aber zur Verwendung in einer Variablen zurück.

2. Die Ausgabe-Funktionen von WordPress

Nun benötigen wir die beiden Entsprechungen in WordPress. Auch hier gibt es einen Unterschied. Wir können eine Funktion zur direkten Ausgabe und eine zur Weiterverwendung als Variable verwenden.

Die direkte Ausgabe eines übersetzten Textes

Dafür ist die Funktion _e($text, $namespace) (WordPress Codex [EN]) von WordPress zuständig. Die Funktion gibt den Text direkt in der Seite aus. Sie erwartet mindestens einen Parameter: $text. Dies ist der zu übersetzende Text. Wird keine Übersetzung gefunden, wird der Text direkt ausgegeben. Der zweite Parameter ist zur Konfliktvermeidung. Es könnte zwei verschiedene Übersetzungen für ein und denselben Begriff geben. Dann kannst Du mit $namespace bestimmen welcher verwendet wird. Wenn Du diesen Parameter nicht verwendest, verwendet WordPress automatisch ‘default’.

Den Text übersetzen, aber nicht ausgeben

Dies erledigt die WordPress-Funktion __($text, $namespace) (WordPress Codex [EN]). Die Parameter sind die gleichen wie bei der vorherigen Funktionen. Der einzige Unterschied ist, dass die Übersetzung nicht direkt geschrieben wird, sondern zur Verwendung in einer Variablen zurückgegeben wird.

3. Das Übersetzen von literalen Texten

Dies ist eigentlich der einfachste Teil. Schauen wir uns das ganze an einem Beispiel an. Wir haben folgenden Beispieltext in einer Datei gefunden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<li>
  <a href="/tools/fhour/" title="Der Stundenpreis des Freelancer">Tools</a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/bucher-vom-guru/" title="Bücher des Gurus">B&uuml;cher</a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/gurus-fotos/" title="Fotogalerie des Gurus">Fotos</a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/impressum/" title="Impressum des Blogs">Impressum</a>
</li>

Wir erkennen, dass in Zeile #2, #6, #10 und #14 direkte Text (literale Texte) stehen. Einmal im Attribut title und einmal im a-Element. Genau diese Texte müssen wir übersetzen. Dafür verwenden wir die Funktion _e() von WordPress. Wir übergeben den deutschen Text der Funktion, welche ihn übersetzt und erneut ausgibt. Das ganze sieht dann so aus.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<li>
  <a href="/tools/fhour/" title="<?php _e('Der Stundenpreis des Freelancer'); ?>">< ?php _e('Tools'); ?></a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/bucher-vom-guru/" title="<?php _e('Bücher des Gurus'); ?>">< ?php _e('B&uuml;cher'); ?></a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/gurus-fotos/" title="<?php _e('Fotogalerie des Gurus'); ?>">< ?php _e('Fotos'); ?></a>
</li>
<li class="seperator">&nbsp;</li>
<li>
  <a href="/impressum/" title="<?php _e('Impressum des Blogs'); ?>">< ?php _e('Impressum'); ?></a>
</li>

Damit kannst Du fürs erste einiges an Deinem Thema erledigen. Durchforste deinen kompletten HTML-Markup und ersetze alle Texte nach obigen Schema. Im nächsten Teil werden wir erfahren, wie Texte mir variablen Parametern übersetzt werden.

Weitere Posts zu diesem Thema

 

Der Guru 2.0 Blog lebt von Deinem Kommentar

Es existieren zwei Antworten zu diesem Post

TorbenL von [web]
schrieb am 17. 3. 2011 um etwa 18 Uhr:
Ein wirklich gelungener Artikel zum Thema Mehrsprachigkeit bei Wordpress - gleich gebookmarked! Herzliche Grüße, Torben Leuschner
Sensei von [web]
schrieb am 27. 3. 2011 um etwa 15 Uhr:
Wie praktisch dann kann ich da ja gleich einsteigen mit deiner Serie wenn ich das Theme soweit fertig habe :D

Es existieren zwei TrackBacks zu diesem Post

TrackBack von Wie erstelle ich ein sprachunabhängiges WordPress-Theme (Teil 2) » Guru 2.0 › 3.0 am 9. 3. 2011 um etwa 9 Uhr[...] 1. Teil der Artikelserie haben wir ja erfahren wie wir die statischen HTML-Texte automatisch übersetzen lassen können. [...]
TrackBack von Zweisprachigen Blog erstellen | netheweb.de am 17. 4. 2011 um etwa 12 Uhr[...] von mehrsprachigen Themes erstellt auf das ich an dieser Stelle natürlich gerne verweise. - Wie erstelle ich ein sprachunabhängiges Theme – Teil 1 - Wie erstelle ich ein sprachunabhängiges Theme – Teil 2 – Wie erstelle ich ein [...]

Deine Meinung ist dem Guru 2.0 wichtig





XHTML - Du kannst diese Tags benutzen:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
  • Werbung

  •  
  • Diesen Post empfehlen


     

     

     

     

     
    Stumbleupon
     
    Wikio
  •  
  • Das war eine Hilfe?

  •  
  • Du brauchst Papier?

  •