如何在ASP.NET Core 2中本地化大文本

时间:2019-01-31 10:52:18

标签: asp.net-core localization

我正在开发一个需要本地化的ASP.NET Core 2网站。 推荐的使用ViewLocalizer和资源的方法适用于简单的字符串,例如菜单项,按钮标签,标题等。当涉及到更复杂的文本(粗体文本,彩色文本,新行等)时,这种方式变得笨重,因为我需要在资源中放置一些html代码并使用@ Html.Raw (将html代码放在resx内似乎是错误的,resx文件没有html编辑器)或将我的文本分成较小的部分(这样,我最终会得到很多本地化关键字,例如“ TextItem1”,“ TextItem2”)

现在,我想本地化我的隐私政策,由于它可能包含段落,列表,缩进,换行符,标题,字幕等,因此我最终得到了一个非常丑陋的剃刀代码,如下所示(此处仅显示一个段落) ):

    <div class="policy-paragraph">
        <div class="policy-title"><span>@Localizer["Label_PolicyGDPRTitle"]</span></div>
        <div class="policy-text">
            <span>
                @Localizer["Label_PolicyGDPRLine1"]<br />
                @Localizer["Label_PolicyGDPRLine2"]<br />
            </span>
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight1"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight2"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight3"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight4"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight5"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight5"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight6"]</span><br />
            <span class="text-indent bold">@Localizer["Label_PolicyGDPRRight7"]</span><br /> 
            <span class="text-indent">@Localizer["Label_PolicyGDPRContactUs"]</span>
        </div>
    </div>

现在假设我想将“ Label_PolicyGDPRRight4”下的文本分为三行,或者将“ Label_PolicyGDPRLine1”和“ Label_PolicyGDPRLine2”合并为一个,或者在某处插入一个粗体文本。或根据本地化以其他方式组合我的文本

为每个本地化创建单独的局部视图似乎很容易,并且根本不使用ViewLocalizer。

在ASP.NET Core中进行此类本地化的最佳实践是什么?

P.S .:《隐私权政策》只是一个例子,它可以是任何长篇文章,故事,文章等。

0 个答案:

没有答案