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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user