myesn

myEsn2E9

hi
github

ABP 本地化语言

约定#

本地化键名称是任意的。可以设置任何名称。但对于特定文本类型有一些约定;

  1. 为菜单项添加 Menu: 前缀
  2. 使用 <enum-type>.<enum-value>Enum:<enum-type>.<enum-value> 命名约定来本地化枚举成员。当你这样做时, ABP 可以在一些适当的情况下自动定位枚举

参考

设置默认本地语言#

因为 ABP 自带了很多语言包,但是我们并不会用到那么多国的语言,一般来说就是英文和中文两种,多余的就需要删除了。但比如中文又有很多分支,如何确定自己的本地化语言是什么?通过在浏览器执行 navigator.language 确定,比如我的输出结果是 zh-CN,那意味着会使用 culturezh-CN 的 json 语言包文件,比如 zh-CN.json,这整个过程是自动化的,不需要配置什么,只是注意不要把自己 culture 的语言包删除了,否则只会显示英文。

我之前想为项目指定一种默认的 culture但未成功,我用过的办法有:

  • XXW.XXX.Domain.Shared 项目的 XXDomainSharedModule.ConfigureServices 函数中配置:
options.Resources
    // 添加本地化并指定默认的本地语言
    // https://docs.abp.io/en/abp/latest/Localization#inherit-from-other-resources    
    .Add<IDCloudResource>("zh-CN")
    .AddBaseTypes(typeof(AbpValidationResource))
    .AddVirtualJson("/Localization/IDCloud");
  • *.Web 项目的 appsettings.json 文件中配置以下内容:
{
  "Settings": {
    // https://github.com/abpframework/abp/issues/2469#issuecomment-569518267
    "Abp.Localization.DefaultLanguage": "zh-CN"
  }
}

也有可能是初始化数据时数据库 AbpSettingDefinitions 表中设置了默认本地语言,偶然看到没改过,可以改一下试试:
image

还有一种方式,那就是 https://github.com/maliming/Owl.Abp.CultureMap

还没用过

参考:

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。