Moulldar
Moulldar

Reputation: 73

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

How to override the default AbpAccount, AbpValidation, AbpFeatureManagement etc

The config is provided from this endpoint : /api/abp/application-configuration

I have a fr.json file however I am not sure where to place it?

Currentlty everything is shown in English but I want to show it in French

Upvotes: 2

Views: 3436

Answers (1)

maliming
maliming

Reputation: 185

I create an example to show how to Extending ABP Existing Resource

This example is based on the following document https://docs.abp.io/en/abp/latest/Localization#extending-existing-resource

We will change the default DisplayName:Abp.Timing.Timezone and Description:Abp.Timing.Timezone of AbpTimingResource and add localized text in Russian language(ru).

I created the AbpTiming folder in the Localization directory of the ExtendLocalizationResource.Domain.Shared project.

Create en.json and ru.json in its directory.

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": "Часовой пояс приложения"
  }
}

Change the code of the ConfigureServices method in 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);
});

Execute ExtendLocalizationResource.DbMigrator to migrate the database and run ExtendLocalizationResource.Web.

We have changed the English localization text and added Russian localization.

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

image

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

Upvotes: 10

Related Questions