Traduzione del widget nel mio plugin

28 ott 2011, 21:15:57
Visualizzazioni: 274
Voti: 1

Sto aggiungendo l'i18n al widget di List Category Posts. Ho creato correttamente il file .pot, e i file .po e .mo per lo spagnolo e l'inglese. Tutte le stringhe vengono visualizzate con _e() nel file del form.

La struttura delle directory è la seguente:

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

Ci sono altri file, ma questi sono quelli coinvolti nella traduzione. Dalla mia classe Widget (ListCategoryPostsWidget.php) sto usando questo per registrare la traduzione:

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

E questo è il codice che sto usando per includere il file del form nel file ListCategoryPostsWidget.php:

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

La lingua predefinita è l'inglese, quindi funziona bene. Ma quando imposto WP_LANG su "es_ES" nel mio wp-config, vedo ancora il testo nel widget in inglese. Qualche idea? MODIFICA: Quindi, sto aggiungendo altro codice:

<p><label for="<?php echo $this->get_field_id('title'); ?>">
<?php _e("Titolo", 'list-category-posts')?></label>

Questo è come sto usando la funzione _e in lcp_widget_form.php.

3
Commenti

Possiamo vedere il codice di output, per aiutare a diagnosticare il problema?

Chip Bennett Chip Bennett
28 ott 2011 21:20:49

Certo, quale codice? L'html generato dal widget? Quello mostra semplicemente le stringhe nella funzione _e per esempio: _e("Category") visualizza "Category".

Fernando Briano Fernando Briano
28 ott 2011 21:29:57

Sì: il codice PHP che genera l'output HTML - specificatamente, le stringhe che vengono generate in output. SUGGERIMENTO: Se stai usando _e( "Category" ), lo stai facendo nel modo sbagliato, ed è per questo che non funziona.

Chip Bennett Chip Bennett
28 ott 2011 21:31:33
Tutte le risposte alla domanda 1
4

Sulla base del tuo commento:

L'html generato dal widget? Quello mostra semplicemente le stringhe nella funzione _e per esempio: _e("Category") mostra "Category"

Sospetto che tu non abbia configurato correttamente le stringhe di traduzione. Devi includere il textdomain in ogni chiamata di funzione per la traduzione delle stringhe, altrimenti le stringhe non verranno mai tradotte.

Ad esempio, per il tuo textdomain 'list-category-posts':

_e( 'Category' )

...dovrebbe invece essere:

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

Assicurati che tutte le tue funzioni per le stringhe di traduzione siano dichiarate di conseguenza.

28 ott 2011 21:34:10
Commenti

Ops, scusa ho sbagliato i commenti, sto usando il metodo corretto: _e("Category", 'list-category-posts')

Fernando Briano Fernando Briano
28 ott 2011 21:38:32

Ecco perché abbiamo bisogno di vedere il codice effettivo... :)

Chip Bennett Chip Bennett
28 ott 2011 21:53:47

Ho aggiunto alcuni dettagli in più alla domanda.

Fernando Briano Fernando Briano
28 ott 2011 22:04:37

Questa è una vecchia domanda ma stavo solo controllando il mio account qui. L'i18n è stato finalmente aggiunto: http://wordpress.org/extend/plugins/list-category-posts/changelog/, grazie Chip! :)

Fernando Briano Fernando Briano
8 feb 2013 07:48:10