_Layout.cshtml上的本地化

时间:2017-04-22 21:31:28

标签: c# razor asp.net-core

我试图在_Layout.cshtml上应用本地化

_Layout.cshtml

@using Microsoft.AspNetCore.Http.Extensions
@using Microsoft.AspNetCore.Localization
@using Microsoft.AspNetCore.Mvc.Localization

@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
@inject IViewLocalizer LayoutLocalizer


<!DOCTYPE html>
<html>
<head>

</head>
    <body>
        <div style="margin:38px;margin-top:56px;" class="hidden-sm-down">
            <h2>@LayoutLocalizer["WelcomeHeader"] <b class="text_border_darkblue">MyTitle</b></h2>
            <div style="text-align:center;margin-top:42px;">
                @LayoutLocalizer["WelcomeSub"]
            </div>
        </div>
    </body>
</html>

资源文件命名为: Views.Shared._Layout.no.resx (我已尝试重命名为 views.shared.Layout.no.resx 没有任何运气)

3 个答案:

答案 0 :(得分:3)

解决方案

  

使用资源文件实现SharedResources并使用本地化   共享视图中的SharedResources对象

答案 1 :(得分:0)

您可以为IViewLocalizer组合IHtmlLocalizer_Layout.cshtml。如果您在Visual Studio解决方案中定义资源文件夹,则可以在其中放置资源文件。

如果在ASP.net核心应用程序中使用剃刀页面而不是MVC视图,则会在“资源”文件夹中创建子文件夹页面而不是“视图”。将_Layout.no.resx文件放入其中。例如Resources\Pages\_Layout.no.resx

答案 2 :(得分:0)

必须在视图的相同路径内创建_Layout.no.resx文件,但必须以“ Resources”文件夹为根。查看示例图片:

enter image description here

有一段视频澄清了位置的使用,请参见here