NOT Dexter's Lab

Polyglot: sia la bandiera che il nome della lingua

by on Dec.30, 2007, under Tips and Tricks

Non sò quanti di voi abbiano la necessità di mostrare, nella barra laterale di wordpress, le lingue supportate dal blog mostrando sia la bandierina che il nome della lingua… per quelli di voi che hanno alzato la mano (!), ecco un breve tutorial che ho compilato per spiegare come modificare il plugin Polyglot per renderlo possibile ;)

- Entrate nell’area amministrativa di WordPress
- Selezionate Plugins -> Polyglot -> Edit
- Cercate la funzione polyglot_list_langs  (~ linea 487)
- Cercate questa riga di codice  (verso la fine della funzione, ~ linea 544)

echo "\">". (($flags) ? "<img src=\"".$polyglot_settings['path_to_flags'].$polyglot_settings['flags'][$value] ."\" alt=\"".get_trans($value)."\" title=\"".get_trans($value)."\" />" : get_trans($value)) ."</a></li>";

- Rimpiazzate la riga di codice precedente con il bloco che segue (lo sò, lo sò, non è molto elegante..)

if($flags == 2)
	echo "\"><img src=\"".$polyglot_settings['path_to_flags'].$polyglot_settings['flags'][$value] ."\" alt=\"".get_trans($value)."\" title=\"".get_trans($value)."\" /> ".get_trans($value)."</a></li>";
else
	echo "\">". (($flags) ? "<img src=\"".$polyglot_settings['path_to_flags'].$polyglot_settings['flags'][$value] ."\" alt=\"".get_trans($value)."\" title=\"".get_trans($value)."\" />" : get_trans($value)) ."</a></li>";

- Bene, ci siamo quasi. Adesso basta chiamare la funzione polyglot_list_langs(2) con il parametro 2 per mostrare sia la bandiera che il nome della lingua ;) Per far funzionare in questo modo la barra laterale, troviamo la funzione widget_polyglot (~ linea 911) e cambiamo il parametro della chiamata a polyglot_list_langs da  $listtype (che comunque a me non funzionava) a 2.

Ora abbiamo veramente finito, salvate ed ammirate la barra laterale ;) Se avete dubbi, minacce o altri tipi di domande, non esitate a lasciare un feedback!

:, , ,

10 Comments for this entry

  • Tourorist

    You should probably make these known to the plugin author as well, if you haven’t already.

  • Francesco

    ciao ho una sola domanda da farti….come posso mettere una bandiera sotto l’altra?ho seguito la tua guida e ora vedo sia il testo che le bandiera, ma sono una dopo l’altra, io le vorrei una sotto l’altra….come faccio?

  • Alessio Placitelli

    Ciao! Se il tema che usi non modifica il tag <li> le bandiere dovrebbero già essere una sotto l’altra. Se così non fosse, prova inserendo <br /> dopo </li> nelle righe che hai modificato seguendo questa guida

  • Dave

    Ciao…intanto complimenti per il tutorial!! ^_^

    La mia necessità è la seguente: inserire le due bandierine sulla barra di navigazione e non su quella laterale. Anche senza bandierine mi basta la scritta EN IT. Come posso fare? Mi basta richiamare la funzione “polyglot_list_langs(2)” nel punto in cui mi interessa?

    grazie mille ciao!!!

  • Alessio Placitelli

    Ciao! Grazie a te per i complimenti, abbiamo rischiato di incontrarci al BarCamp :)

    Se hai seguito questo tutorial, usando polyglot_list_langs(2) mostrerai sia la bandierina che il nome della lingua. Per mostrare solo le bandierine, devi usare polyglot_list_langs(1), esattamente nel punto dove vuoi che queste vengano mostrate!

    Potresti anche aver bisogno di modificare quella funzione un pochino per integrarla meglio nel tuo blog, in particolare nel foreach c’è <li class=”$highlight”> e chiamate simili..

  • Dave

    Cacchio a saperlo prima…ci sarai a Milano per il WordCamp? Io credo proprio di si, magari ci si vede là.

    Intanto grazie per i consigli che mi hai dato. Sono quasi riuscito a sistemare tutto, mi rimangono due problemini ancora, uno semplice: devo solo mettere le due bandiere una in fila all’altra. Il secondo un pò più complesso che è troppo lungo da spiegare ma dovrei risolvere pure quello.
    A presto Dave

  • Alessio Placitelli

    Purtroppo niente WordCamp :( Va bene, sarà per la prossima :) In ogni caso, per mettere le bandierine una di lato all’altra, puoi seguire questa semplicissima guida:

    http://css.maxdesign.com.au/listamatic/horizontal01.htm

    A presto!

  • Dave

    Ma ho sistemato semplicemente con il css nulla di che…

    Ho solo un dubbio, finora il sito ce l’ho in locale non ancora testato su server. Appena apro la prima pagina se clicco subito su inglese sembra che non trovi la pagina inglese e visualizza questo errore:

    Not Found

    The requested URL /molino/lang-pref/en/ was not found on this server.

    Secondo te che problema c’è?Io non ho toccato nulla di codice…buh…magari una volta che metto online funziona bene

  • Alessio Placitelli

    Anche io ho avuto il tuo stesso problema! Prova a cambiare questa variabile presente nel file polyglot.php, da true a false.

    $polyglot_settings['lang_rewrite'] = true;

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!