如何覆盖默认文化(本地化)ABP.IO?

Mou*_*dar 1 asp.net-core abp

如何覆盖默认的 AbpAccount、AbpValidation、AbpFeatureManagement 等

配置从此端点提供:/api/abp/application-configuration

我有一个 fr.json 文件,但是我不知道把它放在哪里?

目前一切都以英文显示,但我想用法语显示

小智 10

我创建了一个示例来展示如何扩展 ABP 现有资源

此示例基于以下文档 https://docs.abp.io/en/abp/latest/Localization#extending-existing-resource

我们将更改默认的DisplayName:Abp.Timing.TimezoneDescription:Abp.Timing.TimezoneAbpTimingResource并添加俄语 ( ru) 的本地化文本。

我在项目目录中创建了AbpTiming文件夹。LocalizationExtendLocalizationResource.Domain.Shared

在其目录中创建 en.json 和 ru.json。

en.json

{
  "culture": "en",
  "texts": {
    "DisplayName:Abp.Timing.Timezone": "My Time zone",
    "Description:Abp.Timing.Timezone": "My Application time zone"
  }
}
Run Code Online (Sandbox Code Playgroud)

ru.json

{
  "culture": "ru",
  "texts": {
    "DisplayName:Abp.Timing.Timezone": "??????? ????",
    "Description:Abp.Timing.Timezone": "??????? ???? ??????????"
  }
}
Run Code Online (Sandbox Code Playgroud)

更改中ConfigureServices方法的代码ExtendLocalizationResourceDomainSharedModule

Configure<AbpLocalizationOptions>(options =>
{
    options.Resources
        .Add<ExtendLocalizationResourceResource>("en")
        .AddBaseTypes(typeof(AbpValidationResource))
        .AddVirtualJson("/Localization/ExtendLocalizationResource");

    //add following code
    options.Resources
        .Get<AbpTimingResource>()
        .AddVirtualJson("/Localization/AbpTiming");

    options.DefaultResourceType = typeof(ExtendLocalizationResourceResource);
});
Run Code Online (Sandbox Code Playgroud)

执行ExtendLocalizationResource.DbMigrator迁移数据库并运行ExtendLocalizationResource.Web

我们更改了英语本地化文本并添加了俄语本地化。

<p>@AbpTimingResource["DisplayName:Abp.Timing.Timezone"]</p>
@using(CultureHelper.Use("ru"))
{
    <p>@AbpTimingResource["DisplayName:Abp.Timing.Timezone"]</p>
}
Run Code Online (Sandbox Code Playgroud)

图片

https://github.com/abpframework/abp-samples/pull/38