私のWebサイトに複数の言語機能を作成するために.Net Resource APIを使用しています。
私が次に従いましたthis example.Net: "コンテンツ"ビルドタイプのリソースで複数の言語を実行する方法リソース
このようにして、実行時に変更できない埋め込みリソースを作成することができます。ビルドタイプを「コンテンツ」に変更すると、実行時にリソースファイルを変更することができますが、このビルドタイプで複数の言語を実行する方法はわかりません。私を助けてください!
私のWebサイトに複数の言語機能を作成するために.Net Resource APIを使用しています。
私が次に従いましたthis example.Net: "コンテンツ"ビルドタイプのリソースで複数の言語を実行する方法リソース
このようにして、実行時に変更できない埋め込みリソースを作成することができます。ビルドタイプを「コンテンツ」に変更すると、実行時にリソースファイルを変更することができますが、このビルドタイプで複数の言語を実行する方法はわかりません。私を助けてください!
私は他の質問では、このための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を経由することもできます。