如何使用String.Format本地化

时间:2018-06-01 10:03:31

标签: c# razor asp.net-core asp.net-core-mvc asp.net-core-localization

我在Asp.net Core MVC网站上工作,本地化和 我有一个显示变量的文本,如:

map.once('postrender', function() {
    var pixel = map.getPixelFromCoordinate([-0.0508, 51.5160]);

    var feature = map.forEachFeatureAtPixel(pixel, function(feature) { 
        return feature;
    });

    console.log("Country:"+feature.get("name"));
});

但是在法语中它是

@{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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

 @Localizer["My Format {0}", myValue]

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

答案 1 :(得分:-1)

@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}