2016-04-13 19 views
5

In MVC 6, per impostazione predefinita, CultureInfo.CurrentCulture è quello utilizzato da Windows, non dal browser.Abilitazione della cultura basata su client in Asp.Net Core

In MVC 5 ho potuto mettere questo in web.config:

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

e che renderebbe l'CultureInfo.CurrentCulture più lo stesso, come specificato dal browser (Accept-Language intestazione).

C'è un modo per configurare l'app MVC 6 per utilizzare la cultura del browser per impostazione predefinita?

risposta

3

È necessario installare il pacchetto Microsoft.AspNet.Localization NuGet e aggiungere quanto segue al vostro Startup.cs:

public void Configure(IApplicationBuilder app) 
{ 
    app.UseRequestLocalization(); 
    app.UseMvc(); 
} 

Per impostazione predefinita, registra il AcceptLanguageHeaderRequestCultureProvider come cultura-fornitore, che dovrebbe essere equivalente all'impostazione legacy enableClientBasedCulture.

Aggiornamento:

Secondo il vostro commento, dal momento che si sta utilizzando la versione RC1, è necessario fornire una cultura di default al metodo. Ad esempio:

app.UseRequestLocalization(new RequestCulture("en")); 
+1

per me (mvc 6 rc1-final) questa estensione è disponibile senza installare il pacchetto di localizzazione (ho provato a installare, non fa differenza); anche l'estensione richiede almeno 1 parametro, quindi ho provato 'app.UseRequestLocalization (new RequestCulture (" en "));' funziona solo se lo metti prima di 'app.UseMvc' e ignora la lingua del browser – Omu

+0

che richiede anche la specifica RequestCulture (quindi 2 parametri) e il risultato è lo stesso – Omu

+0

Puoi verificare quale è l'assembly che fornisce il metodo di estensione 'UseRequestLocalization()'? Spazio nomi – haim770

Problemi correlati