如何在包含文件之间进行选择

时间:2010-02-05 22:27:59

标签: asp-classic

我正在为asp经典网站添加多语言功能。我试图通过使用if else语句来选择我想要加载的包含来做到这一点。经过一些研究后,我发现在处理任何代码之前会加载包含文件。

如何解决此问题并加载正确的包含文件?有没有更好的方法呢?

谢谢!

5 个答案:

答案 0 :(得分:1)

正如您所发现的,您不能动态选择包含。在执行任何脚本之前,会静态处理包含。

下一个最好的事情是Server.Execute。您可以使用逻辑来选择要执行的其他文件,但这是否适合您的解决方案是另一回事。您的包含目前包含哪些内容?

另一种方法是将您的“多语言”选择放在某种数据格式中,例如一组CSV文件或XML文件。然后,您的代码将加载相应的“语言文件”。

答案 1 :(得分:1)

经过无数个小时后,我想我终于找到了解决方案。我为每种语言(en.xml,fr.xml)创建了一个超简单结构的xml文件(只是一个带有id和value的标签元素)。

通过使用与我想要替换的标签具有相似名称的属性,我可以找出所有需要去的地方,并且只需拉取值。

答案 2 :(得分:0)

可以这样做 - 只需使用包含虚拟而不是文件

修改

我的立场得到了纠正 - 显然我很难忘记那些黑暗时代。

多年前,我参与了一个项目,我们将为每个语言版本创建一个“容器页面”,然后包含相应的常量部分。

working spinoff is still running,如果您查看page source of this site,就可以了解我们如何将网页整合在一起。 由SVN id标签识别的一些包含的脚本甚至包含更多脚本,并且保持这种慢慢变成了一场噩梦。

对不起,我对条件包含错了,应该有一个比上面提到的更好的解决方案。

答案 3 :(得分:0)

我不确定这个想法是否有帮助,但你可以在一个ASP文件中调暗语言字符串变量,然后在单独的ASP函数中设置变量。然后你的if语句可以调用正确的函数来设置ASP语言字符串变量。您不会将语言字符串分解为单独的文件,但它可能会实现您要实现的目标。

例如:

dim str1, str2

sub SetLangX
   str1 = "String val 1 for lang X"
   str2 = "String val 2 for lang X"
end sub

sub SetLangY
   str1 = "String val 1 for lang Y"
   str2 = "String val 2 for lang Y"
end sub

答案 4 :(得分:0)

4guysfromrolla有一篇非常好的文章。链接如下......

http://www.4guysfromrolla.com/ASPScripts/PrintPage.asp?REF=/webtech/022504-1.shtml