[SOLVED] Traduzione mesi
-
Salve, ho un sito con versione 4.2.2–it_IT
nel file config ho inserito define(‘WPLANG’, ‘it_IT’);
nelle cartelle language ho i file it_IT.poè tutto tradotto tranne i nomi dei mesi e dei giorni che mi rimangono in inglese. ho già contattato il supporto del tema installato e mi assicurano che non usano qualcosa di loro ma che viene preso dal core di wordpress.
qualcuno sa come posso risolvere?
grazie
Paolo- Questo topic è stato modificato 9 anni, 2 mesi fa da medariox.
- Questo topic è stato modificato 7 anni, 6 mesi fa da Cristiano Zanca.
-
Ciao 2CAN,
che tipo di hosting hai? È possibile che la macchina su cui sei ospitato abbia impostato il locale in inglese.
Poi, giusto per precisione, la variabile WPLANG non viene più utilizzata, fa fede l’impostazione del linguaggio che trovi in “Impostazioni->Generali”, in basso.
G
Ciao Giustino, grazie della risposta.
anche a me era venuto il dubbio che le date venissero tirare fuori da funzioni php quindi che centrasse il locale.
come hosting ci affidiamo ad un’azienda qui sopra i nostri uffici, hanno server dedicati. però so già per certo che ospitano altri siti sullo stesso server. si può andare a settare singolarmente per sito?Grazie per la precisazione, in impostazioni generali c’è già impostato italiano, WPLANG l’ho messa per abitudine… se ormai è deprecata non la metterò più 😉
Per quanto ne so io, WordPress non dovrebbe usare delle funzioni PHP per le date. Sei sicuro di avere tutti i file necessari per la traduzione? Oltre al file it_IT.po, dovresti anche avere it_IT.mo nella stessa cartella.
si, ho anche i .mo
aprendo le pagine del tema credo che la parte che tira fuori la data sia questa
$start_date = get_post_meta( $event_id, BMT_PREFIX . 'start_date', true ); if ( $start_date ) { $tmp = new DateTime( $start_date ); $start_date = date_format( $tmp, get_option( 'date_format' ) ); $start_date_cd = get_post_meta( $event_id, BMT_PREFIX . 'start_date', true ); } else{ $start_date = get_the_date( $event_id ); $start_date_cd = get_the_date( 'Y/m/d', $event_id ); }
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner. Motivo: code in tags
Grazie per il codice… così tutto è un po’ più chiaro. WordPress non usa i locale del sistema (#17268) quindi le righe
$tmp = new DateTime( $start_date ); $start_date = date_format( $tmp, get_option(‘date_format’) );
non tornano probabilmente il valori aspettati. Secondo me dovrebbe essere sostituito con il seguente codice:
$start_date = date_i18n( get_option( 'date_format' ), time() );
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner.
grande funziona!
quindi chi ha fatto il tema avrebbe dovuto usare date_i18n?? adesso provo ad usarlo in tutte le pagine dove ho questi problemi… quindi mi tocca ricercare a manina dove vengono tirate fuori le funzioni.oppure c’è un metodo “generale” per forzare la cosa?
ah no allora non funziona giusto ma perchè giustamente tira fuori la data odierna, come posso fare a passare la data settata in $tmp?
Purtroppo no … ti tocca a controllare il theme 😉
Se hai un $startdate potresti usare quello invece di usare time()… Quindi
$start_date = date_i18n( get_option( 'date_format' ), $tmp );
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner.
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner.
sto facendo delle prove, non conoscendo bene php sicuramente sbaglio la sintassi
ora fa così
$tmp = new DateTime( $start_date ); $start_date = date_format( $tmp, get_option(‘date_format’) );
se metto
$start_date = date_i18n( get_option( 'date_format' ), time() );
tira fuori la data odierna.
Se metto
$start_date = date_i18n( get_option( 'date_format' ), $tmp );
da errore
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner. Motivo: Code in ticks please
Hai provato?
$tmp = new DateTime( $start_date ); $start_date = date_i18n( get_option( 'date_format' ), $tmp );
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner.
c’è qualcosa di diverso che non vedo nel codice che hai messo te, o ci stavamo scrivendo insieme (mi pare che nel messaggio sopra avevo scritto proprio come te)
Se mettiamo tutto il codice insieme …
$start_date = get_post_meta( $event_id, BMT_PREFIX . 'start_date', true ); if ( $start_date ) { $tmp = new DateTime( $start_date ); $start_date = date_i18n( get_option( 'date_format' ), $tmp ); $start_date_cd = get_post_meta( $event_id, BMT_PREFIX . 'start_date', true ); } else{ $start_date = get_the_date( $event_id ); $start_date_cd = get_the_date( 'Y/m/d', $event_id ); }
scusa, la pagina alla fine era un’altra e il codice è praticmaente uguale, cambia solo come tira fuori event_id. il codice è così
$start_date = get_post_meta(get_the_id(), BMT_PREFIX . 'start_date', true); if($start_date){ $tmp = new DateTime( $start_date ); //$start_date = date_format($tmp, get_option('date_format')); $start_date = date_i18n( get_option( 'date_format' ), $tmp ); $start_date_cd = get_post_meta(get_the_id(), BMT_PREFIX . 'start_date', true); }else{ $start_date = get_the_date(get_the_id()); $start_date_cd = get_the_date( 'Y/m/d', get_the_id() ); }
ho provato a commentare e a mettere $temp
risultato: al posto di scrivere 24 JULY 2015 nelle 2 zone dove dev emostrarlo, in una non la mostra proprio, nell’altra scrive 25/06/2015
allego immagine, a sx codice originale, a dx modificato
2can.it/download/print.jpg
(grazie dell’aiuto sto uscendo di testa)
- Questa risposta è stata modificata 9 anni, 2 mesi fa da medariox.
Non puoi usare un oggetto in date_i18n, devi prima convertire $tmp in timestamp (integer).
Prova così:$start_date = date_i18n( get_option( 'date_format' ), $tmp->getTimestamp() );
Ricorda di mettere il codice tra “code” in futuro, grazie!
Credo che devi ancora settare il formato delle date (negli options di WordPress) per cambiare l’output d/m/Y a d/F/Y. Se questo è un problema potresti anche usare date_i18n in questo modo:
$start_date = date_i18n( 'd/F/Y', $tmp->getTimestamp() );
- Questa risposta è stata modificata 9 anni, 2 mesi fa da Dennis Ploetner. Motivo: Of course we need a timestamp here
- Il topic ‘[SOLVED] Traduzione mesi’ è chiuso a nuove risposte.