From 833a1cb9d21a36f0c7ebfea518d8c22639705f34 Mon Sep 17 00:00:00 2001 From: KIT! Date: Tue, 13 Aug 2024 17:07:39 +0200 Subject: [PATCH 1/3] Moved all Breadcrumbs to AppBar --- TaikoWebUI/Components/MainLayout.razor | 35 +++++++++++++------ TaikoWebUI/Pages/AccessCode.razor | 3 +- TaikoWebUI/Pages/AccessCode.razor.cs | 18 ++++------ TaikoWebUI/Pages/ChangePassword.razor | 1 + TaikoWebUI/Pages/ChangePassword.razor.cs | 4 +++ TaikoWebUI/Pages/DaniDojo.razor | 4 +-- TaikoWebUI/Pages/DaniDojo.razor.cs | 25 ++++++------- TaikoWebUI/Pages/Dashboard.razor | 10 ++++-- TaikoWebUI/Pages/HighScores.razor | 4 +-- TaikoWebUI/Pages/HighScores.razor.cs | 12 +++---- TaikoWebUI/Pages/Login.razor | 1 + TaikoWebUI/Pages/Login.razor.cs | 4 +++ TaikoWebUI/Pages/PlayHistory.razor | 10 +++--- TaikoWebUI/Pages/PlayHistory.razor.cs | 16 +++++++-- TaikoWebUI/Pages/Profile.razor | 3 +- TaikoWebUI/Pages/Profile.razor.cs | 16 ++++----- TaikoWebUI/Pages/Register.razor | 1 + TaikoWebUI/Pages/Register.razor.cs | 4 +++ TaikoWebUI/Pages/Song.razor | 2 +- TaikoWebUI/Pages/Song.razor.cs | 28 ++++++--------- TaikoWebUI/Pages/SongList.razor | 4 +-- TaikoWebUI/Pages/SongList.razor.cs | 12 +++---- TaikoWebUI/Pages/Users.razor | 2 +- TaikoWebUI/Pages/Users.razor.cs | 4 +++ TaikoWebUI/Program.cs | 1 + .../Services/BreadcrumbsStateContainer.cs | 17 +++++++++ 26 files changed, 139 insertions(+), 102 deletions(-) create mode 100644 TaikoWebUI/Services/BreadcrumbsStateContainer.cs diff --git a/TaikoWebUI/Components/MainLayout.razor b/TaikoWebUI/Components/MainLayout.razor index 2f7bc6c..7040648 100644 --- a/TaikoWebUI/Components/MainLayout.razor +++ b/TaikoWebUI/Components/MainLayout.razor @@ -1,9 +1,13 @@ @inherits LayoutComponentBase @inject Blazored.LocalStorage.ILocalStorageService LocalStorage @inject AuthService AuthService +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer + @using Microsoft.Extensions.Options; @using TaikoWebUI.Settings; + + @@ -11,6 +15,7 @@ + @@ -46,11 +51,14 @@ { title = UiSettings.Value.Title; } - + protected override async Task OnInitializedAsync() { - - + await base.OnInitializedAsync(); + + BreadcrumbsStateContainer.OnChange += StateHasChanged; + + var hasDrawerOpenEntry = await LocalStorage.ContainKeyAsync("drawerOpen"); if (hasDrawerOpenEntry) @@ -73,16 +81,16 @@ } private async Task DrawerToggle() - { - drawerOpen = !drawerOpen; - await LocalStorage.SetItemAsync("drawerOpen", drawerOpen); - } + { + drawerOpen = !drawerOpen; + await LocalStorage.SetItemAsync("drawerOpen", drawerOpen); + } private async Task ToggleDarkMode() - { - isDarkMode = !isDarkMode; - await LocalStorage.SetItemAsync("isDarkMode", isDarkMode); - } + { + isDarkMode = !isDarkMode; + await LocalStorage.SetItemAsync("isDarkMode", isDarkMode); + } private string DarkModeIcon => isDarkMode ? Icons.Material.Filled.BrightnessLow : Icons.Material.Filled.Brightness2; @@ -102,4 +110,9 @@ PrimaryDarken = Colors.Indigo.Accent1, }, }; + + public void Dispose() + { + BreadcrumbsStateContainer.OnChange -= StateHasChanged; + } } \ No newline at end of file diff --git a/TaikoWebUI/Pages/AccessCode.razor b/TaikoWebUI/Pages/AccessCode.razor index 88f26b7..07437f4 100644 --- a/TaikoWebUI/Pages/AccessCode.razor +++ b/TaikoWebUI/Pages/AccessCode.razor @@ -3,6 +3,7 @@ @inject IDialogService DialogService @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @inject Utilities.StringUtil StringUtil; @if (AuthService.LoginRequired && (!AuthService.IsLoggedIn || (AuthService.GetLoggedInBaid() != Baid && !AuthService.IsAdmin))) { @@ -13,8 +14,6 @@ } else { - - @Localizer["Access Codes"] diff --git a/TaikoWebUI/Pages/AccessCode.razor.cs b/TaikoWebUI/Pages/AccessCode.razor.cs index 8c51583..940b50b 100644 --- a/TaikoWebUI/Pages/AccessCode.razor.cs +++ b/TaikoWebUI/Pages/AccessCode.razor.cs @@ -14,8 +14,6 @@ public partial class AccessCode private UserSetting? userSetting; - private readonly List breadcrumbs = new(); - protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); @@ -29,16 +27,12 @@ public partial class AccessCode userSetting = await Client.GetFromJsonAsync($"api/UserSettings/{Baid}"); - if (AuthService.IsLoggedIn && !AuthService.IsAdmin) - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); - } - else - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); - } - breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["Access Codes"], href: $"/Users/{Baid}/AccessCode", disabled: false)); + BreadcrumbsStateContainer.breadcrumbs.Clear(); + if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Access Codes"], href: $"/Users/{Baid}/AccessCode", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task InitializeUser() diff --git a/TaikoWebUI/Pages/ChangePassword.razor b/TaikoWebUI/Pages/ChangePassword.razor index 0bf738e..dbe9c53 100644 --- a/TaikoWebUI/Pages/ChangePassword.razor +++ b/TaikoWebUI/Pages/ChangePassword.razor @@ -2,6 +2,7 @@ @inject IDialogService DialogService @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/ChangePassword" diff --git a/TaikoWebUI/Pages/ChangePassword.razor.cs b/TaikoWebUI/Pages/ChangePassword.razor.cs index 33570a3..99d83be 100644 --- a/TaikoWebUI/Pages/ChangePassword.razor.cs +++ b/TaikoWebUI/Pages/ChangePassword.razor.cs @@ -16,6 +16,10 @@ public partial class ChangePassword { await AuthService.LoginWithAuthToken(); } + + BreadcrumbsStateContainer.breadcrumbs.Clear(); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Change Password"], href: "/")); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task OnChangePassword() diff --git a/TaikoWebUI/Pages/DaniDojo.razor b/TaikoWebUI/Pages/DaniDojo.razor index d4cde03..7c0a3e8 100644 --- a/TaikoWebUI/Pages/DaniDojo.razor +++ b/TaikoWebUI/Pages/DaniDojo.razor @@ -6,6 +6,7 @@ @inject AuthService AuthService @inject NavigationManager NavigationManager @inject ILocalStorageService LocalStorage +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/Users/{baid:int}/DaniDojo" @@ -22,8 +23,7 @@ } else { - - @Localizer["Dani Dojo"] + diff --git a/TaikoWebUI/Pages/DaniDojo.razor.cs b/TaikoWebUI/Pages/DaniDojo.razor.cs index 960629f..d5480e0 100644 --- a/TaikoWebUI/Pages/DaniDojo.razor.cs +++ b/TaikoWebUI/Pages/DaniDojo.razor.cs @@ -17,12 +17,10 @@ public partial class DaniDojo private Dictionary musicDetailDictionary = new(); private ImmutableDictionary danMap = ImmutableDictionary.Empty; - private readonly List breadcrumbs = new(); - protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); - + if (AuthService.LoginRequired && !AuthService.IsLoggedIn) { await AuthService.LoginWithAuthToken(); @@ -39,19 +37,16 @@ public partial class DaniDojo SongNameLanguage = await LocalStorage.GetItemAsync("songNameLanguage"); userSetting = await Client.GetFromJsonAsync($"api/UserSettings/{Baid}"); - + musicDetailDictionary = await GameDataService.GetMusicDetailDictionary(); - if (AuthService.IsLoggedIn && !AuthService.IsAdmin) - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); - } - else - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); - }; - breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dani Dojo"], href: $"/Users/{Baid}/DaniDojo", disabled: false)); + // Breadcrumbs + BreadcrumbsStateContainer.breadcrumbs.Clear(); + if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dani Dojo"], href: $"/Users/{Baid}/DaniDojo", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } private string GetDanClearStateString(DanClearState danClearState) @@ -111,7 +106,7 @@ public partial class DaniDojo private static uint GetSongBestFromData(DanConditionType type, DanBestData data, int songNumber) { songNumber.Throw().IfOutOfRange(0, 2); - + return type switch { DanConditionType.SoulGauge => throw new ArgumentException("Soul gauge should not be here"), diff --git a/TaikoWebUI/Pages/Dashboard.razor b/TaikoWebUI/Pages/Dashboard.razor index 29a5ef6..5cf86b9 100644 --- a/TaikoWebUI/Pages/Dashboard.razor +++ b/TaikoWebUI/Pages/Dashboard.razor @@ -1,15 +1,15 @@ @page "/" -@inject HttpClient Http @using Markdig +@inject HttpClient Http +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer -@Localizer["Dashboard"]
@if (isLoading) { - + } else { @@ -48,5 +48,9 @@ } isLoading = false; + + BreadcrumbsStateContainer.breadcrumbs.Clear(); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + BreadcrumbsStateContainer.NotifyStateChanged(); } } \ No newline at end of file diff --git a/TaikoWebUI/Pages/HighScores.razor b/TaikoWebUI/Pages/HighScores.razor index 9df98eb..846f03e 100644 --- a/TaikoWebUI/Pages/HighScores.razor +++ b/TaikoWebUI/Pages/HighScores.razor @@ -4,13 +4,11 @@ @inject HttpClient Client @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @inject Blazored.LocalStorage.ILocalStorageService LocalStorage @page "/Users/{baid:int}/HighScores" - -@Localizer["High Scores"] - @if (response is null) { diff --git a/TaikoWebUI/Pages/HighScores.razor.cs b/TaikoWebUI/Pages/HighScores.razor.cs index 7a2ceac..8529f3c 100644 --- a/TaikoWebUI/Pages/HighScores.razor.cs +++ b/TaikoWebUI/Pages/HighScores.razor.cs @@ -8,8 +8,6 @@ public partial class HighScores private SongBestResponse? response; private UserSetting? userSetting; private Dictionary> songBestDataMap = new(); - - private readonly List breadcrumbs = new(); private int selectedDifficultyTab; private Dictionary musicDetailDictionary = new(); @@ -51,16 +49,18 @@ public partial class HighScores selectedDifficultyTab = await LocalStorage.GetItemAsync($"highScoresTab"); // Breadcrumbs + BreadcrumbsStateContainer.breadcrumbs.Clear(); if (AuthService.IsLoggedIn && !AuthService.IsAdmin) { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); } else { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); }; - breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["High Scores"], href: $"/Users/{Baid}/HighScores", disabled: false)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["High Scores"], href: $"/Users/{Baid}/HighScores", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task OnFavoriteToggled(SongBestData data) diff --git a/TaikoWebUI/Pages/Login.razor b/TaikoWebUI/Pages/Login.razor index 5c1fd49..741d27b 100644 --- a/TaikoWebUI/Pages/Login.razor +++ b/TaikoWebUI/Pages/Login.razor @@ -2,6 +2,7 @@ @inject IDialogService DialogService @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/Login" diff --git a/TaikoWebUI/Pages/Login.razor.cs b/TaikoWebUI/Pages/Login.razor.cs index bc4a7e2..218bebb 100644 --- a/TaikoWebUI/Pages/Login.razor.cs +++ b/TaikoWebUI/Pages/Login.razor.cs @@ -14,6 +14,10 @@ public partial class Login { await AuthService.LoginWithAuthToken(); } + + BreadcrumbsStateContainer.breadcrumbs.Clear(); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Login"], href: "/Login")); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task OnLogin() diff --git a/TaikoWebUI/Pages/PlayHistory.razor b/TaikoWebUI/Pages/PlayHistory.razor index 1882afd..c6d4819 100644 --- a/TaikoWebUI/Pages/PlayHistory.razor +++ b/TaikoWebUI/Pages/PlayHistory.razor @@ -6,12 +6,10 @@ @inject IJSRuntime JsRuntime @inject NavigationManager NavigationManager @inject ILocalStorageService LocalStorage +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/Users/{baid:int}/PlayHistory" - -@Localizer["Play History"] - @if (response is null) { @@ -62,7 +60,7 @@ -
+
@CultureInfo.CurrentCulture.TextInfo.ToTitleCase(context[0].PlayTime.ToString(Localizer["DateFormat"])) @@ -104,7 +102,7 @@ @songHistoryData.MusicArtist
-
+ @*
-
+
*@ diff --git a/TaikoWebUI/Pages/PlayHistory.razor.cs b/TaikoWebUI/Pages/PlayHistory.razor.cs index c0d29a1..d9bae87 100644 --- a/TaikoWebUI/Pages/PlayHistory.razor.cs +++ b/TaikoWebUI/Pages/PlayHistory.razor.cs @@ -1,5 +1,6 @@ using System.Globalization; using Microsoft.JSInterop; +using SharedProject.Models; namespace TaikoWebUI.Pages; @@ -15,10 +16,9 @@ public partial class PlayHistory private string? songNameLanguage; private SongHistoryResponse? response; + private UserSetting? userSetting; private Dictionary> songHistoryDataMap = new(); - - private readonly List breadcrumbs = new(); private Dictionary musicDetailDictionary = new(); @@ -34,7 +34,17 @@ public partial class PlayHistory response = await Client.GetFromJsonAsync($"api/PlayHistory/{(uint)Baid}"); response.ThrowIfNull(); - + + userSetting = await Client.GetFromJsonAsync($"api/UserSettings/{Baid}"); + + //breadcrumbs + BreadcrumbsStateContainer.breadcrumbs.Clear(); + if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Play History"], href: $"/Users/{Baid}/PlayHistory", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); + songNameLanguage = await LocalStorage.GetItemAsync("songNameLanguage"); musicDetailDictionary = await GameDataService.GetMusicDetailDictionary(); diff --git a/TaikoWebUI/Pages/Profile.razor b/TaikoWebUI/Pages/Profile.razor index 5b5f8ca..d71b68e 100644 --- a/TaikoWebUI/Pages/Profile.razor +++ b/TaikoWebUI/Pages/Profile.razor @@ -5,6 +5,7 @@ @inject AuthService AuthService @inject IJSRuntime JsRuntime @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @if (response is not null) { @@ -21,8 +22,6 @@ } else { - - @Localizer["Profile"] diff --git a/TaikoWebUI/Pages/Profile.razor.cs b/TaikoWebUI/Pages/Profile.razor.cs index f27a956..6482792 100644 --- a/TaikoWebUI/Pages/Profile.razor.cs +++ b/TaikoWebUI/Pages/Profile.razor.cs @@ -169,8 +169,6 @@ public partial class Profile "Not Cleared", "Not Full Combo", "Not Donderful Combo" }; - private readonly List breadcrumbs = new(); - private Dictionary> songBestDataMap = new(); private Difficulty highestDifficulty = Difficulty.Easy; @@ -208,17 +206,19 @@ public partial class Profile musicDetailDictionary = await GameDataService.GetMusicDetailDictionary(); + BreadcrumbsStateContainer.breadcrumbs.Clear(); if (AuthService.IsLoggedIn && !AuthService.IsAdmin) { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); } else { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); } - breadcrumbs.Add(new BreadcrumbItem($"{response.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["Profile"], href: $"/Users/{Baid}/Profile", disabled: false)); - + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{response.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Profile"], href: $"/Users/{Baid}/Profile", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); + costumeList = await GameDataService.GetCostumeList(); titleDictionary = await GameDataService.GetTitleDictionary(); lockedCostumeDataDictionary = await GameDataService.GetLockedCostumeDataDictionary(); @@ -374,7 +374,7 @@ public partial class Profile // Adjust breadcrumb if name is changed if (response != null) { - breadcrumbs[^2] = new BreadcrumbItem($"{response.MyDonName}", href: null, disabled: true); + BreadcrumbsStateContainer.breadcrumbs[^2] = new BreadcrumbItem($"{response.MyDonName}", href: null, disabled: true); } } diff --git a/TaikoWebUI/Pages/Register.razor b/TaikoWebUI/Pages/Register.razor index 4f00d99..01e4d3c 100644 --- a/TaikoWebUI/Pages/Register.razor +++ b/TaikoWebUI/Pages/Register.razor @@ -1,6 +1,7 @@ @inject IDialogService DialogService @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/Register" diff --git a/TaikoWebUI/Pages/Register.razor.cs b/TaikoWebUI/Pages/Register.razor.cs index 5514ef0..68027fa 100644 --- a/TaikoWebUI/Pages/Register.razor.cs +++ b/TaikoWebUI/Pages/Register.razor.cs @@ -16,6 +16,10 @@ public partial class Register protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); + + BreadcrumbsStateContainer.breadcrumbs.Clear(); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Register"], href: "/Register")); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task OnRegister() diff --git a/TaikoWebUI/Pages/Song.razor b/TaikoWebUI/Pages/Song.razor index a8b4a34..2dabfbb 100644 --- a/TaikoWebUI/Pages/Song.razor +++ b/TaikoWebUI/Pages/Song.razor @@ -7,6 +7,7 @@ @inject AuthService AuthService @inject NavigationManager NavigationManager @inject ILocalStorageService LocalStorage +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @if (AuthService.LoginRequired && (!AuthService.IsLoggedIn || (AuthService.GetLoggedInBaid() != Baid && !AuthService.IsAdmin))) { @@ -16,7 +17,6 @@ else { if (response is not null) { - @songTitle @songArtist diff --git a/TaikoWebUI/Pages/Song.razor.cs b/TaikoWebUI/Pages/Song.razor.cs index c447a6a..70e5476 100644 --- a/TaikoWebUI/Pages/Song.razor.cs +++ b/TaikoWebUI/Pages/Song.razor.cs @@ -11,7 +11,6 @@ public partial class Song private UserSetting? userSetting; private SongHistoryResponse? response; private List? songHistoryData; - private readonly List breadcrumbs = new(); private string songTitle = string.Empty; private string songArtist = string.Empty; @@ -19,7 +18,7 @@ public partial class Song protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); - + if (AuthService.LoginRequired && !AuthService.IsLoggedIn) { await AuthService.LoginWithAuthToken(); @@ -32,7 +31,7 @@ public partial class Song // Get user settings userSetting = await Client.GetFromJsonAsync($"api/UserSettings/{Baid}"); - + var musicDetailDictionary = await GameDataService.GetMusicDetailDictionary(); // Get song title and artist @@ -42,21 +41,14 @@ public partial class Song // Breadcrumbs var formattedSongTitle = songTitle; - if (formattedSongTitle.Length > 20) - { - formattedSongTitle = string.Concat(formattedSongTitle.AsSpan(0, 20), "..."); - } + if (formattedSongTitle.Length > 20) formattedSongTitle = string.Concat(formattedSongTitle.AsSpan(0, 20), "..."); - if (AuthService.IsLoggedIn && !AuthService.IsAdmin) - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); - } - else - { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); - }; - breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["Song List"], href: $"/Users/{Baid}/Songs", disabled: false)); - breadcrumbs.Add(new BreadcrumbItem(formattedSongTitle, href: $"/Users/{Baid}/Songs/{SongId}", disabled: false)); + BreadcrumbsStateContainer.breadcrumbs.Clear(); + if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Song List"], href: $"/Users/{Baid}/Songs", disabled: false)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(formattedSongTitle, href: $"/Users/{Baid}/Songs/{SongId}", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } } \ No newline at end of file diff --git a/TaikoWebUI/Pages/SongList.razor b/TaikoWebUI/Pages/SongList.razor index 8b9f3d7..88b97ac 100644 --- a/TaikoWebUI/Pages/SongList.razor +++ b/TaikoWebUI/Pages/SongList.razor @@ -6,12 +6,10 @@ @inject AuthService AuthService @inject ILocalStorageService LocalStorage @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @page "/Users/{baid:int}/Songs" - -@Localizer["Song List"] - @if (response is null) { diff --git a/TaikoWebUI/Pages/SongList.razor.cs b/TaikoWebUI/Pages/SongList.razor.cs index d581e3e..aa50ea5 100644 --- a/TaikoWebUI/Pages/SongList.razor.cs +++ b/TaikoWebUI/Pages/SongList.razor.cs @@ -11,8 +11,6 @@ public partial class SongList private SongBestResponse? response; private UserSetting? userSetting; - - private readonly List breadcrumbs = new(); private Dictionary musicDetailDictionary = new(); @@ -38,16 +36,18 @@ public partial class SongList if (best.SongId == song.Value.SongId) song.Value.IsFavorite = best.IsFavorite; + BreadcrumbsStateContainer.breadcrumbs.Clear(); if (AuthService.IsLoggedIn && !AuthService.IsAdmin) { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); } else { - breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); }; - breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - breadcrumbs.Add(new BreadcrumbItem(Localizer["Song List"], href: $"/Users/{Baid}/Songs", disabled: false)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Song List"], href: $"/Users/{Baid}/Songs", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } private bool FilterSongs(MusicDetail musicDetail) diff --git a/TaikoWebUI/Pages/Users.razor b/TaikoWebUI/Pages/Users.razor index ac087c7..80dbdc9 100644 --- a/TaikoWebUI/Pages/Users.razor +++ b/TaikoWebUI/Pages/Users.razor @@ -1,12 +1,12 @@ @inject HttpClient Client @inject AuthService AuthService @inject NavigationManager NavigationManager +@inject BreadcrumbsStateContainer BreadcrumbsStateContainer @using TaikoWebUI.Components; @page "/Users" -@Localizer["Users"] @if (!AuthService.LoginRequired || (AuthService.LoginRequired && AuthService.IsAdmin)) { diff --git a/TaikoWebUI/Pages/Users.razor.cs b/TaikoWebUI/Pages/Users.razor.cs index c6729f8..718ee73 100644 --- a/TaikoWebUI/Pages/Users.razor.cs +++ b/TaikoWebUI/Pages/Users.razor.cs @@ -32,6 +32,10 @@ public partial class Users { await GetUsersData(); } + + BreadcrumbsStateContainer.breadcrumbs.Clear(); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.NotifyStateChanged(); } private async Task OnPageChange(int page) diff --git a/TaikoWebUI/Program.cs b/TaikoWebUI/Program.cs index f23faad..1f9de19 100644 --- a/TaikoWebUI/Program.cs +++ b/TaikoWebUI/Program.cs @@ -35,6 +35,7 @@ builder.Services.AddLocalization(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddBlazoredLocalStorage(); var host = builder.Build(); diff --git a/TaikoWebUI/Services/BreadcrumbsStateContainer.cs b/TaikoWebUI/Services/BreadcrumbsStateContainer.cs new file mode 100644 index 0000000..a27e44d --- /dev/null +++ b/TaikoWebUI/Services/BreadcrumbsStateContainer.cs @@ -0,0 +1,17 @@ +namespace TaikoWebUI.Services +{ + public class BreadcrumbsStateContainer + { + public List breadcrumbs = new(); + + public event Action? OnChange; + + public void SetBreadcrumbs(List _breadcrumbs) + { + breadcrumbs = _breadcrumbs; + NotifyStateChanged(); + } + + public void NotifyStateChanged() => OnChange?.Invoke(); + } +} From 3da94dbf9bdda87acc557f4abfa3f541a895b049 Mon Sep 17 00:00:00 2001 From: KIT! Date: Tue, 13 Aug 2024 17:14:26 +0200 Subject: [PATCH 2/3] Fixed Song page always behaving like user was not logged in Uppon refresh, the page would always send you back to the dashboard and broke the breadcrumbs. --- TaikoWebUI/Pages/Song.razor | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/TaikoWebUI/Pages/Song.razor b/TaikoWebUI/Pages/Song.razor index 2dabfbb..0db1846 100644 --- a/TaikoWebUI/Pages/Song.razor +++ b/TaikoWebUI/Pages/Song.razor @@ -9,13 +9,19 @@ @inject ILocalStorageService LocalStorage @inject BreadcrumbsStateContainer BreadcrumbsStateContainer -@if (AuthService.LoginRequired && (!AuthService.IsLoggedIn || (AuthService.GetLoggedInBaid() != Baid && !AuthService.IsAdmin))) +@if (response is null) { - NavigationManager.NavigateTo(AuthService.IsLoggedIn ? "/" : "/Login"); + + + } else { - if (response is not null) + @if (AuthService.LoginRequired && (!AuthService.IsLoggedIn || (AuthService.GetLoggedInBaid() != Baid && !AuthService.IsAdmin))) + { + NavigationManager.NavigateTo(AuthService.IsLoggedIn ? "/" : "/Login"); + } + else { @songTitle @songArtist From 8c2639441575d24bd9afee51389bda1a8269d039 Mon Sep 17 00:00:00 2001 From: KIT! Date: Wed, 14 Aug 2024 11:07:37 +0200 Subject: [PATCH 3/3] Added missing french strings --- .../LocalizationResource.Designer.cs | 367 +++++++++--------- .../LocalizationResource.fr-FR.resx | 179 ++++++++- TaikoWebUI/Pages/Login.razor.cs | 2 +- TaikoWebUI/Pages/PlayHistory.razor.cs | 16 +- 4 files changed, 353 insertions(+), 211 deletions(-) diff --git a/TaikoWebUI/Localization/LocalizationResource.Designer.cs b/TaikoWebUI/Localization/LocalizationResource.Designer.cs index d3c9a63..9db43e3 100644 --- a/TaikoWebUI/Localization/LocalizationResource.Designer.cs +++ b/TaikoWebUI/Localization/LocalizationResource.Designer.cs @@ -1,9 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. // //------------------------------------------------------------------------------ @@ -12,12 +13,12 @@ namespace TaikoWebUI.Localization { /// - /// A strongly-typed resource class, for looking up localized strings, etc. + /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées. /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. + // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder + // à l'aide d'un outil, tel que ResGen ou Visual Studio. + // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen + // avec l'option /str ou régénérez votre projet VS. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] @@ -32,7 +33,7 @@ namespace TaikoWebUI.Localization { } /// - /// Returns the cached ResourceManager instance used by this class. + /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -46,8 +47,8 @@ namespace TaikoWebUI.Localization { } /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. + /// Remplace la propriété CurrentUICulture du thread actuel pour toutes + /// les recherches de ressources à l'aide de cette classe de ressource fortement typée. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { @@ -60,7 +61,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _1_Star { get { @@ -69,7 +70,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _10_Star { get { @@ -78,7 +79,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _2_Star { get { @@ -87,7 +88,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _3_Star { get { @@ -96,7 +97,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _4_Star { get { @@ -105,7 +106,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _5_Star { get { @@ -114,7 +115,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _6_Star { get { @@ -123,7 +124,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _7_Star { get { @@ -132,7 +133,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _8_Star { get { @@ -141,7 +142,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _8bittaiko { get { @@ -150,7 +151,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _9_Star { get { @@ -159,7 +160,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string _Invite_Code__Optional__ { get { @@ -168,7 +169,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code { get { @@ -177,7 +178,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Already_Bound_Error { get { @@ -186,7 +187,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Bound_Success { get { @@ -195,7 +196,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Delete_Confirm { get { @@ -204,7 +205,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Delete_Last_Access_Code_Error { get { @@ -213,7 +214,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Delete_Success { get { @@ -222,7 +223,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Empty_Error { get { @@ -231,7 +232,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_is_Required { get { @@ -240,7 +241,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Not_Admin_Error { get { @@ -249,7 +250,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Not_Registered_Error { get { @@ -258,7 +259,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Code_Upper_Limit_Error { get { @@ -267,7 +268,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Access_Codes { get { @@ -276,7 +277,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Achievement_Panel { get { @@ -285,7 +286,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Achievement_Panel_Difficulty { get { @@ -294,7 +295,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Add { get { @@ -303,7 +304,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Add_Access_Code { get { @@ -312,7 +313,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string AI_Battle_Data { get { @@ -321,7 +322,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Akemi { get { @@ -330,7 +331,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string And { get { @@ -339,7 +340,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Bad { get { @@ -348,7 +349,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Best_Crown { get { @@ -357,7 +358,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Best_Rank { get { @@ -366,7 +367,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Cancel { get { @@ -375,7 +376,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Change_Password_Different_Confirm_Password_Error { get { @@ -384,7 +385,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Change_Password_Success { get { @@ -393,7 +394,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Change_Password_Wrong_Current_Password_Error { get { @@ -402,7 +403,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Chinese_Simplified { get { @@ -411,7 +412,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Chinese_Traditional { get { @@ -420,7 +421,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Chojin { get { @@ -429,7 +430,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Clapping { get { @@ -438,7 +439,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Confirm_New_Password { get { @@ -447,7 +448,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Confirm_Password { get { @@ -456,7 +457,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Confirm_Password_is_Required { get { @@ -465,7 +466,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Conga { get { @@ -474,7 +475,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Copy_to_Clipboard { get { @@ -483,7 +484,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Course_Songs { get { @@ -492,7 +493,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Currently_Selected_ { get { @@ -501,7 +502,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Dani_Dojo { get { @@ -510,7 +511,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Dashboard { get { @@ -519,7 +520,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to MM/dd/yyyy h:mm:ss tt. + /// Recherche une chaîne localisée semblable à MM/dd/yyyy h:mm:ss tt. /// internal static string DateFormat { get { @@ -528,7 +529,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Default { get { @@ -537,7 +538,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Delete { get { @@ -546,7 +547,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Delete_User_Confirm { get { @@ -555,7 +556,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Delete_User_Success { get { @@ -564,7 +565,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Dialog_OK { get { @@ -573,7 +574,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Difficulty { get { @@ -582,7 +583,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Drum { get { @@ -591,7 +592,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Easy { get { @@ -600,7 +601,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Edit_Profile { get { @@ -609,7 +610,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Eighth_Dan { get { @@ -618,7 +619,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Electric_Guitar { get { @@ -627,7 +628,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string English { get { @@ -636,7 +637,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Error { get { @@ -645,7 +646,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Fifth_Dan { get { @@ -654,7 +655,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Fifth_Kyuu { get { @@ -663,7 +664,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Filter_by_Genre { get { @@ -672,7 +673,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string First_Dan { get { @@ -681,7 +682,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string First_Kyuu { get { @@ -690,7 +691,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Fourth_Dan { get { @@ -699,7 +700,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Fourth_Kyuu { get { @@ -708,7 +709,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Funassyi { get { @@ -717,7 +718,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Gaiden { get { @@ -726,7 +727,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Generate_Invite_Code { get { @@ -735,7 +736,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Gold_Donderful_Combo { get { @@ -744,7 +745,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Gold_Full_Combo { get { @@ -753,7 +754,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Hard { get { @@ -762,7 +763,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string High_Scores { get { @@ -771,7 +772,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string ID { get { @@ -780,7 +781,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Inuneko { get { @@ -789,7 +790,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Invite_Code { get { @@ -798,7 +799,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Isogai { get { @@ -807,7 +808,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Japanese { get { @@ -816,7 +817,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Korean { get { @@ -825,7 +826,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Kuroto { get { @@ -834,7 +835,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Last_Play_Date { get { @@ -843,7 +844,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Last_Play_Time_5_Min_Around_Credit_End_ { get { @@ -852,7 +853,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Leaderboard { get { @@ -861,7 +862,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Log_In { get { @@ -870,7 +871,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Log_In_First { get { @@ -879,7 +880,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Log_Out { get { @@ -888,7 +889,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Log_Out_Confirm { get { @@ -897,7 +898,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Login_Only_Admin_Error { get { @@ -906,7 +907,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Login_Wrong_Password_Error { get { @@ -915,7 +916,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Matsuri { get { @@ -924,7 +925,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Meijin { get { @@ -933,7 +934,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Mekadon { get { @@ -942,7 +943,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Messy { get { @@ -951,7 +952,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string New_Access_Code { get { @@ -960,7 +961,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string New_Password { get { @@ -969,7 +970,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Ninth_Dan { get { @@ -978,7 +979,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string No_Data { get { @@ -987,7 +988,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string No_Play_History_Found { get { @@ -996,7 +997,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string None { get { @@ -1005,7 +1006,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Normal { get { @@ -1014,7 +1015,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Not_Cleared { get { @@ -1023,7 +1024,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Not_Donderful_Combo { get { @@ -1032,7 +1033,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Not_Full_Combo { get { @@ -1041,7 +1042,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Not_Logged_In_Error { get { @@ -1050,7 +1051,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Not_Passed { get { @@ -1059,7 +1060,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Old_Password { get { @@ -1068,7 +1069,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Oni { get { @@ -1077,7 +1078,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string other_access_code_s_ { get { @@ -1086,7 +1087,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Password { get { @@ -1095,7 +1096,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Password_is_Required { get { @@ -1104,7 +1105,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Play_Data { get { @@ -1113,7 +1114,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Play_History { get { @@ -1122,7 +1123,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Play_Time { get { @@ -1131,7 +1132,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Puchipuchi { get { @@ -1140,7 +1141,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string QR_Code { get { @@ -1149,7 +1150,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Rank { get { @@ -1158,7 +1159,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Red_Donderful_Combo { get { @@ -1167,7 +1168,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Red_Full_Combo { get { @@ -1176,7 +1177,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register { get { @@ -1185,7 +1186,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register_Already_Registered_Error { get { @@ -1194,7 +1195,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register_Different_Confirm_Password_Error { get { @@ -1203,7 +1204,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register_Only_Admin_Error { get { @@ -1212,7 +1213,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register_Success { get { @@ -1221,7 +1222,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Register_Wrong_Last_Play_Time_Error { get { @@ -1230,7 +1231,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Reset { get { @@ -1239,7 +1240,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Reset_Password_Confirm_1 { get { @@ -1248,7 +1249,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Reset_Password_Confirm_2 { get { @@ -1257,7 +1258,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Rows_Per_Page_ { get { @@ -1266,7 +1267,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Search_by_Title__Artist_or_Date { get { @@ -1275,7 +1276,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Search_by_Title_or_Artist { get { @@ -1284,7 +1285,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Second_Dan { get { @@ -1293,7 +1294,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Second_Kyuu { get { @@ -1302,7 +1303,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Set_Up_Each_Time { get { @@ -1311,7 +1312,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Settings { get { @@ -1320,7 +1321,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Seventh_Dan { get { @@ -1329,7 +1330,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Shuriken { get { @@ -1338,7 +1339,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Sixth_Dan { get { @@ -1347,7 +1348,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Skip_Song { get { @@ -1356,7 +1357,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Song_List { get { @@ -1365,7 +1366,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Song_Name { get { @@ -1374,7 +1375,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Song_Number { get { @@ -1383,7 +1384,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Song_Title___Artist { get { @@ -1392,7 +1393,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Soya { get { @@ -1401,7 +1402,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Success { get { @@ -1410,7 +1411,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Synthdrum { get { @@ -1419,7 +1420,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Taiko { get { @@ -1428,7 +1429,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Tambourine { get { @@ -1437,7 +1438,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Tatsujin { get { @@ -1446,7 +1447,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Tenth_Dan { get { @@ -1455,7 +1456,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Third_Dan { get { @@ -1464,7 +1465,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Third_Kyuu { get { @@ -1473,7 +1474,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Total_Credits_Played { get { @@ -1482,7 +1483,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string UI { get { @@ -1491,7 +1492,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Unknown_Access_Code_Error { get { @@ -1500,7 +1501,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Unknown_Error { get { @@ -1509,7 +1510,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Unregister { get { @@ -1518,7 +1519,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Ura_Oni { get { @@ -1527,7 +1528,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string UraOni { get { @@ -1536,7 +1537,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string User { get { @@ -1545,7 +1546,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string User_ID { get { @@ -1554,7 +1555,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Users { get { @@ -1563,7 +1564,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string View_Play_Data { get { @@ -1572,7 +1573,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Wadadon { get { @@ -1581,7 +1582,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Whimsical { get { @@ -1590,7 +1591,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Wonderfultaiko { get { @@ -1599,7 +1600,7 @@ namespace TaikoWebUI.Localization { } /// - /// Looks up a localized string similar to . + /// Recherche une chaîne localisée semblable à . /// internal static string Wrap { get { diff --git a/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx b/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx index 6bb56f0..5f1ae20 100644 --- a/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx +++ b/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx @@ -124,13 +124,13 @@ Utilisateurs - Editer le profil + Profil Utilisateur - Voir les données de jeu + Données de jeu Meilleurs Scores @@ -154,7 +154,7 @@ Bienvenue sur TaikoWebUI ! - Chart + Musique Niveau @@ -205,7 +205,7 @@ Nombre total de Combos Donderful - Charts + Musiques Cacher @@ -238,7 +238,7 @@ Jauge d'âme - Chansons + Musiques Conditions @@ -250,7 +250,7 @@ Gold - Not Cleared + Pas Clear Pass @@ -286,7 +286,7 @@ Joueur - Tableau d'achèvements + Tableau de reussite Sauvegarder @@ -304,13 +304,13 @@ Décor de Plaque - Difficulté du tableau d'achèvements + Difficulté du tableau de réussite Afficher le Dan sur la plaque - Afficher le tableau d'achèvements + Afficher le tableau de reussite Mode recherche : Difficulté @@ -352,10 +352,7 @@ Disparition - Inverse - - - Abandon + Inverser Voix @@ -496,7 +493,7 @@ Gold Donderful Combo - Titre / Artiste de la chanson + Titre / Artiste de la musique Recherche par titre ou par artiste @@ -553,13 +550,13 @@ Le code d'accès est requis - " Code d'invitation (facultatif) " + "Code d'invitation (facultatif)" Date de dernière partie - Joué la dernière fois (5 minutes près vers la fin du crédit) + Joué la dernière fois (à 5 minutes près de la fin du crédit) Mot de passe est requis @@ -568,7 +565,7 @@ Confirmer le mot de passe - La confirmation du mot de passe est requise + Vous devez confirmer le mot de passe Erreur inconnue @@ -580,7 +577,7 @@ Ura - Extreme + Oni Difficile @@ -679,6 +676,150 @@ Voulez-vous vraiment supprimer les données de cet utilisateur ? <br />Toutes les données associées seront supprimées et ne pourront pas être récupérées ! - Utilisateur supprimé ! + Utilisateur supprimé. + + + ★ 1 + + + ★ 2 + + + ★ 3 + + + ★ 4 + + + ★ 5 + + + ★ 6 + + + ★ 7 + + + ★ 8 + + + ★ 9 + + + ★ 10 + + + Non validé + + + ID de l'utilisateur + + + Classement + + + Êtes-vous sûr de vouloir vous déconnecter ? + + + Taiko 8 bits + + + Akemi + + + Chinois simplifié + + + Chinois traditionnel + + + Applaudissements + + + Conga + + + Défaut + + + Tambour + + + Désactivé + + + Fantaisiste + + + Désordonné + + + Taiko + + + Festival + + + Chiens & Chats + + + Taiko Deluxe + + + Tambourin + + + Wadadon + + + Oh hisse + + + Don Mecha + + + Funassyi + + + Rap + + + Hosogai + + + Tambour Synthétique + + + Shuriken + + + Bubble Pop + + + Guitare électrique + + + Ura + + + Configurer à chaque fois + + + Pas Full Combo + + + Pas Donderful Combo + + + Japonais + + + Anglais + + + Coréen + + + Passer la chanson \ No newline at end of file diff --git a/TaikoWebUI/Pages/Login.razor.cs b/TaikoWebUI/Pages/Login.razor.cs index 218bebb..be4cdaf 100644 --- a/TaikoWebUI/Pages/Login.razor.cs +++ b/TaikoWebUI/Pages/Login.razor.cs @@ -16,7 +16,7 @@ public partial class Login } BreadcrumbsStateContainer.breadcrumbs.Clear(); - BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Login"], href: "/Login")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Log In"], href: "/Login")); BreadcrumbsStateContainer.NotifyStateChanged(); } diff --git a/TaikoWebUI/Pages/PlayHistory.razor.cs b/TaikoWebUI/Pages/PlayHistory.razor.cs index d9bae87..d8638a8 100644 --- a/TaikoWebUI/Pages/PlayHistory.razor.cs +++ b/TaikoWebUI/Pages/PlayHistory.razor.cs @@ -37,14 +37,6 @@ public partial class PlayHistory userSetting = await Client.GetFromJsonAsync($"api/UserSettings/{Baid}"); - //breadcrumbs - BreadcrumbsStateContainer.breadcrumbs.Clear(); - if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); - else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); - BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); - BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Play History"], href: $"/Users/{Baid}/PlayHistory", disabled: false)); - BreadcrumbsStateContainer.NotifyStateChanged(); - songNameLanguage = await LocalStorage.GetItemAsync("songNameLanguage"); musicDetailDictionary = await GameDataService.GetMusicDetailDictionary(); @@ -64,6 +56,14 @@ public partial class PlayHistory { songHistoryDataList.Sort((data1, data2) => data1.SongNumber.CompareTo(data2.SongNumber)); } + + //breadcrumbs + BreadcrumbsStateContainer.breadcrumbs.Clear(); + if (AuthService.IsLoggedIn && !AuthService.IsAdmin) BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Dashboard"], href: "/")); + else BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Users"], href: "/Users")); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem($"{userSetting?.MyDonName}", href: null, disabled: true)); + BreadcrumbsStateContainer.breadcrumbs.Add(new BreadcrumbItem(Localizer["Play History"], href: $"/Users/{Baid}/PlayHistory", disabled: false)); + BreadcrumbsStateContainer.NotifyStateChanged(); } private static string GetCrownText(CrownType crown)