1

您好,我一直在开发 MVC 2.0 Web 应用程序。这需要在两种语言之间切换。

现有解决方案效果不佳,因为 MVC [DisplayName] 属性和数据注释错误消息等无法正常工作,因为它们在 MVC 2.0 中不具备文化意识。

我在这里遵循了示例: http://adamyan.blogspot.co.uk/2010/02/aspnet-mvc-2-localization-complete.html#!/2010/02/aspnet-mvc-2-localization-complete。 html

通过一些调整,它在我的 Visual Studio 环境中都能完美运行,并且现在可以切换语言并使用 MVC 显示名称等。我正在使用嵌入式资源并且有一个英文 resx 文件(例如 MyPage.resx)和文化版本(例如 MyPage.cy-GB.resx)。

问题是当我将它安装到生产环境中时,它不会切换语言。我很困惑,因为我认为这些嵌入式资源将是主 Web 应用程序 dll 的一部分,所以它应该可以轻松找到匹配的资源?

我知道这肯定会改变当前线程的文化。它只是没有加载匹配的资源。

该应用程序是使用 WIX 安装的,但我已包含所有文件(aspx 等)。以前它使用附属程序集并在 bin 文件夹中使用文化名称创建资源 dll。我删除了这个,因为我只是使用提到的嵌入式资源。卫星组件是否对此有要求?我很高兴他们被嵌入。

我真的很困惑如何解决这个问题,所以任何建议都会非常受欢迎。

谢谢

4

1 回答 1

0

MyPage.cy-GB.resx 嵌入在附属程序集中。这是必要的,事实上嵌入式资源就是卫星程序集中的全部内容。

于 2012-08-24T21:47:38.090 回答