【发布时间】:2018-07-18 10:56:40
【问题描述】:
我正在使用嵌入式资源文件实现基于约定的本地化。这是我的示例代码。
父视图(Details.cshtml)
@using Microsoft.AspNetCore.Mvc.Localization
@model SampleLocalization.Models.BoatDetailsViewModel
@inject IViewLocalizer Localizer
<section class="location-map">
<h4 class="section-title">
@Localizer["Location"]
</h4>
<input type="hidden" asp-for="Latitude" />
<input type="hidden" asp-for="Longitude" />
<section id="map_canvas" style="min-height:525px;"></section>
</section>
@{
await Html.RenderPartialAsync("_SendMessagePartial",
Model.SendMessageViewModel);
}
部分视图(_SendMessagePartial.cshtml)
@using Microsoft.AspNetCore.Mvc.Localization
@model SampleLocalization.Models.BoatSendMessageViewModel
@inject IViewLocalizer Localizer
<h5 >@Localizer["Send Message"]</h5>
@Localizer["Send Message"] 翻译不正确
资源文件结构如下
- 解决方案
- 资源
- 查看次数
- 船
- Details.de-DE.resx
- 船
- 查看次数
- 资源
注意:资源文件夹结构与视图文件夹结构相同
【问题讨论】:
-
您有在 Startup.cs 中使用的示例吗?
-
这个主题有什么更新吗?我也有同样的问题。
-
基本上,我是新手,我认为主视图的资源文件适用于该视图以及所有部分视图,但事实并非如此。后来,我找到了以下解决方案。主视图和部分视图必须存在相应的资源文件。例如。 Details.cshtml => Details.de-DE.resx _SendMessagePartial.cshtml => _SendMessagePartial.de-DE.resx 使用 ViewDateDictionary 将注入的 Localizer 变量从主视图传递到局部视图,并在局部视图中使用该变量。
标签: asp.net-core