Improve culture selection using Accept-Language header

When no culture cookie is present, use the browser's Accept-Language
header to determine the user's preferred culture. This culture is
applied and stored in a cookie, enhancing localization by respecting
user preferences instead of always defaulting to the application's
default language.
This commit is contained in:
2026-02-11 13:51:01 +01:00
parent 91eb5d1e64
commit 670c8ed87c

View File

@@ -24,9 +24,13 @@ public class CultureMiddleware
if (string.IsNullOrEmpty(cookieValue))
{
context.Response.Cookies.SetCulture(_cultures.Default.Language);
CultureInfo.CurrentCulture = new CultureInfo(_cultures.Default.Language);
CultureInfo.CurrentUICulture = new CultureInfo(_cultures.Default.Language);
var requestCulture = context.GetCultureByAcceptLanguage()?.Name;
var culture = _cultures.GetOrDefault(requestCulture);
var cultureInfo = culture.Info ?? new CultureInfo(culture.Language);
context.Response.Cookies.SetCulture(culture.Language);
CultureInfo.CurrentCulture = cultureInfo;
CultureInfo.CurrentUICulture = cultureInfo;
}
await _next(context);