
+ +
+ +@code +{ + private CultureInfo[] supportedCultures = new[] + { + new CultureInfo("en-US"), + new CultureInfo("fr-FR") + }; + + private CultureInfo Culture + { + get => CultureInfo.CurrentCulture; + set + { + if (CultureInfo.CurrentUICulture == value) + { + return; + } + + var culture = value.Name.ToLower(CultureInfo.InvariantCulture); + + var uri = new Uri(this.NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped); + var query = $"?culture={Uri.EscapeDataString(culture)}&" + $"redirectUri={Uri.EscapeDataString(uri)}"; + + // Redirect the user to the culture controller to set the cookie + this.NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true); + } + } +} \ No newline at end of file diff --git a/Code/ProjetBlazor/Shared/CultureSelector.razor.css b/Code/ProjetBlazor/Shared/CultureSelector.razor.css new file mode 100644 index 0000000..b353372 --- /dev/null +++ b/Code/ProjetBlazor/Shared/CultureSelector.razor.css @@ -0,0 +1,3 @@ +t { + color : whitesmoke; +} diff --git a/Code/ProjetBlazor/Shared/MainLayout.razor b/Code/ProjetBlazor/Shared/MainLayout.razor index 1d58c85..c9fa1a9 100644 --- a/Code/ProjetBlazor/Shared/MainLayout.razor +++ b/Code/ProjetBlazor/Shared/MainLayout.razor @@ -7,9 +7,9 @@