首页 > 其他分享 >【Abp笔记】本地化

【Abp笔记】本地化

时间:2022-11-22 23:34:52浏览次数:49  
标签:en zh Configure 本地化 笔记 Abp typeof options

本地化

1. 在自己模块添加本地化模块依赖

在自己模块的DependsOn 特性参数里,添加一个依赖 typeof(AbpLocalizationModule)
如果没有,就添加一个 [DependsOn(typeof(AbpLocalizationModule))]

[DependsOn(
    typeof(AModule),
    typeof(BModule),
    ...
    ...
    typeof(AbpLocalizationModule) // 添加这个依赖
)]
public class MainModule : AbpModule
{
    
} 

2. 创建本地化文件

比如下方文件结构

└─ Localization
    └─ Files
        └─ zh.json
        └─ en.json
    └─ MyResource.cs

zh.json 注意设置为嵌入的资源

{
  "culture": "zh",
  "texts": {
    "HelloPerry": "你好,Perry !!!"
  }
}

en.json 注意设置为嵌入的资源

{
  "culture": "en",
  "texts": {
    "HelloPerry": "Hello Perry !!!"
  }
}

MyResource.cs 就是个普通类型,用于定位的好像

public class MyResource
{
}

3. 配置

在任何可以配置 IServiceCollection 的地方配置。

services.Configure<AbpVirtualFileSystemOptions>(options =>
{
    // 一般项目默认项目名就是根命名空间
    // 如果设置为空了,则不用加字符串参数
    options.FileSets.AddEmbedded<MainModule>("根命名空间");
});
 
services.Configure<AbpLocalizationOptions>(options =>
{
    options.Resources

        // 这个是默认的语言,对应JSON文件内的 culture
        .Add<MyResource>("en")

        // 这里对应JSON文件位置
        .AddVirtualJson("/Localization/Files"); 
});

当然,也可以在入口Program直接使用Configure方法,效果是一样的。
下面是在自己的 Module 内使用的示例

[DependsOn(
    typeof(AbpLocalizationModule)
)]
public class MyModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        Configure<AbpVirtualFileSystemOptions>(options =>
        {
            options.FileSets.AddEmbedded<MyModule>("ConsoleApp_Localization");
        });

        Configure<AbpLocalizationOptions>(options =>
        {
            options.Resources
                .Add<MyLocalizationResource>("zh")
                .AddVirtualJson("/Localization/Files");
        });
    }
} 

标签:en,zh,Configure,本地化,笔记,Abp,typeof,options
From: https://www.cnblogs.com/wosperry/p/16916888.html

相关文章

  • Python学习笔记(五)
    函数定义Python的函数由函数头和函数体构成,结构如下:deffunction_name(parameters):"""docstring"""statement(s)returnPython函数定义必须以def关键词......
  • Head First Java 读书笔记 16章
    有哪些常用的集合?ArrayListTreeSet以有序状态保存并可防止数据重复HashMap以键值对的形式保存数据LinkedList针对经常插入或删除中间元素所设计的高效率集合HashSe......
  • JWT( JSON Web Token —— JSON Web 令牌 )的学习笔记
    一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样:1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用......
  • Linux笔记03: Linux常用命令_3.1命令的基本格式
    3.1命令的基本格式 3.1.1命令提示符[root@localhost~]#这就是Linux系统的命令提示符。各部分含义如下:●[]:这是提示符的分隔符号,没有特殊含义。●ro......
  • 《动手学强化学习》笔记
    课本链接Multi-ArmedBandit伯努利Multi-ArmedBanditimportnumpyasnp#支持数组和矩阵运算的库importmatplotlib.pyplotasplt#绘图库classBernoulliBa......
  • Spring Security笔记
    这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战SpringSecurity简介SpringSecurity是一种高度自定义的安全框架,利用(基于)SpringIOC/DI和AOP功能,为系统......
  • C语言学习笔记---static关键字
    1、static修饰局部变量在函数体内,只初始化一次,被static声明过的局部变量在调用过程中值不变。原因:在任意函数内定义局部变量,存储在线程中的栈区,出函数时自动摧毁,所以在每......
  • C++学习笔记--引用与返回值
    //#include<iostream>//usingnamespacestd;////int&fun()//注意类型要保持一致//{// inta=12;//不能引用局部变量// returna;//}////intmain()//{// in......
  • C++学习笔记——交换
    //#include<iostream>//usingnamespacestd;//voidswap(int&a1,int&b1)//该情况下,将主函数中的a和b分别传递给了a1和b1,在引用的作用下,a和a1,b和b1分别共用一个空间,......
  • C++学习笔记——类
    //#include<iostream>//usingnamespacestd;////classFirst//在C++中,struck结构体是一个特殊的类////在类中,默认的访问修饰符为pr......