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

How to override the default culture (Localization) ABP.IO?

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

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

我有一个 fr.json 文件,但我不确定将它放在哪里?

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

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

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

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

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

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

en.json

{
  "culture": "en",
  "texts": {
    "DisplayName:Abp.Timing.Timezone": "My Time zone",
    "Description:Abp.Timing.Timezone": "My Application time zone"
  }
}

ru.json

{
  "culture": "ru",
  "texts": {
    "DisplayName:Abp.Timing.Timezone": "Часовой пояс",
    "Description:Abp.Timing.Timezone": "Часовой пояс приложения"
  }
}

更改ExtendLocalizationResourceDomainSharedModuleConfigureServices方法的代码。

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);
});

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

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

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

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