I have applied Localization in my asp.net core mvc project.
It includes blazor pages for Identity.
I want to enable to change the culture by changing the site url’s culture part.
domain/en/Home/Index
Currently, the culture can be changed by cookie.
This is the cookie culture switch
But when I change the url’s culture to ja, the culture isn’t changing.
How to enable both without any restriction each other?
I added the following code to add culture to the url, but it didn’t work for Blazor pages.
app.MapControllerRoute(
name: "default",
pattern: "{culture}/{controller=First}/{action=Index}/{id?}"
);
I want to apply this to Blazor pages to.
And I added the partial for the culture switch.
<div>
<form asp-action="CultureManagement" asp-controller="Home" method="post" asp-route-returnUrl="@returnUrl">
<select name="cultureName" asp-for="@culture!.RequestCulture.UICulture.Name" class="selectpicker" data-width="fit" asp-items="@cultureList"
onchange="this.form.submit();">
</select>
</form>
</div>
It only changes the cookie.
[HttpPost]
public IActionResult CultureManagement(string cultureName, string returnUrl)
{
Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName)),
new CookieOptions { Expires = DateTimeOffset.Now.AddDays(30) });
return LocalRedirect(returnUrl);
}
I want to enable to change culture by changing the url and cookie.
And also want to apply to blazor pages.
max ray is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.