2009-03-02 75 views
3

我正在試圖規劃一個新的ASP.NET MVC站點的未來(幾個月)本地化。我應該如何使用ASP.NET MVC路線實現本地化?

試圖決定什麼是最有意義的,就構建URL和路由而言。

舉例來說,我應該立即開始了與此:

http://www.example.com/en/Products/1001 
http://www.example.com/es/Products/1001 

或只是

http://www.example.com/Products/1001 

,然後添加其他語言後

http://www.example.com/en/Products/1001 

這就是我的基本主要問題,現在,試圖讓路由正確。我希望我的網址可以通過搜索引擎正確索引。我甚至不確定我是否想要URL中的語言,但我不認爲有一個不會混淆搜索引擎的好選擇。

它導致了其他各種問題,比如'我應該將產品本地化',但現在我只想在啓動英文網站之前獲得路由。

+1

您可以嘗試我剛發現的真棒[AttributeRouting](https://github.com/mccalltd/AttributeRouting/wiki/Localization)項目!你可以通過[NuGet]獲取它(https://nuget.org/packages/AttributeRouting)。 – 2012-03-12 03:13:22

+0

[使用ASP.NET MVC的多語種網站]的可能重複(http://stackoverflow.com/questions/291405/multi-lingual-websites-with-asp-net-mvc) – manojlds 2012-08-29 11:38:05

回答

2

我有和你一模一樣的URL_mapping。我的路線也使用一個約束。 適合我。

routes.MapRoute(
      // Route name 
      "LocalizedController", 
      // URL with parameters            
      "{language}/{controller}/{action}", 
      // Parameter defaults 
      new { 
       controller = "Home", action = "Index", 
       language = "de" 
      }, 
       //Parameter constraints 
      new { language = @"de|en" } 
1

我會用不同的URL方案,如下所示:

en.mysite.com (English) 
mysite.com (default language) 
ro.mysite.com (Romanian) 

然後我會創造像this answer定製路線。