我正在使用嵌入式资源文件实现基于约定的本地化。这是我的示例代码。
父视图(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);
}
Run Code Online (Sandbox Code Playgroud)
部分视图(_SendMessagePartial.cshtml)
@using Microsoft.AspNetCore.Mvc.Localization
@model SampleLocalization.Models.BoatSendMessageViewModel
@inject IViewLocalizer Localizer
<h5 >@Localizer["Send Message"]</h5>
Run Code Online (Sandbox Code Playgroud)
资源文件结构如下
注意:资源文件夹结构与视图文件夹结构相同
基本上,问题是因为它是一个不同的文件,所以翻译应该在Solution/Resources/Views/Boat/_SendMessagePartial.de-DE.resx
. 解决方法是创建共享资源文件。您可以将空SharedResource
类添加到项目的根目录中,然后在您的视图中使用IStringLocalizer<SharedResource>
而不是IViewLocalizer
。
以下是与https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.2相关的文档
归档时间: |
|
查看次数: |
2153 次 |
最近记录: |