Я создаю приложение .netcore 2.1 MVC.
Мы должны поддерживать несколько языков для пользовательского интерфейса и сообщений, возвращаемых контроллером.
Я перешел по ссылке:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.1
В любом браузере, скажем, Chrome, на 2 вкладках я входил в систему с пользователем A и пользователем B. Если пользователь A меняет предпочитаемый язык, его пользовательский интерфейс отображает пользовательский интерфейс на правильном языке. Все хорошо.
Теперь, если я обновлю вкладку «Пользователь Б» и обновлю язык интерфейса, для него / нее тоже изменится.
Я использую код ниже:
public IActionResult SetLanguage(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1),IsEssential=true }
);
return LocalRedirect(returnUrl);
}
Я подумал, что мне нужно создать отдельный файл cookie для каждого пользователя, добавив идентификатор пользователя в имя файла cookie. Но это не работает.
Какие еще основные изменения мне нужно сделать, это могут быть startup.cs или где-то еще, чтобы приложения знали, что имя нового cookie не по умолчанию, и поток считывал правильный cookie и загружал информацию о культуре и далее.