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))
|
if (string.IsNullOrEmpty(cookieValue))
|
||||||
{
|
{
|
||||||
context.Response.Cookies.SetCulture(_cultures.Default.Language);
|
var requestCulture = context.GetCultureByAcceptLanguage()?.Name;
|
||||||
CultureInfo.CurrentCulture = new CultureInfo(_cultures.Default.Language);
|
var culture = _cultures.GetOrDefault(requestCulture);
|
||||||
CultureInfo.CurrentUICulture = new CultureInfo(_cultures.Default.Language);
|
var cultureInfo = culture.Info ?? new CultureInfo(culture.Language);
|
||||||
|
|
||||||
|
context.Response.Cookies.SetCulture(culture.Language);
|
||||||
|
CultureInfo.CurrentCulture = cultureInfo;
|
||||||
|
CultureInfo.CurrentUICulture = cultureInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
await _next(context);
|
await _next(context);
|
||||||
|
|||||||
Reference in New Issue
Block a user