feat: Cookie-basierte Lokalisierung implementiert, ToLocal Erweiterungsmethoden hinzugefügt und Translation-Service entfernt. Stattdessen wird IStringLocalizer<T> verwendet, abhängig von der Situation wie Cookie-basierter Kultur oder Kultur basierend auf der Route.

This commit is contained in:
Developer 02
2024-04-29 13:31:37 +02:00
parent 1281d37239
commit 8188fa759f
15 changed files with 148 additions and 184 deletions

View File

@@ -1,9 +1,9 @@
using DigitalData.Core.Contracts.Application;
using DigitalData.Core.Contracts.Infrastructure;
using DigitalData.Core.Contracts.CultureServices;
using AutoMapper;
using System.Reflection;
using System.ComponentModel.DataAnnotations;
using Microsoft.Extensions.Localization;
namespace DigitalData.Core.Application
{
@@ -28,7 +28,7 @@ namespace DigitalData.Core.Application
/// <param name="repository">The CRUD repository for accessing the database.</param>
/// <param name="translationService">The service for translating messages based on culture.</param>
/// <param name="mapper">The AutoMapper instance for mapping between DTOs and entity objects.</param>
public CRUDService(TCRUDRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(translationService)
public CRUDService(TCRUDRepository repository, IStringLocalizer defaultLocalizer, IMapper mapper) : base(defaultLocalizer)
{
_repository = repository;
_mapper = mapper;
@@ -62,7 +62,7 @@ namespace DigitalData.Core.Application
var entity = await _repository.ReadByIdAsync(id);
if (entity is null)
{
var translatedMessage = _translationService.Translate(MessageKey.EntityDoesNotExist);
var translatedMessage = MessageKey.EntityDoesNotExist.LocalizedBy(_localizer);
return Failed<TReadDto>();
}
else
@@ -93,7 +93,7 @@ namespace DigitalData.Core.Application
return Successful();
else
{
var translatedMessage = _translationService.Translate(MessageKey.UpdateFailed);
var translatedMessage = MessageKey.UpdateFailed.LocalizedBy(_localizer);
return Failed();
}
}
@@ -109,8 +109,8 @@ namespace DigitalData.Core.Application
if (entity is null)
{
var deletionFailedMessage = _translationService.Translate(MessageKey.DeletionFailed);
var entityDoesNotExistMessage = _translationService.Translate(MessageKey.EntityDoesNotExist);
var deletionFailedMessage = MessageKey.DeletionFailed.LocalizedBy(_localizer);
var entityDoesNotExistMessage = MessageKey.EntityDoesNotExist.LocalizedBy(_localizer);
return new ServiceMessage(isSuccess: false, deletionFailedMessage, entityDoesNotExistMessage);
}
@@ -120,7 +120,7 @@ namespace DigitalData.Core.Application
return Successful();
else
{
var deletionFailedMessage = _translationService.Translate(MessageKey.DeletionFailed);
var deletionFailedMessage = MessageKey.DeletionFailed.LocalizedBy(_localizer);
return Failed(deletionFailedMessage);
}
}