«

»

Set 10 2013

Stampa Articolo

WordPress multilingua con qTranslate

lingue-mondoPer trasformare il proprio WordPress in un sito multilingua si possono usare diversi metodi, come la creazione di altrettanti siti WordPress in sottodirectory differenti, domini con estensione diversa o vari sottodomini quante solo le lingue, oppure affidarsi a plugin che eseguono una traduzione "al volo" utilizzando le funzioni di google translate.

Tuttavia la soluzione migliore, quella che si può definire lo spartiacque tra un sito amatoriale e uno professionale, è quella di utilizzare un plugin che permetta sullo stesso sito di inserire manualmente i testi tradotti degli articoli, in modo da avere il pieno controllo delle varie lingue.

I plugin più usati per tale scopo sono VPML (a pagamento) e qTranslate (gratuito), plugin quest'ultimo consigliato da noi perché molto valido e sopratutto gratuito.


ATTENZIONE: qTranslate protrebbe non funzionare con WordPress versione 3.6.1

Per risolvere questo problema: http://wordpress.org/support/topic/problem-with-wp-361


L'installazione del plugin qTranslate si esegue con la consueta procedura (installiamo anche il plugin qTranslate slug che servirà per i permalink):

qtranslate2

 

Dopo aver attivato i due plugin si visualizzerà il pannello di amministrazione di WordPress in lingua inglese: per riportare l'italiano come lingua di default è necessario andare in Settings --> Languages --> e attivare il linguaggio Italiano (ed eventualmente altri linguaggi che ci servono, disattivando gli altri) cliccando sul link enable a fianco della bandierina italiana e sul link disable per le lingue che si desidera disabilitare:

qtranslate3

 

Sempre nella sezione Gestione Linguaggi di qTranslate si può scegliere il linguaggio principale del blog. È inoltre possibile modificare l'ordine delle lingue cliccando sulle frecce:

qtranslate4

Restando in questa sezione, espandere le Impostazioni Avanzate e selezionare "Usa Modalità Pre-Path" (Default, inserisce /it/ all’inizio dell’URL) e anche, se hanno problemi con la visualizzazione delle date, selezionare "Usa strftime" invece di "date" (vedere immagine qui sotto):

qtranslate5

Ricordarsi di salvare queste nuove impostazioni al termine delle modifiche.

A questo punto si è pronti a scrivere un nuovo articolo, quindi cliccare su Articoli > Aggiungi nuovo > e si potrà vedere che nella pagina di composizione degli articoli sono visualizzati altri campi: un campo titolo per ogni lingua attiva,  a cui sono collegati i campi visualizzati a destra, gestiti dal plugin qTranslation Slug, dove vengono create le stringhe per i permalink. Anche il campo textarea dove inserire il testo dell'articolo è modificato con l'introduzione dei TAB relativi alle lingue | Italiano | Deutsch | English |

qtranslate6

