Search code examples
asp.net-coreabp-framework

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


Solution

  • 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