我需要为我的(可扩展的)Web 应用程序中的静态文本设计一种翻译机制/策略——这些应用程序基于 ASP.NET 环境(但没有服务器端控件)中的 HTML、JQuery/JavaScript,并从异步 jQuery 加载动态数据调用 http 处理程序。
我已经使用Globalize成功本地化了数字、日期等,但是现在需要整理文本翻译。
翻译的文本被适当地存储在数据库中(由本地合作伙伴在另一个应用程序中维护),因此,我不想使用基于文件的ResX等价物,如jQuery Localization / jQuery Localize / jQuery-i18n-properties方法,而是我追求一种类似于扩展本地化 ASP.NET 控件(我没有)的资源提供者模型的解决方案,以从数据库中获取翻译。
客户端方法:我只是偶然发现了i18next 的动态(非静态)资源路由,并试图弄清楚我是否可以从 http 处理程序(并缓存在JStorage / LawnChair中)返回类似的东西来填写占位符/标签使用jQuery 函数或对Mustache或hogan.js模板采取类似的方法。
服务器端方法: 在提供 HTML 之前修改它,例如这个答案建议使用HttpResponse.Filter来修改响应服务器端(参见这篇文章)。由于缓冲区被分块,我必须按照此处的建议捕获整个流,这确实会导致性能下降,但是,我希望我可以通过缓存页面的每个(语言)版本来缓解这种情况。
或者像这样使用 HTTP 处理程序看起来更简单,尽管我不太确定如何在这种情况下缓存页面的多个版本。
是否有其他人对这些方法有经验,或者知道任何满足要求的类似或“最佳实践”,尤其是在性能、可伸缩性和可维护性方面?
如果有任何不清楚的地方,请告诉我,我是 Web 开发的新手。:)
注意:这适用于在平板电脑/手持设备上运行以获取数据的 Web 应用程序,它不是 CMS 或静态站点(之前的版本用于在 .Net Compact Framework 上运行大约 5 年,现在是时候更新,以便用户可以使用非 Windows 设备,例如 android 和 iPad)。