Newsgroup: it.comp.www.asp
Titolo: Realizzare un sito web con ASP in multilingua

Salve, come posso realizzare un sito in multilingua con ASP, qual'è il
metodo migliore per farlo. Grazie.

Creare dei file esterni contenenti tutte le definizioni e frasi del sito nei
vari linguaggi, assegnandole a delle costanti
Const parola1 = "Benvenuti"....
E poi includerlo ( on un SSI o in maniera dinamica) all'inizio di ogni tua
pagina
E' un pò laborioso, perchè ti obbliga a sostituire tutte le varie frasi e
intestazioni con delle costanti... però se proprio ti serve.
Considera che se è un sito dinamico, poi il problema sono i contenuti
dinamici .)
xMANIGHTx

metodo migliore per farlo. Grazie.
Io di solito adotto, a seconda del caso, due modalit`:
se ne DB c'h una sola tabella per le due o piy lingue creo una sola pagina che
contiene entrambe le lingue gestite con una session che contiene la preferenza
di lingua dell'utente
se invece le tabelle sono diverse per ogni lingua, creo sempre una sola pagina
come sopra, ma gli script di interrogazione e di elaborazione dei dati sono chiaramente
diversi e gestiti tramite appropriati include del tipo
if session("Lingua") = "Ita" then
<!--#include file="conn_tabella_italiano.asp" -->
elseif [altre lingue]
else
end if
 ci sarebbero anche altre possibilit` ma dipende molto dal tipo di progetto e dei
risultati da raggiungere.
Buon lavoro.
Vincenzo Diana
--
Enjoy the .NET community! ASPItalia.com
 
http://forum.aspitalia.com/
 
http://www.aspitalia.com/

metodo migliore per farlo. Grazie.
Io ho fatto una tabella delle traduzioni (id_no, lang,sezione,text) diviso per
pagjne e persezioni (c'h sia home.asp, sia commonWord epr intenderci come sezione)
e quidni un elenco di constanti caricate con inclusione: ad ogni pagine mi carico
un array di text nella pagina. Ritorto se vuoi, ma molto utile; riutilizzi codice
a manetta. Per avere la lingua guardo in url (ho l'abitudine di mettermi semrpoe
sti dati in url, oppure in section)
AndyB


 <!--#include file="conn_tabella_italiano.asp" -->
Scusami tanto, ma hai scritto una fesseria:
gli #include sono la prima cosa che viene processata in una pagina, in
quanto direttiva SSI.
Ergo vengono eseguiti tutti gli #include prescidendo dalle istruzioni
condizionali dell'asp.
Al limite si può prevedere un reindirizzamento a pagine differenti,
ad es. pagina_it.asp, pagina_en.asp, pagina_es.asp, etc.
--
Filippo Di Blasi 
fil...@puntoinformatico.it
http://puntoinformatico.it
 <-- E-shop informatico
http://puntoinformatico.it/usato
 <-- Usato
http://puntoinformatico.it/servizi
 <-- Servizi web
http://puntoinformatico.it/news
 <-- News & Glossario


La fesseria l'hai scritta tu. ;-)
Gli #include inseriscono in quel punto il codice. Se la condizione IF è
false quella parte di codice non viene eseguita/visualizzata.
Il codice suggerito da vdiana è corretto anche se appesantisce
l'elaborazione della pagina perché vengono caricate tutte le tabelle delle
lingue ad ogni richiamo della pagina.
--
Ciao,
Andrea Z.

 ha scritto nel messaggio
news:_wxX8.26763$K_4.6...@twister1.libero.it...

Mmh... forse sono stato un po' affrettato nel giudizio, poiché ho pensato
(con pregiudizio, ammetto) che intendesse comandare gli #include da asp.
Pardon!
Cmq siamo pari, anche tu hai scritto una fesseria: non vengono caricati
tutte le tabelle delle lingue perché la connessione al db è condizionata
alla variabile di sessione "lingua". :-P
Ad ogni modo se le lingue sono tante è preferibile adottare il
Server.Execute piuttosto che gli #include: almeno così il codice caricato è
notevolmente inferiore. Ma queste sono sottigliezze...


non dimentichiamo che gli include vengono SEMPRE elaborati, anche se poi
vengono esclusi da eventuali condizioni if; quindi se in una pagina ci sono
tanti include, questa risulterà notevolmente rallentata (anche se poi ne
userà uno solo) => per un caso del genere anch'io direi di usare
server.execute()

 --
Ok, ma ricordiamo che eventuali variabili non passeranno alla pagina
chiamata (tranne le session e application).
--
Ciao,
Andrea Z.

 ha scritto nel messaggio
news:agma8s$n2bud$1...@ID-147253.news.dfncis.de...


 condizionali dell'asp.
Beh... è vero che gli include vengono processati prima dell'esecuzione del
codice ASP, è anche vero
che questo non ti impedisce di rendere un include "condizionale".
Es:
inc_test.asp contiene:
<% Response.Write "Test" %>
default.asp contiene:
 If bTest then %>
 <!--#include file="conn_tabella_italiano.asp" -->
<% End If
Una volta processato il file include avrai:
 If bTest then %>
    <% Response.Write "Test" %>
<% End If
Quindi in realtà quello che ha scritto diana ha senso. Ciao
xMANIGHTx

Ahimé neanch'io lo sapevo, finché un sito che avevo fatto (e che aggiungevo
man mano include, tipo l'esempio di questo thread per multilingue) č
divenuto pian piano piů lento (e poi ne ho tirate parecchie per sistemarlo
con server.execute)

Se realizzo un database con Access 2000, dove ci sono tutte le lingue del
sito che voglio utilizzare, come posso gestirle al meglio?
Grazie.

Che dite questo metodo č buono?
Senza usare <!-- #include file="" --> in quanto vengo sempre processati.
-- Pagina "default.asp"
<% Option Explicit %>
<% Dim lng, FrameEnglish, FrameItalian, FrameGerman, FrameDefault,
FrameFrench, noFrame
   FrameEnglish = "This page uses the frames. Your browser not supported the
frames. This page is under contruction."
   FrameItalian = "Questa pagina utilizza i frames. Il tuo browser non
supporta i frames. Questa pagina č in costruzione."
   FrameGerman = "..."
   FrameFrench = "..."
   FrameDefault = "This page uses the frames. Your browser not supported the
frames. This page is under contruction."
   lng = Request.QueryString("lng")
%>
<html>
<head>
<titleTitle</title>
</head>
<% if (lng <> "it") and (lng <> "en") and (lng <> "de") and (lng <> "") then
    lng = "errors"
    noFrame = FrameDefault
   elseif lng = "" then
    lng = "it"
    noFrame = FrameItalian
   elseif lng = "en" then
    noFrame = FrameEnglish
   elseif lng = "de" then
    noFrame = FrameGerman
   elseif lng = "fr" then
    noFrame = FrameFrench
   end if
%>
<frameset rows="0" frameborder="0" noresize>
<frame name="default" src="<%=lng %>.asp" frameborder="0" noresize>
</frameset>
<noframes>
<p><%=noFrame %></p>
</noframes>
</html>

 <frame name="default" src="<%=lng %>.asp" frameborder="0" noresize>
Ma a questo punto non č meglio un bel
Select Case UCase(Request.QueryString("lng"))
    Case "IT"
        sUrl = "pagina_it.asp"
    Case "EN"
        sUrl = "pagina_en.asp"
    ...
    Case Else
        sUrl = "pagina_en.asp"
End Select
Response.Redirect sUrl
