Asp.net 核心不改变 CultureInfo

Asp.net core dosn't change the CultureInfo

services.Configure<RequestLocalizationOptions>(options =>
{
    var defaultCulture = new CultureInfo("ru-RU");
    var englishCulture = new CultureInfo("en-GB");
    var supportedCultures = new List<CultureInfo>
    {
        defaultCulture,
        englishCulture
    };
    options.DefaultRequestCulture = new RequestCulture(defaultCulture,defaultCulture);
    options.SupportedCultures = supportedCultures;
    options.SupportedUICultures = supportedCultures;

    var defaultCookieRequestProvider = options.RequestCultureProviders
        .FirstOrDefault(rcp => rcp.GetType() == typeof(CookieRequestCultureProvider));
    if (defaultCookieRequestProvider != null)
        options.RequestCultureProviders.Remove(defaultCookieRequestProvider);

    options.RequestCultureProviders
        .Insert(0,
        new CookieRequestCultureProvider()
        {
            CookieName = CookieRequestCultureProvider.DefaultCookieName,
            Options = options
        });
});

我有

            var options = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
            app.UseRequestLocalization(options.Value);

控制器 - 第二次调用它时仍然是俄语而不是英语

public async Task ChangeLocalization([FromBody] LocalizationDto inDto)
{
    var test = CultureInfo.CurrentUICulture;
    var settedCulture = new CultureInfo(inDto.CurrentCultureName);
    Thread.CurrentThread.CurrentCulture = settedCulture;
    Thread.CurrentThread.CurrentUICulture = settedCulture;
    if (HttpContext.Request.Cookies.ContainsKey(CookieRequestCultureProvider.DefaultCookieName))
            HttpContext.Response.Cookies.Delete(CookieRequestCultureProvider.DefaultCookieName);

    HttpContext.Response.Cookies.Append(
        CookieRequestCultureProvider.DefaultCookieName,
        CookieRequestCultureProvider.MakeCookieValue(
            new RequestCulture(settedCulture, settedCulture)));

    var test2 = CultureInfo.CurrentUICulture;
}

同样的问题:

 Response.Cookies.Append(
                CookieRequestCultureProvider.DefaultCookieName,
                CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(settedCulture)),
                new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) });

通过添加解决: this.httpClient.defaults.headers["接受语言"] = "en-GB"; vue js

通过添加解决:

this.httpClient.defaults.headers["Accept-Language"] = "en-GB";

到 vue js - 使用 axios!