Я имею дело с мультиязычным сайтом.
У меня есть частичное представление , где мой подход заключается в установке определенного языка для моего сайта.
<form asp-controller="Language" asp-action="SetLanguage" method="post" class="form-horizontal">
<label>Language:</label>
<select name="culture">
<option value="hu">Magyar</option>
<option value="eng">English</option>
</select>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Change</button>
</form>
Пока я отлаживаю, я могу проверить, что культура была установлена правильно, но когда мой RedirectToPage(...)
позвонил, я снова отлаживаю, и мой CurrentThread.CurrentCulture
возвращается к тому же, что и был.
public IActionResult SetLanguage(string culture)
{
string cookieCultureValue = culture;
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cookieCultureValue)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
return RedirectToPage("/Index");
}
Как я мог решить эту проблему?
Я правильно делаю эту мультиязычность?