带有嵌入式 href 的 IHtmlLocalizer

问题描述 投票:0回答:1

我正在尝试将链接嵌入本地化字符串中以在视图上显示。 到目前为止,我所拥有的内容可以在 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。”

razor hyperlink
1个回答
0
投票

IHtmlLocalizer 现在有一个 GetHtml 方法,因此您不必再使用 @Html.Raw。

© www.soinside.com 2019 - 2024. All rights reserved.