Set CultureInfo in Asp.net Core ein. als CurrencyDecimalSeparator anstelle von,

Ich werd verrückt. Ich möchte nur, dass die in der gesamten Asp.net-Kernanwendung verwendete Kultur auf "en-US" gesetzt wird. Aber nichts scheint zu funktionieren. Wo kann ich die Kultur für die gesamte Anwendung einstellen? Ich interessiere mich nicht für Client-Browser-Kulturen und was nicht. Das einzige, was sich zu ändern scheint, sind die Spracheinstellungen von Windows. Ich möchte nur, dass die Kultur in der Anwendung selbst und nicht vom Kunden bestimmt wird.

as ich bisher ausprobiert habe:

Einstellen<system.web><globalization uiCulture="en" culture="en-US" /></system.web> in web.configEinstellenSystem.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo; undCurrentUICulture in Startup.Configure und sogar in der Steuerung.

Verwendenapp.UseRequestLocalization(.. Wie nachfolgend dargestell

    var enUsCulture = new CultureInfo("en-US");
    var localizationOptions = new RequestLocalizationOptions()
    {
        SupportedCultures = new List<CultureInfo>()
        {
            enUsCulture
        },
        SupportedUICultures = new List<CultureInfo>()
        {
            enUsCulture
        },
        DefaultRequestCulture = new RequestCulture(enUsCulture),
        FallBackToParentCultures = false,
        FallBackToParentUICultures = false,
        RequestCultureProviders = null
    };

    app.UseRequestLocalization(localizationOptions);

Aber nichts scheint den CurrencyDecimalSeparator von (nl-NL) nach (en-US) zu ändern.

Wie kann die Kultur eingestellt werden?

BEARBEITEN @soren So sieht die configure-Methode aus. Ich habe einen Haltepunkt auf @ gesetDetermineProviderCultureResult aber es wird nie beim Besuch der Website getroffen.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, FinOsDbContext context)
    {
        loggerFactory.AddConsole(Configuration.GetSection("Logging"));
        loggerFactory.AddDebug();

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseBrowserLink();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        app.UseIdentity();

        // Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

        //TODO: Clean up
        //var cultureInfo = new CultureInfo("en-US");
        //System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
        //System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;

        app.UseRequestLocalization();

        // UseCookieAuthentication..
        // UseJwtBearerAuthentication..

        //add userculture provider for authenticated user
        var requestOpt = new RequestLocalizationOptions();
        requestOpt.SupportedCultures = new List<CultureInfo>
        {
            new CultureInfo("en-US")
        };
        requestOpt.SupportedUICultures = new List<CultureInfo>
        {
            new CultureInfo("en-US")
        };
        requestOpt.RequestCultureProviders.Clear();
        requestOpt.RequestCultureProviders.Add(new SingleCultureProvider());

        app.UseRequestLocalization(requestOpt);

        FinOsDbContext.Initialize(context);
        FinOsDbContext.CreateTestData(context);
    }

    public class SingleCultureProvider : IRequestCultureProvider
    {
        public Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
        {
            return Task.Run(() => new ProviderCultureResult("en-US", "en-US"));
        }
    }

Antworten auf die Frage(6)

Ihre Antwort auf die Frage