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

How to use localization with String.Format

我在 Asp.net 核心 MVC 网站上工作,具有本地化和 我有一个要显示的文本,其中包含变量:

@{var item = "car"}
<h1>Max's @item is blue</h1>

但法语是

@{var item = "la voiture"}
<h1>@item de Max est bleue</h1>

所以单词的顺序改变了,我试过了:

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

翻译成:

    Max's {0} is blue => {0} de Max est bleu

但我有一个错误:

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

我该怎么做?

@Camilo Terevinto 的解决方案非常有效。如果它可以帮助任何人,这里是完整的解决方案:

查看:

@model Project.Models.item
    <h1>@String.Format(Localizer["Max's {0} is {1}"].Value, Model.Name, Model.Color)</h1>

Resx :

Max's {0} is {1} => {0} de Max est {1}
 @Localizer["My Format {0}", myValue]

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