Asp classic 对经典ASP的多语言支持

Asp classic 对经典ASP的多语言支持,asp-classic,multilingual,Asp Classic,Multilingual,我有一个客户今天早上打电话给我,想改造一个多语言支持的网站。该网站是一个经典的ASP应用程序,客户端不希望/预算将其重写为ASP.NET(或其他任何内容…) 我们讨论了这方面的困难,但是很多文本恰好是从数据库读取的短字符串,他会很高兴能够翻译这些文本 如果这不是经典的ASP,我将使用基于GNU gettext()的解决方案。然而,我还没有找到一个与经典ASP相同的版本 我可以在他的数据库中添加一个表来存储字符串翻译,然后查询它,但这也意味着创建一个管理界面,以便他可以编辑字符串(而不仅仅是编辑纯

我有一个客户今天早上打电话给我,想改造一个多语言支持的网站。该网站是一个经典的ASP应用程序,客户端不希望/预算将其重写为ASP.NET(或其他任何内容…)

我们讨论了这方面的困难,但是很多文本恰好是从数据库读取的短字符串,他会很高兴能够翻译这些文本

如果这不是经典的ASP,我将使用基于GNU gettext()的解决方案。然而,我还没有找到一个与经典ASP相同的版本

我可以在他的数据库中添加一个表来存储字符串翻译,然后查询它,但这也意味着创建一个管理界面,以便他可以编辑字符串(而不仅仅是编辑纯文本文件)

我也可以创建自己的平面文件解决方案,可能是基于Scripting.Dictionary,但我真的不想在这里推出自己的解决方案


这里有其他的解决方案吗?谢谢。

也许是像宝贝鱼之类的东西


我们使用基于XML的解决方案,我们有以下结构的XML文件:

<?xml version="1.0" encoding="Windows-1252"?>
<resource>
    <language LCID="1043" name="nederlands">
        <label id="pageheader"><![CDATA[Over deze applicatie]]></label>
        <label id="warning"><![CDATA[]]></label>
    </language>
    <language LCID="2067" name="vlaams">
        <label id="pageheader">Over deze applicatie</label>
        <label id="warning"><![CDATA[]]></label>
    </language>
    <language LCID="2057" name="english (uk)">
        <label id="pageheader"><![CDATA[About this software]]></label>
        <label id="warning"><![CDATA[]]></label>
        <label id=""><![CDATA[]]></label>
    </language>
</resource>
在HTML中:

<%= translate.label("systemerror") %>
对性能的影响最小;只需确保在获取转换的函数中,一旦找到相应的XML节点,就退出循环并返回值。我们在开始时犯了这个错误,导致在调用Translate.label()时处理完整的XML文件

我的解决方案可能意味着您必须了解如何在ASP中使用WSC,但一旦开始使用它们,您就再也不想回去了。它完全解决了ASp中的意大利面代码,实现了关注点和代码重用的分离

嗯,, 埃里克
希望这有帮助

谢谢,但是在这种情况下,自动翻译不够准确。这种方法的一个优点是,客户可以使用任何XML编辑器和FTP访问自己编辑翻译。
<%= translate.label("systemerror") %>
call translate.close()
set translate = nothing