2014-10-31 98 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>