4

質問があります。ここで、パラメーターをコントローラーに送信して言語を変更する方法についての投稿を読み、コントローラーは変更を処理できます。

これが私が読んだものです:

最初:ルートを追加

routes.MapRoute(
"Default", 
"{language}/{controller}/{action}/{id}", 
new { language = "en", controller = "Home", action = "Index", id = "" }
);

2 番目: ActionLink を使用してパラメーターを送信する

<li><%= Html.ActionLink(
    "Spanish", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "es" })%></li>
<li><%= Html.ActionLink(
    "French", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "fr" })%></li>
<li><%= Html.ActionLink(
    "English", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "en" })%></li>

今、私はこの解決策を試しましたが、うまくいきました。ただし、機能するのは 1 回だけです。つまり、フランス語をクリックすると、ページがフランス語で表示されます。しかし、ページ上の残りのリンクは、依然としてデフォルトの「en」を指しています。

すべてのリンクが選択した新しい言語を使用するように、デフォルトの「言語」値を選択した言語に変更するにはどうすればよいですか?

4

2 に答える 2

1

選択を「記憶」したい場合は、最初の選択を保存するアプローチを使用する必要があります。

したがって、主なオプションは、Cookieを使用するか、選択内容をセッション変数に保存することです。

于 2012-12-19T13:21:17.567 に答える
0

この目的には、リソースファイルを使用するのが最も効果的な方法のようです。ページに表示するすべてのテキストをリソースファイルに保存する必要があり、サポートするすべての言語用に個別のリソースファイルを作成する必要があります。ページのコンテンツは、ブラウザに適用されている言語設定に基づいてリソースファイルから参照されます。

codeprojectに関する次の記事は、それを非常によく示しています。

http://www.codeproject.com/Articles/181738/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part

于 2012-11-22T04:36:26.173 に答える