6

我正在考虑开发以下内容,但想知道它是否已经存在:

我需要一个基于 SQL 的解决方案来分配和管理 asp.net 站点的本地化文本值,而不是使用 RESX 文件。这有助于维护站点上的文本,而无需在需要更新时将其删除以进行部署。

谢谢。

4

5 回答 5

3

实际上,我们沿着这条路走下去,最终得到了一个非常慢的网站——去掉了基于 SQL 的翻译机制并使用 ASP.NET 资源给了我们显着的性能提升。所以我真的不能推荐你做同样的事情......(是的 - 我们正在缓存和优化吞吐量和一切 - 基于 SQL 的东西仍然明显慢得多)。

你得到你所支付的 - 基于 SQL 的方法在能够即时“翻译”以及修复错别字和内容方面更加灵活。但最终,在我们的应用程序(当时的 Webforms,.NET 2.0)中,使用资源被证明是唯一可行的方法。

于 2010-04-11T17:23:16.853 回答
1

我们这样做了(基于 SQL 的翻译),我们对结果非常满意!我们为翻译机构开发了一个界面来在线更新页面。作为一个副作用,该解决方案开始充当内容管理系统。如果您缓存数据,则性能不是问题。不利的一面是,我们在解决方案上投入了数百个小时。(我猜……大约 600 小时,但我可以检查一下。)。

于 2010-04-11T17:41:44.307 回答
0

我不确定网站重启,但至少使用 .NET MVC 非常方便,我没有注意到重启问题,如果发生,你需要多久更新一次 resx 文件?对于更大的项目,我用来创建一个包含多个项目的解决方案,一个用于本地化,如下所示:

  • MyApp.Localization
    • 模型
    • 文件1.resx
  • MyApp.Core
  • 我的应用程序网站

然后在 Web 项目中添加对 Localization 项目的引用,并像使用它一样使用它

@MyApp.Localization.Model.Customer.CustomerName

@MyApp.Localization.Page.About.PageTitle

@MyApp.Localization.File1.Paragraph1

每次更改翻译文本时,我要么上传更新的 .dll 文件,要么复制 .resx 文件。

注意:您需要将 resx 文件设置为 PUBLIC,因此可以作为强类型访问。

于 2012-01-04T01:29:26.160 回答
0

我们最终得到了一个混合解决方案,用户可以将内容编辑到数据库中,但应用程序随后创建了一个手动部署的 .resx。

您也可以完全绕过服务器翻译并在客户端上使用 jQuery 进行翻译,这是我成功使用的一种方法。

于 2010-04-11T18:02:08.227 回答
0

我创建了一个基于 SQL 的翻译方案。但是我只在请求时加载给定页面所需的翻译,并且只加载该特定页面的翻译。

当页面在会话期间重新加载和缓存时,它们会被加载到字典对象中。然后只是根据查找进行文本替换。

几乎所有内容都是动态生成的,并且包括必须翻译的用户定义内容,因此灵活性是关键。

性能相当快,检索所有数据的 SQL 查询需要更长的时间(相对而言)。

于 2013-08-05T18:26:00.983 回答