asp-classic – 对经典ASP的多语言支持
我有一位客户今天早上打电话给我,要求改造网站以获得多语言支持.该站点是一个经典ASP应用程序,客户端没有重写的愿望/预算是ASP.NET(或其他任何…).
我们谈到了这方面的困难,但很多文本恰好是从数据库中读取的短字符串,他很乐意能够翻译这个文本. 如果这不是经典ASP,我会使用基于GNU gettext()的解决方案.但是,我还没能找到Classic ASP的等价物. 我可以在他的数据库中添加一个表来存储字符串翻译,然后只是查询它,但这也意味着创建一个管理界面,这样他就可以编辑字符串(而不仅仅是编辑纯文本文件). 我也可以创建自己的flatfile解决方案,可能是基于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> 我们选择让每个目录都有自己的XML文件,但如果您的站点中没有很多翻译,则根目录中可能有一个大的XML.这会影响你的表现. 在每页的开头: dim translate set translate = GetObject("script:"&Server.MapPath("/~components/DLL/Translation.wsc")) call translate.OpenWithLCID(session.LCID) 在HTML中: <%= translate.label("systemerror") %> 在页面的末尾: call translate.close() set translate = nothing 对性能的影响微乎其微;只需确保在函数中获取转换,退出循环并在找到相应的XML节点后立即返回值.我们在开始时犯了这个错误,导致在我们调用Translate.label()时处理完整的XML文件. 我的解决方案可能意味着您必须了解在ASP中使用WSC,但是一旦开始使用它们,您将永远不想回头.它完全解决了ASp中的意大利面条代码,可以分离关注点和代码重用. HTH,埃里克希望这可以帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – JSON,ASP.NET MVC – MaxJsonLength异常
- asp.net-core – 在asp.net 5 mvc中找不到css,js和img文件
- asp.net – bcrypt / Bcrypt.net实力和替代品
- asp.net – 将自动Web测试集成到构建过程中
- asp.net-mvc – 我为什么要测试我的HTMLHelpers?
- asp.net-mvc – 在ASP.NET MVC中调用Session_End()的时间是
- wcf – 使用camelCase进行OData WebAPI查询字符串选项?
- asp.net-mvc – 将数据动态绑定到asp.net mvc中的下拉列表
- asp.net – 为什么当试图保存更改时,GridView行“null”的D
- asp.net-mvc – 搜索页面MVC路由(隐藏动作,没有斜线,如SO)
- asp.net-mvc-4 – ASP.NET MVC 4 Razor视图无法识
- 关于二级缓存之间同步问题的思考
- ASP.Net Core MVC中的OutputCache
- asp.net-mvc – 将MVC添加到现有的ASP.net网站
- MVC 5应用程序 – 实现OAuth授权代码流程
- ASP.NET MVC twitter / myspace样式路由
- ASP.NET(MVC)服务图像
- asp.net-mvc – 如何从ActionFilter访问ModelSta
- asp.net-mvc-3 – ASP.NET MVC 3,动作过滤器和Au
- razor – 使用ActionLink将null参数传递给控制器