Di seguito tutti gli interventi pubblicati sul sito, in ordine cronologico.
Supponiamo di dover realizzare un sito multilingua
Possiamo affrontare il problema in diversi modi, ne propongo due:
1. realizzare tante copie del sito e tradurre il testo tante quante sono le lingue in cui vogliamo proporre le pagine dinamiche
2. caricare dinamicamente a runtime da una base dati o da un file XML i contenuti da tradurre ed inserirli nelle opportune sezioni utilizzando dei 'checkpoint'
Il sistema 1. è sicuramente il più; semplice e tecnologicamente non presenta particolari difficoltà.
Una volta pronto il sito di partenza, è sufficiente copiare tutta la directory del sito con un altro nome, correggere gli eventuali link e tradurre i contenuti del secondo sito; poi, si ripete questo modus operandi con tutte le versioni che ci servono.
Se da un lato questo sistema presenta l'innegabile vantaggio di essere molto semplice, dall'altro presenta una indubbia difficoltà e di manutenibilità; tutte le volte che viene modificata una parte grafica del sito, la sua struttura o altro (e vi assicuro che capita MOLTO spesso), è necessario propagare questo cambiamento a tutte le pagine di tutte le copie multilingua del sito.
Il metodo 2. richiede inizialmente uno sforzo maggiore che viene però immediatamente ripagato nel momento in cui bisogna apportare le prime modifiche alla struttura o per aggiungere ulteriori contenuti.<
Si tratta di costruire un file dizionario per ogni lingua che desideriamo gestire; tale file sarà un file XML formattato come segue.
Successivamente si costruiranno le pagine ASP in modo classico facendo attenzione a sostituire il contenuto della sezione (quello che vogliamo tradurre) con un riferimento che la funzione Traduci andrà a sostituire con il contenuto vero e proprio.
Prima di tutto costruiamo il seguente file diz_IT.XML come dizionario per il nostro sito in italiano:
<?xml version="1.0" encoding="ISO-8859-1"?>
<lingua>
<lang name="italiano">
<translation name="home01">Benvenuto nel mio sito</translation>
</lang>
</lingua>
ed uno analogo (diz_EN.XML) per la versione inglese
<?xml version="1.0" encoding="ISO-8859-1"?>
<lingua>
<lang name="english">
<translation name="home01">Welcome in my site</translation>
</lang>
</lingua>
Definiamo ora, come segue, il file aux_vb.asp con una semplice funzione con l'accesso al file XML:
<%
Function Traduci(Termine, Lingua)
Dim XMLdom
Set XMLdom = Server.CreateObject("Microsoft.XMLDOM")
XMLdom.async = False
strFile = Server.MapPath("diz_" & lingua & ".xml")
If XMLdom.Load(strFile) Then
Set rXML = XMLdom.selectSingleNode("//translation [@name=""" & Termine & """]")
if NOT rXML is Nothing then
Traduci = rXML.text
else
Traduci = Termine & "-" & Lingua
End if
Set rXML = Nothing
End if
Set XMLdom = Nothing
End function
%>
Questa funzione accetta due parametri in ingresso:
il termine da tradurre
la lingua di destinazione
Costruiamo adesso una semplice pagina Home.asp che contenga i riferimenti (i checkpoint menzionati poco sopra) per le traduzioni:
<!--#include file="aux_vb.asp"-->
<html>
<head><title>Testing Page</title></head>
<body>
<%=Traduci("home01","IT")%>
</body>
</html>
Nella pagina è stato inserita la riga contenente il riferimento alla funzione "Traduci" dove il secondo argomento consiste nella lingua desiderata;
Naturalmente è possibile specificare questa variabile in diversi modi, sicuramente più idonei che non un passaggio statico come fatto in questa sede per brevità.
E' infatti semplice far lavorare questa funzione in modo efficace mediante l'utilizzo dei cookie, magari settando direttamente dalla home page del sito la lingua preferita dall'utente, oppure con un passaggio di request.querystring("lingua") o con una variabile di sessione.
Il file con i sorgenti è disponibile qui.
Ecco un software veramente interessante:
Photosynth.
Questo progetto nasce dalla collaborazione di Microsoft e l'
Università di Washington e, sul sito, lo slogan è : "What if your photo collection was an entry point into the world, like a wormhole that you could jump through and explore… ".
Di fatto, sembra che sarà possibile creare un ambiente virtuale costruito con un insieme di fotografie e, quanto più dettagliate e varie nelle angolazioni esse saranno, tanto più realistico e 'avvolgente' sarà il risultato.
Il sito ed i video disponibili anche per il download meritano una visita.