Tôi đang cố gắng xây dựng một ứng dụng ASP.NET Core cần có sẵn bằng tiếng Anh và tiếng Đức. Vấn đề của tôi là IViewLocalizer
luôn trả về văn bản tiếng Đức, ngay cả với văn hóa được đặt thành tiếng Anh. Làm cách nào để tôi có được văn bản phù hợp cho văn hóa hiện tại?IViewLocalizer trả về sai ngôn ngữ
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(opt => opt.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
var cultures = new[] { new CultureInfo("en"), new CultureInfo("de") };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en"),
SupportedCultures = cultures,
SupportedUICultures = cultures
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
HomeController.cs
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
Index.cshtml
<!DOCTYPE html>
@using Microsoft.AspNetCore.Mvc.Localization;
@inject IViewLocalizer Localizer
<html>
<body>
<h1>@Localizer["Hello, World!"]</h1>
<ul>
<li>CurrentCulture: @System.Globalization.CultureInfo.CurrentCulture</li>
<li>CurrentUICulture: @System.Globalization.CultureInfo.CurrentUICulture</li>
</ul>
</body>
</html>
File Resource tọa lạc tại Resources\Views.Home.Index.de.resx
Dự kiến ou tput:
Hello, World! CurrentCulture: en CurrentUICulture: en
Trang đầu ra:
Hallo Welt! CurrentCulture: en CurrentUICulture: en
Request Headers:
GET/HTTP/1.1
Host: localhost:61904
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6,de;q=0.4
Bạn có thể chia sẻ cách yêu cầu trông giống như bao gồm tiêu đề không? –
Tôi đã mở một vấn đề tại https://github.com/aspnet/Localization/issues/277 nhưng chúng tôi cần một repro. Bạn có thể cung cấp nó? – RickAndMSFT
Xem https://github.com/aspnet/Localization/issues/277 không repro, có vẻ như hoạt động chính xác. – RickAndMSFT