1

我是处理资源文件的新手,我还不太了解它是如何工作的。现在我需要让我的应用程序的文本以英文和中文提供。我将收到一个 get 参数(例如 lang),然后我需要决定是使用 Language.zh.resx 还是我的默认 Language.resx - 这是我从我一直在阅读的文章中了解到的。现在我有我的视图标题,例如:

 @{
      ViewBag.Title = MyApplication.App_GlobalResources.Language.MyPage_Title;
  }

我不知道在哪里检查参数 lang 并应用它。我看到人们说我应该创建一个动作过滤器的文章,他们在 cookie 中添加了一些东西,他们很困惑。在我的情况下,它可能没有必要,因为它只有一个请求,不需要保留状态,因为一旦加载页面就是这样。

如果有人也可以简要解释一下资源是如何工作的,那就太好了,谢谢!

4

2 回答 2

0

假设您的控制器中有一个字符串 lang,在控制器中您应该更改当前的文化,所以您唯一需要做的就是这样

var culture = new CultureInfo(lang);
System.Threading.Thread.CurrentThread.CurrentCulture = culture;
System.Threading.Thread.CurrentThread.CurrentUICulture = culture;

我建议您通过某些属性执行此步骤,然后将其应用于控制器。

于 2013-08-28T17:27:55.347 回答
0

There are a couple of articles that discuss Globalization and MVC using both session and URL variables. I am linking both because the session one covers Views a little more in deoth, but the logic for views should stay the same regardless if you are routing (/en-us/Controller) or using a session.

  1. Session based Globalization
  2. Routing Based Globalization
于 2013-08-28T17:02:36.563 回答