Du hast Dir das herausragende Framework Genesis mit einem Childtheme gekauft und verzweifelst an der Übersetzung? Auch wenn einzelne Seiten Dir etwas anderes vorgaukeln kann ich Dir versichern, es liegt nicht an Deiner Unfähigkeit, dass sich Genesis und Dein Child Theme nicht immer vollständig übersetzen lassen. Warum das so ist und wie Du Dein Theme doch noch übersetzt bekommst, erfährst Du in diesem Artikel.
Das Plugin Genesis Translations
Zuerst die gute Nachricht. Es gibt ein Plugin, das Genesis zuverlässig übersetzt.
Die schlechte Nachricht, eine Übersetzung ins Deutsche ist noch nicht verfügbar. Allerdings kannst Du aktiv bei der Übersetzung von Genesis mitarbeiten. Die Zeit bis zur Verfügbarkeit dürfte sich dadurch gravierend verkürzen. Hier geht es zur Übersetzung: Genesis ins Deutsche übersetzen.
Das Plugin Loco Translate
Warum mühsam mit .po und .mo Dateien abplagen, wenn es ein herausragendes Plugin zur Übersetzung Deines Genesis Themes gibt. Die Verwendung ist denkbar einfach. Nach der Installation wählst Du Dein Theme Genesis aus. Als Speicherort gibst Du den Language Ordner im Verzeichnis Genesis an. Anschliessend kannst Du die Texte Deines Themes übersetzen. Du brauchst nicht alles übersetzen. Es reicht, wenn Du die Texte übersetzt, die im Frontend Deiner Seite sichtbar sind.
Wenn nicht alle Texte übersetzt werden
Genesis bietet eine sehr gute Grundlage, alle Texte zu übersetzen. Sollte es mit Loco Translate nicht möglich sein, einzelne Texte oder Wörter zu übersetzen, wird die Ursache mit hoher Wahrscheinlichkeit in Deinem Child Theme liegen.
Hast Du sicher gestellt, dass Deine Sprachdateien im richtigen Verzeichnis abgelegt wurden, solltest Du überprüfen, ob teilweise Texte übersetzt wurden. Die Ursache findest Du dann in der functions.php Deines Child-Themes. Dort solltest Du nach dem String (Text) suchen. Du kannst ihn direkt in der jeweils gefundenen Funktion anpassen. Besser ist es jedoch, ihn durch Sprachvariablen zu ersetzen, die als Platzhalter für Deine mit Loco Translate erstellte Übersetzung dienen.
Beispiel Suchformular
function thx_search_text( $text ) {
return esc_attr( 'Search my blog...' );
}
add_filter( 'genesis_search_text', 'thx_search_text' );
Findet sich solch eine Filteranweisung in der functions.php Deines Child Themes, wirst Du niemals eine Übersetzung mit Loco Translate erreichen können, denn der String: “Search my blog…” überschreibt die Sprachvariable von Genesis. Denkbar schlechter Code. Nun wird dieser Code nicht besser, wenn Du “Search my blog…” durch “suchen…” ersetzt. Obwohl Du damit Dein Ziel auch schon erreicht hättest.
Besser ist folgende Ersetzung:
function thx_search_text( $text ) {
return esc_attr( __( 'Search this website', 'genesis' ));
}
add_filter( 'genesis_search_text', 'thx_search_text' );
Jetzt wird Deine Übersetzung, die Du mit Loco Translate vorgenommen hast, verwendet.
Wenn Du verstanden hast, was wir hier überschrieben haben, wirst Du jedoch bereits festgestellt haben, dass die Ersetzung völlig überflüssig ist. Denn sie überschreibt die Sprachvariable mit der Sprachvariablen.
Statt solch eine überflüssige Ersetzung vorzunehmen, solltest Du den in Deiner functions.php gefundenen Filter einfach löschen.
Alles sieht richtig aus, doch eine Übersetzung wird nicht übernommen?
Auch solche Fälle gibt es. Als Beispiel sei hier die Suchergebnisseite angeführt. Gibst Du im Suchfeld einen Suchbegriff ein, erscheint die Suchergebnisseite mit einem Title, der trotz Übersetzung englisch angezeigt wird. Als Beispiel sei hier das Genesis Child Theme Studio Pro angeführt.
Im Code findet sich dann folgende Zuweisung:
In genesis/search.php:
<div class="archive-description"><h1 class="archive-title">%s %s</h1></div>', apply_filters( 'genesis_search_title_text', __( 'Search Results for:', 'genesis' ) ), get_search_query() );
In studio-pro/includes/header.php:
'content' => apply_filters( 'genesis_search_title_text', __( 'Search results for: ', 'studio-pro' ) ) . get_search_query()
In beiden Fällen wird eine Sprachvariable genutzt, weshalb eine Übersetzung erfolgen sollte. Wenn Du an der Stelle keine Lust hast, den Fehler zu suchen, bietet sich eine Überschreibung mittels Filter an.
function thx_search_title_text() {
return esc_html('Suchergebnis für: ');
}
add_filter( 'genesis_search_title_text', 'thx_search_title_text' );
Die Funktion gehört selbstverständlich wieder in die functions.php Deines Child-Themes. In diesem Fall Studio Pro.
Ähnlich kannst Du bei allen anderen Seiten verfahren. Als Beispiel sei hier noch die Fehlerseite angeführt. Eine Überschreibung mittels Filter ist auch hier schnell durchgeführt. Und selbstverständlich kannst Du die Funktion gleich als Argumment übergeben. So ersparst Du Dir etwas Schreibarbeit.
add_filter( 'genesis_404_entry_title', function(){return 'Seite nicht gefunden, Fehler 404';});
Übersetzung von Genesis inklusive Child Theme
Wenn Dir das alles zu schwierig erscheint, dann kontaktiere mich. Ich übersetze Dir alle WordPress Themes inklusive Frameworks wie Genesis und dem von Dir gewähltes Child-Theme.
Schreibe einen Kommentar