Код: Выделить всё
stream = await StreamSubscriber.CreateAsync(clusterClient, "facility", FacilityId, async (entry) =>
{
if (entry.FacilityId == FacilityId)
{
await InvokeAsync(() =>
{
if (!Devices.ContainsKey(entry.Id))
{
return;
}
else
{
Devices[entry.Id].Entries.Add(entry);
StateHasChanged();
}
});
Мой CultureController:
Код: Выделить всё
[Route("[controller]/[action]")]
public class CultureController : Controller
{
public IActionResult Set(string culture, string redirectUri)
{
if (culture != null)
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(
new RequestCulture(culture, culture)));
}
return LocalRedirect(redirectUri);
}
}
Код: Выделить всё
[img]https://upload.wikimedia.org/wikipedia/commons/8/83/Flag_of_the_United_Kingdom_%283-5%29.svg[/img]
English
[img]https://upload.wikimedia.org/wikipedia/commons/d/d9/Flag_of_Norway.svg[/img]
Norsk
@code {
private CultureInfo selectedCulture = CultureInfo.CurrentCulture;
private CultureInfo[] supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("nb-NO"),
};
private async Task OnCultureChanged(CultureInfo newCulture)
{
if (CultureInfo.CurrentCulture != newCulture)
{
var uri = new Uri(Navigation.Uri)
.GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped);
var cultureEscaped = Uri.EscapeDataString(newCulture.Name);
var uriEscaped = Uri.EscapeDataString(uri);
Navigation.NavigateTo(
$"Culture/Set?culture={cultureEscaped}&redirectUri={uriEscaped}",
forceLoad: true);
}
}
}
Я пробовал множество вещей:
[*]Установите CultureInfo.CurrentCulture на контроллере. – Я ожидал, что он сможет изменить культуру во время выполнения, поскольку он продолжал возвращать en-GB, но как я читаю в Интернете, это не так.
[*]Установите CultureInfo.DefaultThreadCurrentCulture и CultureInfo.DefaultThreadCurrentUICulture. На самом деле это решило проблему очень плохим способом, насколько я понимаю, это меняется не только для пользователя, но и для всех, кто обращается к странице. И я мог вызвать это только через метод настройки контроллера и CultureSelector, и я понятия не имел, как и где получить доступ к файлу cookie, чтобы затем установить Культуру, если веб-сайт внезапно перезапустится.
< /ol>
Я пробовал и другие вещи, но мне казалось, что я никогда не понимал, что на самом деле делаю, чтобы иметь возможность правильно объяснить это здесь.
Подробнее здесь: https://stackoverflow.com/questions/787 ... guage-blaz