Siti in multilingua con i template di Dreamweaver e le variabili client

***annuncioVideo***

Attenzione: questo post è il seguito del post "Siti in multilingua con CMS, DB e CF". Per capire il linguaggio qui adottato è consigliato fare riferimento a quello.

 

Nella
strutturazione dei miei siti web uso molto spesso i template di Dreamweaver. Sono veramente comodi e, se si scrive codice pulito, anche molto stabili. Per chi non conosce i template di dreamweaver un po’ di letteratura online non fa male: macromedia, merlinox.

 

Io solitamente uso parecchio anche l’inclusione di file esterni, tramite CFINCLUDE, e nomino i file "satellite" con un underscore davanti per distinguerli.

Ad esempio il top, il menù verticale e il bottom (o footer) li chiamo: _top.cfm, _menu.cfm, _bottom.cfm

 

Le pagine in lingua le nomino con la corretta etichetta davanti. Esempio:

– index.cfm | EN_index.cfm

– _metaTag.cfm | _EN_metaTag.cfm

– …

 

Iniziamo con il modello. Per prima cosa preparo con DW il file HTML ben formattato.
Poi inizio a sostituire le parti di codice ripetitive (esempio quelle citate sopra) con i CFINCLUDE.

Finito e testato tutto salvo la pagina come modello: file > salva come modello…

Il file verrà salvato con un nome tipo: modelloBase.cfm.dwt (fondamentale .cfm in quanto consente a DW di essere sensibile anche ai riferimenti del cfinclude).

 

Ora non ci resta altro che assegnare la o le aree modificabili.

Nel caso più semplice creo una singola area e la chiamo WORK.

 

Ora posso creare tutte le mie belle paginette attaccate al modello.

Per comodità (pigrizia) le pagine in italiano le lascio senza etichetta "IT_".

 

 

Il template straniero

Fare il template straniero è un gioco da ragazzi. Prendo il template in italiano (all’interno della cartella TEMPLATES della root DW del mio sito), lo salvo con nome e chiaramente lo chiamo EN_…: es.: EN_modelloBase.

Quindi passo a sostituire nel modello tutte le voci dall’italiano alla lingua nuova (inglese) compresi tutti i CFINCLUDE sensibili alla lingua. Es.:

<cfinclude template="_top.cfm"> diventa <cfinclude template="_EN_top.cfm">

 

Cosa ultra fondamentale: rinomino l’area modificabile WORK in EN_WORK: fatelo anche voi, altrimenti si sputtana tutto.

 

Gioco praticamente fatto. Ora per applicare il modello seguo questi banali punti:

  1. apro pagina in italiano
  2. salvo con nome EN_<nomePagina> – es.: presentazione.cfm > EN_presentazione.cfm
  3. elabora > modelli > applica modello alla pagina...
  4. seleziono il modello in lingua – es.: EN_modelloBase
  5. aree modificabili > work e associo la nuova area – esempio: EN_work
  6. salvo

 

Controllo dell’utente

Il controllo dell’utente lo faccio con una variabile client: CLIENT.lingua alla quale assegno il valore della lingua scelta nella pagina di ingresso, o dell’ultima pagina navigata (IT|EN|FR…).

 

Se l’utente accede alla pagina iniziale del sito (index.cfm) verifico se esiste CLIENT.lingua.

Se il suo valore corrisponde ad una lingua esistente (un bel FINDNOCASE sulla lista APPLICATION.lingue – vedi primo precedente) faccio un redirect alla lingua corretta, altrimenti apro la pagina di scelta della lingua (quella con le bandierine…).

 

In ogni pagina (consigliato nell’application) per comodità inserisco il controllo seguente:

  • verifico se il nome della pagina inizia con una delle estensioni lingua (IT_|EN_|…), per questo che ho creato (per comodissimità APPLICATION.lingueTag)
  • se rappresenta una delle estensioni setto automaticamente CLIENT.lingua con la lingua appropiata, in modo che tutto il sito si adatti alla stessa.

 

 

Menù lingua contestuali

Per fare proprio un lavoretto con i fiocchi concludiamo con le bandierine.

Sfrutto nuovamente lo script di prima per la verifica delle estensioni di lingua e memorizzo nella variabile paginaTest il nome della pagina originale senza estensioni.

 

Link quindi ogni bandierina alla pagina corretta:

– italiano: #paginaTest#

– inglese: EN_#paginaTest#

– francese: FR_#paginaTest#

– …

 

e per farla proprio bene aggiungo pure CGI.QUERY_STRING, quindi linko a:

– italiano:

#paginaTest#<cfif cgi.QUERY_STRING is not "">?#cgi.QUERY_STRING#</cfif>

– inglese:

EN_#paginaTest#<cfif cgi.QUERY_STRING is not "">?#cgi.QUERY_STRING#</cfif>

 

Tutto chiaro? Beh sono a disposizione per qualsiasi chiarimento o critica.

 

 

Loading Facebook Comments ...

Un pensiero su “Siti in multilingua con i template di Dreamweaver e le variabili client

  1. Pingback: Siti in multilingua con CMS, DB e CF | MrX

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *