• User

    Banner a seconda della lingua

    Ciao a tutti,

    Sto cercando di visualizzare un banner nella sidebar di Wordpress, in italiano o in inglese, a seconda della lingua scelta.

    Ho provato in due modi:

    1. recuperando la variabile /?lang=en: (codice semplificato)

    if ($_GET['lang'] == "en") { BANNER IN INGLESE }
    if ($_GET['lang'] == "") { BANNER IN ITALIANO }

    ... niente da fare.

    Poi ho provato a recuperare gli ultimi due caratteri della url per intercettare la versione inglese (/?lang=en): (codice semplificato)

    $lingua = substr($_SERVER["HTTP_REFERER"], -2, 2);
    

    if ($lingua == "en") { BANNER INGLESE }
    else { BANNER ITALIANO }

    Così, se sono in lingua italiano, il banner cambia solo se clicco DUE VOLTE su "English".

    Qualcuno ne sa più di me?

    Grazie a tutti.


  • Super User

    @Number Nine said:

    1. recuperando la variabile /?lang=en: (codice semplificato)

    if ($_GET['lang'] == "en") { BANNER IN INGLESE }
    if ($_GET['lang'] == "") { BANNER IN ITALIANO }

    Ciao, avevo il tuo stesso problema e avevo risolto esattamente così come dici tu. Non è che c'era qualche errore nel codice "Banner" che non te lo visualizzava??


  • User

    No, il codice sembra andare bene, perché se lo lascio senza gli IF allora funziona (naturalmente senza cambiare il banner).


  • Super User

    Prova a mettere

    $i=1;
    if($i==0){ BANNER ITA }
    else { BANNER ENG }

    se così ti viene il banner in inglese vuol dire il sistema per una qualche ragione nn ti riconosce il $_GET['lang'] ne il $_SERVER


  • User

    Grazie per il consiglio Teju. Purtroppo non ha funzionato.

    Cercavo di leggere la variabile della lingua attraverso $_GET['lang'], $lang, $_REQUEST['lang']... ma nessuna di esse era leggibile.

    Allora ho pensato che forse stavo cercando l'ago nel pagliaio sbagliato. Non mi è venuto in mente (errore!) di indicare in questi post che utilizzo il plug-in QTRANSLATE per la gestione delle lingue. Ho cercato quale variabile o funzione potesse restituire il valore della lingua in qtranslate. Con la ricerca "qtranslate variables" in Google ho trovato quasi subito una soluzione funzionante:

    la chiave è: $lingua=qtrans_getLanguage();

    il codice è elementare: (semplificato)

    $lingua = qtrans_getLanguage();
    if ($lingua=="en") { BANNER IN INGLESE }
    else { BANNER IN ITALIANO }

    Scusa Teju se ti ho fatto perdere tempo non indicandoti il QTRANSLATE.

    Spero che questo serva anche ad altri.


  • Super User

    No problem, ottimo che hai risolto e bene che hai riportato la soluzione per altri! ^_^