2017-06-13 44 views
1

我在我的MVC项目中有一个_Layout.cshtml,我想通过ASP.NET Core本地化设置页面<title>ASP.NET Core本地化不在_Layout头

这是一个(简化的)REPRO:

@inject IHtmlLocalizer<SharedResources> SharedLocalizer; 

<!DOCTYPE html> 
<html> 
<head> 
    <title>@SharedLocalizer["My Default Language Text"]</title> 
</head> 
<body> 
    @SharedLocalizer["My Default Language Text"] 
    @RenderBody() 
</body> 
</html> 

资源在body被正确定位并渲染从资源文件中的文本按预期方式。但是head中的资源不是,并且不管我尝试什么,都保留“我的默认语言文本”。

请注意,我看到在两种情况下,这种行为:

  1. 使用共享资源通过@inject IHtmlLocalizer<SharedResources> SharedLocalizer(如上面的代码)
  2. 或当我使用IViewLocalizer通过@inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer Localizer

我正在运行Microsoft.AspNetCore.*程序包的v1.1.3

回答

2

我刚刚发现我的问题与此错误有关:https://github.com/aspnet/Localization/issues/277(非英文本地化为默认本地化)。

+0

是否有修复? – juunas

+0

不完全确定,afaics已经修复了一些2.0版本,但不适用于1. *(它实际上是一个.NET核心问题,而不是ASP.NET Core核心问题)。 –