Puoi fare un xml per ogni lingua oppure, come nel mio esempio, un solo xml con tag separati per ogni lingua.
Questa funzione ti recupera il nodo corretto nell'xml.
codice:
' Questa procedura consente di gestire il supporto multilingua sfruttando la connessione a dei files
' XML tramite l'oggetto XMLDOM.
'
' Questa funzione server a caricare il file XML di sistema per la lingua passata come
' parametro
Function streamXML(selectLing)
Dim oDom
'Istanzio l'oggetto XMLDOM
Set oDom = Server.CreateObject("Microsoft.XMLDOM")
oDom.async = False
'Se il file viene trovato lo carico altrimenti mostro il messaggio di errore
If oDom.Load(Server.MapPath("/lingua/" & selectLing & ".xml")) Then
Set streamXML = oDom.documentElement
Else
Response.Write "Errore : File XML mancante!"
End If
Set oDom = Nothing
End Function
' Questa funzione serve a caricare il file XML per il modulo che si sta cercando di visualizzare
' il quale viene recuperato dalla stringa degli indirizzi, e viene cercato nella cartella della
' lingua passata come parametro
Function traduzione(ling, modulo)
Dim oDom
Set oDom = Server.CreateObject("Microsoft.XMLDOM")
oDom.async = False
'Controllo se è presemte il file che si è richiesto di tradurre per la lingua attualmente selezionta
If oDom.Load(Server.MapPath("/lingua/" & ling & "/" & modulo & ".xml")) Then
Set traduzione = oDom.documentElement
'Se non esiste eseguo il file nella lingua di default
ElseIf oDom.Load(Server.MapPath("/lingua/" & lingdef & "/" & modulo & ".xml")) Then
Set traduzione = oDom.documentElement
End If
Set oDom = Nothing
End Function
'Questa funzione riceve come parametro il nome del nodo XML da andare a cercare nel file di lingua del modulo visualizzato
'e restituisce il suo corrispettivo valore
'Function traduci(sTranslationKey)
' Dim sTranslationValue, oTranslation
' sTranslationValue = sTranslationKey
'Se l'oggetto XML è stato correttamente istanziato passo alla treaduzione del nodo
'If Not multilingua Is Nothing Then
' Set oTranslation = multilingua.selectSingleNode("lang/translation[@name=""" & sTranslationKey & """]")
' If Not oTranslation Is Nothing Then
' sTranslationValue = oTranslation.text
' End If
'End If
' traduci = sTranslationValue
'End Function
'Questa funzione riceve come parametro il nome del nodo XML da andare a cercare nel file di lingua e
'restituisce il suo valore
Function traduciSys(sTranslationKey)
Dim sTranslationValue, oTranslation
sTranslationValue = sTranslationKey
'Se l'oggetto XML è stato correttamente istanziato passo alla traduzione del nodo
If Not oLangXML Is Nothing Then
Set oTranslation = oLangXML.selectSingleNode("lang/translation[@name=""" & sTranslationKey & """]")
If Not oTranslation Is Nothing Then
sTranslationValue = oTranslation.text
End If
End If
traduciSys = Server.HTMLEncode(sTranslationValue)
traduciSys = replace(traduciSys, "", "")
traduciSys = replace(traduciSys, "", "")
traduciSys = replace(traduciSys, "[a]", "<a href=""")
traduciSys = replace(traduciSys, "[a1]", """ target=""_blank""")
traduciSys = replace(traduciSys, "[a2]", ">")
traduciSys = replace(traduciSys, "[/a]", "</a>")
End Function
E questo ti spampa il valore del nodo:
codice:
<%=traduciSys("desc_01")%>
Roby