diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index c9df307e..ad5687d7 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -18,6 +18,7 @@ using static EnvelopeGenerator.Common.Constants; using Ganss.Xss; using Newtonsoft.Json; using EnvelopeGenerator.Application.DTOs; +using EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Web.Controllers { @@ -49,8 +50,19 @@ namespace EnvelopeGenerator.Web.Controllers } [HttpGet("/")] - public IActionResult Main() + public IActionResult Main([FromQuery] string? culture = null) { + //TODO: add a middelware or use an asp.net functionality insead of this code-smell + culture = culture is not null ? _sanitizer.Sanitize(culture) : null; + + if (UserLanguage is null && culture is null) + { + UserLanguage = _cultures.Default.Language; + return Redirect($"{Request.Headers["Referer"]}?culture={_cultures.Default.Language}"); + } + + ViewData["UserCulture"] = _cultures[UserLanguage]; + return View(); } diff --git a/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml index ee0c5134..c14f8803 100644 --- a/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml +++ b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml @@ -4,6 +4,8 @@ @{ var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string; var userCulture = ViewData["UserCulture"] as Culture; + //TODO: instead of default assignment add a middleware for culture + userCulture ??= _cultures.Default; var isReadOnly = false; if (ViewData["IsReadOnly"] is bool isReadOnly_bool) isReadOnly = isReadOnly_bool;