From 0b65b47e006ffe8f3eb62e0c0ee11ceec45b9e4e Mon Sep 17 00:00:00 2001 From: KIT! Date: Wed, 5 Jun 2024 14:14:17 +0200 Subject: [PATCH 1/3] Added french locale --- .../LocalizationResource.fr-FR.resx | 684 ++++++++++++++++++ TaikoWebUI/TaikoWebUI.csproj | 5 + TaikoWebUI/wwwroot/appsettings.json | 4 + 3 files changed, 693 insertions(+) create mode 100644 TaikoWebUI/Localization/LocalizationResource.fr-FR.resx diff --git a/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx b/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx new file mode 100644 index 0000000..33f1c12 --- /dev/null +++ b/TaikoWebUI/Localization/LocalizationResource.fr-FR.resx @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tableau de bord + + + Utilisateurs + + + Editer le profil + + + Utilisateur + + + Voir les données de jeu + + + Meilleurs Scores + + + Afficher le Code QR + + + Codes d'accès + + + Changer le mot de passe + + + Réinitialiser le mot de passe + + + Supprimer l'utilisateur + + + Bienvenue sur TaikoWebUI ! + + + Chart + + + Niveau + + + Genre + + + Meilleur score + + + Meilleure couronne + + + Meilleur rank + + + Good + + + OK + + + Bad + + + Drumroll + + + Combo MAX + + + Données du mode IA Battle + + + Joué la dernière fois + + + Nombre total de parties + + + Total Clears + + + Nombre total de Full Combos + + + Nombre total de Combos Donderful + + + Charts + + + Cacher + + + Afficher + + + Numéro de section + + + Résultats + + + Score + + + Couronnes + + + Pas de données + + + Veuillez vous connecter en cliquant d'abord sur l'onglet “Utilisateurs”. + + + Total Hits + + + Jauge d'âme + + + Chansons + + + Conditions + + + Red Clear + + + Gold + + + Not Cleared + + + Pass + + + Totaux + + + Details + + + Stage + + + Dani Dojo + + + Profil + + + Options de profil + + + Costume + + + Options de costume + + + Options de jeu + + + Joueur + + + Tableau d'achèvements + + + Sauvegarder + + + Langue + + + Nom + + + Titre + + + Décor de Plaque + + + Difficulté du tableau d'achèvements + + + Afficher le Dan sur la plaque + + + Afficher le tableau d'achèvements + + + Mode recherche : Difficulté + + + Mode recherche : Etoiles + + + Mode recherche : Tri + + + Sélectionner un titre + + + Tête + + + Corps + + + Visage + + + Kigurumi + + + Puchi + + + Couleur du Corps + + + Couleur du Visage + + + Couleur des Membres + + + Disparition + + + Inverse + + + Abandon + + + Voix + + + Vitesse + + + Aléatoire + + + Son de tambour + + + Position des notes + + + Êtes-vous sûr de vouloir réinitialiser le mot de passe de cet utilisateur ? + + + Le mot de passe actuel de l'utilisateur sera alors supprimé et l'utilisateur devra s'inscrire à nouveau. + + + dd/MM/yyyy h:mm:ss tt + + + Créer un code d'invitation + + + Inscription + + + Connexion + + + Déconnexion + + + Données de jeu + + + Ajouter un code d'accès + + + Nouveau code d'accès + + + Supprimer + + + Code d'accès + + + Ancien mot de passe + + + Nouveau mot de passe + + + Confirmer le nouveau mot de passe + + + OK + + + Code QR + + + Chojin + + + 8ème Dan + + + 5ème Dan + + + 5ème Kyuu + + + 1er Dan + + + 1er Kyuu + + + 4ème Dan + + + 4ème Kyuu + + + Gaiden + + + Kuroto + + + Meijin + + + 9ème Dan + + + 2ème Dan + + + 2ème Kyuu + + + 7ème Dan + + + 6ème Dan + + + Tatsujin + + + 10ème Dan + + + 3ème Dan + + + 3ème Kyuu + + + Gold Full Combo + + + Red Donderful Combo + + + Red Full Combo + + + Gold Donderful Combo + + + Titre / Artiste de la chanson + + + Recherche par titre ou par artiste + + + Filtrer par Genre + + + Historique de jeu + + + Aucun historique de jeu trouvé + + + Mot de passe + + + Paramètres + + + Date de jeu + + + Rank + + + Difficulté + + + Chart ID + + + Recherche par titre, artiste ou date + + + Désinscription + + + et + + + autre(s) code(s) d'accès + + + Copier dans le presse papier + + + Code d'invitation + + + Erreur + + + Le code d'accès est requis + + + " Code d'invitation (facultatif) " + + + Date de dernière partie + + + Joué la dernière fois (5 minutes près vers la fin du crédit) + + + Mot de passe est requis + + + Confirmer le mot de passe + + + La confirmation du mot de passe est requise + + + Erreur inconnue + + + Succès + + + Ura + + + Extreme + + + Difficile + + + Normal + + + Facile + + + Rangées par page : + + + UI + + + Ajouter + + + Nouveau code d'accès lié avec succès. + + + Vous n'êtes pas connecté.<br />Veuillez d'abord vous connecter et réessayer. + + + Le nombre maximal de code d'accès est atteint.<br />Veuillez d'abord supprimer un code d'accès. + + + Ce code d'accès a déjà été lié. + + + Le code d'accès ne peut pas être vide.<br />Veuillez saisir un code d'accès valide. + + + Cette action n'est pas autorisée.<br />Seuls les administrateur pouvent modifier le code d'accès d'un autre utilisateur. + + + Seuls les administrateurs peuvent se connecter. + + + Mot de passe changé ! + + + La confirmation du nouveau mot de passe est différent du nouveau mot de passe.<br />Veuillez réessayer. + + + Code d'accès inconnu.<br />Veuillez jouer une partie avec ce code d'accès et réessayer. + + + Le mot de passe actuel est erroné.<br />>Veuillez réessayer. + + + Code d'accès non enregistré.<br />Veuillez d'abord vous inscrire et réessayer. + + + Mot de passe erroné.<br />Vérifiez à nouveau. + + + Seuls les administrateurs peuvent s'inscrire. + + + Code d'accès enregistré avec succès. + + + Le mot de passe de confirmation est différent.<br />Veuillez réessayer. + + + Le code d'accès est déjà enregistré.<br />Veuillez utiliser le mot de passe défini pour vous connecter. + + + Mauvaise date de dernière partie.<br />Si vous avez oublié la date de votre derniere partie, veuillez en jouer une autre avec ce code d'accès ou contacter l'administrateur du serveur! + + + Annuler + + + Impossible de supprimer le dernier code d'accès de l'utilisateur. + + + Code d'accès supprimé avec succès. + + + ID + + + Êtes-vous sûr de vouloir supprimer ce code d'accès ? + + + Actuellement sélectionné : + + + Réinitialiser + + + 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é ! + + \ No newline at end of file diff --git a/TaikoWebUI/TaikoWebUI.csproj b/TaikoWebUI/TaikoWebUI.csproj index c1504dc..3a0b7a5 100644 --- a/TaikoWebUI/TaikoWebUI.csproj +++ b/TaikoWebUI/TaikoWebUI.csproj @@ -79,6 +79,11 @@ + + Designer + LocalizationResource + ResXFileCodeGenerator + Designer ResXFileCodeGenerator diff --git a/TaikoWebUI/wwwroot/appsettings.json b/TaikoWebUI/wwwroot/appsettings.json index f0b1931..d576366 100644 --- a/TaikoWebUI/wwwroot/appsettings.json +++ b/TaikoWebUI/wwwroot/appsettings.json @@ -11,6 +11,10 @@ "CultureCode": "en-US", "DisplayName": "English" }, + { + "CultureCode": "fr-FR", + "DisplayName": "Français" + }, { "CultureCode": "zh-Hans", "DisplayName": "简体中文" From 741962d8bdae98ded9b52e46a03b407bc428b2ec Mon Sep 17 00:00:00 2001 From: KIT! Date: Wed, 5 Jun 2024 14:19:02 +0200 Subject: [PATCH 2/3] Fixed nameplate alignment and clean up Title text still doesn't scale properly when switching from simple nameplates to nameplates with small characters on the right (Text does get resized properly once edited or on page resize event or page reload) --- TaikoWebUI/Pages/Profile.razor | 55 +++++++++--------- .../images/Nameplates/nameplate_Onp_1.png | Bin 11269 -> 10165 bytes 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/TaikoWebUI/Pages/Profile.razor b/TaikoWebUI/Pages/Profile.razor index f241df5..1b1cb95 100644 --- a/TaikoWebUI/Pages/Profile.razor +++ b/TaikoWebUI/Pages/Profile.razor @@ -49,11 +49,11 @@ @if (AuthService.AllowFreeProfileEditing) { - + } else { - + } @Localizer["Select a Title"] @@ -82,8 +82,8 @@ - - + + @@ -126,36 +126,36 @@ @foreach (var index in headUniqueIdList) { - var costumeTitle = GameDataService.GetHeadTitle(costumeList, index); - @index - @costumeTitle + var costumeTitle = GameDataService.GetHeadTitle(costumeList, index); + @index - @costumeTitle } @foreach (var index in bodyUniqueIdList) { - var costumeTitle = GameDataService.GetBodyTitle(costumeList, index); - @index - @costumeTitle + var costumeTitle = GameDataService.GetBodyTitle(costumeList, index); + @index - @costumeTitle } @foreach (var index in faceUniqueIdList) { - var costumeTitle = GameDataService.GetFaceTitle(costumeList, index); - @index - @costumeTitle + var costumeTitle = GameDataService.GetFaceTitle(costumeList, index); + @index - @costumeTitle } @foreach (var index in kigurumiUniqueIdList) { - var costumeTitle = GameDataService.GetKigurumiTitle(costumeList, index); - @index - @costumeTitle + var costumeTitle = GameDataService.GetKigurumiTitle(costumeList, index); + @index - @costumeTitle } @foreach (var index in puchiUniqueIdList) { - var costumeTitle = GameDataService.GetPuchiTitle(costumeList, index); - @index - @costumeTitle + var costumeTitle = GameDataService.GetPuchiTitle(costumeList, index); + @index - @costumeTitle } @@ -203,10 +203,10 @@ - - - - + + + + @@ -272,20 +272,21 @@ } - + + @* Player Nameplate *@ @* Title text *@ - - + + @response.Title @* Name text *@ - + @* Name textoffset to the right for Dan Rank *@ @response.MyDonName @@ -294,7 +295,7 @@ @* Check if image does not exist, use nameplate_Wood.png *@ - + @if (response.IsDisplayDanOnNamePlate) { @@ -313,7 +314,7 @@ @scoresArray[0] - @scoresArray[0] + @scoresArray[0] @* Second row *@ @@ -362,8 +363,8 @@ - @* Forbidden one-liner : Changes the AchievementDisplayDifficulty image asset. When "Difficulty.None" is selected, Defaults to highest difficulty the player currently has crowns / Ranks for. *@ - + @* Forbidden one-liner : Changes the AchievementDisplayDifficulty image asset. When "Difficulty.None" is selected, Defaults to highest difficulty the player currently has crowns / Ranks for. *@ + } @@ -392,7 +393,7 @@ } else { - + } diff --git a/TaikoWebUI/wwwroot/images/Nameplates/nameplate_Onp_1.png b/TaikoWebUI/wwwroot/images/Nameplates/nameplate_Onp_1.png index 90592749994c3b6ff0a9d38dcae1c9ce06f7725e..0e5e69b705c328a53c6da70d84cacc3ae42458d9 100644 GIT binary patch literal 10165 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ȭE^N1{I3@KK-qLLl4#f#c2eaO~agDQjrjp3&HPd)ZS*QnEIkpz-#fF+?{aVvlmX<;fEIzIAC>)?)-XeMQlt=<7SvN!5ck)Pk<$~ z{D4XZ{8q*I{2#te%dQL&_vKJr8!B@GM)T@%Bn){JHmuV*n&j{V9-v!G%syMk$cJwG z<5+)V^H2cxx)2n2M;iyv(ZpqO@WXn;zARTw7eXNib|~KJqZ@V|K_4QLOJ%VCiw~c! zHaiEwh~6mzkiHIXUUO}6uhf}USl@$rB)joF0N)Ps5b7i$q~({075t;)JZ0VixWH$U z?Ih&t$BxU)>Gd*QPwQFrt+zJAik?`&>+% zh`)bz-h3(o1hN0DqW{jKO{UI+`H9EDiTMu!cdjSL<#coW+wU#t=Zn|pXOrlz&xfMb zPKTe^>BxnISsnNPBQaXKg7a_Ng~}B@l*=;$Rm&Xm9UW4W920<>>HM2qH*W`OfCg-2 z-hD1Rt(AmIGbHfB1Rm}>n0#5R=o>QH-@M+jx9bi2XVhVZd=C4%xV;KSRiB~a>2%P= z>Ficym3#T6+(i^^{4YMAVJ92IeiLrr2iwK~{%!9v(iMQPV?59W9@P?}DtY~wul;aO zCuY;m+tswu*2cR*nK!#s5+-je$}&wBW(!%*tYMS`Nw*22Nu-V}e$2;?!>~K}h=IJPQ^Q3te#D(?_lhl$^>hcuPo*%h! zseK&kPE>-_U! zVTLzV@t1bEP0`=mkaVpuYq<<*RoD@!!So6E7dN#Na|3ot_|ly#AQwV*rre?OUZf!{ zxJ`LMp#0xK*vWkGX z*JvvQ&w3SHm7bhf-U)-%YdwuMB6+?0SIO*_s(z1f_fHq}z_CiM^`KG{D@`8f<1m1g zLlx7*sSdRmuR_h=LxW9mc(&yE}l0yv`sCOxP13^{Gg%m9A(!wsCJA!ViCwEY|?M~z+j zKd&3L#ED*o4x68ct_`pCma3turkgBZg=>S;)}tvCx>z<(RbPD61Q5lf*lMlVH9tuf z{W*+9<1+sK;zwS~eO#ENF{XkaJwJTUMTHE~%V_}`fbhP}_q4XuB<1aWsffWYZPlOW z5fn5wKw1<~cF=%p42m@oasDC%^kewN%Qs{i_?0B}Tk*{;j53h0c0^#A_S(SjUB=&> zBnD6jOlT>7Pc@dIOMLdEb>esD@pz50?&dk^ zjypaQ=xX$3xDMyPwsQq=46rqplKgsl&T^r)R%pkU<-39&jMQ`M6HU=*rT1aqlBn7$N@96M7bPZX50!V z0mWVR=M0p7bVp=wp1aZrlTaEb?pJWZ&Erd zUMpD3xWz!-+O_+O(nVhx!5P&V!%O6VgyrkfmY#iCw#%exNz6)#Vh3#UJ>UNka{FO* znGrj!r%}C+R8ap4?jw05*4GE-w_k9>N#M<`V7r*v)0o@^;$NU}jlM(I&8lUK+1Q0^ z5(0wL^Xoz{nFOox0RP`#&vCX!JZQr*`&a@M6#QjhA0LQYu70)xdd9xL<&clHw#~eT zd`>E2(z7^|Y3P^1=`g8iN#}J!;4WePgFbo8Rk{|`bM=|lD9E@?tN=DXh9(7#Nk^=S zo=bh`(=7?Fa15t_COnn~q`C#vkaNA+n0S`-rBb%5P!L5xgu%}Zt=L&D|6hPb*4ZqA zQuyxgRmBeq6>^qg{|_9Str!3R literal 11269 zcmd6N2UL?yw=P9`6_DPg2?Ro@p%>{z1eGo&2{j}@XaN-I3QF%?Q4r}My@S#_O7D;$ zqVy{5;`e?3cmH$Nf6hJUth?^Ivy#cYGkf-a_MT_oTP7h2yP4)F;AxKvdTPV^F zCgSVrb}fyABd_G^W(#qFd2-sp9Gnme+}n+<+?-BO1#S~beW1RZ8qCp2%g+O5>}T)* z;^zVZL%Ed{Ipuw2uNAn$JZ(9BUEv6ntgiz1A9`i4+rPU-xjFw3@pMt(R{3p^(^TJ( zQw`|>($AUzyJ#lT>&C=etH0s*ci04OxV)7BS&K;8a_ zhPyBn#KXzW(+P>-{H@W}4(a8oz{#J`X{S~I`fQkCrx`~R30DrsmhaeR4 zx15`o2mBA?P>3iD4s(SeJWoJIU+rgC`aUfp!)COe`DY}wEFsg+xVAQTwVV* zf$~)MzINlUfc#5o)C05|OwQhW~)f zsiyXOVZfXMCQb+_(g$_tpXR{s+IqqixIsXW1ONyE0Hq&@Ny=V-B&CIbGO|G6pQ8Fm zsFOYV--*gR00LztL9#&5zY)D=4b;}t_Wvjhg~-|?JzQ7+6XQ01^@V1FpWltTqDWX^Vis zwC^f#U&lwp$q6b8v4g?vq$FhkGBS3y02oL@3?KuO7Qgmc8VrI-fT1!F>3__>i-dUn zX2I|Ie{KjU5^}BMf5U@;#ew1=kUaosXD0&?v%S`42ZKsp>jg`~Y^6YUc6QKzXuId( zbiF5S;s31lH!A40Mi5lY9t4pR13*A97yts6kO0`p$bbN1Pzjj5y`7!7w6w%;=Knz^ zSuH2j^)jRX+DpbT_rF?jC(b|kBWnx!y)P8FA-@R$yGHP5x6{9f$A8K4U-Nw&Vb@Ck z6PEmG28Fcu^s)7TsW@E6?!Q7r(f9EhVW!U1-jYDKyK=l=ZH*!d^W zf921=*@*vF{Sp10WdEd^=)Y&-A7lTNkgu2XkFM)1|GWA3@pAp}_W=b%T!+fz`uH)H zxD$$l!?Ub?SLK24%+D-zERV^PbtUwd(e(%Se1<)T-z8(m96evg#)e9;#`B7TY;Xxt z!b`l$N9j`(5IpkY+wdlr5K;09mkf%2u8<~TxQKRnyb3YTD+zKVUGcop-0VF6UoA1; zw;J|+&$|0R^!3U5i)btyzk2`vc2OnBy5$(%y4swQPL0QVUEX~kqZ3FIc1kdq);WC@N-T5%}V9bBcF;A{V^ z&|2ll7j(p#Q}#1B#)^Ma$KQ0~m0H5iNNlkv8f>tE40~*D(2m8Bp6nd%Y&9p5YJE|d zcu5e5GTh3mrPxUd1PPr?QQZ(SyE+_m+1icFYrQvlQj6|)mEOhHEE3|w3Z)QS*GXyIP0%Z zrGIhWz)pD;{`+@ChiuyG6`93P`~nEL@=YMNdM8NXYhZ1Bh>{FWOxB%}fG%~JmUx|f z)cyVf$s1R{T-?n3VLKbL@+YL{nElF^TXTf1Xx@)uw%oXZ9@LLeZVnvh3l!ze`j-gL zTaPn?%9?IKgc!EZhvE{ZqKo-+T1$T2iyrLcU=K~f_V*i;d9!ja+F*RV*e-V{%FEV& zD4QK6wOuLrjbU0YSI)4X^X?|7-8FW=A&%f_FEL~Q6w-do35Z?vThFN9^_s+uwR)M5 zmPLz@GAY@1F^wuDzxoAL>f9Gm$~wcHe7;Azp)MmYhs!Z#(QttwsJmi3Kg?J=1IF(9ylkVry;Csk$JVJ% zXg%#;dxXvUxf4=5d6kjG8nCpu^r_N8JJQ2Vox*pMa%%KWNo(Q5lL>bxime|_z}%NH z$NSA^mx(9mbi1b;!RwxwAw~47=EWGj!SbebVP#N~-gw}Sz$Dy})=S4t-y^jDNer8C zn};L{%_N{JD>!@Uu(S=Pkv-TZO_bZZw@nqM8feeh#UjY?U|PjWg80YQ$jSGtu{ZDs zBrH!cTv||;lBRX^vT+2Z zOs*;~ENSxl>Jq7%Xrejj)BNn$X8rjGmO7MXW%-k*TticB0-H1D zzH7ZX6{RI%{@YKa_p71~IOO|kgrvrWiuWn|e7QegyUdgQVy|baO1W52AnI@kZBD$q zfg-?)vL&8f+6w1aA6-_sFmkNZJa8et+!dLcHgB3S4>7s;5??%UvA@$AlLM*VZL2IR zs@s03YaY8;r`v!G{8mJ&5+(AjkhHd@h+z)lJ1bq?!6MbE&teOSf|rx%vZoM#G`s(L zIZBYeX2;B!yIf(aG-73^(1FV-iNkt1V6Lih!LJ$tV7yJ<)cTri!HWRy7`$%34Dp{l zY7KmPgHp7wGSeVri-2DVE&gNc%ccoKMNPx4bDci_%Yxwr{Q&R8+#)y%d({K(vXE8YCr z2xm$)lMJX2(pkWy`x8?zPIb!pj;KY{#juV<3O@Pqhux8XR#wqA$4SA~KoMo)8GHGH zLrpr>Bj?ms_;hx`RWHlZ&)IiE?@yV>%%73$WO1EzELSOIKPRz1oEuA~hC7ENDf*6) z3xvn#)~37a{4d*rU6(_;Lc9g`lH2s;nZEL)&fnde43r? zqJ!}FZ%RfT3UBn~JiQo}*-IcgJqScoDP&b@Dvn*z2&ozWm|oBqpb^B8FW5W?Jam$3 z0qXDPG>2u^*pGoD^2^)%)v6A>YsTwKH=2TJY?gL_yAP7Lsj^nI&dV4L&h6C=!_&i_ zyN-RVL6G!U+}_(C8v1%16Hs-*QpRlf_$v2;_qO>*Zqe$cre#%O?vmb#Sh(_O#3Ri8 zd)sK%t^^QEX<3E!X%8Y*yE89u?_z=Re4)C$Rt;}IN|Z>X7$3lQJ_9RP#A`JTrFHk+ z5nM_VGAfOj!H2=V?YAJ3i;oQA*zJ4+~zq6dR&X8z3&%53)VNwKHkw2*}WuUqo z(>&TcYDBEmSd?{tf-awsM00T1Z!aiD=P>fqfTo_H`5QJtNm^AWllQ2t`hZuvlkVfU zEU44N`EC^OCr?$NpFGTvjvKluMggD$P2A{P(@C#rXJQ)9&R9KVir{$JYDlWX*0K3I zPZtkFM=%*)-@eiU(hca{npAYx4)IvThg3KguRn9mFga6-Nl&2{2m^>$64$pOc*68+k2^$kKmp9g|Mr1Qv&UB)X_w{x+XCuj4kMl+>e zH8Y1}dH@SW=K_6QAe3h~jNIrN|=;(Uol8GoO$!JWb1ZwbPFTcAt_i6sj zd;eT0p~-ugk1F-+z0)P#)j7YP$&wa{PYvzi8QtOGGLU=D-+8-|^Hqs-Ms_=@#J>{+467}Xxv zVy-|(=_V(X7@BWya=L^)p_nm`E=fiBZqiS$=%OFfjW|RFOUvzJR||83kPq|O{Jyf3 zL=K#*4=!74;o%t*WWuj^*Cgb{h158j^>-TOmI;SVb*3tB7q0J_kZTg(2hmGzb;zon zv>DDxWhKlWDxcomc{q8_Xh?Jx7$3CEs>g5hl-}N<{ql73o5E>5oGw{ zNcXJ1I`={!oBKW+*XbFf<`H_*+IL!yYdv-dOPDuzH?%?wH-Ok@>67W#$5(e+=BX(u z1KpPz3v6a|u~;=Oj#io@q(HSyPFk2~R;W_L2jX5(l<5~-$n=?!p|jVoF0%s05X6{m zGcH$2bng#b-`+3?3FDCRTzHtwfL_OmOi@_JZ^hqtHmvpH2h9l#OR>W2vfz%OG-O5UtdCUg zjpwsRCzwMU^nK-xS{^d@65Wi1P`7$l+H))-=*34tUb_8qVe?d))ERI$(Ax6ZFxz3@ zx_k&orl~K7cPmmgqHHVMoM14#XreQ)p^}d0miTmVooL6#PS3FbjcVs zsD^ygG)UA`D{8M->^Wn3Ba?Sc`{AZgBQ{3AeZIy0O?$iOE1m>rv#B>4=fE;`qI3z8 zz9sKKCE#X9D1L~PFc_E>>`Ry*VT+)wG-ER1TNf(Bi2soFB+9u6i5dGktzvJN{^Lic zu+Xdu@!cr~V>;%Upw=gun>i`Fxg7JA*^{kjQsMdZ_2}V=5A?9x=8p$CC7xGnMA3T) zc8|O$v{PC-J)+8DUGC{1LW3`-s|a9f$ryE9j2xwDH@rxK4;|MXl|x`=DJ9iefbdqB zv_%u&Yxt@PQn!YIOW!jm*u1>0qC=iejsjmmK*mXkLt@FP9SSwU__u9Ytlb zuBCVa;Jc~$8!^sDAv)7_{iG^`>1SHnx|O4h_T{UEgo^iv36MCkhtXWTHV@nCh`M16 z@gjQqopzRrWV(1`Ce6Ca8*7%{Yz-l`KejQ0J}vBV)v12FjLAQ#K@=JVD?jR+EKXET z@5OMeY(?-pT2+_l@h!IUc5QAq1hr&S<};XV{6x6aJryZ=+Y5E|Yn+wwvkNb(@wvH2 z5uM3s#@Ui8fR8~Lqt4;Zazyr*7)#|lw$o)+SGxF^vp~M8*+RN95wz6-^5;#sH9xVx zSg$;e{f2IM!r%N&lyuw^X0VsYj-aW)T2q*|x(Ycr=i zENM3{+x#rhAFbhjV(GE2p4Rq`AALZR-@dSGd@k zg2e*U3YjPs7lyZ7YEjNMi4+xByz@}PLU^?1)v{*Op%z|$(X!G7Rr5i!JrUq$$WIID z6HcSEfSBy`<-Qh?n`@Zt_XV%^?f%A12%XISl&)zJfs)U{--@Bv(=qV|?;P1cI z_I0E4>lk4Rsu$LCXp_+-8>b$DcF2i_EZCd53kBuJlLU9PQ8B8GPC==g(_Zo?3oj;xN0!SRt*H;0@vW7 z$YKvxW}|tBMX9tW!_UcWx`Rx~Yf4jM^$4@T+$avdS2TE}% ziQYs1+6OCi5%;2(1DbQ@S3i$lQCYEICVUpgfCA%Y83}o0mbIw7R4bkMzA1C-?S>9f zzHa*Jcc%{p+1m6#y$QEN0vzB!GF3=yW{=LmG{3s8lkY6M!uYMtpBX~uar@u#V3&y* z`X?hvA|>~OHiAZX?Bc_z679{%tB8$UDZ~cUqDJi6BsU|wJ>X0&QiN60-^WEi@M`Ya zP)2d{>?17lCb9z=AzZKDB&DP%EgLz>x{urvz2kE6!zLkc-lanppF6$ypwuUtj8b?e z_U1@_r= zWODfzR!5hRAp`J}FZ!y21Q6rc=Y8%OIM@7AUf+>E{j}Yb)qf_HS61w{@=m28{oupl z&+cKW^1})hsaJFb;Fe0>Pv0&}noet699^To+`xRA6J&F}KgvoWCSP5A=v^K8oPo;f zMFFFnxXI(jFpZg-G;N-f)3tAC{CA-kUrpd+bh~nzPkqtn9uY50jL)`TI|a*)<@cLG z_xI-zgAV%1_{NkRg60Y9%$<7EJDT|AYtO6jFePkm4+jF9zgs-v9d0*N4!aX`I#8eM ziQ}hEJ^7p~l5lS8eB&rISJcQk=;6%8bB7&Eb`g#g)8U7RyN9Z`lkDoe7t9aXg+LD? z3EnobmD*zxyFNdxXY6t=?ej9w)-{sy?14qn!`Ks}hd&H7E|iizBL1kgOYVKKR`SEq zY-xe&im<{|?t0gaC5-c4Nz2xLnxJ3{JGKt|ki(Lbey7c-llRsr+V7tD>~=%)&qgB>iiFy7#wU z=a!W`{PJp=z>mhbt=bk`T{-$>=9cVRvSj#Z|CQWrPLVa?)R&anRF>Kn+15jG`^WsW z<%uC_Zv&`uF##cGY$R$|!3Ex3$eZZdJ5RfNLq=Fc2D~UVKQSWt{Dj$*4F8a6LvT!jSWeCSS zvwdctC!cR#7%|5YvgOFe>HO8?yN3{z<1SZa!9&8BM{*lRqw^*A>-UX?UAc%%ty$vn zONS>86)YyF%bZ8wlG|*=_IJ~UdFJfeINk29$Y(XJwv{1RB{9`YvKTlme8Y_dn14=1 zv3t~{wAX~mzt7w$*0JvCKN97%Qxl+Ck{7_&Rd*~>f-J^S(b*KvN*NoY$PaTkX+U)W zC_QrWL6=#n657F0YE@Z1@|S~d2XPE_s~9>!+SnHKeOX$bNiAx&#D8P+XYrOo$y-J? zOX18V&pul<<57OAp_z^s%;xrzoue<@H{Q%LWm}vZ;U=$>>R7HjxlaYG65wN+BgW72 zD!$(5-;b*8scvE!VtLX9U-S+3Tnn7g};`(})f!`_h(U@h~T7$JRv((PF~4{GjcN3S)* zW|Qb&WBP2Bz>{+9%Pi&Fv#+<5r-I7K{Mc)7Qxsus6LH9j%{7Oq-#pt}XvEdxF_J&d zTQ{4exnr7uj;b8FzXoqPzN<9Jmiij`K|V_E%j7^CVM70+FK^>7KS!73BHOt zfLO1`1ede(U5XO&MC0D#Z?4hKMBx#=Y-yOijM}Q=*-XpSJ8gTJ03C`Rx{|)@+muBG zn1W3@mPl=@h$S(f(&up6Yc*B<*y3a*DP3BtnfU83u>m6+=O7vTr)OG(m+mx25}k5V ziIj?zQY)k6nOdp|TG+S;2BcrnTp_xjMx&-NK&vke$A~4QYqYG zzAB)Hj%Pp2I&5>qEy4{asii}7x~JCK3?&b{Zxgx4usF@~LR4nLUp{)^z2eXT+iZ0dXTBhcelYl@3m2I$);sNtv)+2$$8{%Wc=K8#Ks5-a4#n#oSA#FE{C#&Qz1(UJoy*qK|kg_F+(7sRw{B zeq|~<1n-*-=kQ#81&RGa_U(V z2;1mgUh9BAI0~HFSsCErPqut2e*q+E9QJ8(!8hvXE4$#q%7K)AM(3CqKK*_$7Llj% z<0;O~mH0;`875%7nlf6;32dV4q%)qe5IGkJKl$zbz4wV?lcZ(*u`x`JfqH%GWK>5ppj#;u;O<$?+PN>e!{EWbH2LnmXNCb>3m)*s*Awtu22 zcl2HGMf)BlI1Umd6ey zY%_Rc2r+jE8A)pZ(>Fi&i?8RI{w!KNn8Z#fDcnMW?)z9QS!(FVvD8}H=geT$E;i|E zT^oKuWksl(1U}#na6CI~<5peEAYUfy>+Na(7iN&At7ae6g_p^)J&GrMXenP@xGX=- zO0NRtLX;eJ{VH2tSk#Qur&=K1(l&)s6J|}>hZE1}=JlrFy?x`)qLC)O zZN24u-<)aS&fXzhji^e)3u|S)GoZCn5R!D+SU=%{ zLK|vGI7&i)NUg{@O)`wnjS*BJ9HZLySAk-HNejSq4!~+l%b;WI`asZ=yMe{7Q2E7N zQZ?LL94@K-v6@{wZ}0_Z#+32QH*+-YmVJuRfp=}BJWojO4O5c-qZ+q>$WurHYkFF@ zX^-8IgIJ}3&7jJ*-?3C@KK)dE^d$05)*XqYo)MN;@s$8pt5wXj6CoCIK6_v+sZz)k zJjM5Iq4=hg$k4Nl{dq>Wb47hQWbSzp`pkP=BG5?E#fRj>Al*T=OcGyD8A&8&_FaNm zXh!&psG!H?tZI)z-2xS={oS_oCAzhr(!Y%AcEIh?2yBzfNRV+2>z2`^78RXQ^_jP3 zGi~H^JG(v_jM$dnMd?Nq)Ab9^K<}qs9ZGv+P-#YMcl5?B=Zz=ceFebeu9GIh%^uS? zwdsstB9EHk6)%iKFZ@(+hf_%xtE2kN!D_vu;UiyT$H>N6nHF*Bx8M?%*Nym<^sH=Q zt7_#Rje74UBhj)~;6b|u1&vKUgP8VOJ*aE&?ATcwp8EICg z_6RYNVISvg%Ej~q*u~43JK|*8^coBmmJz;EgC0_9QijT^#8NdiWAm0^8Ksn(ZwOMc zl$z)2df_Q4Xm^j7{P`RXU>_LziNxy?O~rxt#s1+W8xKv>LqC%&2Fgv(eqQcLSSLsf zY+gFAuw~2s9gTEqsGLey+S0TypitY?BJ{BXs28&Or z1lF6MrKfR`biL=w(XVp;RJ}qvf5~T454wpD%n1#3V8YINUwTcHvRAzf=aH!Lnt%=Z zteA%lcQSuW8(|85#WgiSA?JrdQTAY$)`**AaQfYm$W2W=F)`;6JXWkTmEpf1R6D!kkT+t#=6Ct`efM-VHZQq`GiJ>!y#RZ8r*ONIb zi0etYNS4iWXhp*>*P5Q~2{E;hHFa{(p29pTll?k_y*uxmJ*f`W=c4^V1bHmt{>4LZE<&GsY7QdH#G6_)+h%95P z4VV@VJd9!-ndfUAXOG)HbQ`_pZKVYz0BaVp>+C+ArH?C0mup)iJ-DZ3N?2uGL&k+a zA>G*}b((>t{*=y{o$M3O8s*es$u>KsW8jcaH=oIz1=&zEd2V89>b@nU@(Nx`#*-am+MhQI>W$6FwJz zZkr=lVhXgzO-v{8%lMeA7M=MH3X7~t`p~F3bbE`eOJSWXQHcogfqA^XZLGR0_@|Wy zm?wlnO{jt>N@&9QQk3vLGpj~E$$h_^q-SA;M0Sb!!|8flz~&E05s0xsgMINtZ8#^b7@U8eU8-c+!j-3Nl+f zYf?`j8DQ1^g%xV-uxL`F>plgubF$qJpcokywptnDBS|iO-t?riLCa}CejCq0-_)SP znb2rjaCbbQ8`9D6{szWbqhTl{iYB&RmHDxvWY}7TXKhE>e0!ZJ}yO_7o53!~}wK}IL8md96-Y%uHRt5k^+XQEhHU&mFl z%4VqYwn<3n8@PXj6JqUsy}yh6T5t75;E#lzC7uOe=I`V6omq)gQq*fi8As6PHnxHN z^`o5?wuow}>^BPb;?@kwz%i3F%1A`RarBm&5qy zuiucdQ}k1cr;>k~jH4HfzFHQ_4B!^X5$?DHkm09g1jpW)sQu9D9+_N_KxRq2xQ#2k zD3jlEVlqX0;g7S0?tC@0)$bRUrj?2lL6lz~fO=_ak@&7ooo{tymKHOhoT(?f8nrR= zFk~SaW}A`k>YQ%xx8csEvrPi5<7N;!OG(ICKIw3sLJWg<)tU?!om`0%b*{^ml5UWZ s_I3I1*8d+)_|t{|3&1wsY+T{KvU@5Oi Date: Wed, 5 Jun 2024 15:07:24 +0200 Subject: [PATCH 3/3] Fixed MudTable layout on mobile Currently making it horizontally scrollable. While this is not ideal it allows using the UI on mobile at all. --- TaikoWebUI/Components/Song/PlayHistoryCard.razor | 2 +- TaikoWebUI/Components/Song/SongLeaderboardCard.razor | 2 +- TaikoWebUI/Pages/HighScores.razor | 2 +- TaikoWebUI/Pages/PlayHistory.razor | 4 ++-- TaikoWebUI/Pages/SongList.razor | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/TaikoWebUI/Components/Song/PlayHistoryCard.razor b/TaikoWebUI/Components/Song/PlayHistoryCard.razor index 0122e60..8e8749b 100644 --- a/TaikoWebUI/Components/Song/PlayHistoryCard.razor +++ b/TaikoWebUI/Components/Song/PlayHistoryCard.razor @@ -11,7 +11,7 @@ @if (Items.Count > 0) { - + diff --git a/TaikoWebUI/Components/Song/SongLeaderboardCard.razor b/TaikoWebUI/Components/Song/SongLeaderboardCard.razor index bdd852e..bc46007 100644 --- a/TaikoWebUI/Components/Song/SongLeaderboardCard.razor +++ b/TaikoWebUI/Components/Song/SongLeaderboardCard.razor @@ -44,7 +44,7 @@ } else { - + @Localizer["Rank"] @Localizer["Player"] diff --git a/TaikoWebUI/Pages/HighScores.razor b/TaikoWebUI/Pages/HighScores.razor index c83b4c8..9df98eb 100644 --- a/TaikoWebUI/Pages/HighScores.razor +++ b/TaikoWebUI/Pages/HighScores.razor @@ -37,7 +37,7 @@ @if (songBestDataMap.TryGetValue(difficulty, out var value)) { // Rows per page 25 - + @Localizer["Song Name"] diff --git a/TaikoWebUI/Pages/PlayHistory.razor b/TaikoWebUI/Pages/PlayHistory.razor index 2f67919..1882afd 100644 --- a/TaikoWebUI/Pages/PlayHistory.razor +++ b/TaikoWebUI/Pages/PlayHistory.razor @@ -35,7 +35,7 @@ else { - + @@ -69,7 +69,7 @@ - + @Localizer["Difficulty"] @Localizer["Level"] diff --git a/TaikoWebUI/Pages/SongList.razor b/TaikoWebUI/Pages/SongList.razor index 8d14ab1..40eec12 100644 --- a/TaikoWebUI/Pages/SongList.razor +++ b/TaikoWebUI/Pages/SongList.razor @@ -28,7 +28,7 @@ else { - +