Spaces:
Running
Running
| @rendermode @(new InteractiveServerRenderMode(prerender: false)) | |
| @implements IDisposable | |
| @inject TaskTrackingSystem.WebApp.Localization.UiLanguageService Language | |
| <button type="button" | |
| @onclick="ToggleLanguage" | |
| class="control-button px-3" | |
| title="@ButtonTitle" | |
| aria-label="@ButtonTitle"> | |
| <span class="text-xs font-semibold tracking-wide">@ButtonLabel</span> | |
| </button> | |
| @code { | |
| private string ButtonTitle => Language.CurrentLanguage == TaskTrackingSystem.WebApp.Localization.AppLanguage.Burmese | |
| ? Language.Texts.LanguageTitle + ": " + Language.Texts.LanguageEnglish | |
| : Language.Texts.LanguageTitle + ": " + Language.Texts.LanguageBurmese; | |
| private string ButtonLabel => Language.CurrentLanguage == TaskTrackingSystem.WebApp.Localization.AppLanguage.Burmese | |
| ? "MY" | |
| : "EN"; | |
| protected override async Task OnAfterRenderAsync(bool firstRender) | |
| { | |
| if (firstRender) | |
| { | |
| Language.Changed += OnLanguageChanged; | |
| await Language.InitializeAsync(); | |
| StateHasChanged(); | |
| } | |
| } | |
| private async Task ToggleLanguage() | |
| { | |
| await Language.ToggleAsync(); | |
| } | |
| private void OnLanguageChanged() | |
| { | |
| _ = InvokeAsync(StateHasChanged); | |
| } | |
| public void Dispose() | |
| { | |
| Language.Changed -= OnLanguageChanged; | |
| } | |
| } | |