1
0
mirror of synced 2025-02-17 19:19:18 +01:00

Merge pull request #31 from asesidaa/LoginRefactor

Localized all dialog texts
This commit is contained in:
shibe 2024-06-05 17:28:48 -04:00 committed by GitHub
commit d206aaff47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 2743 additions and 196 deletions

View File

@ -86,10 +86,10 @@
private async Task Logout()
{
var result = await DialogService.ShowMessageBox(
"Log Out",
"Are you sure you want to log out?",
yesText: "Log Out",
noText: "Cancel");
Localizer["Log Out"],
Localizer["Log Out Confirm"],
yesText: Localizer["Log Out"],
noText: Localizer["Cancel"]);
if (result == true)
{

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

@ -37,7 +37,7 @@
<MudGrid>
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-16">
@Localizer["NoData"]
@Localizer["No Data"]
</MudText>
</MudItem>
</MudGrid>

View File

@ -101,7 +101,7 @@
</MudText>
@if (User.AccessCodes.Count > 1)
{
<MudText Typo="Typo.caption">... @Localizer["and"] @(User.AccessCodes.Count - 1) @Localizer["other access code(s)"]</MudText>
<MudText Typo="Typo.caption">... @Localizer["And"] @(User.AccessCodes.Count - 1) @Localizer["other access code(s)"]</MudText>
}
else
{
@ -114,7 +114,7 @@
<MudButton Href="@($"Users/{User.Baid}/Profile")"
Size="Size.Small" Variant="Variant.Text" StartIcon="@Icons.Material.Filled.Edit"
Color="Color.Primary">
@Localizer["edit profile"]
@Localizer["Edit Profile"]
</MudButton>
<MudMenu Size="Size.Small"
Dense="true"

View File

@ -59,6 +59,105 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _1_Star {
get {
return ResourceManager.GetString("1 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _10_Star {
get {
return ResourceManager.GetString("10 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _2_Star {
get {
return ResourceManager.GetString("2 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _3_Star {
get {
return ResourceManager.GetString("3 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _4_Star {
get {
return ResourceManager.GetString("4 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _5_Star {
get {
return ResourceManager.GetString("5 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _6_Star {
get {
return ResourceManager.GetString("6 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _7_Star {
get {
return ResourceManager.GetString("7 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _8_Star {
get {
return ResourceManager.GetString("8 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _8bittaiko {
get {
return ResourceManager.GetString("8bittaiko", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string _9_Star {
get {
return ResourceManager.GetString("9 Star", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -77,6 +176,60 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Already_Bound_Error {
get {
return ResourceManager.GetString("Access Code Already Bound Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Bound_Success {
get {
return ResourceManager.GetString("Access Code Bound Success", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Delete_Confirm {
get {
return ResourceManager.GetString("Access Code Delete Confirm", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Delete_Last_Access_Code_Error {
get {
return ResourceManager.GetString("Access Code Delete Last Access Code Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Delete_Success {
get {
return ResourceManager.GetString("Access Code Delete Success", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Empty_Error {
get {
return ResourceManager.GetString("Access Code Empty Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -86,6 +239,33 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Not_Admin_Error {
get {
return ResourceManager.GetString("Access Code Not Admin Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Not_Registered_Error {
get {
return ResourceManager.GetString("Access Code Not Registered Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Access_Code_Upper_Limit_Error {
get {
return ResourceManager.GetString("Access Code Upper Limit Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -143,9 +323,18 @@ namespace TaikoWebUI.Localization {
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string and {
internal static string Akemi {
get {
return ResourceManager.GetString("and", resourceCulture);
return ResourceManager.GetString("Akemi", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string And {
get {
return ResourceManager.GetString("And", resourceCulture);
}
}
@ -176,6 +365,60 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Cancel {
get {
return ResourceManager.GetString("Cancel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Change_Password_Different_Confirm_Password_Error {
get {
return ResourceManager.GetString("Change Password Different Confirm Password Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Change_Password_Success {
get {
return ResourceManager.GetString("Change Password Success", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Change_Password_Wrong_Current_Password_Error {
get {
return ResourceManager.GetString("Change Password Wrong Current Password Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Chinese_Simplified {
get {
return ResourceManager.GetString("Chinese Simplified", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Chinese_Traditional {
get {
return ResourceManager.GetString("Chinese Traditional", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -185,6 +428,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Clapping {
get {
return ResourceManager.GetString("Clapping", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -212,6 +464,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Conga {
get {
return ResourceManager.GetString("Conga", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -230,6 +491,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Currently_Selected_ {
get {
return ResourceManager.GetString("Currently Selected:", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -257,6 +527,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Default {
get {
return ResourceManager.GetString("Default", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -266,6 +545,24 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Delete_User_Confirm {
get {
return ResourceManager.GetString("Delete User Confirm", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Delete_User_Success {
get {
return ResourceManager.GetString("Delete User Success", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -284,6 +581,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Drum {
get {
return ResourceManager.GetString("Drum", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -293,6 +599,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Edit_Profile {
get {
return ResourceManager.GetString("Edit Profile", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -302,6 +617,24 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Electric_Guitar {
get {
return ResourceManager.GetString("Electric Guitar", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string English {
get {
return ResourceManager.GetString("English", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -374,6 +707,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Funassyi {
get {
return ResourceManager.GetString("Funassyi", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -428,6 +770,24 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string ID {
get {
return ResourceManager.GetString("ID", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Inuneko {
get {
return ResourceManager.GetString("Inuneko", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -437,6 +797,33 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Isogai {
get {
return ResourceManager.GetString("Isogai", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Japanese {
get {
return ResourceManager.GetString("Japanese", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Korean {
get {
return ResourceManager.GetString("Korean", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -464,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>
@ -491,6 +887,42 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Log_Out_Confirm {
get {
return ResourceManager.GetString("Log Out Confirm", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Login_Only_Admin_Error {
get {
return ResourceManager.GetString("Login Only Admin Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Login_Wrong_Password_Error {
get {
return ResourceManager.GetString("Login Wrong Password Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Matsuri {
get {
return ResourceManager.GetString("Matsuri", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -500,6 +932,24 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Mekadon {
get {
return ResourceManager.GetString("Mekadon", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Messy {
get {
return ResourceManager.GetString("Messy", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -527,6 +977,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string No_Data {
get {
return ResourceManager.GetString("No Data", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -536,6 +995,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string None {
get {
return ResourceManager.GetString("None", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -554,6 +1022,42 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Not_Donderful_Combo {
get {
return ResourceManager.GetString("Not Donderful Combo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Not_Full_Combo {
get {
return ResourceManager.GetString("Not Full Combo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Not_Logged_In_Error {
get {
return ResourceManager.GetString("Not Logged In Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Not_Passed {
get {
return ResourceManager.GetString("Not Passed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -626,6 +1130,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Puchipuchi {
get {
return ResourceManager.GetString("Puchipuchi", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -671,6 +1184,78 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Register_Already_Registered_Error {
get {
return ResourceManager.GetString("Register Already Registered Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Register_Different_Confirm_Password_Error {
get {
return ResourceManager.GetString("Register Different Confirm Password Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Register_Only_Admin_Error {
get {
return ResourceManager.GetString("Register Only Admin Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Register_Success {
get {
return ResourceManager.GetString("Register Success", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Register_Wrong_Last_Play_Time_Error {
get {
return ResourceManager.GetString("Register Wrong Last Play Time Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Reset {
get {
return ResourceManager.GetString("Reset", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Reset_Password_Confirm_1 {
get {
return ResourceManager.GetString("Reset Password Confirm 1", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Reset_Password_Confirm_2 {
get {
return ResourceManager.GetString("Reset Password Confirm 2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -716,6 +1301,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Set_Up_Each_Time {
get {
return ResourceManager.GetString("Set Up Each Time", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -734,6 +1328,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Shuriken {
get {
return ResourceManager.GetString("Shuriken", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -743,6 +1346,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Skip_Song {
get {
return ResourceManager.GetString("Skip Song", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -779,6 +1391,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Soya {
get {
return ResourceManager.GetString("Soya", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -788,6 +1409,33 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Synthdrum {
get {
return ResourceManager.GetString("Synthdrum", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Taiko {
get {
return ResourceManager.GetString("Taiko", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Tambourine {
get {
return ResourceManager.GetString("Tambourine", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -842,6 +1490,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Unknown_Access_Code_Error {
get {
return ResourceManager.GetString("Unknown Access Code Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -869,6 +1526,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string UraOni {
get {
return ResourceManager.GetString("UraOni", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -878,6 +1544,15 @@ namespace TaikoWebUI.Localization {
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string User_ID {
get {
return ResourceManager.GetString("User ID", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
@ -895,5 +1570,41 @@ namespace TaikoWebUI.Localization {
return ResourceManager.GetString("View Play Data", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Wadadon {
get {
return ResourceManager.GetString("Wadadon", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Whimsical {
get {
return ResourceManager.GetString("Whimsical", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Wonderfultaiko {
get {
return ResourceManager.GetString("Wonderfultaiko", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string Wrap {
get {
return ResourceManager.GetString("Wrap", resourceCulture);
}
}
}
}

View File

@ -123,7 +123,7 @@
<data name="Users" xml:space="preserve">
<value>Users</value>
</data>
<data name="edit profile" xml:space="preserve">
<data name="Edit Profile" xml:space="preserve">
<value>Edit Profile</value>
</data>
<data name="User" xml:space="preserve">
@ -225,7 +225,7 @@
<data name="Crown" xml:space="preserve">
<value>Crown</value>
</data>
<data name="No data." xml:space="preserve">
<data name="No Data" xml:space="preserve">
<value>No data</value>
</data>
<data name="Log In First" xml:space="preserve">
@ -249,8 +249,8 @@
<data name="Gold" xml:space="preserve">
<value>Gold</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>Not Cleared</value>
<data name="Not Passed" xml:space="preserve">
<value>Not Passed</value>
</data>
<data name="Pass" xml:space="preserve">
<value>Pass</value>
@ -354,8 +354,8 @@
<data name="Inverse" xml:space="preserve">
<value>Inverse</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>Give Up</value>
<data name="Skip Song" xml:space="preserve">
<value>Skip Song</value>
</data>
<data name="Voice" xml:space="preserve">
<value>Voice</value>
@ -372,10 +372,10 @@
<data name="Notes Position" xml:space="preserve">
<value>Notes Position</value>
</data>
<data name="reset_password_confirm_dialog_1" xml:space="preserve">
<data name="Reset Password Confirm 1" xml:space="preserve">
<value>Are you sure you want to reset the password for this user?</value>
</data>
<data name="reset_password_confirm_dialog_2" xml:space="preserve">
<data name="Reset Password Confirm 2" xml:space="preserve">
<value>This will remove the user's current password and user will have to register again.</value>
</data>
<data name="DateFormat" xml:space="preserve">
@ -534,7 +534,7 @@
<data name="Unregister" xml:space="preserve">
<value>Unregister</value>
</data>
<data name="and" xml:space="preserve">
<data name="And" xml:space="preserve">
<value>and</value>
</data>
<data name="other access code(s)" xml:space="preserve">
@ -600,4 +600,226 @@
<data name="Add" xml:space="preserve">
<value>Add</value>
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value>New access code bound successfully.</value>
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value>Not logged in.&lt;br /&gt;Please log in first and try again.</value>
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value>Bound access code upper limit reached.&lt;br /&gt;Please delete one access code first.</value>
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value>This access code has already been bound.</value>
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value>Access code cannot be empty.&lt;br /&gt;Please enter a valid access code.</value>
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value>This action is not allowed.&lt;br /&gt;Only admin will be able to edit another user's access code.</value>
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value>Only admin can log in.</value>
</data>
<data name="Change Password Success" xml:space="preserve">
<value>Password changed successfully.</value>
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value>Confirm new password is different from new password.&lt;br /&gt;Please check again.</value>
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value>Unknown access code.&lt;br /&gt;Please play one game with this access code and try again.</value>
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value>Current password is wrong.&lt;br /&gt;Please check again.</value>
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value>Access code not registered.&lt;br /&gt;Please register first and try again.</value>
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value>Wrong password.&lt;br /&gt;Please check again.</value>
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value>Only admin can register.</value>
</data>
<data name="Register Success" xml:space="preserve">
<value>Access code registered successfully.</value>
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value>Confirm password is not the same as password.&lt;br /&gt;Please check again.</value>
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value>Access code is already registered.&lt;br /&gt;Please use set password to login.</value>
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value>Wrong last play time.&lt;br /&gt;If you have forgotten when you last played, please play another game with this access code or contact admin.</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value>Cannot delete user's last access code.</value>
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value>Access code deleted successfully.</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value>Are you sure you want to delete this access code?</value>
</data>
<data name="Currently Selected:" xml:space="preserve">
<value>Currently Selected:</value>
</data>
<data name="Reset" xml:space="preserve">
<value>Reset</value>
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value>Do you really want to delete this user's data?&lt;br /&gt;All the related data will be deleted and this process cannot be undone!</value>
</data>
<data name="Delete User Success" xml:space="preserve">
<value>User deleted successfully.</value>
</data>
<data name="None" xml:space="preserve">
<value>Off</value>
</data>
<data name="Whimsical" xml:space="preserve">
<value>Whimsical</value>
</data>
<data name="Messy" xml:space="preserve">
<value>Messy</value>
</data>
<data name="Taiko" xml:space="preserve">
<value>Taiko</value>
</data>
<data name="Matsuri" xml:space="preserve">
<value>Festival</value>
</data>
<data name="Inuneko" xml:space="preserve">
<value>Dogs &amp; Cats</value>
</data>
<data name="Wonderfultaiko" xml:space="preserve">
<value>Deluxe Taiko</value>
</data>
<data name="Drum" xml:space="preserve">
<value>Drumset</value>
</data>
<data name="Tambourine" xml:space="preserve">
<value>Tambourine</value>
</data>
<data name="Wadadon" xml:space="preserve">
<value>Wadadon</value>
</data>
<data name="Clapping" xml:space="preserve">
<value>Clapping</value>
</data>
<data name="Conga" xml:space="preserve">
<value>Conga</value>
</data>
<data name="8bittaiko" xml:space="preserve">
<value>8-bit Taiko</value>
</data>
<data name="Soya" xml:space="preserve">
<value>Heave-ho</value>
</data>
<data name="Mekadon" xml:space="preserve">
<value>Mecha Don</value>
</data>
<data name="Funassyi" xml:space="preserve">
<value>Funassyi</value>
</data>
<data name="Wrap" xml:space="preserve">
<value>Rap</value>
</data>
<data name="Isogai" xml:space="preserve">
<value>Hosogai</value>
</data>
<data name="Akemi" xml:space="preserve">
<value>Akemi</value>
</data>
<data name="Synthdrum" xml:space="preserve">
<value>Synth Drum</value>
</data>
<data name="Shuriken" xml:space="preserve">
<value>Shuriken</value>
</data>
<data name="Puchipuchi" xml:space="preserve">
<value>Bubble Pop</value>
</data>
<data name="Electric Guitar" xml:space="preserve">
<value>Electric Guitar</value>
</data>
<data name="UraOni" xml:space="preserve">
<value>Ura</value>
</data>
<data name="Set Up Each Time" xml:space="preserve">
<value>Set Up Each Time</value>
</data>
<data name="Default" xml:space="preserve">
<value>Default</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>Not Cleared</value>
</data>
<data name="Not Full Combo" xml:space="preserve">
<value>Not Full Combo</value>
</data>
<data name="Not Donderful Combo" xml:space="preserve">
<value>Not Donderful Combo</value>
</data>
<data name="Japanese" xml:space="preserve">
<value>Japanese</value>
</data>
<data name="English" xml:space="preserve">
<value>English</value>
</data>
<data name="Chinese Traditional" xml:space="preserve">
<value>Chinese Traditional</value>
</data>
<data name="Korean" xml:space="preserve">
<value>Korean</value>
</data>
<data name="Chinese Simplified" xml:space="preserve">
<value>Chinese Simplified</value>
</data>
<data name="1 Star" xml:space="preserve">
<value>★ 1</value>
</data>
<data name="10 Star" xml:space="preserve">
<value>★ 10</value>
</data>
<data name="2 Star" xml:space="preserve">
<value>★ 2</value>
</data>
<data name="3 Star" xml:space="preserve">
<value>★ 3</value>
</data>
<data name="4 Star" xml:space="preserve">
<value>★ 4</value>
</data>
<data name="5 Star" xml:space="preserve">
<value>★ 5</value>
</data>
<data name="6 Star" xml:space="preserve">
<value>★ 6</value>
</data>
<data name="7 Star" xml:space="preserve">
<value>★ 7</value>
</data>
<data name="8 Star" xml:space="preserve">
<value>★ 8</value>
</data>
<data name="9 Star" xml:space="preserve">
<value>★ 9</value>
</data>
<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>
<data name="User ID" xml:space="preserve">
<value>User ID</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

@ -123,7 +123,7 @@
<data name="Users" xml:space="preserve">
<value>ユーザー管理</value>
</data>
<data name="edit profile" xml:space="preserve">
<data name="Edit Profile" xml:space="preserve">
<value>プロフィール編集</value>
</data>
<data name="User" xml:space="preserve">
@ -225,7 +225,7 @@
<data name="Crown" xml:space="preserve">
<value>王冠</value>
</data>
<data name="No data." xml:space="preserve">
<data name="No Data" xml:space="preserve">
<value>データがありません</value>
</data>
<data name="Log In First" xml:space="preserve">
@ -249,7 +249,7 @@
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<data name="Not Passed" xml:space="preserve">
<value>未合格</value>
</data>
<data name="Pass" xml:space="preserve">
@ -354,7 +354,7 @@
<data name="Inverse" xml:space="preserve">
<value>あべこべ</value>
</data>
<data name="Give Up" xml:space="preserve">
<data name="Skip Song" xml:space="preserve">
<value>演奏スキップ</value>
</data>
<data name="Voice" xml:space="preserve">
@ -381,10 +381,10 @@
<data name="Register" xml:space="preserve">
<value>登録</value>
</data>
<data name="reset_password_confirm_dialog_1" xml:space="preserve">
<data name="Reset Password Confirm 1" xml:space="preserve">
<value>本当にこのユーザーのパスワードをリセットしますか?</value>
</data>
<data name="reset_password_confirm_dialog_2" xml:space="preserve">
<data name="Reset Password Confirm 2" xml:space="preserve">
<value>これにより、ユーザーの現在のパスワードは削除され、ユーザーは再度登録する必要があります。</value>
</data>
<data name="Log In" xml:space="preserve">
@ -534,7 +534,7 @@
<data name="Unregister" xml:space="preserve">
<value>登録解除</value>
</data>
<data name="and" xml:space="preserve">
<data name="And" xml:space="preserve">
<value>と</value>
</data>
<data name="other access code(s)" xml:space="preserve">
@ -600,4 +600,226 @@
<data name="Add" xml:space="preserve">
<value>追加</value>
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value>新しいアクセスコードのバインドに成功。</value>
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value>ログインしていません。&lt;br /&gt;ログインしてからもう一度お試しください。</value>
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value>バウンドアクセスコードの上限に達しました。&lt;br /&gt;まずアクセスコードを1つ削除してください。</value>
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value>このアクセスコードはすでにバインドされています。</value>
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value>アクセスコードは空ではありません。&lt;br /&gt;有効なアクセスコードを入力してください。</value>
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value>この操作は許可されていません。&lt;br /&gt;他のユーザーのアクセスコードを編集できるのは管理者のみです。</value>
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value>ログインできるのは管理者のみです。</value>
</data>
<data name="Change Password Success" xml:space="preserve">
<value>パスワードの変更に成功しました。</value>
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value>新しいパスワードが違うことを確認してください。&lt;br /&gt;もう一度確認してください。</value>
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value>不明なアクセスコードです。&lt;br /&gt;このアクセスコードでゲームを1回プレイしてから、再度お試しください。</value>
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value>現在のパスワードが間違っています。&lt;br /&gt;再度ご確認ください。</value>
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value>アクセスコードが登録されていません。&lt;br /&gt;まず登録してから再度お試しください。</value>
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value>パスワードが間違っています。&lt;br /&gt;再度ご確認ください。</value>
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value>登録できるのは管理者のみです。</value>
</data>
<data name="Register Success" xml:space="preserve">
<value>アクセスコードが正常に登録されました。</value>
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value>パスワードの確認がパスワードと一致しません。&lt;br /&gt;再度ご確認ください。</value>
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value>アクセスコードは既に登録されています。&lt;br /&gt;設定したパスワードを使用してログインしてください。</value>
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value>最後のプレイ時間が間違っています。&lt;br /&gt;最後にプレイした時間を忘れた場合は、このアクセスコードで再度ゲームをプレイするか、管理者に連絡してください。</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>キャンセル</value>
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value>ユーザーの最後のアクセスコードを削除できません。</value>
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value>アクセスコードが正常に削除されました。</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value>このアクセスコードを削除してもよろしいですか?</value>
</data>
<data name="Currently Selected:" xml:space="preserve">
<value>現在選択中:</value>
</data>
<data name="Reset" xml:space="preserve">
<value>リセット</value>
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value>このユーザーのデータを本当に削除してもよろしいですか?&lt;br /&gt;関連するすべてのデータが削除され、この操作は元に戻せません!</value>
</data>
<data name="Delete User Success" xml:space="preserve">
<value>ユーザーが正常に削除されました。</value>
</data>
<data name="None" xml:space="preserve">
<value>なし</value>
</data>
<data name="Whimsical" xml:space="preserve">
<value>きまぐれ</value>
</data>
<data name="Messy" xml:space="preserve">
<value>でたらめ</value>
</data>
<data name="Taiko" xml:space="preserve">
<value>太鼓</value>
</data>
<data name="Matsuri" xml:space="preserve">
<value>お祭り</value>
</data>
<data name="Inuneko" xml:space="preserve">
<value>いぬねこ</value>
</data>
<data name="Wonderfultaiko" xml:space="preserve">
<value>豪華な太鼓</value>
</data>
<data name="Drum" xml:space="preserve">
<value>ドラム</value>
</data>
<data name="Tambourine" xml:space="preserve">
<value>タンバリン</value>
</data>
<data name="Wadadon" xml:space="preserve">
<value>和田どん</value>
</data>
<data name="Clapping" xml:space="preserve">
<value>手拍子</value>
</data>
<data name="Conga" xml:space="preserve">
<value>コンガ</value>
</data>
<data name="8bittaiko" xml:space="preserve">
<value>8ビット太鼓</value>
</data>
<data name="Soya" xml:space="preserve">
<value>ソイヤ</value>
</data>
<data name="Mekadon" xml:space="preserve">
<value>メカドン</value>
</data>
<data name="Funassyi" xml:space="preserve">
<value>ふなっしー </value>
</data>
<data name="Wrap" xml:space="preserve">
<value>ラップ</value>
</data>
<data name="Isogai" xml:space="preserve">
<value>細貝さん</value>
</data>
<data name="Akemi" xml:space="preserve">
<value>朱美ちゃん</value>
</data>
<data name="Synthdrum" xml:space="preserve">
<value>シンセドラム</value>
</data>
<data name="Shuriken" xml:space="preserve">
<value>しゅりけん</value>
</data>
<data name="Puchipuchi" xml:space="preserve">
<value>プチプチ</value>
</data>
<data name="Electric Guitar" xml:space="preserve">
<value>エレキギター</value>
</data>
<data name="UraOni" xml:space="preserve">
<value>おに裏</value>
</data>
<data name="Set Up Each Time" xml:space="preserve">
<value>毎回設定</value>
</data>
<data name="Default" xml:space="preserve">
<value>デフォルト</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>未クリア優先</value>
</data>
<data name="Not Full Combo" xml:space="preserve">
<value>未フルコンボ優先</value>
</data>
<data name="Not Donderful Combo" xml:space="preserve">
<value>未ドンダフルコンボ優先</value>
</data>
<data name="Japanese" xml:space="preserve">
<value>日本語</value>
</data>
<data name="English" xml:space="preserve">
<value>英語</value>
</data>
<data name="Chinese Traditional" xml:space="preserve">
<value>繁体字中国語</value>
</data>
<data name="Korean" xml:space="preserve">
<value>韓国語</value>
</data>
<data name="Chinese Simplified" xml:space="preserve">
<value>簡体字中国語</value>
</data>
<data name="1 Star" xml:space="preserve">
<value>★ 1</value>
</data>
<data name="10 Star" xml:space="preserve">
<value>★ 10</value>
</data>
<data name="2 Star" xml:space="preserve">
<value>★ 2</value>
</data>
<data name="3 Star" xml:space="preserve">
<value>★ 3</value>
</data>
<data name="4 Star" xml:space="preserve">
<value>★ 4</value>
</data>
<data name="5 Star" xml:space="preserve">
<value>★ 5</value>
</data>
<data name="6 Star" xml:space="preserve">
<value>★ 6</value>
</data>
<data name="7 Star" xml:space="preserve">
<value>★ 7</value>
</data>
<data name="8 Star" xml:space="preserve">
<value>★ 8</value>
</data>
<data name="9 Star" xml:space="preserve">
<value>★ 9</value>
</data>
<data name="Log Out Confirm" xml:space="preserve">
<value>ログアウトしてもよろしいですか?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>ランキング</value>
</data>
<data name="User ID" xml:space="preserve">
<value>ユーザーID</value>
</data>
</root>

View File

@ -318,7 +318,7 @@
<data name="Unregister" xml:space="preserve">
<value />
</data>
<data name="and" xml:space="preserve">
<data name="And" xml:space="preserve">
<value />
</data>
<data name="other access code(s)" xml:space="preserve">
@ -336,7 +336,7 @@
<data name="View Play Data" xml:space="preserve">
<value />
</data>
<data name="Not Cleared" xml:space="preserve">
<data name="Not Passed" xml:space="preserve">
<value />
</data>
<data name="User" xml:space="preserve">
@ -396,4 +396,241 @@
<data name="Add" xml:space="preserve">
<value />
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value />
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value />
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value />
</data>
<data name="Change Password Success" xml:space="preserve">
<value />
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value />
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value />
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value />
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value />
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value />
</data>
<data name="Register Success" xml:space="preserve">
<value />
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value />
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value />
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value />
</data>
<data name="Cancel" xml:space="preserve">
<value />
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value />
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value />
</data>
<data name="ID" xml:space="preserve">
<value />
</data>
<data name="Edit Profile" xml:space="preserve">
<value />
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value />
</data>
<data name="Currently Selected:" xml:space="preserve">
<value />
</data>
<data name="Reset" xml:space="preserve">
<value />
</data>
<data name="Reset Password Confirm 1" xml:space="preserve">
<value />
</data>
<data name="Reset Password Confirm 2" xml:space="preserve">
<value />
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value />
</data>
<data name="Delete User Success" xml:space="preserve">
<value />
</data>
<data name="Skip Song" xml:space="preserve">
<value />
</data>
<data name="None" xml:space="preserve">
<value />
</data>
<data name="Whimsical" xml:space="preserve">
<value />
</data>
<data name="Messy" xml:space="preserve">
<value />
</data>
<data name="Taiko" xml:space="preserve">
<value />
</data>
<data name="Matsuri" xml:space="preserve">
<value />
</data>
<data name="Inuneko" xml:space="preserve">
<value />
</data>
<data name="Wonderfultaiko" xml:space="preserve">
<value />
</data>
<data name="Drum" xml:space="preserve">
<value />
</data>
<data name="Tambourine" xml:space="preserve">
<value />
</data>
<data name="Wadadon" xml:space="preserve">
<value />
</data>
<data name="Clapping" xml:space="preserve">
<value />
</data>
<data name="Conga" xml:space="preserve">
<value />
</data>
<data name="8bittaiko" xml:space="preserve">
<value />
</data>
<data name="Soya" xml:space="preserve">
<value />
</data>
<data name="Mekadon" xml:space="preserve">
<value />
</data>
<data name="Funassyi" xml:space="preserve">
<value />
</data>
<data name="Wrap" xml:space="preserve">
<value />
</data>
<data name="Isogai" xml:space="preserve">
<value />
</data>
<data name="Akemi" xml:space="preserve">
<value />
</data>
<data name="Synthdrum" xml:space="preserve">
<value />
</data>
<data name="Shuriken" xml:space="preserve">
<value />
</data>
<data name="Puchipuchi" xml:space="preserve">
<value />
</data>
<data name="Electric Guitar" xml:space="preserve">
<value />
</data>
<data name="UraOni" xml:space="preserve">
<value />
</data>
<data name="Set Up Each Time" xml:space="preserve">
<value />
</data>
<data name="Default" xml:space="preserve">
<value />
</data>
<data name="Not Cleared" xml:space="preserve">
<value />
</data>
<data name="Not Full Combo" xml:space="preserve">
<value />
</data>
<data name="Not Donderful Combo" xml:space="preserve">
<value />
</data>
<data name="Japanese" xml:space="preserve">
<value />
</data>
<data name="English" xml:space="preserve">
<value />
</data>
<data name="Chinese Traditional" xml:space="preserve">
<value />
</data>
<data name="Korean" xml:space="preserve">
<value />
</data>
<data name="Chinese Simplified" xml:space="preserve">
<value />
</data>
<data name="1 Star" xml:space="preserve">
<value />
</data>
<data name="2 Star" xml:space="preserve">
<value />
</data>
<data name="3 Star" xml:space="preserve">
<value />
</data>
<data name="4 Star" xml:space="preserve">
<value />
</data>
<data name="5 Star" xml:space="preserve">
<value />
</data>
<data name="6 Star" xml:space="preserve">
<value />
</data>
<data name="7 Star" xml:space="preserve">
<value />
</data>
<data name="8 Star" xml:space="preserve">
<value />
</data>
<data name="9 Star" xml:space="preserve">
<value />
</data>
<data name="10 Star" xml:space="preserve">
<value />
</data>
<data name="Log Out Confirm" xml:space="preserve">
<value />
</data>
<data name="Leaderboard" xml:space="preserve">
<value />
</data>
<data name="No Data" xml:space="preserve">
<value />
</data>
<data name="User ID" xml:space="preserve">
<value />
</data>
</root>

View File

@ -123,7 +123,7 @@
<data name="Users" xml:space="preserve">
<value>用户管理</value>
</data>
<data name="edit profile" xml:space="preserve">
<data name="Edit Profile" xml:space="preserve">
<value>编辑档案</value>
</data>
<data name="User" xml:space="preserve">
@ -145,7 +145,7 @@
<value>更改密码</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>重密码</value>
<value>重密码</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>删除帐号</value>
@ -225,7 +225,7 @@
<data name="Crown" xml:space="preserve">
<value>王冠</value>
</data>
<data name="No data." xml:space="preserve">
<data name="No Data" xml:space="preserve">
<value>没有数据</value>
</data>
<data name="Log In First" xml:space="preserve">
@ -249,7 +249,7 @@
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<data name="Not Passed" xml:space="preserve">
<value>未合格</value>
</data>
<data name="Pass" xml:space="preserve">
@ -354,8 +354,8 @@
<data name="Inverse" xml:space="preserve">
<value>反谱</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>放弃</value>
<data name="Skip Song" xml:space="preserve">
<value>跳过演奏</value>
</data>
<data name="Voice" xml:space="preserve">
<value>声音</value>
@ -381,10 +381,10 @@
<data name="Register" xml:space="preserve">
<value>注册</value>
</data>
<data name="reset_password_confirm_dialog_1" xml:space="preserve">
<data name="Reset Password Confirm 1" xml:space="preserve">
<value>确定要为这位用户重置密码吗?</value>
</data>
<data name="reset_password_confirm_dialog_2" xml:space="preserve">
<data name="Reset Password Confirm 2" xml:space="preserve">
<value>重置密码后,用户需要再次注册</value>
</data>
<data name="Log In" xml:space="preserve">
@ -534,7 +534,7 @@
<data name="Unregister" xml:space="preserve">
<value>注销账号</value>
</data>
<data name="and" xml:space="preserve">
<data name="And" xml:space="preserve">
<value>和</value>
</data>
<data name="other access code(s)" xml:space="preserve">
@ -597,4 +597,229 @@
<data name="Add" xml:space="preserve">
<value>添加</value>
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value>新访问码绑定成功。</value>
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value>用户未登录。&lt;br /&gt;请先登录,然后再试一次。</value>
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value>已达到绑定访问码数量上限。&lt;br /&gt;请先删除一个已绑定的访问码。</value>
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value>此访问码已被绑定。</value>
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value>访问码不能为空。&lt;br/&gt;请输入有效的访问码。</value>
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value>不允许执行此操作。&lt;br /&gt;只有管理员可以编辑其他用户的访问码。</value>
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value>只有管理员可以登录。</value>
</data>
<data name="Change Password Success" xml:space="preserve">
<value>密码更改成功。</value>
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value>确认新密码与新密码不同。&lt;br /&gt;请再次检查。</value>
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value>未知的访问码。&lt;br /&gt;请使用此访问码玩一局游戏后再试一次。</value>
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value>当前密码错误。&lt;br /&gt;请再检查一次。</value>
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value>访问码未注册。&lt;br /&gt;请先注册然后再试一次。</value>
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value>密码错误。&lt;br /&gt;请再检查一次。</value>
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value>只有管理员可以注册。</value>
</data>
<data name="Register Success" xml:space="preserve">
<value>访问码已成功注册。</value>
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value>确认密码与密码不一致。&lt;br /&gt;请再检查一次。</value>
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value>访问码已注册。&lt;br /&gt;请使用设置的密码登录。</value>
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value>最后的游戏时间错误。&lt;br /&gt;如果您忘记了上次玩游戏的时间,请使用此访问码再玩一局游戏或联系管理员。</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value>无法删除用户的最后一个访问码。</value>
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value>访问码已成功删除。</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data>
<data name="Last Play Date" xml:space="preserve">
<value>最后游玩日期</value>
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value>您确定要删除此访问码吗?</value>
</data>
<data name="Currently Selected:" xml:space="preserve">
<value>当前选择:</value>
</data>
<data name="Reset" xml:space="preserve">
<value>重置</value>
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value>您真的要删除该用户的数据吗?&lt;br /&gt;所有相关数据将被删除,此过程无法撤销!</value>
</data>
<data name="Delete User Success" xml:space="preserve">
<value>用户已成功删除。</value>
</data>
<data name="None" xml:space="preserve">
<value>无</value>
</data>
<data name="Whimsical" xml:space="preserve">
<value>随兴</value>
</data>
<data name="Messy" xml:space="preserve">
<value>随意</value>
</data>
<data name="Taiko" xml:space="preserve">
<value>太鼓</value>
</data>
<data name="Matsuri" xml:space="preserve">
<value>祭典</value>
</data>
<data name="Inuneko" xml:space="preserve">
<value>狗与猫</value>
</data>
<data name="Wonderfultaiko" xml:space="preserve">
<value>豪华的太鼓</value>
</data>
<data name="Drum" xml:space="preserve">
<value>架子鼓</value>
</data>
<data name="Wadadon" xml:space="preserve">
<value>和田咚</value>
</data>
<data name="Clapping" xml:space="preserve">
<value>手拍子</value>
</data>
<data name="Conga" xml:space="preserve">
<value>康加鼓</value>
</data>
<data name="8bittaiko" xml:space="preserve">
<value>8-bit太鼓</value>
</data>
<data name="Soya" xml:space="preserve">
<value>嘿哟</value>
</data>
<data name="Mekadon" xml:space="preserve">
<value>机械咚</value>
</data>
<data name="Funassyi" xml:space="preserve">
<value>船梨精</value>
</data>
<data name="Wrap" xml:space="preserve">
<value>说唱</value>
</data>
<data name="Isogai" xml:space="preserve">
<value>細貝先生</value>
</data>
<data name="Akemi" xml:space="preserve">
<value>朱美酱</value>
</data>
<data name="Synthdrum" xml:space="preserve">
<value>合成鼓</value>
</data>
<data name="Tambourine" xml:space="preserve">
<value>铃鼓</value>
</data>
<data name="Shuriken" xml:space="preserve">
<value>手里剑</value>
</data>
<data name="Puchipuchi" xml:space="preserve">
<value>泡泡</value>
</data>
<data name="Electric Guitar" xml:space="preserve">
<value>电吉他</value>
</data>
<data name="UraOni" xml:space="preserve">
<value>里譜面</value>
</data>
<data name="Set Up Each Time" xml:space="preserve">
<value>每次设置</value>
</data>
<data name="Default" xml:space="preserve">
<value>默认</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>未通关优先</value>
</data>
<data name="Not Full Combo" xml:space="preserve">
<value>未全连段优先</value>
</data>
<data name="Not Donderful Combo" xml:space="preserve">
<value>未全良连段优先</value>
</data>
<data name="Japanese" xml:space="preserve">
<value>日语</value>
</data>
<data name="English" xml:space="preserve">
<value>英语</value>
</data>
<data name="Chinese Traditional" xml:space="preserve">
<value>繁体中文</value>
</data>
<data name="Korean" xml:space="preserve">
<value>韩语</value>
</data>
<data name="Chinese Simplified" xml:space="preserve">
<value>简体中文</value>
</data>
<data name="1 Star" xml:space="preserve">
<value>★ 1</value>
</data>
<data name="10 Star" xml:space="preserve">
<value>★ 10</value>
</data>
<data name="2 Star" xml:space="preserve">
<value>★ 2</value>
</data>
<data name="3 Star" xml:space="preserve">
<value>★ 3</value>
</data>
<data name="4 Star" xml:space="preserve">
<value>★ 4</value>
</data>
<data name="5 Star" xml:space="preserve">
<value>★ 5</value>
</data>
<data name="6 Star" xml:space="preserve">
<value>★ 6</value>
</data>
<data name="7 Star" xml:space="preserve">
<value>★ 7</value>
</data>
<data name="8 Star" xml:space="preserve">
<value>★ 8</value>
</data>
<data name="9 Star" xml:space="preserve">
<value>★ 9</value>
</data>
<data name="Log Out Confirm" xml:space="preserve">
<value>您确定要登出吗?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>排行榜</value>
</data>
<data name="User ID" xml:space="preserve">
<value>用户ID</value>
</data>
</root>

View File

@ -123,7 +123,7 @@
<data name="Users" xml:space="preserve">
<value>管理用戶</value>
</data>
<data name="edit profile" xml:space="preserve">
<data name="Edit Profile" xml:space="preserve">
<value>編輯檔案</value>
</data>
<data name="User" xml:space="preserve">
@ -145,7 +145,7 @@
<value>更改密碼</value>
</data>
<data name="Reset Password" xml:space="preserve">
<value>重密碼</value>
<value>重密碼</value>
</data>
<data name="Delete User" xml:space="preserve">
<value>刪除帳號</value>
@ -225,7 +225,7 @@
<data name="Crown" xml:space="preserve">
<value>皇冠</value>
</data>
<data name="No data." xml:space="preserve">
<data name="No Data" xml:space="preserve">
<value>沒有數據</value>
</data>
<data name="Log In First" xml:space="preserve">
@ -249,7 +249,7 @@
<data name="Gold" xml:space="preserve">
<value>金合格</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<data name="Not Passed" xml:space="preserve">
<value>未合格</value>
</data>
<data name="Pass" xml:space="preserve">
@ -354,8 +354,8 @@
<data name="Inverse" xml:space="preserve">
<value>反譜</value>
</data>
<data name="Give Up" xml:space="preserve">
<value>放棄</value>
<data name="Skip Song" xml:space="preserve">
<value>跳略演奏</value>
</data>
<data name="Voice" xml:space="preserve">
<value>聲音</value>
@ -381,10 +381,10 @@
<data name="Register" xml:space="preserve">
<value>注冊</value>
</data>
<data name="reset_password_confirm_dialog_1" xml:space="preserve">
<data name="Reset Password Confirm 1" xml:space="preserve">
<value>確定要為這位用戶重置密碼嗎?</value>
</data>
<data name="reset_password_confirm_dialog_2" xml:space="preserve">
<data name="Reset Password Confirm 2" xml:space="preserve">
<value>重置密碼后,用戶需要再次注冊</value>
</data>
<data name="Log In" xml:space="preserve">
@ -534,7 +534,7 @@
<data name="Unregister" xml:space="preserve">
<value>注銷賬號</value>
</data>
<data name="and" xml:space="preserve">
<data name="And" xml:space="preserve">
<value>和</value>
</data>
<data name="other access code(s)" xml:space="preserve">
@ -597,4 +597,229 @@
<data name="Add" xml:space="preserve">
<value>添加</value>
</data>
<data name="Access Code Bound Success" xml:space="preserve">
<value>新訪問碼綁定成功 。</value>
</data>
<data name="Not Logged In Error" xml:space="preserve">
<value>用戶未登錄。&lt;br /&gt;請先登錄,然後再試一次。</value>
</data>
<data name="Access Code Upper Limit Error" xml:space="preserve">
<value>已達到綁定訪問碼數量上限。&lt;br /&gt;請先刪除一個已綁定的訪問碼。</value>
</data>
<data name="Access Code Already Bound Error" xml:space="preserve">
<value>此訪問碼已被綁定。</value>
</data>
<data name="Access Code Empty Error" xml:space="preserve">
<value>訪問碼不能爲空。&lt;br/&gt;請輸入有效的訪問碼。</value>
</data>
<data name="Access Code Not Admin Error" xml:space="preserve">
<value>不允許執行此操作。&lt;br /&gt;只有管理員可以編輯其他用戶的訪問碼。</value>
</data>
<data name="Login Only Admin Error" xml:space="preserve">
<value>只有管理員可以登錄。</value>
</data>
<data name="Change Password Success" xml:space="preserve">
<value>密碼更改成功。</value>
</data>
<data name="Change Password Different Confirm Password Error" xml:space="preserve">
<value>確認新密碼與新密碼不同。&lt;br /&gt;請再次檢查。</value>
</data>
<data name="Unknown Access Code Error" xml:space="preserve">
<value>未知的訪問碼。&lt;br /&gt;請使用此訪問碼玩一局遊戲後再試一次。</value>
</data>
<data name="Change Password Wrong Current Password Error" xml:space="preserve">
<value>當前密碼錯誤。&lt;br /&gt;請再檢查一次。</value>
</data>
<data name="Access Code Not Registered Error" xml:space="preserve">
<value>訪問碼未註冊。&lt;br /&gt;請先註冊然後再試一次。</value>
</data>
<data name="Login Wrong Password Error" xml:space="preserve">
<value>密碼錯誤。&lt;br /&gt;請再檢查一次。</value>
</data>
<data name="Register Only Admin Error" xml:space="preserve">
<value>只有管理員可以註冊。</value>
</data>
<data name="Register Success" xml:space="preserve">
<value>訪問碼已成功註冊。</value>
</data>
<data name="Register Different Confirm Password Error" xml:space="preserve">
<value>確認密碼與密碼不一致。&lt;br /&gt;請再檢查一次。</value>
</data>
<data name="Register Already Registered Error" xml:space="preserve">
<value>訪問碼已註冊。&lt;br /&gt;請使用設置的密碼登錄。</value>
</data>
<data name="Register Wrong Last Play Time Error" xml:space="preserve">
<value>最後的遊戲時間錯誤。&lt;br /&gt;如果您忘記了上次玩遊戲的時間,請使用此訪問碼再玩一局遊戲或聯繫管理員。</value>
</data>
<data name="Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Access Code Delete Last Access Code Error" xml:space="preserve">
<value>無法刪除用戶的最後一個訪問碼。</value>
</data>
<data name="Access Code Delete Success" xml:space="preserve">
<value>訪問碼已成功刪除。</value>
</data>
<data name="ID" xml:space="preserve">
<value>ID</value>
</data>
<data name="Last Play Date" xml:space="preserve">
<value>最後游玩日期</value>
</data>
<data name="Access Code Delete Confirm" xml:space="preserve">
<value>您確定要刪除此訪問碼嗎?</value>
</data>
<data name="Currently Selected:" xml:space="preserve">
<value>當前選擇:</value>
</data>
<data name="Reset" xml:space="preserve">
<value>重置</value>
</data>
<data name="Delete User Confirm" xml:space="preserve">
<value>您真的要刪除該用戶的數據嗎?&lt;br /&gt;所有相關數據將被刪除,此過程無法撤銷!</value>
</data>
<data name="Delete User Success" xml:space="preserve">
<value>用戶已成功刪除。</value>
</data>
<data name="None" xml:space="preserve">
<value>無</value>
</data>
<data name="Whimsical" xml:space="preserve">
<value>隨興</value>
</data>
<data name="Messy" xml:space="preserve">
<value>隨意</value>
</data>
<data name="Taiko" xml:space="preserve">
<value>太鼓</value>
</data>
<data name="Matsuri" xml:space="preserve">
<value>祭典</value>
</data>
<data name="Inuneko" xml:space="preserve">
<value>狗與貓</value>
</data>
<data name="Wonderfultaiko" xml:space="preserve">
<value>豪華的太鼓</value>
</data>
<data name="Drum" xml:space="preserve">
<value>爵士鼓</value>
</data>
<data name="Wadadon" xml:space="preserve">
<value>和田咚</value>
</data>
<data name="Clapping" xml:space="preserve">
<value>手拍子</value>
</data>
<data name="Conga" xml:space="preserve">
<value>康加鼓</value>
</data>
<data name="8bittaiko" xml:space="preserve">
<value>8-bit太鼓</value>
</data>
<data name="Soya" xml:space="preserve">
<value>嘿喲</value>
</data>
<data name="Mekadon" xml:space="preserve">
<value>機械咚</value>
</data>
<data name="Funassyi" xml:space="preserve">
<value>船梨精</value>
</data>
<data name="Wrap" xml:space="preserve">
<value>説唱</value>
</data>
<data name="Isogai" xml:space="preserve">
<value>細貝先生</value>
</data>
<data name="Akemi" xml:space="preserve">
<value>朱美醬</value>
</data>
<data name="Synthdrum" xml:space="preserve">
<value>合成鼓</value>
</data>
<data name="Tambourine" xml:space="preserve">
<value>鈴鼓</value>
</data>
<data name="Shuriken" xml:space="preserve">
<value>手裏劍</value>
</data>
<data name="Puchipuchi" xml:space="preserve">
<value>泡泡</value>
</data>
<data name="Electric Guitar" xml:space="preserve">
<value>電吉他</value>
</data>
<data name="UraOni" xml:space="preserve">
<value>裏譜面</value>
</data>
<data name="Set Up Each Time" xml:space="preserve">
<value>每次設置</value>
</data>
<data name="Default" xml:space="preserve">
<value>默認</value>
</data>
<data name="Not Cleared" xml:space="preserve">
<value>未通關優先</value>
</data>
<data name="Not Full Combo" xml:space="preserve">
<value>未全連段優先</value>
</data>
<data name="Not Donderful Combo" xml:space="preserve">
<value>未全良連段優先</value>
</data>
<data name="Japanese" xml:space="preserve">
<value>日語</value>
</data>
<data name="English" xml:space="preserve">
<value>英語</value>
</data>
<data name="Chinese Traditional" xml:space="preserve">
<value>繁體中文</value>
</data>
<data name="Korean" xml:space="preserve">
<value>韓語</value>
</data>
<data name="Chinese Simplified" xml:space="preserve">
<value>簡體中文</value>
</data>
<data name="1 Star" xml:space="preserve">
<value>★ 1</value>
</data>
<data name="10 Star" xml:space="preserve">
<value>★ 10</value>
</data>
<data name="2 Star" xml:space="preserve">
<value>★ 2</value>
</data>
<data name="3 Star" xml:space="preserve">
<value>★ 3</value>
</data>
<data name="4 Star" xml:space="preserve">
<value>★ 4</value>
</data>
<data name="5 Star" xml:space="preserve">
<value>★ 5</value>
</data>
<data name="6 Star" xml:space="preserve">
<value>★ 6</value>
</data>
<data name="7 Star" xml:space="preserve">
<value>★ 7</value>
</data>
<data name="8 Star" xml:space="preserve">
<value>★ 8</value>
</data>
<data name="9 Star" xml:space="preserve">
<value>★ 9</value>
</data>
<data name="Log Out Confirm" xml:space="preserve">
<value>您確定要登出嗎?</value>
</data>
<data name="Leaderboard" xml:space="preserve">
<value>排行榜</value>
</data>
<data name="User ID" xml:space="preserve">
<value>用戶ID</value>
</data>
</root>

View File

@ -71,46 +71,47 @@ public partial class AccessCode
{
case 0:
await DialogService.ShowMessageBox(
"Error",
Localizer["Error"],
(MarkupString)
"Not logged in.<br />Please log in first and try again.",
"Ok");
(string)Localizer["Not Logged In Error"],
Localizer["Dialog OK"]);
break;
case 1:
await DialogService.ShowMessageBox(
"Success",
"New access code bound successfully.",
"Ok");
Localizer["Success"],
(MarkupString)
(string)Localizer["Access Code Bound Success"],
Localizer["Dialog OK"]);
await InitializeUser();
NavigationManager.NavigateTo(NavigationManager.Uri);
break;
case 2:
await DialogService.ShowMessageBox(
"Error",
Localizer["Error"],
(MarkupString)
"Bound access code upper limit reached.<br />Please delete one access code first.",
"Ok");
(string)Localizer["Access Code Upper Limit Error"],
Localizer["Dialog OK"]);
break;
case 3:
await DialogService.ShowMessageBox(
"Error",
Localizer["Error"],
(MarkupString)
"Access code already bound.<br />Please delete it from the bound user first.",
"Ok");
(string)Localizer["Access Code Already Bound Error"],
Localizer["Dialog OK"]);
break;
case 4:
await DialogService.ShowMessageBox(
"Error",
Localizer["Error"],
(MarkupString)
"Access code cannot be empty.<br />Please enter a valid access code.",
"Ok");
(string)Localizer["Access Code Empty Error"],
Localizer["Dialog OK"]);
break;
case 5:
await DialogService.ShowMessageBox(
"Error",
Localizer["Error"],
(MarkupString)
"You can't do that!<br />You need to be an admin to edit someone else's access codes.",
"Ok");
(string)Localizer["Access Code Not Admin Error"],
Localizer["Dialog OK"]);
break;
}
}

View File

@ -26,42 +26,45 @@ public partial class ChangePassword
case 0:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Only admin can log in.",
(MarkupString)
(string)Localizer["Login Only Admin Error"],
Localizer["Dialog OK"]);
NavigationManager.NavigateTo("/Users");
break;
case 1:
await DialogService.ShowMessageBox(
Localizer["Success"],
"Password changed successfully.",
(MarkupString)
(string)Localizer["Change Password Success"],
Localizer["Dialog OK"]);
NavigationManager.NavigateTo("/Users");
break;
case 2:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Confirm new password is not the same as new password.",
(MarkupString)
(string)Localizer["Change Password Different Confirm Password Error"],
Localizer["Dialog OK"]);
break;
case 3:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Card number not found.<br />Please play one game with this card number to register it.",
(string)Localizer["Unknown Access Code Error"],
Localizer["Dialog OK"]);
break;
case 4:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Old password is wrong!",
(string)Localizer["Change Password Wrong Current Password Error"],
Localizer["Dialog OK"]);
break;
case 5:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Card number not registered.<br />Please use register button to create a password first.",
(string)Localizer["Access Code Not Registered Error"],
Localizer["Dialog OK"]);
break;
case 6:

View File

@ -1,9 +1,9 @@
@using Blazored.LocalStorage
@using System.ComponentModel.DataAnnotations
@using Blazored.LocalStorage
@inject IGameDataService GameDataService
@inject HttpClient Client
@inject AuthService AuthService
@inject IJSRuntime JsRuntime
@inject NavigationManager NavigationManager
@inject ILocalStorageService LocalStorage
@ -28,10 +28,9 @@ else
<MudItem xs="12">
<MudPaper Elevation="0" Outlined="true">
<MudTabs ActivePanelIndex="0" Rounded="true" Border="true" PanelClass="pa-8">
@for (uint i = 1; i <= 19; i++)
@foreach (var danId in danMap.Keys)
{
var danId = i;
var danData = GameDataService.GetDanDataById(danId);
var danData = danMap[danId];
<MudTabPanel Text="@GetDanTitle(danData.Title)" Icon="@GetDanResultIcon(danId)">
<MudText Typo="Typo.h5" Class="mb-4">@Localizer["Details"]</MudText>
@ -217,7 +216,7 @@ else
var redRequirement = GetSoulGauge(danData, false);
var goldRequirement = GetSoulGauge(danData, true);
var barClass = "bar-default";
var resultText = @Localizer["Not Cleared"];
var resultText = Localizer["Not Passed"];
}
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">@Localizer["Result"]</MudText>
@ -225,12 +224,12 @@ else
{
if (danBestData.SoulGaugeTotal >= redRequirement) {
barClass = "bar-pass-red";
resultText = @Localizer["Pass"];
resultText = Localizer["Pass"];
}
if (danBestData.SoulGaugeTotal >= goldRequirement) {
barClass = "bar-pass-gold";
resultText = @Localizer["Gold"];
resultText = Localizer["Gold"];
}
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="100" Value="@danBestData.SoulGaugeTotal">
@ -287,7 +286,7 @@ else
var redRequirement = border.RedBorderTotal;
var goldRequirement = border.GoldBorderTotal;
var barClass = "bar-default";
var resultText = @Localizer["Not Cleared"];
var resultText = Localizer["Not Passed"];
}
<MudStack Spacing="1">
<MudText Typo="Typo.subtitle2" Style="font-weight:bold;">@Localizer["Result"]</MudText>
@ -297,18 +296,17 @@ else
if ((DanConditionType)border.OdaiType is DanConditionType.BadCount or DanConditionType.OkCount)
{
if (bestData <= redRequirement)
{
barClass = "bar-pass-red";
resultText = @Localizer["Pass"];
}
if (bestData <= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = @Localizer["Gold"];
resultText = Localizer["Gold"];
}
else if (bestData <= redRequirement)
{
barClass = "bar-pass-red";
resultText = Localizer["Pass"];
}
var resultValue = redRequirement - bestData;
if (resultValue < 0) resultValue = 0;
@ -319,19 +317,20 @@ else
}
else
{
if (bestData >= redRequirement)
{
barClass = "bar-pass-red";
resultText = @Localizer["Pass"];
}
if (bestData >= goldRequirement)
{
barClass = "bar-pass-gold";
resultText = @Localizer["Gold"];
resultText = Localizer["Gold"];
}
else if (bestData >= redRequirement)
{
barClass = "bar-pass-red";
resultText = Localizer["Pass"];
}
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="@goldRequirement" Value="@bestData">
var resultValue = Math.Min(bestData, redRequirement);
<MudProgressLinear Class="@barClass" Rounded="true" Size="Size.Large" Max="@redRequirement" Value="@resultValue">
<MudText Typo="Typo.caption">@bestData</MudText>
</MudProgressLinear>
<MudText Typo="Typo.caption" Style="text-align: right">@resultText</MudText>

View File

@ -1,4 +1,5 @@
using Microsoft.JSInterop;
using System.Collections.Immutable;
using Microsoft.JSInterop;
namespace TaikoWebUI.Pages;
@ -14,6 +15,7 @@ public partial class DaniDojo
private static Dictionary<uint, DanBestData> _bestDataMap = new();
private Dictionary<uint, MusicDetail> musicDetailDictionary = new();
private ImmutableDictionary<uint, DanData> danMap = ImmutableDictionary<uint, DanData>.Empty;
private readonly List<BreadcrumbItem> breadcrumbs = new();
@ -32,6 +34,8 @@ public partial class DaniDojo
.Sort((stageData, otherStageData) => stageData.SongNumber.CompareTo(otherStageData.SongNumber)));
_bestDataMap = response.DanBestDataList.ToDictionary(data => data.DanId);
danMap = GameDataService.GetDanMap();
SongNameLanguage = await LocalStorage.GetItemAsync<string>("songNameLanguage");
userSetting = await Client.GetFromJsonAsync<UserSetting>($"api/UserSettings/{Baid}");
@ -54,7 +58,7 @@ public partial class DaniDojo
{
return danClearState switch
{
DanClearState.NotClear => Localizer["Not Cleared"],
DanClearState.NotClear => Localizer["Not Passed"],
DanClearState.RedNormalClear => Localizer["Red"],
DanClearState.RedFullComboClear => Localizer["Red Full Combo"],
DanClearState.RedPerfectClear => Localizer["Red Donderful Combo"],

View File

@ -10,7 +10,7 @@
</TitleContent>
<DialogContent>
<MudText Typo="Typo.body1" Class="mb-1">
@Localizer["Are you sure you want to delete this access code?"]
@Localizer["Access Code Delete Confirm"]
</MudText>
<MudText>

View File

@ -1,5 +1,4 @@
using System.Net.Http.Headers;
using Blazored.LocalStorage;
using Blazored.LocalStorage;
namespace TaikoWebUI.Pages.Dialogs;
@ -27,7 +26,7 @@ public partial class AccessCodeDeleteConfirmDialog
{
if (User.AccessCodes.Count == 1)
{
Snackbar.Add("Cannot delete last access code!", Severity.Error);
Snackbar.Add(Localizer["Access Code Delete Last Access Code Error"], Severity.Error);
MudDialog.Close(DialogResult.Ok(false));
return;
}
@ -36,12 +35,12 @@ public partial class AccessCodeDeleteConfirmDialog
if (!cardResponseMessage.IsSuccessStatusCode)
{
Snackbar.Add("Something went wrong when deleting access code!", Severity.Error);
Snackbar.Add(Localizer["Unknown Error"], Severity.Error);
MudDialog.Close(DialogResult.Ok(false));
return;
}
Snackbar.Add("Delete success!", Severity.Success);
Snackbar.Add(Localizer["Access Code Delete Success"], Severity.Success);
MudDialog.Close(DialogResult.Ok(true));
}
}

View File

@ -41,14 +41,14 @@
<MudTablePager RowsPerPageString=@Localizer["Rows Per Page"] />
</PagerContent>
</MudTable>
<MudText Class="mt-4 d-block" Typo="Typo.caption"> <b>@Localizer["Selected Title:"]</b> @selectedTitle?.TitleName</MudText>
<MudText Class="mt-4 d-block" Typo="Typo.caption"> <b>@Localizer["Currently Selected:"]</b> @selectedTitle?.TitleName</MudText>
</DialogContent>
<DialogActions>
<MudButton OnClick="Cancel">
@Localizer["Cancel"]
</MudButton>
<MudButton Color="Color.Primary" OnClick="Submit">
@Localizer["Okay"]
@Localizer["Dialog OK"]
</MudButton>
</DialogActions>
</MudDialog>

View File

@ -9,8 +9,8 @@
</div>
</TitleContent>
<DialogContent>
<MudText Class="mb-2">@Localizer["reset_password_confirm_dialog_1"]</MudText>
<MudText>@Localizer["reset_password_confirm_dialog_2"]</MudText>
<MudText Class="mb-2">@Localizer["Reset Password Confirm 1"]</MudText>
<MudText>@Localizer["Reset Password Confirm 2"]</MudText>
</DialogContent>
<DialogActions>
<MudButton OnClick="Cancel">@Localizer["Cancel"]</MudButton>

View File

@ -5,19 +5,18 @@
<TitleContent>
<MudText Typo="Typo.h6">
<MudIcon Icon="@Icons.Material.Filled.DeleteForever" Class="mr-3 mb-n1" />
Delete user?
@Localizer["Delete User"]
</MudText>
</TitleContent>
<DialogContent>
<MudText>
Do you really want to delete this user's data?
All the related data will be deleted and this process cannot be undone!
@Localizer["Delete User Confirm"]
</MudText>
</DialogContent>
<DialogActions>
<MudButton OnClick="Cancel">CANCEL</MudButton>
<MudButton Color="Color.Error" OnClick="DeleteUser">
<MudText>DELETE</MudText>
<MudText>@Localizer["Delete"]</MudText>
</MudButton>
</DialogActions>
</MudDialog>

View File

@ -24,12 +24,12 @@ public partial class UserDeleteConfirmDialog
if (!responseMessage.IsSuccessStatusCode)
{
Snackbar.Add("Something went wrong when deleting user!", Severity.Error);
Snackbar.Add(Localizer["Unknown Error"], Severity.Error);
MudDialog.Close(DialogResult.Ok(false));
return;
}
Snackbar.Add("Delete success!", Severity.Success);
Snackbar.Add(Localizer["Delete User Success"], Severity.Success);
MudDialog.Close(DialogResult.Ok(true));
}
}

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

@ -25,7 +25,8 @@ public partial class Login
case 0:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Only admin can log in.",
(MarkupString)
(string)Localizer["Login Only Admin Error"],
Localizer["Dialog OK"], null, null, options);
await loginForm.ResetAsync();
break;
@ -35,21 +36,22 @@ public partial class Login
case 2:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Wrong password!",
(MarkupString)
(string)Localizer["Login Wrong Password Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 3:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Access code not found.<br />Please play one game with this access code to register it.",
(string)Localizer["Unknown Access Code Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 4:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Access code not registered.<br />Please use register button to create a password first.",
(string)Localizer["Access Code Not Registered Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 5:

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,11 +35,11 @@
<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;
<MudSelectItem Value="@i">@LanguageStrings[index]</MudSelectItem>
<MudSelectItem Value="@i">@Localizer[LanguageStrings[index]]</MudSelectItem>
}
</MudSelect>
</MudItem>
@ -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,7 +62,7 @@
@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">@TitlePlateStrings[index]</MudSelectItem>
@ -72,43 +72,43 @@
}
</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" />
<MudSelectItem Value="@item">@Localizer[item.ToString()]</MudSelectItem>
}
</MudSelect>
<MudGrid>
<MudItem xs="12" md="4">
<MudStack Spacing="4">
<MudSwitch @bind-Checked="@response.IsDisplayAchievement" Label=@Localizer["Display Achievement Panel"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsDisplayDanOnNamePlate" Label=@Localizer["Display Dan Rank on Name Plate"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.IsDisplayAchievement" Label=@Localizer["Display Achievement Panel"] Color="Color.Primary" />
<MudSwitch @bind-Value="@response.IsDisplayDanOnNamePlate" Label=@Localizer["Display Dan Rank on Name Plate"] Color="Color.Primary" />
</MudStack>
</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;
<MudSelectItem Value="@i">@DifficultySettingCourseStrings[index]</MudSelectItem>
<MudSelectItem Value="@i">@Localizer[DifficultySettingCourseStrings[index]]</MudSelectItem>
}
</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;
<MudSelectItem Value="@i">@DifficultySettingStarStrings[index]</MudSelectItem>
<MudSelectItem Value="@i">@Localizer[DifficultySettingStarStrings[index]]</MudSelectItem>
}
</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;
<MudSelectItem Value="@i">@DifficultySettingSortStrings[index]</MudSelectItem>
<MudSelectItem Value="@i">@Localizer[DifficultySettingSortStrings[index]]</MudSelectItem>
}
</MudSelect>
</MudStack>
@ -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;
@ -203,15 +203,15 @@
<MudGrid>
<MudItem xs="12" md="4">
<MudStack Spacing="4">
<MudSwitch @bind-Checked="@response.PlaySetting.IsVanishOn" Label=@Localizer["Vanish"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.PlaySetting.IsInverseOn" Label=@Localizer["Inverse"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsSkipOn" Label=@Localizer["Give Up"] Color="Color.Primary" />
<MudSwitch @bind-Checked="@response.IsVoiceOn" Label=@Localizer["Voice"] Color="Color.Primary" />
<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["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,19 +219,18 @@
}
</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" />
<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;
<MudSelectItem Value="@i">@ToneStrings[index]</MudSelectItem>
<MudSelectItem Value="@i">@Localizer[ToneStrings[index]]</MudSelectItem>
}
</MudSelect>
@ -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

@ -129,11 +129,11 @@ public partial class Profile
private static readonly string[] ToneStrings =
{
"Taiko", "Festival", "Dogs & Cats", "Deluxe",
"Drumset", "Tambourine", "Don Wada", "Clapping",
"Conga", "8-Bit", "Heave-ho", "Mecha",
"Bujain", "Rap", "Hosogai", "Akemi",
"Synth Drum", "Shuriken", "Bubble Pop", "Electric Guitar"
"Taiko", "Matsuri", "Inuneko", "Wonderfultaiko",
"Drum", "Tambourine", "Wadadon", "Clapping",
"Conga", "8bittaiko", "Soya", "Mekadon",
"Funassyi", "Wrap", "Isogai", "Akemi",
"Synthdrum", "Shuriken", "Puchipuchi", "Electric Guitar"
};
private static readonly string[] TitlePlateStrings =
@ -148,25 +148,25 @@ public partial class Profile
private static readonly string[] LanguageStrings =
{
"Japanese", "English", "Chinese (Traditional)", "Korean", "Chinese (Simplified)"
"Japanese", "English", "Chinese Traditional", "Korean", "Chinese Simplified"
};
private static readonly string[] DifficultySettingCourseStrings =
{
"None", "Set up each time",
"None", "Set Up Each Time",
"Easy", "Normal", "Hard", "Oni", "Ura Oni"
};
private static readonly string[] DifficultySettingStarStrings =
{
"None", "Set up each time",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"
"None", "Set Up Each Time",
"1 Star", "2 Star", "3 Star", "4 Star", "5 Star", "6 Star", "7 Star", "8 Star", "9 Star", "10 Star"
};
private static readonly string[] DifficultySettingSortStrings =
{
"None", "Set up each time", "Default",
"Not cleared", "Not Full Combo", "Not Donderful Combo"
"None", "Set Up Each Time", "Default",
"Not Cleared", "Not Full Combo", "Not Donderful Combo"
};
private readonly List<BreadcrumbItem> breadcrumbs = new();

View File

@ -28,35 +28,38 @@ public partial class Register
case 0:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Only admin can register.",
(MarkupString)
(string)Localizer["Register Only Admin Error"],
Localizer["Dialog OK"], null, null, options);
NavigationManager.NavigateTo("/");
break;
case 1:
await DialogService.ShowMessageBox(
Localizer["Success"],
"Access code registered successfully.",
(MarkupString)
(string)Localizer["Register Success"],
Localizer["Dialog OK"], null, null, options);
NavigationManager.NavigateTo("/Login");
break;
case 2:
await DialogService.ShowMessageBox(
Localizer["Error"],
"Confirm password is not the same as password.",
(MarkupString)
(string)Localizer["Register Different Confirm Password Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 3:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Access code not found.<br />Please play one game with this access code to register it.",
(string)Localizer["Unknown Access Code Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 4:
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Access code is already registered, please use set password to login.",
(string)Localizer["Register Already Registered Error"],
Localizer["Dialog OK"], null, null, options);
NavigationManager.NavigateTo("/Login");
break;
@ -64,7 +67,7 @@ public partial class Register
await DialogService.ShowMessageBox(
Localizer["Error"],
(MarkupString)
"Wrong last play time.<br />If you have forgotten when you last played, please play another game with this access code.",
(string) Localizer["Register Wrong Last Play Time Error"],
Localizer["Dialog OK"], null, null, options);
break;
case 6:

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

@ -39,7 +39,7 @@
} else { // No users in the database
<MudItem xs="12">
<MudText Align="Align.Center" Class="my-8">
@Localizer["No data."]
@Localizer["No Data"]
</MudText>
</MudItem>
}

View File

@ -116,11 +116,11 @@ public class GameDataService : IGameDataService
return musicDetails.TryGetValue(songId, out var musicDetail) ? musicDetail.Index : int.MaxValue;
}
public DanData GetDanDataById(uint danId)
public ImmutableDictionary<uint, DanData> GetDanMap()
{
return danMap.GetValueOrDefault(danId, new DanData());
return danMap;
}
public int GetMusicStarLevel(Dictionary<uint, MusicDetail> musicDetails, uint songId, Difficulty difficulty)
{
var success = musicDetails.TryGetValue(songId, out var musicDetail);

View File

@ -1,4 +1,6 @@
namespace TaikoWebUI.Services;
using System.Collections.Immutable;
namespace TaikoWebUI.Services;
public interface IGameDataService
{
@ -22,7 +24,7 @@ public interface IGameDataService
public int GetMusicIndexBySongId(Dictionary<uint, MusicDetail> musicDetails,uint songId);
public DanData GetDanDataById(uint danId);
public ImmutableDictionary<uint, DanData> GetDanMap();
public int GetMusicStarLevel(Dictionary<uint, MusicDetail> musicDetails, uint songId, Difficulty difficulty);

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