Een 'array met namen' heet in ASP classic gewoon een Dictionary object

Je zou om te proberen gewoon het LanguagePack uit dat stukje code van Sven Glazenburg aan het eind van dutch.asp als Session variabele kunnen opslaan, en even kijken of de performance daar niet loeihard van onderuit gaat.
Anders kun je nog een algemene functie schrijven in een include file die je op elke pagina include (en niet dmv. Server.Execute).
In die functie lees je dan bijv. een GET variabele uit (bijv. Request.QueryString("lang")) en dat gebruik je om uit die XML file een bepaalde taal te filteren waar je een Dictionary object van genereert. Op die manier heb je je Dictionary object toch ter beschikking op de pagina zelf.
Beetje code als voorbeeld:
(bear with me, het is al een tijdje geleden dat ik met classic ASP heb gewerkt

)
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| 'Dit is de include file, bijv. language.asp
Dim objLanguagePack = Server.CreateObject("Scripting.Dictionary")
Sub FilterLanguage
'Hier kun je meerdere dingen doen
'1) Je hardcode hier de variabelen in het Dictionary object, dus:
Select Case Request.QueryString("lang")
Case "NL"
Call objLanguagePack.Add("Foutmelding", "Er is een fout opgetreden")
Case "EN"
Call objLanguagePack.Add("Foutmelding", "An error has occured")
End Select
'2) Je maakt meerdere XML files met de vertalingen (voor elke taal 1 XML file)
' en je laadt hier op basis van de GET variabele een van de files in
'3) Je pleurt alles in 1 XML file, je laadt die in en selecteert de taalnode die je
' nodig hebt
End Sub |
Hoe dan ook, als je zorgt dat je altijd een Dictionary object overhoudt met de nodige keys erin (zoals "Foutmelding") dan kun je er in je ASP pagina gewoon vanuit gaan dat die bestaat:
ASP:
1
2
3
4
5
| 'Dit is dus je ASP pagina
<!--#INCLUDE FILE="lang.asp" -->
<h1><%= objLanguagePack("Foutmelding") %></h1> |
en dan kun je bijv. zonder problemen switchen van hardcoded naar XML (omdat het handiger is om een XML file te editen dan hardcoded variabelen) zonder dat je daarvoor al je pagina's moet aanpassen.
[
Voor 96% gewijzigd door
Not Pingu op 10-08-2004 13:31
. Reden: Layoutverneuking en sub afsluiten gefixt :P ]
Certified smart block developer op de agile darkchain stack. PM voor info.