ASP.NET:更好地在资源或数据库中存储可本地化的UI文本?

Use*_*ser 6 asp.net multilingual resources localization

似乎有两种不同的方法.ASP.NET框架为我们提供了一种通过将UI字符串放在资源中来简化页面本地化的方法,如UserProfile.en.resx,UserProfile.fr.resx等.

另一种方法是将所有字符串放在数据库中的单独表中,然后使用一些自定义机制来检索它们,以符合当前活动的语言/文化设置.

据我所知,数据库方法对于大型项目(如企业软件)更为典型.它还有一个好处,即您可以向该翻译公司提供对该数据库的外部访问权限.有了资源,这将是困难的.

另一方面,从数据库中检索所有静态字符串是额外的流量和负载开销.我认为相对较小的网站没有任何好处."小"意味着不是流量,而是页面的数量和复杂性.

我个人更喜欢为我的私人项目使用资源.这是一个绝对糟糕的主意吗?

顺便说一句,我还可以使用ASP.NET MVC的资源吗?

任何想法都表示赞赏.

编辑:只有一个答案,不能相信这个问题对任何人都没有兴趣.没有人想分享他们的意见?

Raj*_*Raj 2

我更喜欢将所有这些信息保存在数据库中,而不是依赖于 ASP.NET 资源文件。

我所做的是对我的常用控件(如标签)进行子类化并覆盖渲染方法。此方法查找当前文化并通过查找我的数据结构相应地设置适当的标题

关于将它们保存在数据库中时的性能 - 这就是我所做的:在我的 application_start 事件中,我只需将所有文化特定描述加载到自定义对象中并将其缓存很长时间。这样我就不必访问数据库,直到我的缓存过期或者我强制它过期

到目前为止,采用这种方法我们从未遇到过任何性能问题。说了这么多 - 请注意我并不是说使用资源文件也是一个糟糕的选择

但如果给我一个选择,我更喜欢数据库方法而不是资源文件方法