2014-10-31 213 views
-2

我需要帮助创建一个mvc3网站。我需要2种语言俄语和英语。通过点击标志图片的网站的语言发生了变化:mvc 3本地化全球化使用资源文件

标志:

<a id="rus" href="@Url.Content("~/Home/Index_en")" title=" english language"><small> english language </small></a> <a id="eng" href="#" title=" russian language"><small>russian language</small></a>

例如: 更改菜单=>

<ul id="mainMenu" > 
     <nav class="dark"> 
      <li style="margin-left:1px; margin-bottom:5px;"><a href="@Url.Content("~/Home")">home</a></li> 
      <li><a href="@Url.Content("~/About_us")">about us</a></li> 
      <li><a href="#">ofers</a></li> 

      <li><a href="@Url.Content("~/Apply")">Apply</a></li> 
      <li><a href="#">contact</a></li> 
</nav></ul> 
+0

你真的需要告诉你已经尝试什么基于jQuery资源位置的答案。 – 2014-10-31 14:19:44

+0

显示你已经尝试过 – kirti 2014-10-31 14:21:37

+0

这就是说,这不是一项简单的任务。您需要自定义路由,控制器挂钩(例如'OnActionExecuting')以及一些技巧,并改变服务器端文化。您的所有字符串也需要位于特定于语言环境的资源文件中。 – 2014-10-31 14:23:18

回答

0

这不是一个简单的任务。您需要自定义路由,控制器挂钩(例如,在OnActionExecuting中)以及一些使用服务器端文化更改的技巧。您的所有字符串也需要位于特定于语言环境的资源文件中。

这里有几个环节,以帮助:

http://geekswithblogs.net/shaunxu/archive/2010/05/06/localization-in-asp.net-mvc-ndash-3-days-investigation-1-day.aspx

http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm

我用这些作为我的参考建立一个通用的本地化库为我的MVC应用程序。

第1个部分自定义路由

我的自定义路由看起来是这样的。它需要一个2字母或2-2字母语言代码(ISO格式),例如enen-EN等:

//Special localisation route mapping - expects specific language/culture code as first param 
routes.MapRoute(
    name: "Localisation", 
    url: "{lang}/{controller}/{action}/{id}", 
    defaults: new { lang = "en", controller = "Home", action = "List", id = UrlParameter.Optional }, 
    constraints: new { lang = @"[a-z]{2}|[a-z]{2}-[a-zA-Z]{2}" } 
); 

所以链接改变语言将只是看起来像这样(简体版):

<a href="en">English language</a> 
<a href="ru">Russian language</a>