28 lines
928 B
C#

using EnvelopeGenerator.Application.Resources;
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;
public LocalizationController(IStringLocalizer<Resource> localizer)
{
_localizer = localizer;
}
[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);
}
}
}