Da notare che se non avessimo installato anche il plugin qTranslation Slug i permalink sarebbe stati tutti identici a quello  generato dalla lingua di default (in questo caso l'italiano): situazione questa non certo favorevole a una corretta indicizzazione sui motori di ricerca.

qtranslate7L'operazione successiva da eseguire, è quella di inserire e attivare il widget con la scelta del linguaggio in una sidebar di WordPress, configurandolo nel modo desiderato.

Nei test che abbiamo eseguito ci è capitato di verificare che a secondo del tema grafico adottato il widget non funziona molto bene (impagina male) selezionando "Testo ed Immagini".

qtranslate8

In questo caso è meglio optare per solo testo o solo immagini, oppure spuntare "Show short name".

qtranslate9

 

Per completare il sito multilingua sarebbe consigliato anche installare il plugin qTranslate Separate Comments che permette la gestione separata dei commenti inseriti dagli utenti nelle varie lingue.

Senza questo plugin i commenti sarebbero misti: un commento in inglese verrebbe visualizzato anche nelle pagine in italiano e così via.

Installando il plugin qTranslate Separate Comments si potrà decidere se mostrarli per il sito in italiano od in inglese cliccando su Modifica (commento):

qtranslate10
Qui potete seguire a video tutta la procedura di installazione:
(per una migliore visione ingrandite a schermo intero)

Se questo articolo vi è piaciuto cliccate su mi piace, commentate e condividetelo con i vostri amici, grazie 🙂

 

20 comments

2 pings

Vai al modulo dei commenti

  1. claudio

    Ciao,
    sono Claudio e avrei un quesito da sottoporvi che non essendo un programmatore non riesco a risolvere da solo. è un po’ di nicchia ma secondo me può essere frequente visto l’andazzo degli ultimi template, e online non ho trovato nulla riguardo.
    Ho impostato qtranslate sul mio sito e anche qtranslate slug. Il problema che riscontro è che, come può capitare con alcuni template, in homepage non ho il posto dove mettere il Widget.
    Nelle pagine interne non ho nessun problema ma ho bisogno di avere le bandierine ovviamente anche in homepage.

    Ora..
    il template http://themeforest.net/item/muse-music-band-responsive-wordpress-theme/full_screen_preview/4224216
    ha preimpostata la possibilità di usare le bandierine di qtranslate in una toobar (quella dei social che si vede li).
    Peccato che richiami il qtranslate base e non qtranslate slug. Quindi se uno cambia le lingue in homepage avrà gli url in italiano per le altre lingue, e non va bene.

    Come suggerite di agire?
    è plausibile che si riesca a dire al template di chiamare il plugin qtranslate slug invece del qtranslate base nella sua toolbar?

    Grazie
    Ciao!

  2. Admin Cyberspazio
    Admin Cyberspazio

    Ciao Claudio,

    credo che sia una domanda da rivolgere agli sviluppatori del tema grafico, sono loro che conoscono come sia stato costruito.

    E’ probabile che si possa anche inserire il codice per le bandierine direttamente in un file che forma il tema grafico, ma non conoscendolo – non avendolo sotto mano, non sono in grado di indicarti quale possa essere e dove inserire il codice.

  3. Ci

    Buongiorno ragazzi!!!
    Grazie per i consigli, ma non riesco a capire una cosa(PS:tenete conto che sn alle primissime armi quindi abbiate pazienza se la domanda vi sembra stupida!!)
    Quali sono le URL friendly da inserire nei campi slug?!?
    Perchè ho fatto tutti gli altri passaggi, ma non inserendo quelle, il testo non viene tradotto!!

    Grazie per l’aiuto!!
    Ciao

    1. Admin Cyberspazio
      Admin Cyberspazio

      per le URL friendly (URL amichevole) si intende una url che non abbia al suo interno una variabile come nell’esempio qui di seguito:

      url amichevole: http://www.dominio.it/casa/prodotti_per_la_casa.html
      url non amichevole: http://www.dominio.it/cat33.php?n=67

      Aggiungendo al plugin “qtranslate” anche il plugin “qTranslation Slug” si possono ottenere, ovviamente impostandole una ad una, url friendly diverse a secondo il linguaggio, come ad esempio:

      Italiano: http://www.dominio.it/it/prodotti_per_la_casa.html
      Inglese: http://www.dominio.it/en/home_products.html

      Con il plugin “qTranslation Slug” si attiveranno campi diversi nella scheda articolo o pagina dove poter inserire url friendly nelle diverse lingue, questo permette una maggiore e migliore gestione delle url sia per i motori di ricerca sia a livello di comprensione utente.

  4. valentina

    Ciao,
    ho un piccolo problemino… non chiedetemi perché e per come ma dopo aver installato qTranslate ho cancellato per errore la lingua Italiano.
    Ho provato a eliminare il plugin e installarlo di nuovo, anche via ftp, ma continua a non darmi la lingua cancellata. Come posso fare? se faccio aggiungi lingua e riesco a capire i parametri da inserire nei campi, poi funziona tutto?

    grazie
    valentina

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao Valentina,
      direi che l’unica cosa da fare è provare… a rigor di logica dovrebbe funzionare (naturalmente esegui il backup generare prima di fare queste modifiche!)

  5. valentina

    ok ci sono riuscita, l’italiano è tornato tra noi…
    ma ora sapresti dirmi perché non compaiono le bandierine?
    l’unico modo è inserirle come widget? Perché volevo comparissero nella barra orizzontale in alto e invece i widget me li fa inserire solo nella sidebar che io non voglio…
    ti vedo ferrato, help me! 🙂

    1. Admin Cyberspazio
      Admin Cyberspazio

      Forse bisogna mettere il codice direttamente nel file del tema grafico, così si può sistemare dove si vuole.

      Se non ricordo male il codice che richiama le bandierine è:


      < ?php qtrans_generateLanguageSelectCode('both');?>

  6. Giada

    Ciao! anche io avrei un problema, ho inserito il codice in php che hai suggerito anche te a Valentina nella header ma al click da inglese all’italiano nella slug cambia solo la parte /en/

    Per esempio:
    ../en/test al click dovrebbe diventare ../it/prova
    invece diventa …/it/test 🙁
    mi sono dimenticata qualche pezzo?

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao,

      hai installato anche il plugin qTranslation Slug? e messo un diverso Titolo che poi verrà ripreso come alias?

  7. Mario

    Ciao a tutti,
    Articolo SUPER UTILE!
    Io sto costruendo un sito multilingua (It/En) con l’ausilio del plugin qTranslate. Il mio primo passo è tradurre in italiano il tema che ho acquistato, poiché la sua lingua originaria è l’inglese.
    Ho deciso di tradurre il tema con POEDIT, lavoro infinitamente lungo ma semplice. Il problema sorge quando posiziono la copia dei file tradotti (it_IT.mo e it_IT.po) nella cartella language nel tema child: il tema rimane in inglese. Mentre se inserisco la copia di file (it_IT.mo e it_IT.po) nella cartella language del tema “genitore”, tutto sembra funzionare alla perfezione: riesco a visualizzare il sito sia in inglese sia in italiano, ma ogniqualvolta il tema si aggiorna perdo la traduzione la versione ITA.
    Inoltre, non riesco a posizionare le Bandierine del widget sull’header….
    Come posso risolvere?

    Grazie

    Mario

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao, per posizionare le bandierine, nel caso non vi sia una posizione utilizzabile nel tuo tema, potresti scrivere il codice che le richiama direttamente nel file header.php del tema (se esiste) oppure nel file index.php sempre del tema in uso.

      Completo l’elenco del codice che richiama la selezione delle lingue:

      Codice per le sole immagini:
      < ?php echo qtrans_generateLanguageSelectCode('image'); ?>

      Codicee per il solo testo:
      < ?php echo qtrans_generateLanguageSelectCode('text'); ?>

      Codice per immagini e testo:
      < ?php echo qtrans_generateLanguageSelectCode('both'); ?>

      Invece riguardo la traduzione del tema non ho compreso molto di cosa si tratti, comunque è ovvio che se aggiorni il tema ad una versione successiva i cambiamenti sovrascrivono i file precedenti.

  8. Gabriele

    Ciao,
    sono nuovo nel “mondo” wordpress, ho letto i commenti e note precedenti che ho trovato utili ma non ho trovato nulla a riguardo della gestione della lingue in hp con parallax dove ho riscontrato il problema di gestione lingua.

    Ho cercato in rete ma non ho ancora trovato granchè a riguardo.

    Vorrei capire se il plugin non è adatto a questo utilizzo o può essere un problema del tema?

    Grazie

    Gabriele

    1. Admin Cyberspazio
      Admin Cyberspazio

      Su questo argomento credo che sia più appropriato interpellare il produttore del tema, non ho elementi al riguardo.

  9. niguli

    Ciao, forse puoi darmi una mano. Ho installato il plugin Cookie Notify su un sito WordPress che è in due lingue (ita e eng). La traduzione del sito è gestita tramite qTranslate (di cui confesso non sono mai stato un fan, solitamente uso una licenza di WPML, ma qui non posso, il cliente ha fatto un’altra scelta a suo tempo…). Sai indicarmi come effettuare la traduzione con qTranslate del plugin Cookie Notify e quindi sopratutto della pop-up sulla privacy (stesso aspetto della tua qua sul tuo portale)? Grazie in anticipo per qualsiasi consiglio

    1. Admin Cyberspazio
      Admin Cyberspazio

      Ciao,
      Oramai qtranslate sembra non più seguito dal suo sviluppatore e quindi a questo punto forse è meglio rivolgersi ad altri plugin.
      Nel caso specifico, se utilizzi il plugin “Cookie Law Info” prova a sostituire nel file shortcodes.php il codice:

      // If is action not URL then don’t use URL!
      $url = ( $settings[‘button_1_action’] == “CONSTANT_OPEN_URL” ) ? $settings[‘button_1_url’] : “#”;

      con:

      // If is action not URL then don’t use URL!
      $url = ( $settings[‘button_1_action’] == “CONSTANT_OPEN_URL” ) ? $settings[‘button_1_url’] : “#”;

      // Q-TRANSLATE X SUPPORT # DdJ 31 May 2015
      if ( function_exists(‘qtrans_convertURL’) ) {
      $url = qtrans_convertURL($url);

      il tutto in due punti, sia per button_1_action e button_x_action.

      Da ricordarsi che il cambiamento verrà cancellato al prossimo aggiornamento del plug-in

      Inoltre, è necesario utilizzare Q-translate X shortcodes in questo modo:

      [:la]language A[:lb]language B[:lc]language C[:]

      Aggiungo anche per Cookie Notice, includere questo codice in functions.php nel tema:

      function custom_notice_message($args){
      $args[‘see_more_opt’][‘text’] = __($args[‘see_more_opt’][‘text’]);
      $args[‘accept_text’] = __($args[‘accept_text’]);
      $args[‘message_text’] = __($args[‘message_text’]);
      return $args;
      }
      add_filter(‘cn_cookie_notice_args’, ‘custom_notice_message’);

      e usare:

      “[:en]Continue[:fr]Continuer[:it]Continua”

      nei campi testi

  10. Nic

    Ciao,
    ma q Translate è anche compatibile con wordpress.com o solo con wordpress.org?

    1. Admin Cyberspazio
      Admin Cyberspazio

      Oramai bisogna considerare il vecchio plugin qTranslate obsoleto (lo sviluppatore non l’ha più seguito), e utilizzare qTranslate X che si trova qui: https://wordpress.org/plugins/qtranslate-x/

      Questo plugin lo danno, alla data di questo commento, come compatibile fino alla versione 4.4.2 di wordpress.

      Riguardo wordpress.com e wordpress.org: non comrpendo la domanda, da. .com si può creare un sito sui loro server gratuitamente, dall’.org si può scaricare il CMS Worpress.

  11. Francesco

    Ciao, e grazie per l’interessante e utile articolo.
    Una domanda: ma il QTranslate è utilizzabile solo come sidebar?
    Nel mio tema wordpress STORY by Pexeto lo widget multilingue è possibile inserirlo solo nelle sidebar.
    Il problema è che in molte pagine e soprattutto nella home non ho la sidebar.
    Grazie per la risposta,
    Francesco

    1. Admin Cyberspazio
      Admin Cyberspazio

      In caso di mancanza di una posizione, si può provare ad inserire il codice direttamente nei file del tema in uso, operazione questa che si fa – ovviamente dopo aver eseguito un backup del file – se si conosce la struttura del tema grafico: ogni tema è un qualcosa di diverso.

      Avevo già indicato come fare, ricopio qui sotto:

      Per posizionare le bandierine, nel caso non vi sia una posizione utilizzabile nel tuo tema, si può scrivere il codice che le richiama direttamente nel file header.php del tema (se esiste) oppure nel file index.php sempre del tema in uso.

      Completo l’elenco del codice che richiama la selezione delle lingue:

      Codice per le sole immagini:
      < ?php echo qtrans_generateLanguageSelectCode('image'); ?>

      Codicee per il solo testo:
      < ?php echo qtrans_generateLanguageSelectCode('text'); ?>

      Codice per immagini e testo:
      < ?php echo qtrans_generateLanguageSelectCode('both'); ?>

  1. Plugin qTranslate: Allineare le bandierine orizzontalmente

    […] un precedente articolo abbiamo presentato il plugin qTranslate come valida soluzione per rendere multilingua un sito in […]

  2. Plugin next-gallery e qTranslate: come farli convivere

    […] già presentato il plugin qTranslate in questo articolo, sottolineando come possa essere utilizzato per rendere multilingua un sito creato con […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


*

Login

Register | Lost your password?