Newsgroup: it.comp.www.asp
Titolo: Sito multilingua

Salve a tutto il NG
Devo sviluppare un sito in multilingua (italiano, inglese, tedesco e
francese).
Io pensavo di utilizzare un db dove stipare tutte le frasi che compongono le
varie pagine, per poi recuperarle a seconda della lingua scelta nella home
page.
Voi cosa ne pensate? avete qualche altra idea ?
Ciao e grazie a tutti.
--
Kappa
kappa**nospam**@
webngo.net

page.
Potresti leggere le impostazioni di lingua del browser-client, in
questo modo ogni utente si becca la lingua senza doverla scegliere.
Vedi le ServerVariables per la lingua.
Davide

 Vedi le ServerVariables per la lingua.
Ok x le ServerVariables, ma a livello logistico come procederesti (db oppure
qualche altra cosa)
--
Kappa
kappa**nospam**@
webngo.net

qualche altra cosa)
Sicuramente DB. Io farei una tabella con
IDFrase, IDLingua, Frase
Quindi nella composizione della pagina riporterei le singole "frasi"
prese dal database. Userei una funzione "generica" per reperire le
frasi con capacita' di sostituzione dei parametri "al volo".
Tipo:
InserisciFrase( BENVENUTO, linguaUtente, "Nome dell'utente" )
Che mi reperisce la frase, e va' a ficcarci dentro quello che gli
indico in una certa posizione indicata (tipo printf() del C).
Davide

 qualche altra cosa)
Quando mi e' capitato di dovermi porre la questione non avevo molta scelta,
il sito non era assolutamente stato studiato per il multilingual ed il testo
da tradurre era contenuto nell'html ma anche in alcuni campi di due db su
cui poggiava. Ho scelto una soluzione che all'inizio reputavo dovesse essere
temporanea, mi aspettavo prestazioni pessime, invece (visto il ridotto
numero di utenti ;-( ) e' ancora li'. Direi che mi sentirei di consigliarla
solo a chi si trova nelle stesse condizioni e non puo' strutturare la cosa
per benino dall'inizio.
Data la seguente funzione:
Function LangSplitted(ByVal StringaVarieLang, ByVal IDlangScelta)
 On Error Resume Next
 VarAppog2=StringaVarieLang
 If IDlangScelta<>5 and IDlangScelta<>6 Then
  DescrSplitLingua=""
  ArrApp=""
  ArrApp=Split(StringaVarieLang, "**", -1, 1)
  DescrSplitLingua=ArrApp(IDlangScelta-1)
  If (UBound(ArrApp)+1)=1 Then
   'indica che la lingua corrispondente non e' stata trovata
   'e che si decide di inserire l'inetera stringa
   DescrSplitLingua="+"&StringaVarieLang&"+"
  Else
   DescrSplitLingua=ArrApp(IDlangScelta-1)
  End If
  VarAppog2=DescrSplitLingua
 End If
 LangSplitted=VarAppog2
End Function
Le lingue sono numerate da 1 a 4, mentre 5 e 6 mi servono per debug se li si
sceglie tutte le lingue vengono visualizzate (mi serve anche per far
indicizzare il sito in tutte le lingue dai motori. Ogni frase e' conservata
nel formato
italiano**inglese**francese**tedesco
una volta passata la variabile cosi' configurata alla funzione insieme al
numero della lingua da scegliere, se la sintassi non e' rispettata vengono
aggiunti due + agli estremi della stringa cosi' da sgamare le traduzioni
ancora incomplete.
Ho usato la funzione sia per splittare i valori nel database che i testi
html delle pagine.
In ogni pagina, a monte ci sono delle variabili nella suddetta sintassi e
nella pagina vengono splittate con la lingua desiderata.
Il carico non e' trascurabile, ma i risultati, ripeto, sono stati migliori
del previsto. Il confronto con una soluzione all DB oriented potrebbe dare
interessanti risultati ;-) se avessi tempo lo farei ;-)
Ciao, Fabio Zed

francese).
Qui puoi trovare qualche spunto interessante.
http://www.asptoday.com/articles/20000330.htm