Abp本地化一:简单了解

一:Abp本地化概览

1:查照程序入口

参考官方文档:Abp Localization

[DependsOn(typeof(AbpLocalizationModule))]
public class MyModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            // "YourRootNameSpace" 是项目的根命名空间名字. 如果你的项目的根命名空间名字为空,则无需传递此参数.
            options.FileSets.AddEmbedded<MyModule>("YourRootNameSpace");
        });

        Configure<AbpLocalizationOptions>(options =>
        {
            options.Resources
                .Add<TestResource>("en")
                .AddVirtualJson("/Localization/Resources/Test");
        });
    }
}

可以看到关键配置为:

        Configure<AbpLocalizationOptions>(options =>
        {
            options.Resources
                .Add<TestResource>("en")
                .AddVirtualJson("/Localization/Resources/Test");
        });
 

在这个例子中;

  • 添加了一个新的本地化资源, 使用"en"(英语)作为默认的本地化.
  • 用JSON文件存储本地化字符串.
  • 使用虚拟文件系统 将JSON文件嵌入到程序集中.
     

具体资源格式请参考官方文档。

 2:服务端使用

根据官方文档可以看到使用的是微软的本地化接口,说明abp是扩展增强了微软的本地化。

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

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

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

二:简单了解.net的本地化

参考:https://github.com/zjc-china/aspnetcore/tree/main/src/Localization 

简易结构如下图:

三:abp对.net本地化的扩展

如图:abp中扩展和实现了.net中重要的几个接口

 在 AbpLocalizationModule的初始化中将.net的原生实现替换为了abp的实现

public class AbpLocalizationModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {

    //services.Replace(ServiceDescriptor.Singleton<IStringLocalizerFactory, AbpStringLocalizerFactory>());
        AbpStringLocalizerFactory.Replace(context.Services);
      }

   ....

}

 关于具体实现,后面再一一整理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值