@using System.Globalization @using EnvelopeGenerator.ReceiverUI.Services @inject IJSRuntime JSRuntime @inject NavigationManager Navigation @inject CultureService CultureService
@if (isOpen) {
}
@code { private bool isOpen = false; private string CurrentCulture => CultureInfo.CurrentCulture.Name; private void ToggleDropdown() { isOpen = !isOpen; } private async Task ChangeLanguageAsync(string culture) { if (CultureInfo.CurrentCulture.Name != culture) { await CultureService.SetCultureAsync(culture); // Set culture without page reload var cultureInfo = new CultureInfo(culture); CultureInfo.DefaultThreadCurrentCulture = cultureInfo; CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; // Navigate without reload to trigger re-render Navigation.NavigateTo(Navigation.Uri, forceLoad: false); } isOpen = false; } private string GetFlagCode(string culture) { return culture switch { "de-DE" => "de", "en-US" => "us", "fr-FR" => "fr", _ => "de" }; } private string GetLanguageName(string culture) { return culture switch { "de-DE" => "Deutsch", "en-US" => "English", "fr-FR" => "Français", _ => "Deutsch" }; } }