Added a signature legal agreement warning and integrated the resource file (resx) as a JavaScript object into the _Layout.cshtml file. This enables the agreement warning to support multiple languages.

This commit is contained in:
Developer 02
2024-05-31 09:39:31 +02:00
parent 21934928c2
commit c31f081208
7 changed files with 128 additions and 53 deletions

View File

@@ -0,0 +1,33 @@
using EnvelopeGenerator.Application.Resources;
using Ganss.Xss;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Localization;
namespace EnvelopeGenerator.Web.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class LocalizationController : ControllerBase
{
private readonly IStringLocalizer<Resource> _localizer;
private readonly ILogger<LocalizationController> _logger;
private readonly HtmlSanitizer _sanitizer;
public LocalizationController(IStringLocalizer<Resource> localizer, ILogger<LocalizationController> logger, HtmlSanitizer sanitizer)
{
_localizer = localizer;
_logger = logger;
_sanitizer = sanitizer;
}
[HttpGet]
public IActionResult GetLocalized([FromQuery] string[]? name = null, [FromQuery] string[]? ignore = null)
{
ignore ??= Array.Empty<string>();
var pairs = name?.ToDictionary(n => n, n => _localizer[n].Value)
?? _localizer.GetAllStrings().Where(ls => !ignore.Contains(ls.Name)).ToDictionary(ls => ls.Name, ls => ls.Value); ;
return Ok(pairs);
}
}
}