WPML

Erfahren Sie, wie Sie Gettext-Funktionen verwenden, um Texte in Themes und Plugins in WPML übersetzbar zu machen.

Um sicherzustellen, dass Texte in Themes und Plugins übersetzbar sind und korrekt auf Ihrer Website angezeigt werden, müssen Sie zwei Bedingungen erfüllen:

  • Texte in eine Gettext-Funktion einschließen
  • Ein Text-Domain-Argument einbinden

Grundlagen zu Gettext

Betrachten Sie den folgenden String, „Thank you!“, der zur Domain „my-plugin-domain“ gehört:

__( 'Thank you!', 'my-plugin-domain' );

Um den String an den Browser auszugeben, verwenden Sie die Funktion _e():

_e( 'Thank you!', 'my-plugin-domain' );

Wenn Sie HTML verwenden, schließen Sie ihn in HTML-Tags ein:

<h2><?php _e( 'Thank you!', 'my-plugin-domain' ); ?></h2>

Wenn Sie einen Link haben, der vom umgebenden Text getrennt ist, verwenden Sie die Funktion esc_html_e():

<a href="http://wpml.org/" ><?php esc_html_e( 'Translated with WPML', 'my-domain' ); ?></a>

Bewährte Methoden für Gettext

1. Niemals eine Variable oder Konstante in eine Gettext-Funktion einschließen

Dadurch können die Strings nicht gescannt und folglich nicht übersetzt werden.

Falsch

<?php
if ( $morning ) {
   define( 'GREETING', 'Good morning' );
} else {
   define( 'GREETING', 'Good afternoon' );
}
 
_e( GREETING, 'my-domain' );
?>

Richtig

<?php
if ( $morning ) {
   _e( 'Good morning', 'my-domain' );
} else {
   _e( 'Good afternoon', 'my-domain' );
}
?>

2. Ausgabe aus Sicherheitsgründen escapen

Wenn ein String sofort in der Ausgabe gerendert wird, verwenden Sie Escaping-Funktionen wie esc_html_ und esc_attr_, um sich vor XSS-Angriffen zu schützen.

echo '<div>' . esc_html__( 'Back to homepage', 'my-domain' ) . '</div>';

3. Kommentare für Übersetzer hinzufügen

Dies hilft Übersetzern, den Kontext zu verstehen, in dem die Texte oder Variablen erscheinen.

/* translators: %1$s is status label (e.g. "active" and  %2$s is quantity of bits/s (e.g. 12 Gbit/s) */

printf(
esc_html__( 'State of your network is %1$s. Maximum download speed is %2$s.', 'my-plugin-domain' ),
$state, $speed
);

Zusätzliche Ressourcen

Um mehr über Gettext zu erfahren, lesen Sie den offiziellen WordPress-Codex.

Geschrieben von Amir · Zuletzt aktualisiert am 21. Februar 2025