Как использовать локализатор в строке
Я написал этот код в своем блоге:
@using Microsoft.AspNetCore.Mvc.Localization @inject IViewLocalizer Localizer @model BlogStory @{ var word_count = @Model.Body; // Get all content of the story var counts = word_count.Count(ch => ch == ' ') + 1; var minutes = counts / 200; // Calculate Minutes var seconds = counts % 200 / (200 / 60); // Calculate Seconds var str_minutes = (minutes == 1) ? Localizer["minute"].ToString() : Localizer["minutes"].ToString(); var str_seconds = (seconds == 1) ? Localizer["second"].ToString() : Localizer["seconds"].ToString(); } <div class="card card-body post-card"> <div class="post-preview"> <h3 itemprop="headline" class="post-title"><a href="/@Model.Slug">@Model.Title</a></h3> <p class="post-meta"> class="fas fa-calendar"> @Model.DatePublished.AddHours(-4).ToString("MMMM dd, yyyy") class="fas fa-edit"> Sascha Manns class="fas fa-comments"> <span class="disqus-comment-count" data-disqus-identifier="@Model.UniqueId">@Localizer["comments"]</span>. class="fas fa-clock"> @minutes @str_minutes @seconds @str_seconds <br /> class="fas fa-tags"> @foreach (var tag in Model.Categories.Split(',')) { <a asp-controller="Tag" asp-action="Index" asp-route-tag="@tag" asp-route-page="">@tag</a> } </p> @Html.Raw(Model.GetSummary()) </div> </div>
Во время выполнения я получаю:
0 Microsoft.AspNetCore.В MVC.Локализации.LocalizedHtmlString
30 Microsoft.AspNetCore.В MVC.Локализации.LocalizedHtmlString
Она должна:
0 минут
30 секунд
Что я уже пробовал:
Я также попробовал Локализатор["минута"] без ".ToString()" но это дает ошибку.
Все изменения, которые я сделал для локализации, видны там: Как локализовать поставщика данных[^]