Articoli precedente e prossimo:
Friday, 14 December, 2007

Noto alcune ricerche provenienti da Google per “language switch gengo” e, visto che in effetti l’ho implementato nel mio theme, è un peccato che gli interessati giungano qui senza trovare una risposta.

Quindi ecco il codice da aggiungere al proprio tema WordPress affinché venga mostrato lo switch di lingua, per leggere lo stesso articolo ma in una lingua differente.
Al momento uso questo codice:
<div class="post_translations" style="float:right">
<?php if (function_exists('the_translations')) the_translations('pre= &post= &title_exists=Read this in ') ?>
</div>

Innanzitutto la parte “if function_exists” permette al tema di funzionare correttamente, senza errori, anche quando il Plugin Gengo viene disattivato per qualche motivo. Il parole povere dice al PHP: se non ti risulta dichiarata e disponibile una funzione di nome “the_translations” allora evita di processare il codice di seguito, ingnorandolo.

La funzione “the_translations” ritorna una stringa che rappresenta il codice HTML per mostrare una lista di traduzioni per il post corrente. Deve essere utilizzato all’interno di “The Loop”.

Io sto usando una unica stringa come parametro, indicandone più d’uno in una “querystring” (param1=valore1&param2=valore2 …).

Dando dei valori a “pre”, “post” e “inner” puoi specificare quali tag HTML dovrebbero essere rispettivamente aperti, chiusi e posti nel mezzo dei vari link alle altre lingue ritornati dalla function.
Visto che questo blog è bilingue (Inglese/Italiano) ne sto usando solo due ovvero non ho bisogno di una “lista” di traduzioni in altre lingue bensì solo un link all’altra -eventuale- lingua disponibile per ciascun articolo. Ecco perché ai parametri pre e post indico come valori uno spazio. Quindi eventualmente apparirà solo un link per operare lo “switch” (cambio) di lingua, senza neanche il bisogno di aggiungere ulteriori tag HTML prima o dopo.

Il parametro “title_exists” indica la scritta da mostrare prima dei/l link, solo nel caso siano associate versioni in altre lingue. Non passando altri parametri (come nel mio caso, riportato sopra) se un post è scritto in un’unica lingua non apparirà nulla, come da mia intenzione.
Altrimenti dovrete aggiungere il parametro “title_none”, indicando la scritta da mostrare in caso di assenza di traduzioni.
Per entrambi i parametri, potrete scrivere una scritta a vostra scelta -in una lingua, come ho fatto io in inglese- altrimenti per entrambi potrete usare, come valore, la keyword ”GENGO_DEFAULT”: questo farà apparire rispettivamente scritte come “Other languages” o “No translations”.

Nel mio caso il risultato viene quindi inserito dentro un DIV (come da codice), con “float” a destra come indicato esplicitamente nello stile “inline” (style=”…”) e per il resto l’aspetto è deciso nel file .css (style sheet) in corrispondenza della class indicata (post_translations) ma questa è un’altra storia.

Il risultato finale del codice riportato è facilmente visibile leggendo singolarmente (non in un elenco dove non faccio comparire lo switch) i miei post.



7 Responses to “Gengo: switch della lingua”

  1. Zauker Says:

    Ciao,
    premetto che non conosco Gengo… avevo provato una volta ad usare Polyglot, ora ho letto da più parti di Gengo e vorrei provarlo per scegliere il plugin più adatto a me.
    Volevo chiederti alcune cose.
    -Come differenzi i contenuti del post, italiano inglese ecc… ?
    con polyglot si deve inserire il testo nel post con appositi tag del tipo [lang_it][/lang_it] ecc..
    -ho nostato che anche la categoria Giochi in lingua diventa Games, ed anche il title cambia, quindi si può ‘localizzare’ anche il testo ti title e categorie in che modo?
    -ultima cosa… mi piace il fatto di avere la scelta di lingua nell’url ovvero,
    it.miodominio.xxx restituisce la visualizzazione in it_IT è un hack che hai fatto tu o lo gestisce di default gengo?
    scusa se ti ho fatto un pò di domande…
    ti saluto
    Michele

  2. Heracleum Says:

    Ciao Michele,
    è passato un po’ di tempo da quando anche io mi sono messo a vagliare le diverse soluzioni per il blog multilingua… ad ogni modo mi sembra proprio di ricordare questo Polyglot. Ti rispondo ai punti:
    - 1) quel che appunto mi piaceva di più rispetto a Polyglot è il fatto che Gengo di fatto usa Post differenti per ciascuna versione in lingua dello stesso articolo, cioè crea una relazione tra due o più post, facendoti indicare la lingua e di quale altro/i post è la traduzione. La funzione si trova in un box laterale nella pagina Edit Post di WP;
    - 2) esatto, Gengo li chiama “Synonyms” ma sì sono le eventuali traduzioni delle categorie, oltre al titolo cambia anche nei permalink;
    - 3) Eh sì, la lingua come subdomain purtroppo non era prevista da Gengo, quindi ho dovuto farmi l’hack da solo oltre due anni fa :P
    Ciao!

  3. yurtdisi egitim Says:

    è questo Web site availible in inglese?

  4. Heracleum Says:

    Hi Egitim, yes it should but at the moment the Gengo plugin is disabled. If you’re looking for the english version of this post: gengo language switch

  5. kurye Says:

    Gengo: switch della lingua - Heracleum Pages great article thank you.

  6. ingiltere dil okulu Says:

    do you have those information in other language? like english?

  7. Yurtdışı Eğitim Says:

    which language is this? Could you give me some information in english?

Lascia un commento

Tag XHTML permessi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>