2012-04-10 24 views
7

私は2リソースファイルがあります。Resources.resx(ルーマニア語でいくつかの文字列を持っている)とResources.en-US.resxは、(英語で同じ文字列を持っているが)。言語の変更4

私は(、ドロップダウンリストでリストボックス、...)を使用する魔女のリソースファイルを変更したいです。これは_Layout.cshtmlにあります。私はユーザーの文化を検出する必要はありません。

Q:どのように私はページからリソースファイルを選択することができますか?

編集:それはデフォルトMapRouteを変更せずに行うことができますか?あなたがそれを行うことができます

答えて

6

一つの方法は、単に言語固有のURLへのリダイレクトページのドロップダウンを持つことである(あなたが言語固有のリンクの周りに送ることができるよう、これはかなりいいです)、あなたのコントローラ上の基底クラスで、設定スレッドのロケール。

このブログの記事は、私はより良い詳細に話しています何を取り上げますLocalization in ASP.NET MVC – 3 Days Investigation, 1 Day Job

+1

この例では、.aspxページはrazor .cshtmlではありません。そして、デフォルトのMapRouteを変更せずに行うことはできますか? – Misi

+0

これはaspxを使用していますが、cshtmlのカミソリのページは同じように動作します。ちょっと違った構文です(私はこれをapplciationの面倒を使ってやっています)。また、デフォルトのMapRouteを変更する必要はありません(非ロケール対応のURLSも機能します)。余分なルートを追加するだけで済みます。 – kmp

+0

あなたは(または誰でも)** Resources.en-US.resx **の代わりに** Resources.resx **を選択したコードを_App_GlobalResources_フォルダから書き留めてもよいですか? – Misi

4

このBlogをチェックしてください。 デフォルトのMapRouteを変更しません。

_Layout.cshtmlページ:

@using Resources; 
<!DOCTYPE html> 

<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
    </head> 
    <body> 
     <div> 
      <form method="post"> 
       @TestResource.SelectLanguage 
       <select name="lang"> 
        <option></option> 
        <option value="en-GB" @(Culture == "en-GB" ? "selected=\"selected\"" : "")>English</option> 
        <option value="fr-FR" @(Culture == "fr-FR" ? "selected=\"selected\"" : "")>French</option> 
        <option value="de-DE" @(Culture == "de-DE" ? "selected=\"selected\"" : "")>German</option> 
       </select> 
       <input type="submit" value="@TestResource.Submit" /> 
      </form> 
     </div> 
     @RenderBody() 
    </body> 
</html> 

文化が_PageStart.cshtmlファイル内で設定されている:

@{ 
    Layout = "~/_Layout.cshtml"; 
    if(!Request["lang"].IsEmpty()){ 
     Culture = UICulture = Request["lang"]; 
    } 
} 

最終ページがデフォルトページ自体です:

@using Resources; 
<h1>@TestResource.Welcome</h1> 
<p><img src="images/@TestResource.FlagImage" /></p> 

http://www.mikesdotnetting.com/Article/183/Globalization-And-Localization-With-Razor-Web-Pages

関連する問題