gpt4 book ai didi

asp.net-core - Asp.net core 1.1 本地化,不会改变文化

转载 作者:行者123 更新时间:2023-12-02 18:17:25 26 4
gpt4 key购买 nike

我遵循了有关 Asp.Net Core 本地化的 Microsoft 教程,但有一个问题,除非我更改 Startup.cs 文件中的默认区域性,否则区域性不会改变。

// Startup.cs - ConfigureServices Method
services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; });

services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();



// Startup.cs - Configure Method
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("en-GB"),
new CultureInfo("fr-FR"),
...
};

app.UseRequestLocalization(new RequestLocalizationOptions()
{
DefaultRequestCulture = new RequestCulture("en-GB"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures,
RequestCultureProviders = new List<IRequestCultureProvider>()
});


// HomeController
public IActionResult SetLanguage(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);

return LocalRedirect(returnUrl);
}

我想使用 anchor 链接更改语言,例如:

<a asp-area="" asp-controller="Home" asp-action="SetLanguage" asp-route-culture="fr-FR" asp-route-returnUrl="@Context.Request.Path">FR</a>

当我单击链接时,cookie 成功设置,页面重新加载,但本地化文本保持不变。当我更改 Startup.cs 文件中的 DefaultRequestCulture 时,区域性显示正常(这意味着我的 Resx 文件已正确命名等)

那么我怎样才能根据点击的链接来更改语言呢?

编辑如果有人可以提供帮助,我仍在寻找解决方案

编辑2我做了一个新的解决方案,问题仍然出现在 VS 2017 中,我将我的 VS 项目上传到 Github 上,如果有人可以更好地查看并解释我做错了什么 https://github.com/adonis07/Localization

编辑3
我能够通过在我的解决方案 Microsoft.AspNetCore.Authentication.Cookies 中添加 nuget 包来解决该问题。现在文化运作正常。

最佳答案

您是否正在将线程配置为更改为代码中某处的特定区域性?像这样,无论你在哪里读取语言 cookie:

CultureInfo ci = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);

关于asp.net-core - Asp.net core 1.1 本地化,不会改变文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264315/

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