Как переопределить стандартную культуру (локализацию) ABP.IO ?

#asp.net-core #abp

#asp.net-ядро #abp

Вопрос:

Как переопределить AbpAccount по умолчанию, AbpValidation, AbpFeatureManagement и т. Д

Конфигурация предоставляется с этой конечной точки: /api/abp/application-configuration

У меня есть файл fr.json, однако я не уверен, где его разместить?

В настоящее время все показано на английском, но я хочу показать это на французском

Комментарии:

1. Вы можете прочитать об этом здесь

2. Я уже прочитал это, но я не могу переопределить стандартную. В руководстве показано только, как добавить новый ресурс, который у меня заработал, вы знаете, как заставить работать локализацию пользовательского интерфейса сервера идентификации? Предполагая, что это также зависит от стандартных, и я не могу добавить французский json

3. вы отметили оба [aspnetboilerplate] и [abp] — попробуйте выбрать один, чтобы получить лучший ответ

4. Я имею в виду здесь фреймворк abp, как в abp.io

Ответ №1:

Я создаю пример, чтобы показать, как расширить существующий ресурс ABP

Этот пример основан на следующем документе https://docs.abp.io/en/abp/latest/Localization#extending-existing-resource

Мы изменим значение по умолчанию DisplayName:Abp.Timing.Timezone и Description:Abp.Timing.Timezone AbpTimingResource и добавим локализованный текст на русском языке( ru ).

Я создал AbpTiming папку в Localization каталоге ExtendLocalizationResource.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"
  }
}
  

ru.json

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

Измените код 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);
});
  

Выполните, 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

Комментарии:

1. Сработало как шарм! Ta