services.AddLocalization(options => options.ResourcesPath = "Resources");
services.Configure(options =>
{
options.DefaultRequestCulture = new RequestCulture("en-US");
options.SupportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("zh-CN")
};
options.RequestCultureProviders = new[]
{
new QueryStringRequestCultureProvider(),
new CookieRequestCultureProvider()
};
});
protected override async Task OnInitializedAsync()
{
var cultureName = _httpContextAccessor.HttpContext.Request.Cookies["Culture"];
if (!string.IsNullOrEmpty(cultureName))
{
var culture = new CultureInfo(cultureName);
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;
}
else
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture("en-US")),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddDays(30) }
);
}
await base.OnInitializedAsync();
}
此代码将检查是否已经设置了本地化 cookie,并在没有设置时设置一个默认值。
通过这些步骤,可以确保在 Blazor 服务器端应用程序中正确创建本地化 cookie。