Browse Source

Merge pull request #329 from colinin/4.4

feat(localization): UPDATE README.md
pull/364/head
yx lin 4 years ago
committed by GitHub
parent
commit
5b58538a83
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationInitializeService.cs
  2. 11
      aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/README.md

14
aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationInitializeService.cs

@ -6,7 +6,7 @@ using Volo.Abp.Localization;
namespace LINGYUN.Abp.Localization.Dynamic namespace LINGYUN.Abp.Localization.Dynamic
{ {
public class DynamicLocalizationInitializeService : IHostedService public class DynamicLocalizationInitializeService : BackgroundService
{ {
protected ILocalizationStore Store { get; } protected ILocalizationStore Store { get; }
protected AbpLocalizationOptions LocalizationOptions { get; } protected AbpLocalizationOptions LocalizationOptions { get; }
@ -22,7 +22,7 @@ namespace LINGYUN.Abp.Localization.Dynamic
LocalizationOptions = localizationOptions.Value; LocalizationOptions = localizationOptions.Value;
} }
public virtual async Task StartAsync(CancellationToken cancellationToken) protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{ {
foreach (var resource in LocalizationOptions.Resources) foreach (var resource in LocalizationOptions.Resources)
{ {
@ -30,16 +30,14 @@ namespace LINGYUN.Abp.Localization.Dynamic
{ {
if (contributor.GetType().IsAssignableFrom(typeof(DynamicLocalizationResourceContributor))) if (contributor.GetType().IsAssignableFrom(typeof(DynamicLocalizationResourceContributor)))
{ {
var resourceLocalizationDic = await Store.GetLocalizationDictionaryAsync(resource.Value.ResourceName); var resourceLocalizationDic = await Store
.GetLocalizationDictionaryAsync(
resource.Value.ResourceName,
stoppingToken);
DynamicOptions.AddOrUpdate(resource.Value.ResourceName, resourceLocalizationDic); DynamicOptions.AddOrUpdate(resource.Value.ResourceName, resourceLocalizationDic);
} }
} }
} }
} }
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
} }
} }

11
aspnet-core/modules/common/LINGYUN.Abp.Localization.Dynamic/README.md

@ -6,11 +6,6 @@
LocalizationManagement项目提供支持 LocalizationManagement项目提供支持
由于框架设计为延迟初始化,当某个本地化资源被使用的时候才会进行初始化
当资源被第一次使用到的时候,才会注册动态变更事件
详情见: [DynamicLocalizationResourceContributor](./LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationResourceContributor.cs#L29-L34)
## 配置使用 ## 配置使用
```csharp ```csharp
@ -35,3 +30,9 @@ public class YouProjectModule : AbpModule
} }
} }
``` ```
## 注意事项
动态资源在启动时加载,如果通过LocalizationManagement模块查询,可能受后端存储资源体量影响整体启动时间
详情见: [DynamicLocalizationInitializeService](./LINGYUN/Abp/Localization/Dynamic/DynamicLocalizationInitializeService.cs#L25-L38)
Loading…
Cancel
Save