resx资源或全球化资源数据库

时间:2011-05-09 23:20:02

标签: asp.net asp.net-mvc globalization resx

我一直在尝试使用特定于文化的资源来处理asp.net mvc 3应用程序。

如果我的App_GlobalResources文件夹中有LanguageResources.resx和LanguageResources.en-UK.resx,那么我会收到错误“命名空间'资源'已包含'LanguageResources'的定义”

这是我试图让文化特定资源发挥作用​​的一系列问题的结束。我必须说,我对Microsoft提供的使用此功能的文档印象不深。

我正在考虑使用数据库表来存储我的特定于文化的字符串,然后我可以构建一个字典,其中包含我的控制器和视图可用的所有值。

是否有其他人做过这样的决定,或者对与使用特定文化字符串数据库相关的性能问题有任何直接了解?

还有其他人放弃了资源吗?

1 个答案:

答案 0 :(得分:1)

我必须承认,我试图重现你的缺陷并且我成功了。看起来,当您添加something.en-UK.resx时,Visual Studio会生成其他类。奇怪。它不应该允许你首先添加这样的东西,因为没有这样的文化。

如何解决问题?只需添加LanguageResources.en-GB.resx和删除
LanguageResources.en-GB.resx。这有帮助。

我不会使用数据库存储与语言相关的资源,除非它们经常更改或必须由最终用户输入(即有某种模板)。
使用数据库会损害本地化并需要很多努力。很难正确设计(我在那个领域看到了很多错误)。除非你真的需要,否则不要去那条路。