2016-04-13 24 views
5

Trong MVC 6 theo mặc định, CultureInfo.CurrentCulture là một trong những cửa sổ được sử dụng, không phải bởi trình duyệt.Bật văn hóa dựa trên khách hàng trong Asp.Net Core

Trong MVC 5 tôi có thể đặt điều này trong web.config:

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

và đó sẽ làm cho CultureInfo.CurrentCulture được giống như quy định bởi trình duyệt (Accept-Language tiêu đề).

Có cách nào để định cấu hình ứng dụng MVC 6 để sử dụng văn bản trình duyệt theo mặc định không?

Trả lời

3

Bạn cần phải cài đặt NuGet gói Microsoft.AspNet.Localization và thêm dòng sau vào Startup.cs của bạn:

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

Theo mặc định, nó đăng ký AcceptLanguageHeaderRequestCultureProvider như một nền văn hóa-nhà cung cấp, bạn cần phải tương đương với các thiết lập di sản enableClientBasedCulture.

Cập nhật:

Theo nhận xét của bạn, vì bạn đang sử dụng phiên bản RC1, bạn phải cung cấp một nền văn hóa mặc định để phương pháp này. Ví dụ:

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

cho tôi (mvc 6 rc1-final) tiện ích này khả dụng mà không cần cài đặt gói bản địa hóa (Tôi đã thử cài đặt, không có sự khác biệt); cũng là phần mở rộng yêu cầu ít nhất 1 tham số vì vậy tôi đã thử 'app.UseRequestLocalization (new RequestCulture (" vi "));' nó chỉ hoạt động nếu bạn đặt nó trước 'app.UseMvc' và nó bỏ qua ngôn ngữ trình duyệt – Omu

+0

cũng yêu cầu chỉ định RequestCulture (do đó 2 tham số), và kết quả là giống nhau – Omu

+0

Bạn có thể kiểm tra đó là lắp ráp cung cấp phương pháp mở rộng 'UseRequestLocalization()' của bạn? – haim770

Các vấn đề liên quan