如何从本地化存储在数据库中的翻译静态网站的文字?(How to localise static we

2019-09-18 07:10发布

我需要设计为静态文本转换机制/策略在我的(可扩展)的Web应用程序 - 这是基于HTML和jQuery / JavaScript的在ASP.NET环境(但不包括服务器端控件)与异步加载jQuery的动态数据调用HTTP处理程序。

使用我已经成功地本地化的数字,日期等Globalize的 ,但是现在需要理清的文本翻译。

翻译的文本被适当地存储在数据库中(通过本地合作伙伴在另一个应用程序维护),因此,我不希望使用基于文件的ResX等同,如jQuery的本地化 / jQuery的本地化 / jQuery的国际化的属性接近,而不是我后类似的解决方案扩展资源提供模式是局部化ASP.NET控件(我没有),以从数据库中获取的翻译。

客户端方法 :我只是偶然发现i18next的动态(非静态)种源路径 ,我试图找出如果我能恢复从一个HTTP处理程序类似的东西(和缓存中JStorage / LawnChair )填写占位/标签使用jQuery的功能 ,或采取了类似的方法髭或hogan.js模板。

服务器端方法:修改HTML,它是服务之前,例如这个答案建议使用HttpResponse.Filter修改响应服务器端(见本文 )。 由于缓冲分块,我必须抓住的建议整个流在这里 ,这确实导致了性能的下降,但是,我希望我可以减轻这种缓存每次(语言)版本的页面。

或者使用HTTP处理程序是这样貌似简单的方法,虽然我不太确定如何缓存页面的多个版本在这种情况下。

没有任何人有这些方法还是知道的任何类似或符合尤其是在性能,可扩展性和可维护性方面的要求“最佳实践”的经验吗?

如果有什么不明确,请让我知道,我是新的Web开发。 :)

注:这是在平板电脑上运行的数据采集/手持设备的Web应用程序,它不是一个CMS或静态网站(用于在.NET Compact Framework的运行前世,约5年,它的时候了的更新,使用户可以使用非窗口装置,例如机器人和ipad)。

Answer 1:

这就是我们在数据库中处理文本的翻译(这听起来可能很明显,但至少这是高度可扩展):

  1. 假设你有只在一个语言与列[ID],[标题]和[说明]表tbl_Content。

  2. 我们做的是先创建一个列的tbl_Content_Translation:[ID],[languageId],[标题]和[说明]

  3. 不管你对标题/描述columnns转译表的副本,以确保你没有任何松动

  4. 删除标题和描述列在原始表

  5. 改变这一切,查询该表中添加一个[languageId]参数的SP。

  6. 我们高度的SP到我们的血铅水平。

  7. 最后,无论是从一个网页或Web方法,我们称之为BLL来访问我们的数据。

同样,这可能看起来很明显,但因为它是(英语,法语,越南语Ajax调用和正常网页)我应该为我们工作,这可能是有用的。



Answer 2:

服务器端的翻译竟然是颇为曲折。

我想最简单的方法是使用jQuery的定位来从数据库生成的脚本语言,然而这并没有增加任何价值,所以我就从服务器获取脚本使用Ajax请求手动(每种语言都有不同的生成的脚本)。

我从服务器获取该脚本包含用于翻译可变因素(的可变因素是相同的名称作为控件ID),我传递的对象如数组{id:'controlid', val:controlid}适用年代的方法翻译,所以当脚本被调用时,页面被转换。

这是一个耻辱,似乎有没有成为一个很好的最佳实践,我做了什么并不复杂,但如果有一个图书馆这将是很好或插件在做这一切。

Simlar这个答案 。



文章来源: How to localise static website text from translations stored in a database?