2009-03-02 19 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を検索エンジンでインデックスに登録する必要があります。 URLに言語を入れたいのかどうかはわかりませんが、検索エンジンを混乱させることのない良い選択肢があるとは思っていません。

これは、 '私は製品という言葉をローカライズしてはいけませんが、今は英語サイトを立ち上げる前にルーティングを取得したいだけです。

+1

私が見つけた素晴らしい[AttributeRouting](https://github.com/mccalltd/AttributeRouting/wiki/Localization)プロジェクトを試すことができます! [NuGet](https://nuget.org/packages/AttributeRouting)を介して入手できます。 –

+0

[ASP.NET MVCを使用した多言語ウェブサイト]の複製が可能です(http://stackoverflow.com/questions/291405/multi-lingual-websites-with-asp-net-mvc) – manojlds

答えて

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" } 
+0

言語を含めることを選択しました英語の場合でも。ただの利便性から? –

+0

私のデフォルトはドイツ語です。最初のページが表示された場合は、URLに言語が含まれていません。しかし暗黙のうちにあなたはドイツ語を手に入れます。アクションリンクを使用するか、アクションに投稿するとすぐに、URLに言語が表示されます。 –

1

私はそうのような別のURLスキームを使用します。その後、私はthis answerのようにカスタムルートを作成します

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

など

関連する問題