Widget Übersetzung auf meinem Plugin

Ich füge i18n dem Widget auf Listenkategorie-Posts hinzu . Ich habe die Pot-Datei und Po- und Mo-Dateien für Spanisch und Englisch korrekt erstellt. Alle Strings werden mit _e() in der Formulardatei angezeigt.

Die Verzeichnisstruktur ist wie folgt:

 / include/ ListCategoryPostsWidget.php lcp_widget_form.php languages/ es_ES.mo en_US.mo plugin.php 

Es gibt andere Dateien, aber diese sind diejenigen, die an der Übersetzung beteiligt sind. Von meiner Widget-class (ListCategoryPostsWidget.php) verwende ich dies, um die Übersetzung zu registrieren:

 $translation_dir = '../languages'; load_plugin_textdomain( 'list-category-posts', null, $translation_dir ); 

Und das ist der Code, den ich verwende, um die Formulardatei in die ListCategoryPostsWidget.php-Datei einzufügen:

 /** @see WP_Widget::form */ function form($instance) { include('lcp_widget_form.php'); } 

Standardsprache ist Englisch, das funktioniert gut. Aber wenn ich WP_LANG auf meiner wp-config auf “es_ES” setze, sehe ich immer noch den Text auf dem Widget in Englisch. Irgendwelche Ideen? EDIT: Also, ich füge etwas mehr Code hinzu:

 

<label for="get_field_id('title'); ?>">

So benutze ich die function _e in lcp_widget_form.php.

Solutions Collecting From Web of "Widget Übersetzung auf meinem Plugin"

Basierend auf Ihrem Kommentar:

Der HTML-Code, der vom Widget generiert wird? Das zeigt nur die Strings in der function _e für zB: _e (“Category”) zeigt “Category”

Ich vermute, dass Sie Ihre Übersetzungszeichenfolgen nicht richtig konfiguriert haben. Sie müssen die Textdomäne in jeden functionsaufruf der Übersetzungszeichenfolge einschließen , sonst werden die Zeichenfolgen nie übersetzt .

zB für Ihre Textdomäne 'list-category-posts' :

 _e( 'Category' ) 

… sollte stattdessen sein:

 _e( 'Category', 'list-category-posts' ) 

Stellen Sie sicher, dass alle functionen für die Übersetzungszeichenfolge entsprechend deklariert sind.