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 _localizer; private readonly ILogger _logger; private readonly HtmlSanitizer _sanitizer; public LocalizationController(IStringLocalizer localizer, ILogger logger, HtmlSanitizer sanitizer) { _localizer = localizer; _logger = logger; _sanitizer = sanitizer; } [HttpGet] public IActionResult GetLocalized([FromQuery] string[]? name = null, [FromQuery] string[]? ignore = null) { ignore ??= Array.Empty(); 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); } } }