如何通过 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]
它解决了问题,因为这是带有参数的定位器的语法。
我在 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]
它解决了问题,因为这是带有参数的定位器的语法。