• Login
  • Registrati
Login
Nome utente:
Password: Password dimenticata?
 
Forum fiscale di Oscon
  • ⌂
  • Download
  • Forum
  • Info
  • Video
  • News
    • Login
    • Registrati
    Login
    Nome utente:
    Password: Password dimenticata?
     
Forum fiscale di Oscon › Lavoro, produttività, web › CMS, piattaforme e e-commerce › Sito multilingua con Wordpress

Pagine (2): 1 2 Prossimo »
Modo discussione
Sito multilingua con Wordpress
glm2006ITALY Offline
Guru Osconiano - moderatore globale
Messaggi: 1.667
Discussioni: 98
Registrato: Aug 2009
#1
14 Feb 2013, 12:32:38
[h]Sito multilingua con wordpress[/h]

Apro una bella discussione su come realizzare (o tentare di realizzare :lolSmiling un sito web multilingua con WordPress.

Chiariamo subito che l'intento è quello di realizzare un sito web multilingua professionale quindi niente (o quasi) traduzioni automatiche.

Di plugin freeware per Wordpress ne esistono due:

Qtraslate:
https://wordpress.org/extend/plugins/qtranslate

Transposh:
https://wordpress.org/extend/plugins/tra...-wordpress

E voi, avete qualche esperienze di gestione siti Wordpress in multilingua?
glm2006ITALY - Molina Gianluca
realizzazione siti web ed assistenza WordPress - WebePc
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#2
30 Mar 2013, 18:57:03 (Questo messaggio è stato modificato l'ultima volta il: 30 Mar 2013, 18:59:52 da enricodeleo.)
Anche se il mio primo post potrebbe essere una presentazione personale lo spendo per intervenire qui perchè è una cosa di cui ho esperienza.

Certo a giudicare dalla data del post avrai già trovato una via, in ogni caso è ottimo parlarne.

Parto dal presupposto che WordPress, nonostante sia il mio CMS preferito, ha (ancora) delle pecche che ci riportano ai tempi lontani nei quali non fu concepito come vero e proprio CMS, ma come piattaforma di blogging.
Per questo motivo la gestione della lingua è un po' fastidiosa su WP (a mio parere non ci vorrebbe molto ad introdurre una funzione come si deve a livello del core, ma questo è...).

Fin ora le uniche due soluzioni che ritengo siano valide sono:

- il plugin commerciale WPML costa 79 dollari con la licenza sviluppatori e 29 per quella base. Non è gratuito ma ti permette di gestire WordPress in multilingua "nel modo giusto"
- in alternativa, si può creare un sotto blog, avvalendosi della funzione multisite di wordpress, che ospiterà la seconda lingua (ma anche un terzo, quarto ecc) condividendo lo stesso tema.

Ci sarebbe una terza via e cioè:
se la struttura dei contenuti è molto semplice, ad esempio si fa uso di un solo tipo di contenuto, si può semplicemente creare un secondo tipo di contenuto per la seconda lingua e differenziarlo a livello di tema (con una struttura condizionale, utilizzando il GET tipo /?lang=en, ecc ecc) ma spesso diventa molto macchinoso e rende più che conveniente l'acquisto del plugin o l'approccio multiblog.

Riguardo i plugin che hai citato ho avuto esperienza con qTranslate. Non è male ma non penso sia idoneo ad una soluzione professionale. Non so se posso postare un url, eventualmente ti mostro un sito che ho realizzato in wp in multilingua per una azienda prendendo la via del multisite (sito principale che funge soltanto da gateway, sotto-siti che ospitano una lingua ciascuno, tema in comune localizzato con gettext e i classici .mo)...
Posso anche darti quelle che secondo me sono le cose da considerare per creare e gestire al meglio una installazione multisite utilizzata per distinguere le lingue.
Cerca
Cita messaggio
Jack Offline
Deus ex machina
Messaggi: 1.870
Discussioni: 95
Registrato: Jul 2007
#3
30 Mar 2013, 19:51:45
Ciao enrico! Benvenuto. Winking Posta pure i tuoi suggerimenti e link, non c'è problema, qua ci si dà una mano a vicenda, se hai una esperienza personale diretta con qualche plugin meglio ancora. Se avrai avuto occasione di leggere qualche post in giro saprai che sono d accordo con tutto ciò che hai scritto in introduzione riguardo wp. Sei mica tu lo sviluppatore del plug o ti ci sei solo trovato bene?

Personalmente avevo provato il primo indicato da gianluca, ma alla fine il database tendeva all esplosione e ho optato per sviluppare un piccolo cms personalizzato. Oggi probabilmente qualche serio plugin c è.

J Winking
Oscon: il facsimile di contratto e prestazione occasionale! Smiling
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#4
31 Mar 2013, 04:43:44 (Questo messaggio è stato modificato l'ultima volta il: 31 Mar 2013, 04:47:56 da enricodeleo.)
Ciao e grazie per la bella accoglienza!

Sono contento che abbiamo la stessa opinione. Riguardo il plugin no, io ne sviluppo ad hoc per i clienti e le varie esigenze però, a parte qualche funzione pubblicata sul mio erriko.it, non ho mai pubblicato plugin pubblici (dovrei iniziare in effetti...).

Allora vado direttamente al punto del "come si fa un sito wordpress multilingua" secondo il mio modesto parere.

Approccio A, plugin

Questo è abbastanza semplice: si acquista WPML su wpml.org e si installa (la licenza sviluppatore consente di utilizzarlo su più siti, per cui se se ne fa un uso professionale magari conviene). Se si utilizza wp-types (è gratis) per la creazione dei custom post types questo sarà perfettamente integrato con il multilingua creato da WPML (sono gli stessi sviluppatori).
Il plugin è molto semplice da usare e consente di aggiungere quante lingue si voglia, crea il widget per cambiare lingua, consente di tenere traccia dei contenuti tradotti e da tradurre, decidere se si vuole che l'url esca, per esempio, /en oppure ?lang=en etcetera etcetera.
Si può anche mettere mano al codice stesso di WPML o sovrascriverlo nel tema per cui è anche abbastanza personalizzabile. Per esempio il selettore della lingua di default è composta da bandiera e nome della lingua. Con la seguente funzione in functions.php (e richiamata dove si vuole nel tema) si può mostrare soltanto la bandiera

Codice:
function language_selector_flags(){
    $languages = icl_get_languages('skip_missing=0&orderby=code');
    if(!empty($languages)){
        foreach($languages as $l){
            if(!$l['active']) echo '<a href="'.$l['url'].'">';
            echo '<img src="'.$l['country_flag_url'].'" height="24" alt="'.$l['language_code'].'" width="24" />';
            if(!$l['active']) echo '</a>';
        }
    }
}

In ogni caso il tutto è abbastanza guidato e ben documentato sul loro sito.

Approccio B, multisite

Questo è quello che ho usato fin ora per la maggiore, lungo da spiegare ma non complessissimo da fare se si è programmato tutto prima.
Lo descrivo a mo' di ricetta, so che non è il massimo, ma penso sia più semplice per me da descrivere.

Installo wp ed abilito il multilingua.
Creo un sotto-sito per ogni lingua. Il sito principale funge da pagina di gateway, oppure contiente direttamente il sito della lingua originale (è solo una questione dai gusti/esigenze tecnicamente non cambia nulla).

In questo caso ciascuna lingua avrà il suo sito per cui non ci sono problemi nella gestione di categorie, contenuti diversi (magari un contenuto che va bene per l'italiano non va bene per il francese, o si usano immagini diverse ecc ecc).

Per evitare però di dover fare lavoro in più, o meglio temi diversi per ciascuna lingua basta creare un solo tema che utilizzi però la funzione di localizzazione. Questo è molto semplice da fare. In genere per abilitare la localizzazione si chiama in function.php questa funzione

Codice:
load_theme_textdomain('dominio', get_template_directory() . '/lingue');

dove gli argomenti indicano: il primo il riferimento per la traduzione (di seguito dirò anche come si usa nel tema), il secondo la cartella nella quale saranno contenute le traduzioni.

Nel nostro caso però la localizzazione dovrà cambiare in base al "sottosito" che si apre e non rispetto alla lingua impostata in wordpress (che come sappiamo è una sola definita nel file wp-config.php della root). Per questo è sufficiente aggiungere una funzione come questa

Codice:
add_filter( 'locale', 'my_theme_localized' );
    function my_theme_localized($locale) {
        if (isset($_GET['lang'])) {
            return $_GET['lang'];
        }
        return $locale;
    }

In questo caso diremo al tema di wp di caricare come valore del locale quello che passiamo come parametro get dell'url (es sito.com/?lang=it_IT).
Per renderelo "più elegante" si può modificare questa funzione e passare il locale con POST anzicchè GET oppure ancora recuperarlo dai cookies e dunque abbinare un'altra funzione che al click sulla lingua desiderata salva nel cookie la preferenza. O combinazioni tra queste.

Fatto ciò posso creare il tema in maniera del tutto tradizionale certo che quello che realizzo sarà utilizzato per tutte le lingue. L'unica accortezza sarà quella di non sparare il testo direttamente nel codice ma farlo passare per la localizzazione, specificando il dominio che abbiamo scelto quando abbiamo inserito il load_theme_textdomain

esempio

Codice:
<?php _e("Customer Care", "dominio"); ?> //se voglio un echo
<?php __("Customer Care", "dominio"); ?> //se voglio un return

Tutto qui. Posso creare a mano i file .po e .mo se voglio con Poedit oppure, cosa ancora pià comoda usare un plugin come Codestyling Localization (https://wordpress.org/extend/plugins/cod...alization/) che mi fa fare tutto dalla dashboard di wp.

Ah, per evitare di dover ripetere la creazione di custom types, tassonomie e custom fields è consigliabile esportare tutto quello che si crea con wp-types in php (il plugin genera tutto il codice necessario automaticamente) e incollarlo in un file che mettiamo nella cartella mu-plugins oppure nel file functions.php del tema così da accertarci che i custom types e il resto siano creati in tutti i sottositi.

Esempio live: https://medhermes.net/

Scrivendo questo post mi sono accorto che sono usciti recentemente due plugin che sfruttano questo approccio. Non li ho ancora provati ma magari scopriamo che rendono inutile tutto questo discorso e mi eviteranno di fare questo procedimento la prossima volta (anche se è divertente Tongue) li posto qui ma qualcuno dovrebbe darci feedback sulla loro bontà:

https://wordpress.org/extend/plugins/mul...ual-press/
https://wordpress.org/extend/plugins/mul...-switcher/

Il secondo addirittura è già dichiarato con la compatibilità per wp 3.6

Spero di essere stato utile a qualcuno se non sono stato chiaro su alcuni punti sono qui Smiling
Cerca
Cita messaggio
glm2006ITALY Offline
Guru Osconiano - moderatore globale
Messaggi: 1.667
Discussioni: 98
Registrato: Aug 2009
#5
31 Mar 2013, 10:59:04
Ciao enricodeleo!

Benvenuto anche da parte mia.

Qtrasalte lo trovo valido solo un poco problematico da aggiornare, ecco un sito sviluppato con questo plugin:
macallè.it

Uso volentieri anche Tranposh, mi piace molto perché permette contemporaneamente permette la traduzione automatica e manuale, ha il difetto di essere un poco pesante (guai ad abilitare il log!)
glm2006ITALY - Molina Gianluca
realizzazione siti web ed assistenza WordPress - WebePc
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#6
1 Apr 2013, 00:23:50
Grazie per il benvenuto Smiling

Io come ho detto preferisco sempre l'approccio multisite, specialmente perchè difficilmente una azienda abbastanza strutturata avrà dei siti "clone" quindi separare nettamente i contenuti, le offerte ecc ecc penso sia per loro un vantaggio.
Cerca
Cita messaggio
glm2006ITALY Offline
Guru Osconiano - moderatore globale
Messaggi: 1.667
Discussioni: 98
Registrato: Aug 2009
#7
1 Apr 2013, 12:13:12
Cosa intendi?
Un sito sviluppato con qualsiasi CMS ha già i contenuti "divisi" dalla struttura grafica... sbaglio? :/
glm2006ITALY - Molina Gianluca
realizzazione siti web ed assistenza WordPress - WebePc
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#8
1 Apr 2013, 23:57:46
Chiaro. Non intendevo quello Smiling Intendevo differenziati tra una lingua ed un'altra Smiling
Cerca
Cita messaggio
glm2006ITALY Offline
Guru Osconiano - moderatore globale
Messaggi: 1.667
Discussioni: 98
Registrato: Aug 2009
#9
2 Apr 2013, 00:10:03
Ah ecco... mi hai fatto prendere un colpo! :lol:
glm2006ITALY - Molina Gianluca
realizzazione siti web ed assistenza WordPress - WebePc
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#10
3 Apr 2013, 12:18:06
Mi sono espresso male, pensavo fosse scontato Big Grin
Cerca
Cita messaggio
Jack Offline
Deus ex machina
Messaggi: 1.870
Discussioni: 95
Registrato: Jul 2007
#11
3 Apr 2013, 14:58:15
Heila Enrico, questo tuo post è davvero interessantissimo. Potrei pensare di farlo diventare una guida... Non ho ben chiaro, però, attraverso wordpress dove svolgi esattamente la gestione del testo multilingua. Es: ho un sito con 10 pagine (o, peggio, un sito con 10 "pagine" e X "articoli" dovuti all'inserimento costante di contenuti), concretamente, con la soluzione che proponi, dove vengono scritti i due diversi contenuti (es: IT, EN; ES)?

J
Oscon: il facsimile di contratto e prestazione occasionale! Smiling
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#12
3 Apr 2013, 22:19:40
Nel caso che propongo (soluzione con installazione multisite) i contenuti risiedono nelle tabelle di competenza del sottosito dedicato a quella lingua specifica.
E' un multisite a tutti gli effetti, solo che io suggerisco di utilizzare questa funzionalità per gestire il multilingua Winking
Ciascun sito/lingua avrà la sua dashboard, i suoi plugins ecc ecc
Non so se sono stato abbastanza chiaro...
Cerca
Cita messaggio
glm2006ITALY Offline
Guru Osconiano - moderatore globale
Messaggi: 1.667
Discussioni: 98
Registrato: Aug 2009
#13
3 Apr 2013, 22:23:12
Uhm... e quindi "duplicazione" di file, plugin, database,ecc?


Non riesco a vederne una motivazione :/
glm2006ITALY - Molina Gianluca
realizzazione siti web ed assistenza WordPress - WebePc
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#14
3 Apr 2013, 22:33:56 (Questo messaggio è stato modificato l'ultima volta il: 3 Apr 2013, 22:34:18 da enricodeleo.)
No, duplicazione sarebbe se facessi diverse installazioni. Io parlo di una unica installazione che però è multisite.
Vuol dire che il tema è uno, i plugins pure ecc ecc Sono diverse alcune delle tabelle sulle quali scrive ma il db è unico
Cerca
Cita messaggio
Jack Offline
Deus ex machina
Messaggi: 1.870
Discussioni: 95
Registrato: Jul 2007
#15
23 Jun 2013, 07:39:32
Mi son riletto or ora il post finalmente con un po' di calma e devo dire che i suggerimenti sono davvero interessanti, perciò faccio qualche modifica perché il post salga nei motori. Winking

Nei casi in cui avevo dovuto occuparmi di siti multilingua avevo utilizzato un piccolo cms creato da me, senza wordpress perciò, e la gestione delle lingue tramite semplice file da incluedere a seconda di cosa indicava la sessione (per le parti "fisse"), o un semplice valore in tabella "en,it,fr" (per le parti modificabili).

Una cosa: nel sito che porti ad esempio non sono stati usati siti diversi (es: aziendarossi.it / aziendarossi.fr) o sottodomini, ma semplici sottocartelle (probabilmente solo apparenti riscritte in htaccess; ma comunque un dominio unico)... Altra cosa, hai più avuto occasione di testare i plugin per wordpress multilingua dei quali parlavi?

J Winking
Oscon: il facsimile di contratto e prestazione occasionale! Smiling
Sito web Cerca
Cita messaggio
enricodeleo Offline
Dottore Osconiano
Messaggi: 19
Discussioni: 0
Registrato: Mar 2013
#16
23 Jun 2013, 12:59:30
Ciao Jack!
Mi fa molto piacere che tu abbia trovato interessante gli spunti che ho portato.

Allora, cerco di rispondere ma dovrei rileggere anche io con calma cosa ho scritto ^.^ ^.^

Anche io qualche anno fa andavo su cms custom che basavo su files e giocando sugli include_once serviti in base ad una variabile salvata sui cookies, ma poi mi sono evoluto Smiling più che altro perchè superate le 4 pagine sicuramente non è più una cosa affidabile e difficile da mantenere (a parte tutte le alte implicazioni)

nel sito che porto ad esempio sono state usare directories "finte", si. Questo è il comportamento base di wordpress multisite: puoi usare le directories (/marco, /pino, /blogfigofigo) oppure i sottodomini se il tuo hosting ti consente di creare la wildcard come sottodominio (*.nomesito.com), ma quest'ultima soluzione non mi piace. Non c'è un motivo particolare, a sensazione non credo sia gradito ai motori di ricerca il dominio di terzo livello per le lingue e non mi piace esteticamente, proprio a guardarlo en.nomesito.com non mi va giu Big Grin

La soluzione più opportuna, come giustamente hai rilevato, è quella di mappare i sottositi di wordpress su domini geografici, ma questo presuppone di possederli tutti o comunque che siano disponibili. Però si, se ci sono queste condizioni farei così. Non è difficile, c'è pure qualche plugin commerciale da 10 euro in giro che te lo consente. Ciò nonostante è semplice anche da fare a mano questo plugin...

Come plugins per le esperienze degli ultimi mesi ti posso dire che è un grande si per wpml (che però costa) ed un enorme no a qtranslate che ho trovato già installato sul sito di un cliente piuttosto grande, ed è uno sfacelo gestito con questo plugin...
Cerca
Cita messaggio
« Precedente | Successivo »
Pagine (2): 1 2 Prossimo »


  • Modalità stampa

  • Contatti
  • Up
  • Informativa e regole di utilizzo
Powered by WP & MyBB
Design by Rooloo & Oscon.
Top