2016-05-31 5 views
0

私のWebサイトに複数の言語機能を作成するために.Net Resource APIを使用しています。
私が次に従いましたthis example.Net: "コンテンツ"ビルドタイプのリソースで複数の言語を実行する方法リソース

このようにして、実行時に変更できない埋め込みリソースを作成することができます。ビルドタイプを「コンテンツ」に変更すると、実行時にリソースファイルを変更することができますが、このビルドタイプで複数の言語を実行する方法はわかりません。私を助けてください!

答えて

0

私は他の質問では、このためのsmilarソリューションを書いた: https://stackoverflow.com/a/37458723/3401842

あなたはこの機能を追加することにより、Global.asaxの中のデフォルトの言語を設定する必要があります:あなたが変更言語を使用したい場合は

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
      System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR"); 
      System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-FR"); 
    } 

ユーザーのためのオプションと、作成された変更言語ボタン(ENやFRボタンなど)。コントローラーでカルチャ値を設定する必要があります。たとえば、次のように

ビュー:

@Html.ActionLink("English", "SelectLanguage", "Home", new { SelectedLanguage = "en-US" }, null) 
@Html.ActionLink("Français", "SelectLanguage", "Home", new { SelectedLanguage = "fr-FR" }, null) 

コントローラー:

public ActionResult SelectLanguage(string SelectedLanguage) 
    { 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(SelectedLanguage); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(SelectedLanguage.ToLower()); 

     HttpCookie LangCookie = new HttpCookie("LangCookie"); 
     LangCookie.Value = SelectedLanguage; 
     Response.Cookies.Add(LangCookie); 

     return RedirectToAction("Index", "Home"); 
    } 

そしてまた、あなたが言語のクッキーを確認したい場合、あなたはこのように、あなたのGlobal.asaxの中でそれを制御することができます。

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     HttpCookie LangCookie = Request.Cookies["LangCookie"]; 
     if (LangCookie != null && LangCookie.Value != null) 
     { 
      System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(LangCookie.Value); 
      System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(LangCookie.Value); 
     } 
     else 
     { 
      System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR"); 
      System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-FR"); 
     } 
    } 

また、このguideを経由することもできます。

関連する問題