ASP.NET Core

时间:2017-10-30 23:38:31

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

在ASP.NET Core 2.0视图中,我有以下内容:

@inject IViewLocalizer localizer;

<div>
  @localizer["my message"]
</div>

这有效,字符串是翻译。

然后在我试过的一个应用程序类中:

public class MyClass {

    public String Get(IStringLocalizer<MyClass> localizer) {

        var l = localizer["my message"];

    }
}

在这种情况下,字符串不会翻译,我会收到以下信息:

Name [string]: "my message"
ResourceNotFound [bool]: true
SearchedLocation [string]: null
Value [string]:"my message"

我错过了什么?

1 个答案:

答案 0 :(得分:0)

应该通过构造函数注入将本地化程序作为显式依赖项注入到类中。

public class MyClass {
    IStringLocalizer<MyClass> localizer;
    public MyClass(IStringLocalizer<MyClass> localizer) {
        this.localizer = localizer;
    }

    public string Get() {
         return localizer["my message"];
    }
}

Globalization and localization in ASP.NET Core