Polyglot: sia la bandiera che il nome della lingua
by Alessio Placitelli 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!
English
January 2nd, 2008 on 22:55
You should probably make these known to the plugin author as well, if you haven’t already.
January 3rd, 2008 on 10:04
Already done some time ago
http://fredfred.net/skriker/index.php/polyglot
January 13th, 2008 on 0:52
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?
January 13th, 2008 on 9:39
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
March 6th, 2008 on 17:33
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!!!
March 7th, 2008 on 13:53
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..
March 8th, 2008 on 16:37
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
March 9th, 2008 on 10:57
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!
March 10th, 2008 on 18:53
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
March 10th, 2008 on 19:12
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;