1
0
mirror of synced 2024-11-28 00:20:53 +01:00

Merged and changed some layouts

This commit is contained in:
S-Sebb 2024-06-05 14:51:01 +01:00
commit 9ebaa971fa
16 changed files with 764 additions and 47 deletions

View File

@ -11,7 +11,7 @@
@if (Items.Count > 0)
{
<MudCardContent Class="pa-0">
<MudTable Items="Items" Elevation="0" Striped="true" Dense="true">
<MudTable Items="Items" Elevation="0" Striped="true" Dense="true" Breakpoint=Breakpoint.None>
<HeaderContent>
<MudTh>
<MudTableSortLabel InitialDirection="SortDirection.Descending" T="SongHistoryData" SortBy="x => x.PlayTime">

View File

@ -44,7 +44,7 @@
}
else
{
<MudTable Loading="isLoading" Items="@response.Leaderboard" Class="leaderboard-table" Elevation="0" Outlined="false" Dense="true" Striped="true">
<MudTable Loading="isLoading" Items="@response.Leaderboard" Class="leaderboard-table" Elevation="0" Outlined="false" Dense="true" Striped="true" Breakpoint=Breakpoint.None>
<HeaderContent>
<MudTh>@Localizer["Rank"]</MudTh>
<MudTh>@Localizer["Player"]</MudTh>

View File

@ -851,6 +851,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Leaderboard {
get {
return ResourceManager.GetString("Leaderboard", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>

View File

@ -816,4 +816,7 @@
<data name="Log Out Confirm" xml:space="preserve">
<value>Are you sure you want to log out?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>Leaderboard</value>
</data>
</root>

View File

@ -0,0 +1,684 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Dashboard" xml:space="preserve">
<value>Tableau de bord</value>
</data>
<data name="Users" xml:space="preserve">
<value>Utilisateurs</value>
</data>
<data name="Edit profile" xml:space="preserve">
<value>Editer le profil</value>
</data>
<data name="User" xml:space="preserve">
<value>Utilisateur</value>
</data>
<data name="View Play Data" xml:space="preserve">
<value>Voir les données de jeu</value>
</data>
<data name="High Scores" xml:space="preserve">
<value>Meilleurs Scores</value>
</data>
<data name="Show QR Code" xml:space="preserve">
<value>Afficher le Code QR</value>
</data>
<data name="Access Codes" xml:space="preserve">
<value>Codes d'accès</value>
</data>
<data name="Change Password" xml:space="preserve">
<value>Changer le mot de passe</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>Réinitialiser le mot de passe</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>Supprimer l'utilisateur</value>
</data>
<data name="Welcome to TaikoWebUI!" xml:space="preserve">
<value>Bienvenue sur TaikoWebUI !</value>
</data>
<data name="Song Name" xml:space="preserve">
<value>Chart</value>
</data>
<data name="Level" xml:space="preserve">
<value>Niveau</value>
</data>
<data name="Genre" xml:space="preserve">
<value>Genre</value>
</data>
<data name="Best Score" xml:space="preserve">
<value>Meilleur score</value>
</data>
<data name="Best Crown" xml:space="preserve">
<value>Meilleure couronne</value>
</data>
<data name="Best Rank" xml:space="preserve">
<value>Meilleur rank</value>
</data>
<data name="Good" xml:space="preserve">
<value>Good</value>
</data>
<data name="OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="Bad" xml:space="preserve">
<value>Bad</value>
</data>
<data name="Drumroll" xml:space="preserve">
<value>Drumroll</value>
</data>
<data name="MAX Combo" xml:space="preserve">
<value>Combo MAX</value>
</data>
<data name="AI Battle Data" xml:space="preserve">
<value>Données du mode IA Battle</value>
</data>
<data name="Last Played" xml:space="preserve">
<value>Joué la dernière fois</value>
</data>
<data name="Total Credits Played" xml:space="preserve">
<value>Nombre total de parties</value>
</data>
<data name="Total Clears" xml:space="preserve">
<value>Total Clears</value>
</data>
<data name="Total Full Combos" xml:space="preserve">
<value>Nombre total de Full Combos</value>
</data>
<data name="Total Donderful Combos" xml:space="preserve">
<value>Nombre total de Combos Donderful</value>
</data>
<data name="Song List" xml:space="preserve">
<value>Charts</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Cacher</value>
</data>
<data name="Show" xml:space="preserve">
<value>Afficher</value>
</data>
<data name="Section No." xml:space="preserve">
<value>Numéro de section</value>
</data>
<data name="Result" xml:space="preserve">
<value>Résultats</value>
</data>
<data name="Score" xml:space="preserve">
<value>Score</value>
</data>
<data name="Crown" xml:space="preserve">
<value>Couronnes</value>
</data>
<data name="No data." xml:space="preserve">
<value>Pas de données</value>
</data>
<data name="Log In First" xml:space="preserve">
<value>Veuillez vous connecter en cliquant d'abord sur l'onglet “Utilisateurs”.</value>
</data>
<data name="Total Hits" xml:space="preserve">
<value>Total Hits</value>
</data>
<data name="Soul Gauge" xml:space="preserve">
<value>Jauge d'âme</value>
</data>
<data name="Course Songs" xml:space="preserve">
<value>Chansons</value>
</data>
<data name="Conditions" xml:space="preserve">
<value>Conditions</value>
</data>
<data name="Red" xml:space="preserve">
<value>Red Clear</value>
</data>
<data name="Gold" xml:space="preserve">
<value>Gold</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>Not Cleared</value>
</data>
<data name="Pass" xml:space="preserve">
<value>Pass</value>
</data>
<data name="Totals" xml:space="preserve">
<value>Totaux</value>
</data>
<data name="Details" xml:space="preserve">
<value>Details</value>
</data>
<data name="Stage" xml:space="preserve">
<value>Stage</value>
</data>
<data name="Dani Dojo" xml:space="preserve">
<value>Dani Dojo</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profil</value>
</data>
<data name="Profile Options" xml:space="preserve">
<value>Options de profil</value>
</data>
<data name="Costume" xml:space="preserve">
<value>Costume</value>
</data>
<data name="Costume Options" xml:space="preserve">
<value>Options de costume</value>
</data>
<data name="Song Options" xml:space="preserve">
<value>Options de jeu</value>
</data>
<data name="Player" xml:space="preserve">
<value>Joueur</value>
</data>
<data name="Achievement Panel" xml:space="preserve">
<value>Tableau d'achèvements</value>
</data>
<data name="Save" xml:space="preserve">
<value>Sauvegarder</value>
</data>
<data name="Language" xml:space="preserve">
<value>Langue</value>
</data>
<data name="Name" xml:space="preserve">
<value>Nom</value>
</data>
<data name="Title" xml:space="preserve">
<value>Titre</value>
</data>
<data name="Title Plate" xml:space="preserve">
<value>Décor de Plaque</value>
</data>
<data name="Achievement Panel Difficulty" xml:space="preserve">
<value>Difficulté du tableau d'achèvements</value>
</data>
<data name="Display Dan Rank on Name Plate" xml:space="preserve">
<value>Afficher le Dan sur la plaque</value>
</data>
<data name="Display Achievement Panel" xml:space="preserve">
<value>Afficher le tableau d'achèvements</value>
</data>
<data name="Difficulty Setting Course" xml:space="preserve">
<value>Mode recherche : Difficulté</value>
</data>
<data name="Difficulty Setting Star" xml:space="preserve">
<value>Mode recherche : Etoiles</value>
</data>
<data name="Difficulty Setting Sort" xml:space="preserve">
<value>Mode recherche : Tri</value>
</data>
<data name="Select a Title" xml:space="preserve">
<value>Sélectionner un titre</value>
</data>
<data name="Head" xml:space="preserve">
<value>Tête</value>
</data>
<data name="Body" xml:space="preserve">
<value>Corps</value>
</data>
<data name="Face" xml:space="preserve">
<value>Visage</value>
</data>
<data name="Kigurumi" xml:space="preserve">
<value>Kigurumi</value>
</data>
<data name="Puchi" xml:space="preserve">
<value>Puchi</value>
</data>
<data name="Body Color" xml:space="preserve">
<value>Couleur du Corps</value>
</data>
<data name="Face Color" xml:space="preserve">
<value>Couleur du Visage</value>
</data>
<data name="Limb Color" xml:space="preserve">
<value>Couleur des Membres</value>
</data>
<data name="Vanish" xml:space="preserve">
<value>Disparition</value>
</data>
<data name="Inverse" xml:space="preserve">
<value>Inverse</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>Abandon</value>
</data>
<data name="Voice" xml:space="preserve">
<value>Voix</value>
</data>
<data name="Speed" xml:space="preserve">
<value>Vitesse</value>
</data>
<data name="Random" xml:space="preserve">
<value>Aléatoire</value>
</data>
<data name="Tone" xml:space="preserve">
<value>Son de tambour</value>
</data>
<data name="Notes Position" xml:space="preserve">
<value>Position des notes</value>
</data>
<data name="Reset Password Confirm 1" xml:space="preserve">
<value>Êtes-vous sûr de vouloir réinitialiser le mot de passe de cet utilisateur ?</value>
</data>
<data name="Reset Password Confirm 2" xml:space="preserve">
<value>Le mot de passe actuel de l'utilisateur sera alors supprimé et l'utilisateur devra s'inscrire à nouveau.</value>
</data>
<data name="DateFormat" xml:space="preserve">
<value>dd/MM/yyyy h:mm:ss tt</value>
</data>
<data name="Generate Invite Code" xml:space="preserve">
<value>Créer un code d'invitation</value>
</data>
<data name="Register" xml:space="preserve">
<value>Inscription</value>
</data>
<data name="Log In" xml:space="preserve">
<value>Connexion</value>
</data>
<data name="Log Out" xml:space="preserve">
<value>Déconnexion</value>
</data>
<data name="Play Data" xml:space="preserve">
<value>Données de jeu</value>
</data>
<data name="Add Access Code" xml:space="preserve">
<value>Ajouter un code d'accès</value>
</data>
<data name="New Access Code" xml:space="preserve">
<value>Nouveau code d'accès</value>
</data>
<data name="Delete" xml:space="preserve">
<value>Supprimer</value>
</data>
<data name="Access Code" xml:space="preserve">
<value>Code d'accès</value>
</data>
<data name="Old Password" xml:space="preserve">
<value>Ancien mot de passe</value>
</data>
<data name="New Password" xml:space="preserve">
<value>Nouveau mot de passe</value>
</data>
<data name="Confirm New Password" xml:space="preserve">
<value>Confirmer le nouveau mot de passe</value>
</data>
<data name="Dialog OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="QR Code" xml:space="preserve">
<value>Code QR</value>
</data>
<data name="Chojin" xml:space="preserve">
<value>Chojin</value>
</data>
<data name="Eighth Dan" xml:space="preserve">
<value>8ème Dan</value>
</data>
<data name="Fifth Dan" xml:space="preserve">
<value>5ème Dan</value>
</data>
<data name="Fifth Kyuu" xml:space="preserve">
<value>5ème Kyuu</value>
</data>
<data name="First Dan" xml:space="preserve">
<value>1er Dan</value>
</data>
<data name="First Kyuu" xml:space="preserve">
<value>1er Kyuu</value>
</data>
<data name="Fourth Dan" xml:space="preserve">
<value>4ème Dan</value>
</data>
<data name="Fourth Kyuu" xml:space="preserve">
<value>4ème Kyuu</value>
</data>
<data name="Gaiden" xml:space="preserve">
<value>Gaiden</value>
</data>
<data name="Kuroto" xml:space="preserve">
<value>Kuroto</value>
</data>
<data name="Meijin" xml:space="preserve">
<value>Meijin</value>
</data>
<data name="Ninth Dan" xml:space="preserve">
<value>9ème Dan</value>
</data>
<data name="Second Dan" xml:space="preserve">
<value>2ème Dan</value>
</data>
<data name="Second Kyuu" xml:space="preserve">
<value>2ème Kyuu</value>
</data>
<data name="Seventh Dan" xml:space="preserve">
<value>7ème Dan</value>
</data>
<data name="Sixth Dan" xml:space="preserve">
<value>6ème Dan</value>
</data>
<data name="Tatsujin" xml:space="preserve">
<value>Tatsujin</value>
</data>
<data name="Tenth Dan" xml:space="preserve">
<value>10ème Dan</value>
</data>
<data name="Third Dan" xml:space="preserve">
<value>3ème Dan</value>
</data>
<data name="Third Kyuu" xml:space="preserve">
<value>3ème Kyuu</value>
</data>
<data name="Gold Full Combo" xml:space="preserve">
<value>Gold Full Combo</value>
</data>
<data name="Red Donderful Combo" xml:space="preserve">
<value>Red Donderful Combo</value>
</data>
<data name="Red Full Combo" xml:space="preserve">
<value>Red Full Combo</value>
</data>
<data name="Gold Donderful Combo" xml:space="preserve">
<value>Gold Donderful Combo</value>
</data>
<data name="Song Title / Artist" xml:space="preserve">
<value>Titre / Artiste de la chanson</value>
</data>
<data name="Search by Title or Artist" xml:space="preserve">
<value>Recherche par titre ou par artiste</value>
</data>
<data name="Filter by Genre" xml:space="preserve">
<value>Filtrer par Genre</value>
</data>
<data name="Play History" xml:space="preserve">
<value>Historique de jeu</value>
</data>
<data name="No Play History Found" xml:space="preserve">
<value>Aucun historique de jeu trouvé</value>
</data>
<data name="Password" xml:space="preserve">
<value>Mot de passe</value>
</data>
<data name="Settings" xml:space="preserve">
<value>Paramètres</value>
</data>
<data name="Play Time" xml:space="preserve">
<value>Date de jeu</value>
</data>
<data name="Rank" xml:space="preserve">
<value>Rank</value>
</data>
<data name="Difficulty" xml:space="preserve">
<value>Difficulté</value>
</data>
<data name="Song Number" xml:space="preserve">
<value>Chart ID</value>
</data>
<data name="Search by Title, Artist or Date" xml:space="preserve">
<value>Recherche par titre, artiste ou date</value>
</data>
<data name="Unregister" xml:space="preserve">
<value>Désinscription</value>
</data>
<data name="And" xml:space="preserve">
<value>et</value>
</data>
<data name="other access code(s)" xml:space="preserve">
<value>autre(s) code(s) d'accès</value>
</data>
<data name="Copy to Clipboard" xml:space="preserve">
<value>Copier dans le presse papier</value>
</data>
<data name="Invite Code" xml:space="preserve">
<value>Code d'invitation</value>
</data>
<data name="Error" xml:space="preserve">
<value>Erreur</value>
</data>
<data name="Access Code is Required" xml:space="preserve">
<value>Le code d'accès est requis</value>
</data>
<data name="&quot;Invite Code (Optional)&quot;" xml:space="preserve">
<value>" Code d'invitation (facultatif) "</value>
</data>
<data name="Last Play Date" xml:space="preserve">
<value>Date de dernière partie</value>
</data>
<data name="Last Play Time(5 Min Around Credit End)" xml:space="preserve">
<value>Joué la dernière fois (5 minutes près vers la fin du crédit)</value>
</data>
<data name="Password is Required" xml:space="preserve">
<value>Mot de passe est requis</value>
</data>
<data name="Confirm Password" xml:space="preserve">
<value>Confirmer le mot de passe</value>
</data>
<data name="Confirm Password is Required" xml:space="preserve">
<value>La confirmation du mot de passe est requise</value>
</data>
<data name="Unknown Error" xml:space="preserve">
<value>Erreur inconnue</value>
</data>
<data name="Success" xml:space="preserve">
<value>Succès</value>
</data>
<data name="Ura Oni" xml:space="preserve">
<value>Ura</value>
</data>
<data name="Oni" xml:space="preserve">
<value>Extreme</value>
</data>
<data name="Hard" xml:space="preserve">
<value>Difficile</value>
</data>
<data name="Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="Easy" xml:space="preserve">
<value>Facile</value>
</data>
<data name="Rows Per Page:" xml:space="preserve">
<value>Rangées par page :</value>
</data>
<data name="UI" xml:space="preserve">
<value>UI</value>
</data>
<data name="Add" xml:space="preserve">
<value>Ajouter</value>
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value>Nouveau code d'accès lié avec succès.</value>
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value>Vous n'êtes pas connecté.&lt;br /&gt;Veuillez d'abord vous connecter et réessayer.</value>
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value>Le nombre maximal de code d'accès est atteint.&lt;br /&gt;Veuillez d'abord supprimer un code d'accès.</value>
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value>Ce code d'accès a déjà été lié.</value>
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value>Le code d'accès ne peut pas être vide.&lt;br /&gt;Veuillez saisir un code d'accès valide.</value>
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value>Cette action n'est pas autorisée.&lt;br /&gt;Seuls les administrateur pouvent modifier le code d'accès d'un autre utilisateur.</value>
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value>Seuls les administrateurs peuvent se connecter.</value>
</data>
<data name="Change Password Success" xml:space="preserve">
<value>Mot de passe changé !</value>
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value>La confirmation du nouveau mot de passe est différent du nouveau mot de passe.&lt;br /&gt;Veuillez réessayer.</value>
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value>Code d'accès inconnu.&lt;br /&gt;Veuillez jouer une partie avec ce code d'accès et réessayer.</value>
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value>Le mot de passe actuel est erroné.&lt;br /&gt;&gt;Veuillez réessayer.</value>
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value>Code d'accès non enregistré.&lt;br /&gt;Veuillez d'abord vous inscrire et réessayer.</value>
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value>Mot de passe erroné.&lt;br /&gt;Vérifiez à nouveau.</value>
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value>Seuls les administrateurs peuvent s'inscrire.</value>
</data>
<data name="Register Success" xml:space="preserve">
<value>Code d'accès enregistré avec succès.</value>
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value>Le mot de passe de confirmation est différent.&lt;br /&gt;Veuillez réessayer.</value>
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value>Le code d'accès est déjà enregistré.&lt;br /&gt;Veuillez utiliser le mot de passe défini pour vous connecter.</value>
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value>Mauvaise date de dernière partie.&lt;br /&gt;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!</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>Annuler</value>
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value>Impossible de supprimer le dernier code d'accès de l'utilisateur.</value>
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value>Code d'accès supprimé avec succès.</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value>Êtes-vous sûr de vouloir supprimer ce code d'accès ?</value>
</data>
<data name="Currently Selected:" xml:space="preserve">
<value>Actuellement sélectionné :</value>
</data>
<data name="Reset" xml:space="preserve">
<value>Réinitialiser</value>
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value>Voulez-vous vraiment supprimer les données de cet utilisateur ? &lt;br /&gt;Toutes les données associées seront supprimées et ne pourront pas être récupérées !</value>
</data>
<data name="Delete User Success" xml:space="preserve">
<value>Utilisateur supprimé !</value>
</data>
</root>

View File

@ -816,4 +816,7 @@
<data name="Log Out Confirm" xml:space="preserve">
<value>ログアウトしてもよろしいですか?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>ランキング</value>
</data>
</root>

View File

@ -624,4 +624,7 @@
<data name="Log Out Confirm" xml:space="preserve">
<value />
</data>
<data name="Leaderboard" xml:space="preserve">
<value />
</data>
</root>

View File

@ -816,4 +816,7 @@
<data name="Log Out Confirm" xml:space="preserve">
<value>您确定要登出吗?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>排行榜</value>
</data>
</root>

View File

@ -816,4 +816,7 @@
<data name="Log Out Confirm" xml:space="preserve">
<value>您確定要登出嗎?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>排行榜</value>
</data>
</root>

View File

@ -37,7 +37,7 @@
@if (songBestDataMap.TryGetValue(difficulty, out var value))
{
// Rows per page 25
<MudTable Items="@value" Elevation="0" Striped="true" RowsPerPage="25">
<MudTable Items="@value" Elevation="0" Striped="true" RowsPerPage="25" Breakpoint=Breakpoint.None>
<HeaderContent>
<MudTh>
<MudText Typo="Typo.body2" Style="font-weight:bold">@Localizer["Song Name"]</MudText>

View File

@ -35,7 +35,7 @@
else
{
<MudItem xs="12">
<MudTable Items="@songHistoryDataMap.Values.ToList()" Elevation="0" Filter=@FilterSongs Virtualize="true" RowsPerPage="25" Bordered="false" Dense="true">
<MudTable Items="@songHistoryDataMap.Values.ToList()" Elevation="0" Filter=@FilterSongs Virtualize="true" RowsPerPage="25" Bordered="false" Dense="true" Breakpoint=Breakpoint.None>
<ToolBarContent>
<MudGrid Spacing="2" Justify="Justify.SpaceBetween">
<MudItem xs="12" md="4">
@ -69,7 +69,7 @@
</div>
</RowTemplate>
<ChildRowContent>
<MudTable Items="@context" T="SongHistoryData" Context="songHistoryData" Elevation="0" Striped="false" Hover="false" ReadOnly="true" Outlined="true" Class="mb-8">
<MudTable Items="@context" T="SongHistoryData" Context="songHistoryData" Elevation="0" Striped="false" Hover="false" ReadOnly="true" Outlined="true" Class="mb-8" Breakpoint=Breakpoint.None>
<HeaderContent>
<MudTh>@Localizer["Difficulty"]</MudTh>
<MudTh>@Localizer["Level"]</MudTh>

View File

@ -35,7 +35,7 @@
<MudTextField TextChanged="UpdateMyDonName" Required="true" @bind-Value="@response.MyDonName" Label=@Localizer["Name"]></MudTextField>
</MudItem>
<MudItem xs="12" md="4">
<MudSelect @bind-Value="@response.MyDonNameLanguage" Label=@Localizer["Language"]>
<MudSelect @bind-Value="@response.MyDonNameLanguage" Label=@Localizer["Language"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < LanguageStrings.Length; i++)
{
var index = i;
@ -49,11 +49,11 @@
<MudItem xs="12" md="8">
@if (AuthService.AllowFreeProfileEditing)
{
<MudTextField TextChanged="UpdateTitle" @bind-Value="@response.Title" Label=@Localizer["Title"]/>
<MudTextField TextChanged="UpdateTitle" @bind-Value="@response.Title" Label=@Localizer["Title"] />
}
else
{
<MudTextField ReadOnly="true" @bind-Value="@response.Title" Label=@Localizer["Title"]/>
<MudTextField ReadOnly="true" @bind-Value="@response.Title" Label=@Localizer["Title"] />
}
<MudButton Color="Color.Primary" Class="mt-1" Size="Size.Small" OnClick="@(_ => OpenChooseTitleDialog())">
@Localizer["Select a Title"]
@ -62,17 +62,17 @@
@if (AuthService.AllowFreeProfileEditing)
{
<MudItem xs="12" md="4">
<MudSelect @bind-Value="@response.TitlePlateId" Label=@Localizer["Title Plate"]>
<MudSelect @bind-Value="@response.TitlePlateId" Label=@Localizer["Title Plate"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in titlePlateIdList)
{
<MudSelectItem Value="@index">@Localizer[TitlePlateStrings[index]]</MudSelectItem>
<MudSelectItem Value="@index">@TitlePlateStrings[index]</MudSelectItem>
}
</MudSelect>
</MudItem>
}
</MudGrid>
<MudSelect T="Difficulty" ValueChanged=@UpdateScoreboard Value=@response.AchievementDisplayDifficulty Label=@Localizer["Achievement Panel Difficulty"]>
<MudSelect T="Difficulty" ValueChanged=@UpdateScoreboard Value=@response.AchievementDisplayDifficulty Label=@Localizer["Achievement Panel Difficulty"] AnchorOrigin="Origin.BottomCenter">
@foreach (var item in Enum.GetValues<Difficulty>())
{
<MudSelectItem Value="@item">@Localizer[item.ToString()]</MudSelectItem>
@ -88,7 +88,7 @@
</MudItem>
<MudItem xs="12" md="8">
<MudStack Spacing="4">
<MudSelect @bind-Value="@response.DifficultySettingCourse" Label=@Localizer["Difficulty Setting Course"]>
<MudSelect @bind-Value="@response.DifficultySettingCourse" Label=@Localizer["Difficulty Setting Course"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < DifficultySettingCourseStrings.Length; i++)
{
var index = i;
@ -96,7 +96,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.DifficultySettingStar" Label=@Localizer["Difficulty Setting Star"]>
<MudSelect @bind-Value="@response.DifficultySettingStar" Label=@Localizer["Difficulty Setting Star"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < DifficultySettingStarStrings.Length; i++)
{
var index = i;
@ -104,7 +104,7 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.DifficultySettingSort" Label=@Localizer["Difficulty Setting Sort"]>
<MudSelect @bind-Value="@response.DifficultySettingSort" Label=@Localizer["Difficulty Setting Sort"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < DifficultySettingSortStrings.Length; i++)
{
var index = i;
@ -123,45 +123,45 @@
<MudGrid>
<MudItem xs="12">
<MudStack Spacing="4" Class="mb-8">
<MudSelect @bind-Value="@response.Head" Label=@Localizer["Head"]>
<MudSelect @bind-Value="@response.Head" Label=@Localizer["Head"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in headUniqueIdList)
{
var costumeTitle = GameDataService.GetHeadTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
var costumeTitle = GameDataService.GetHeadTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.Body" Label=@Localizer["Body"]>
<MudSelect @bind-Value="@response.Body" Label=@Localizer["Body"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in bodyUniqueIdList)
{
var costumeTitle = GameDataService.GetBodyTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
var costumeTitle = GameDataService.GetBodyTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.Face" Label=@Localizer["Face"]>
<MudSelect @bind-Value="@response.Face" Label=@Localizer["Face"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in faceUniqueIdList)
{
var costumeTitle = GameDataService.GetFaceTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
var costumeTitle = GameDataService.GetFaceTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.Kigurumi" Label=@Localizer["Kigurumi"]>
<MudSelect @bind-Value="@response.Kigurumi" Label=@Localizer["Kigurumi"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in kigurumiUniqueIdList)
{
var costumeTitle = GameDataService.GetKigurumiTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
var costumeTitle = GameDataService.GetKigurumiTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.Puchi" Label=@Localizer["Puchi"]>
<MudSelect @bind-Value="@response.Puchi" Label=@Localizer["Puchi"] AnchorOrigin="Origin.BottomCenter">
@foreach (var index in puchiUniqueIdList)
{
var costumeTitle = GameDataService.GetPuchiTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
var costumeTitle = GameDataService.GetPuchiTitle(costumeList, index);
<MudSelectItem Value="@index">@index - @costumeTitle</MudSelectItem>
}
</MudSelect>
</MudStack>
<MudStack Row="true">
<MudSelect @bind-Value="@response.BodyColor" Label=@Localizer["Body Color"]>
<MudSelect @bind-Value="@response.BodyColor" Label=@Localizer["Body Color"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -171,7 +171,7 @@
</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.FaceColor" Label=@Localizer["Face Color"]>
<MudSelect @bind-Value="@response.FaceColor" Label=@Localizer["Face Color"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -181,7 +181,7 @@
</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.LimbColor" Label=@Localizer["Limb Color"]>
<MudSelect @bind-Value="@response.LimbColor" Label=@Localizer["Limb Color"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < Constants.COSTUME_COLOR_MAX; i++)
{
var index = i;
@ -205,13 +205,13 @@
<MudStack Spacing="4">
<MudSwitch @bind-Value="@response.PlaySetting.IsVanishOn" Label=@Localizer["Vanish"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.PlaySetting.IsInverseOn" Label=@Localizer["Inverse"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.IsSkipOn" Label=@Localizer["Give Up"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.IsSkipOn" Label=@Localizer["Skip Song"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.IsVoiceOn" Label=@Localizer["Voice"] Color="Color.Primary" />
</MudStack>
</MudItem>
<MudItem xs="12" md="8">
<MudStack Spacing="4">
<MudSelect @bind-Value="@response.PlaySetting.Speed" Label=@Localizer["Speed"]>
<MudSelect @bind-Value="@response.PlaySetting.Speed" Label=@Localizer["Speed"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < SpeedStrings.Length; i++)
{
var index = i;
@ -219,15 +219,14 @@
}
</MudSelect>
<MudSelect @bind-Value="@response.PlaySetting.RandomType"
Label=@Localizer["Random"]>
<MudSelect @bind-Value="@response.PlaySetting.RandomType" Label=@Localizer["Random"] AnchorOrigin="Origin.BottomCenter">
@foreach (var item in Enum.GetValues<RandomType>())
{
<MudSelectItem Value="@item">@Localizer[item.ToString()]</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="@response.ToneId" Label=@Localizer["Tone"]>
<MudSelect @bind-Value="@response.ToneId" Label=@Localizer["Tone"] AnchorOrigin="Origin.BottomCenter">
@for (uint i = 0; i < ToneStrings.Length; i++)
{
var index = i;
@ -272,20 +271,21 @@
<MudImage Fluid="true" style=@($"position:absolute; top: 0; left: 0; right: 0; margin: 0 auto; filter: {CostumeColorFilters[response.FaceColor]}") Src=@CostumeOrDefault("masks/kigurumi-facemask", response.Kigurumi, "masks/body-facemask-0000") />
<MudImage Fluid="true" style="position:absolute; top: 0; left: 0; right: 0; margin: 0 auto;" onerror="this.src='images/Costumes/kigurumi/kigurumi-0000.png'" Src=@($"images/Costumes/kigurumi/kigurumi-{response.Kigurumi.ToString().PadLeft(4, '0')}.png") />
}
<MudImage Fluid="true" style="position:absolute; top: 0; left: 0; right: 0; margin: 0 auto;" onerror="this.src='images/Costumes/puchi/puchi-9999.png'" Src=@($"images/Costumes/puchi/puchi-{response.Puchi.ToString().PadLeft(4, '0')}.png") /> </MudItem>
<MudImage Fluid="true" style="position:absolute; top: 0; left: 0; right: 0; margin: 0 auto;" onerror="this.src='images/Costumes/puchi/puchi-9999.png'" Src=@($"images/Costumes/puchi/puchi-{response.Puchi.ToString().PadLeft(4, '0')}.png") />
</MudItem>
</MudItem>
@* Player Nameplate *@
<MudItem style="text-align: center; position:relative;">
@* Title text *@
<MudItem style="position:absolute; top: 7%; left:0; right:1.1%; height:38%; width:min(96%, 320px); margin: 0 auto; z-index:2; vertical-align: middle;">
<MudItem Style="position:absolute; height:100%; width:80%; right: 10%;">
<MudItem style="position:absolute; top: 5.5%; left:0; right:1.1%; height:38%; width:min(96%, 320px); margin: 0 auto; z-index:2; vertical-align: middle;">
<MudItem Style=@($"position:absolute; height:100%; {(response.TitlePlateId <= 7 ? "width:80%; right: 10%;" : "width:68%; right: 26%;")}")>
<MudText Id="nameplate-title" Style="position:absolute; height:100%; top: 0; left: 0; right: 0; margin: auto auto; font-family: 'Nijiiro', sans-serif; color:black">@response.Title</MudText>
</MudItem>
</MudItem>
@* Name text *@
<MudItem Style="position:absolute; top: 47%; left:0; right:1.1%; height:41%; width:min(96%, 320px); margin: 0 auto; z-index:2">
<MudItem Style="position:absolute; top: 42.5%; left:0; right:1.1%; height:41%; width:min(96%, 320px); margin: 0 auto; z-index:2">
@* Name textoffset to the right for Dan Rank *@
<MudItem Style=@($"position:absolute; height:100%; right: 10%; {(response.IsDisplayDanOnNamePlate ? "width:46%;" : "width:80%;")}")>
<MudText Id="nameplate-name-outline" Style="position:absolute; height:100%; top: 0; left: 0; right: 0; margin: auto auto; font-family: 'Nijiiro', sans-serif; -webkit-text-stroke-width: 5px; -webkit-text-stroke-color: black">@response.MyDonName</MudText>
@ -294,7 +294,7 @@
</MudItem>
<MudImage onload="nameplateLoaded()" Id="nameplate" Fluid="true" Style="position: relative; bottom: 0; left: 0;" Src="images/Nameplates/nameplate.png" />
@* Check if image does not exist, use nameplate_Wood.png *@
<MudImage Fluid="true" Style="position:absolute; bottom: 0; left: 0; right: 0; margin: 0 auto;" onerror="this.src='images/Nameplates/nameplate_Wood.png'" Src=@($"images/Nameplates/nameplate_{TitlePlateStrings[response.TitlePlateId].Replace(' ', '_')}.png") />
<MudImage Fluid="true" Style="position:absolute; bottom: 6px; left: 0; right: 0; margin: 0 auto;" onerror="this.src='images/Nameplates/nameplate_Wood.png'" Src=@($"images/Nameplates/nameplate_{TitlePlateStrings[response.TitlePlateId].Replace(' ', '_')}.png") />
@if (response.IsDisplayDanOnNamePlate)
{
<MudImage Fluid="true" Style="position:absolute; top: 0; left: 0; right: 0; margin: 0 auto;" Src="images/Nameplates/nameplate_dan.png" />
@ -313,7 +313,7 @@
<MudItem Style="position:absolute; height:18%; width:100%; top:11%">
<MudItem Class="nameplateTextRight">
<MudText Class="nameplateText nameplateTextOutline">@scoresArray[0]</MudText>
<MudText Class="nameplateText">@scoresArray[0]</MudText>
<MudText Class="nameplateText">@scoresArray[0]</MudText>
</MudItem>
</MudItem>
@* Second row *@
@ -362,8 +362,8 @@
</MudItem>
</MudItem>
</MudItem>
@* Forbidden one-liner : Changes the AchievementDisplayDifficulty image asset. When "Difficulty.None" is selected, Defaults to highest difficulty the player currently has crowns / Ranks for. *@
<MudImage Fluid="true" style="position: relative; top: 0;" Src=@($"images/rank_panel_{DifficultySettingCourseStrings[response.AchievementDisplayDifficulty != Difficulty.None ? (int)response.AchievementDisplayDifficulty + 1 : (int)highestDifficulty + 1].Replace(' ', '_')}.png") />
@* Forbidden one-liner : Changes the AchievementDisplayDifficulty image asset. When "Difficulty.None" is selected, Defaults to highest difficulty the player currently has crowns / Ranks for. *@
<MudImage Fluid="true" style="position: relative; top: 0;" Src=@($"images/rank_panel_{DifficultySettingCourseStrings[response.AchievementDisplayDifficulty != Difficulty.None ? (int)response.AchievementDisplayDifficulty + 1 : (int)highestDifficulty + 1].Replace(' ', '_')}.png") />
</MudItem>
</MudTabPanel>
}
@ -392,7 +392,7 @@
}
else
{
<MudContainer Style="display:flex;margin:50px 0;align-items:center;justify-content:center;">
<MudContainer Style="display:flex;margin:50px 0;align-items:center;justify-content:center;">
<MudProgressCircular Indeterminate="true" Size="Size.Large" Color="Color.Primary" />
</MudContainer>
}

View File

@ -28,7 +28,7 @@
else
{
<MudItem xs="12">
<MudTable Items="musicDetailDictionary.Values" Elevation="0" Outlined="true" Filter="@FilterSongs">
<MudTable Items="musicDetailDictionary.Values" Elevation="0" Outlined="true" Filter="@FilterSongs" Breakpoint=Breakpoint.None>
<ToolBarContent>
<MudGrid Spacing="2">
<MudItem xs="12" md="8">

View File

@ -79,6 +79,11 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Localization\LocalizationResource.fr-FR.resx">
<SubType>Designer</SubType>
<CustomToolNamespace>LocalizationResource</CustomToolNamespace>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
<EmbeddedResource Update="Localization\LocalizationResource.en-US.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>

View File

@ -11,6 +11,10 @@
"CultureCode": "en-US",
"DisplayName": "English"
},
{
"CultureCode": "fr-FR",
"DisplayName": "Français"
},
{
"CultureCode": "zh-Hans",
"DisplayName": "简体中文"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB