You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12 KiB
12 KiB
本地化管理模块
**本文档中引用的文件** - [AbpLocalizationManagementDomainSharedModule.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementDomainSharedModule.cs) - [AbpLocalizationManagementDomainModule.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementDomainModule.cs) - [AbpLocalizationManagementApplicationModule.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/AbpLocalizationManagementApplicationModule.cs) - [LocalizationDbContext.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.EntityFrameworkCore/LINGYUN/Abp/LocalizationManagement/EntityFrameworkCore/LocalizationDbContext.cs) - [Resource.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/Resource.cs) - [Language.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/Language.cs) - [Text.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/Text.cs) - [LocalizationManagementResource.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/Localization/LocalizationManagementResource.cs) - [LocalizationErrorCodes.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/LocalizationErrorCodes.cs) - [LanguageConsts.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/LanguageConsts.cs) - [ResourceConsts.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/ResourceConsts.cs) - [TextConsts.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain.Shared/LINGYUN/Abp/LocalizationManagement/TextConsts.cs) - [LocalizationAppServiceBase.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LocalizationAppServiceBase.cs) - [ResourceAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/ResourceAppService.cs) - [LanguageAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/LanguageAppService.cs) - [TextAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application/LINGYUN/Abp/LocalizationManagement/TextAppService.cs) - [IResourceAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/IResourceAppService.cs) - [ILanguageAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ILanguageAppService.cs) - [ITextAppService.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ITextAppService.cs) - [ResourceDto.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/ResourceDto.cs) - [LanguageDto.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/LanguageDto.cs) - [SetTextInput.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/SetTextInput.cs) - [ResourceController.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/ResourceController.cs) - [LanguageController.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/LanguageController.cs) - [TextController.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.HttpApi/LINGYUN/Abp/LocalizationManagement/TextController.cs) - [LocalizationManagementPermissionDefinitionProvider.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Application.Contracts/LINGYUN/Abp/LocalizationManagement/Permissions/LocalizationManagementPermissionDefinitionProvider.cs) - [LocalizationTextCacheRefreshWorker.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationTextCacheRefreshWorker.cs) - [LocalizationResourceContributor.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationResourceContributor.cs) - [LocalizationTextStoreCache.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationTextStoreCache.cs) - [LocalizationLanguageStoreCache.cs](file://aspnet-core/modules/localization-management/LINGYUN.Abp.LocalizationManagement.Domain/LINGYUN/Abp/LocalizationManagement/LocalizationLanguageStoreCache.cs)目录
简介
本地化管理模块是一个用于动态管理多语言资源的系统,支持语言、资源和文本的增删改查操作。该模块通过EntityFrameworkCore实现数据持久化,通过应用服务层提供业务逻辑,并通过HTTP API接口暴露功能。模块支持内存缓存和分布式缓存同步,能够无缝集成到ABP框架中,为前后端应用提供灵活的本地化支持。
项目结构
本地化管理模块采用分层架构设计,包含共享域模型、领域层、应用层、实体框架核心层和HTTP API层。各层职责分明,遵循ABP框架的最佳实践。
graph TB
subgraph "本地化管理模块"
subgraph "Application.Contracts"
IResourceAppService["IResourceAppService"]
ILanguageAppService["ILanguageAppService"]
ITextAppService["ITextAppService"]
end
subgraph "Application"
ResourceAppService["ResourceAppService"]
LanguageAppService["LanguageAppService"]
TextAppService["TextAppService"]
LocalizationAppServiceBase["LocalizationAppServiceBase"]
end
subgraph "Domain.Shared"
LocalizationManagementResource["LocalizationManagementResource"]
LocalizationErrorCodes["LocalizationErrorCodes"]
LanguageConsts["LanguageConsts"]
ResourceConsts["ResourceConsts"]
TextConsts["TextConsts"]
end
subgraph "Domain"
Resource["Resource"]
Language["Language"]
Text["Text"]
LocalizationResourceContributor["LocalizationResourceContributor"]
LocalizationTextCacheRefreshWorker["LocalizationTextCacheRefreshWorker"]
end
subgraph "EntityFrameworkCore"
LocalizationDbContext["LocalizationDbContext"]
EfCoreResourceRepository["EfCoreResourceRepository"]
EfCoreLanguageRepository["EfCoreLanguageRepository"]
EfCoreTextRepository["EfCoreTextRepository"]
end
subgraph "HttpApi"
ResourceController["ResourceController"]
LanguageController["LanguageController"]
TextController["TextController"]
end
IResourceAppService --> ResourceAppService
ILanguageAppService --> LanguageAppService
ITextAppService --> TextAppService
ResourceAppService --> Resource
LanguageAppService --> Language
TextAppService --> Text
Resource --> LocalizationDbContext
Language --> LocalizationDbContext
Text --> LocalizationDbContext
LocalizationDbContext --> EfCoreResourceRepository
LocalizationDbContext --> EfCoreLanguageRepository
LocalizationDbContext --> EfCoreTextRepository
ResourceController --> IResourceAppService
LanguageController --> ILanguageAppService
TextController --> ITextAppService
end
图示来源
- AbpLocalizationManagementApplicationModule.cs
- AbpLocalizationManagementDomainModule.cs
- AbpLocalizationManagementDomainSharedModule.cs
- LocalizationDbContext.cs
本节来源
- README.EN.md
核心组件
本地化管理模块的核心组件包括资源(Resource)、语言(Language)和文本(Text)三个实体,分别代表本地化资源包、支持的语言种类和具体的本地化文本。这些实体通过领域服务进行管理,并通过应用服务暴露给外部系统。
本节来源
- Resource.cs
- Language.cs
- Text.cs
架构概述
本地化管理模块采用典型的分层架构,从下到上依次为数据访问层、领域层、应用层和表现层。模块通过ABP框架的依赖注入机制实现各层之间的松耦合。
graph TD
A["前端应用"] --> B["HTTP API"]
B --> C["应用服务"]
C --> D["领域服务"]
D --> E["数据访问"]
E --> F["数据库"]
subgraph "本地化管理模块"
B
C
D
E
end
G["ABP框架"] --> C
G --> D
G --> E
H["缓存系统"] --> C
H --> D
图示来源
- AbpLocalizationManagementHttpApiModule.cs
- AbpLocalizationManagementApplicationModule.cs
- AbpLocalizationManagementDomainModule.cs
- AbpLocalizationManagementEntityFrameworkCoreModule.cs
详细组件分析
实体模型分析
本地化管理模块包含三个核心实体:资源、语言和文本,它们构成了本地化系统的数据模型。