我正在尝试将链接嵌入本地化字符串中以在视图上显示。 到目前为止,我所拥有的内容可以在 en-US 中使用,但是当我将默认语言更改为土耳其语时,显示的文本不包含有用的链接,也没有进行大多数字符串替换。
适用于 en-US 的 IHtmlLocalizer 语法是
@Localizer["点击 {0} 返回到 {1} 应用程序。", @Html.Raw(@String.Format("{0}", @Localizer["here"].Value, @Model.PostLogoutRedirectUri )), @Model.ClientName].Value
生成“单击此处返回指定的应用程序。” 这里是一个功能链接。
当我更改为土耳其语时,我得到以下结果。 “{1} uygulamasına geri dönmek için {0} tıklayın。”
@model LoggedOutViewModel
@using CompanyName.Server
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<SharedResources> Localizer
<div class="page-header logged-out">
@if (Model.PostLogoutRedirectUri != null)
{
<div>
@Localizer["Click {0} to return to the {1} application.", @Html.Raw(@String.Format("<a href=\"{1}\">{0}</a>", @Localizer["here"].Value, @Model.PostLogoutRedirectUri)), @Model.ClientName].Value
</div>
}
</div>
}
预期结果 “名为 uygulamasına geri dönmek için şte tıklayın。” 单词 şte 是有效链接。
实际结果 “{1} uygulamasına geri dönmek için {0} tıklayın。”
IHtmlLocalizer 现在有一个 GetHtml 方法,因此您不必再使用 @Html.Raw。