gpt4 book ai didi

c# - 在 asp.net mvc 网站中使用多种语言

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:15 24 4
gpt4 key购买 nike

我正在尝试为用户提供一个选项来更改我的 asp.net mvc 网站的 UI 语言。我计划为用户提供 2 种语言,即:英语和荷兰语

为此,我编辑了我的 web.config 文件并添加了:

<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>

现在我添加了 2 个文件 Resources.resx (默认文件)和 Resources.nl-NL.resx (荷兰语的资源文件)。

从我的角度来看,我指的是资源文件 <title>@WebApplication9.App_GlobalResources.Resources.RequestTitle</title> .

当语言改变时,我正在像这样改变文化:

Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-NL");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-NL");

但即使在语言更改为荷兰语并将文化值更改为上面指定的值之后,英语值仍来自 Resources.resx始终显示而不是从 Resources.nl-NL.resx 获取值.

你能帮我找出我在这里遗漏了什么吗?

最佳答案

这可能有帮助;

您的 POST 方法:

public ActionResult SetCultureToNL()
{
SetCulture("nl-BE");

return View("index");
}

private void SetCulture(String culture)
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(culture);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

if (httpContext.Request.Cookies["_Culture"] != null)
{
HttpCookie cultureCookie = new HttpCookie("_Culture", culture);

httpContext.Response.SetCookie(cultureCookie);
}
else
{
HttpCookie cookie = new HttpCookie("_Culture");
cookie.Value = culture;

httpContext.Response.Cookies.Add(cookie);
}
}

还有一个 GET 方法:

public ActionResult Index()
{
string cultureName = GetCultureCookieValue(this.ControllerContext.HttpContext.ApplicationInstance.Context);

// Modify current thread's cultures
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
// ...
}

public static String GetCultureCookieValue(HttpContext httpContext)
{
HttpCookie cultureCookie = httpContext.Request.Cookies["_Culture"];

if (cultureCookie != null)
{
return CultureHelper.GetImplementedCulture(cultureCookie.Value);
}
else
{
return CultureHelper.GetImplementedCulture(httpContext.Request.UserLanguages[0]); // obtain it from HTTP header AcceptLanguages
}
}

关于c# - 在 asp.net mvc 网站中使用多种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com