项目

Blazor UI:本地化

Blazor 应用程序可以复用本地化文档中介绍的 IStringLocalizer<T> 服务。

服务器端所有可用的本地化资源和文本在 Blazor 应用程序中均可使用。

IStringLocalizer

IStringLocalizer<T>T 为本地化资源类)可注入到任何服务或组件中使用本地化服务。

Razor 组件

使用 @inject IStringLocalizer<MyProjectNameResource> 在 Razor 组件中实现本地化。

示例:Razor 组件中的本地化

@page "/"
@using MyCompanyName.MyProjectName.Localization
@using Microsoft.Extensions.Localization
@inject IStringLocalizer<MyProjectNameResource> L

<h1>
    @L["LongWelcomeMessage"]
</h1>

L 是我们喜爱并惯用的 IStringLocalizer 实例命名方式,您也可以使用任意其他名称。

AbpComponentBase

AbpComponentBase 是一个实用的基类,可供组件继承。它包含了组件中常用的属性/方法。

AbpComponentBase 已预定义基础 L 属性(类型为 IStringLocalizer)。只需在派生类的构造函数中设置资源类型即可。如果您的应用基于 ABP 应用启动模板创建,Blazor 项目中应已存在 YourProjectComponentBase 类。继承该类即可获得预注入的本地化器。

示例:继承基础组件类

@page "/"
@inherits MyProjectNameComponentBase

<h1>
    @L["LongWelcomeMessage"]
</h1>

其他服务

IStringLocalizer<T> 可注入到任何服务中。

示例

public class MyService : ITransientDependency
{
    private readonly IStringLocalizer<TestResource> _localizer;

    public MyService(IStringLocalizer<TestResource> localizer)
    {
        _localizer = localizer;
    }

    public void Foo()
    {
        var str = _localizer["HelloWorld"];
    }
}

格式化参数

可在本地化键后传递格式化参数。若消息为 Hello {0}, welcome!,可通过 _localizer["HelloMessage", "John"] 传递 {0} 参数。

关于本地化使用的详细信息,请参阅 Microsoft 本地化文档

另请参阅

在本文档中