如何通过 String.Format 使用本地化

Ale*_*xis 4 c# razor asp.net-core-mvc asp.net-core asp.net-core-localization

我在一个具有本地化功能的 Asp.net Core MVC 网站上工作,我有一个要显示的文本,其中包含如下变量:

@{var item = "car"}
<h1>Max's @item is blue</h1>
Run Code Online (Sandbox Code Playgroud)

但在法语中是

@{var item = "la voiture"}
<h1>@item de Max est bleue</h1>
Run Code Online (Sandbox Code Playgroud)

所以单词的顺序发生了变化,我尝试过:

@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
    <h1>@String.Format(Localizer["Max's {0} is blue"],@item)</h1>
Run Code Online (Sandbox Code Playgroud)

翻译:

    Max's {0} is blue => {0} de Max est bleu
Run Code Online (Sandbox Code Playgroud)

但我有一个错误:

FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

Rol*_*and 8

 @Localizer["My Format {0}", myValue]
Run Code Online (Sandbox Code Playgroud)

它解决了问题,因为这是带有参数的本地化器的语法。

  • 这个答案被某人标记为低质量,因为虽然它提供了一个可以解决问题中所述问题的代码片段,但它没有解释*为什么*它解决了问题。将来,请在您的答案中添加详细信息,以说明为什么您发布的代码适用于所提出的问题。谢谢。 (2认同)