diff --git a/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml b/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml index ec628ee0c..3afda31af 100644 --- a/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml +++ b/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml @@ -100,8 +100,8 @@ - - + + diff --git a/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml.cs b/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml.cs index f9885f863..bf9f6b749 100644 --- a/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml.cs +++ b/WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml.cs @@ -147,27 +147,27 @@ private async void AddFriend_OnClick(object sender, RoutedEventArgs e) if (selectedPlayer.FirstMii == null) { - ViewUtils.ShowSnackbar("This player has no valid Mii data.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.mii_invalid"), ViewUtils.SnackbarType.Warning); return; } var focusedUserIndex = SettingsService.Get(SettingsService.FOCUSED_USER); if (focusedUserIndex is < 0 or > 3) { - ViewUtils.ShowSnackbar("Invalid license selected.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.license_invalid"), ViewUtils.SnackbarType.Warning); return; } var activeUserPid = FriendCode.FriendCodeToProfileId(GameDataService.ActiveUser.FriendCode); if (activeUserPid == 0) { - ViewUtils.ShowSnackbar("Select a valid license before adding friends.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.license_invalid_self"), ViewUtils.SnackbarType.Warning); return; } if (GameDataService.ActiveCurrentFriends.Count >= 30) { - ViewUtils.ShowSnackbar("Your friend list is full.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.friend_list_full"), ViewUtils.SnackbarType.Warning); return; } @@ -182,7 +182,7 @@ private async void AddFriend_OnClick(object sender, RoutedEventArgs e) var friendProfileId = FriendCode.FriendCodeToProfileId(normalizedFriendCode); if (activeUserPid == friendProfileId) { - ViewUtils.ShowSnackbar("You cannot add your own friend code.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.add_own_fc"), ViewUtils.SnackbarType.Warning); return; } @@ -194,7 +194,7 @@ private async void AddFriend_OnClick(object sender, RoutedEventArgs e) if (duplicateFriend) { - ViewUtils.ShowSnackbar("This friend is already in your list.", ViewUtils.SnackbarType.Warning); + ViewUtils.ShowSnackbar(t("snackbar_warning.add_existing_friend"), ViewUtils.SnackbarType.Warning); return; } @@ -223,22 +223,22 @@ private async void AddFriend_OnClick(object sender, RoutedEventArgs e) } ViewUtils.GetLayout().UpdateFriendCount(); - ViewUtils.ShowSnackbar($"Added {selectedPlayer.Name} to your friend list."); + ViewUtils.ShowSnackbar(t("snackbar_success.friend_added", new { name = selectedPlayer.Name })); } private static OperationResult NormalizeFriendCode(string friendCode) { if (string.IsNullOrWhiteSpace(friendCode)) - return Fail("Friend code cannot be empty."); + return Fail(t("snackbar_warning.empty_fc")); var digits = new string(friendCode.Where(char.IsDigit).ToArray()); if (digits.Length != 12 || !ulong.TryParse(digits, out _)) - return Fail("Friend code must be exactly 12 digits."); + return Fail(t("snackbar_warning.invalid_fc")); var formatted = $"{digits[..4]}-{digits.Substring(4, 4)}-{digits.Substring(8, 4)}"; var profileId = FriendCode.FriendCodeToProfileId(formatted); if (profileId == 0) - return Fail("Invalid friend code."); + return Fail(t("snackbar_warning.nonexisting_fc")); return formatted; } diff --git a/WheelWizard/Features/WheelWizardData/Views/Dialogs/AddFriendConfirmationWindow.axaml b/WheelWizard/Features/WheelWizardData/Views/Dialogs/AddFriendConfirmationWindow.axaml index 4446333ca..f6519749a 100644 --- a/WheelWizard/Features/WheelWizardData/Views/Dialogs/AddFriendConfirmationWindow.axaml +++ b/WheelWizard/Features/WheelWizardData/Views/Dialogs/AddFriendConfirmationWindow.axaml @@ -54,7 +54,7 @@ IconData="{StaticResource XMark}" Margin="0,0,6,0" Click="Cancel_OnClick" Tone="Secondary"/> - diff --git a/WheelWizard/Models/RRInfo/RrRoom.cs b/WheelWizard/Models/RRInfo/RrRoom.cs index a8b22d4cf..1fa6e664d 100644 --- a/WheelWizard/Models/RRInfo/RrRoom.cs +++ b/WheelWizard/Models/RRInfo/RrRoom.cs @@ -81,59 +81,59 @@ public class RrRoom { //Max Size:"----------------------" // Retro Rewind - "vs_10" => "RR 150CC", - "vs_11" => "RR Time Tr", - "vs_12" => "RR 200CC", - "vs_13" => "RR Item Rain", - "vs_14" => "RR Battle", - "vs_15" => "RR Elim Battle", - "vs_20" => "RR 150CC CTs", - "vs_21" => "RR Vanilla", + "vs_10" => t("game_mode.rr_150cc"), + "vs_11" => t("game_mode.rr_tt"), + "vs_12" => t("game_mode.rr_200cc"), + "vs_13" => t("game_mode.rr_item_rain"), + "vs_14" => t("game_mode.rr_battle"), + "vs_15" => t("game_mode.rr_battle_elim"), + "vs_20" => t("game_mode.rr_150cc_ct"), + "vs_21" => t("game_mode.rr_vanilla"), // CTGP - "vs_668" => "CTGP-C", + "vs_668" => t("game_mode.ctgp_c"), // Insane Kart Wii - "vs_69" => "Insane Kart", - "vs_70" => "Ultras VS", - "vs_71" => "Crazy Items", - "vs_72" => "Bob-omb Blast", - "vs_73" => "Inf Accel", - "vs_74" => "Banan Slip", - "vs_75" => "Rand Items", - "vs_76" => "Unfair Items", - "vs_77" => "Blue Madness", - "vs_78" => "Mush Dash", - "vs_79" => "Bumper Karts", - "vs_80" => "Item Rampage", - "vs_81" => "Item Rain", - "vs_82" => "Shell Break", - "vs_83" => "Riibalanced", + "vs_69" => t("game_mode.insane_kart"), + "vs_70" => t("game_mode.insane_ultras_vs"), + "vs_71" => t("game_mode.insane_crazy_items"), + "vs_72" => t("game_mode.insane_bob_omb"), + "vs_73" => t("game_mode.insane_inf_accel"), + "vs_74" => t("game_mode.insane_banana_slip"), + "vs_75" => t("game_mode.insane_rand_items"), + "vs_76" => t("game_mode.insane_unfair_items"), + "vs_77" => t("game_mode.insane_blue_madness"), + "vs_78" => t("game_mode.insane_mush_dash"), + "vs_79" => t("game_mode.insane_bumper_karts"), + "vs_80" => t("game_mode.insane_item_rampage"), + "vs_81" => t("game_mode.insane_item_rain"), + "vs_82" => t("game_mode.insane_shell_break"), + "vs_83" => t("game_mode.insane_riibalanced"), // Luminous - "vs_666" => "Luminous", - "vs_667" => "Luminous TT", + "vs_666" => t("game_mode.luminous"), + "vs_667" => t("game_mode.luminous_tt"), // OptPack - "vs_875" => "OP 150", - "vs_876" => "OP TT", - "vs_877" => "OP R1", - "vs_878" => "OP R2", - "vs_879" => "OP R3", - "vs_880" => "OP R4", + "vs_875" => t("game_mode.opt_150cc"), + "vs_876" => t("game_mode.opt_tt"), + "vs_877" => t("game_mode.opt_r1"), + "vs_878" => t("game_mode.opt_r2"), + "vs_879" => t("game_mode.opt_r3"), + "vs_880" => t("game_mode.opt_r4"), // WTP - "vs_1312" => "WTP 150CC", - "vs_1313" => "WTP 200CC", - "vs_1314" => "WTP Time Trial", - "vs_1315" => "WTP Item Rain", - "vs_1316" => "WTP STYD", + "vs_1312" => t("game_mode.wtp_150cc"), + "vs_1313" => t("game_mode.wtp_200cc"), + "vs_1314" => t("game_mode.wtp_tt"), + "vs_1315" => t("game_mode.wtp_item_rain"), + "vs_1316" => t("game_mode.wtp_styd"), // Generic - "vs_751" => "Versus", - "vs_-1" => "Regular", - "vs" => "Regular", - _ => IsPublic ? "Unknown Mode" : "Private Room", + "vs_751" => t("game_mode.generic_vs"), + "vs_-1" => t("game_mode.generic_regular"), + "vs" => t("game_mode.generic_regular"), + _ => IsPublic ? t("game_mode.unknown") : t("game_mode.private_room"), }; public int AverageVr diff --git a/WheelWizard/Resources/Languages/de.yml b/WheelWizard/Resources/Languages/de.yml index c997f8b26..379700e48 100644 --- a/WheelWizard/Resources/Languages/de.yml +++ b/WheelWizard/Resources/Languages/de.yml @@ -27,7 +27,7 @@ de: races_played: "Gespielte Rennen" friend_code: "Freundescode" player_count: "Spieler" - time_online: "Zeit online" + time_online: "Online seit" message: "Nachricht" is_online: "Ist Online" vr_history: "R-Punkte Verlauf" @@ -147,6 +147,7 @@ de: view_mod: "Mod ansehen" save_external_mii: "Mii zu \"Meine Miis\" hinzufügen" view_profile: "Profil ansehen" + view_player_rwfc: "Spieler auf RWFC ansehen" duplicate: "Duplizieren" back: "Zurück" unfavorite: "Entfavorisieren" @@ -186,6 +187,48 @@ de: mod_browser: "Mod Browser" mii_selector: "Mii auswählen" mii_editor: "Mii Maker" + game_mode: + rr_150cc: "RR 150cc" + rr_150cc_ct: "RR 150cc CTs" + rr_200cc: "RR 200cc" + rr_tt: "RR Zeitfahren" + rr_item_rain: "RR Itemregen" + rr_battle: "RR Wettkampf" + rr_batte_elim: "RR Eliminierungs-Wettkampf" + rr_vanilla: "RR Vanilla" + ctgp_c: "CTGP-C" + insane_kart: "Insane Kart" + insane_ultras_vs: "Ultra-Abkürzung Versus" + insane_crazy_items: "Verrückte Items" + insane_bob_omb: "Bob-omb-Wurf" + insane_inf_accel: "Unendlich Beschleunigung" + insane_banana_slip: "Bananen-Rutschpartie" + insane_rand_items: "Zufällige Items" + insane_unfair_items: "Unfaire Items" + insane_blue_madness: "Blauer Panzer-Wahnsinn" + insane_mush_dash: "Pilzrausch" + insane_bumper_karts: "Autoscooter" + insane_item_rampage: "Item-Randale" + insane_item_rain: "Itemregen" + insane_shell_break: "Panzerbruch" + insane_riibalanced: "Riibalanced" + luminous: "Luminous" + luminous_tt: "Luminous Zeitfahren" + opt_150cc: "OP 150cc" + opt_tt: "OP Zeitfahren" + opt_r1: "OP R1" + opt_r2: "OP R2" + opt_r3: "OP R3" + opt_r4: "OP R4" + wtp_150cc: "WTP 150cc" + wtp_200cc: "WTP 200cc" + wtp_tt: "WTP Zeitfahren" + wtp_item_rain: "WTP Itemregen" + wtp_styd: "WTP STYD" + generic_vs: "Versus" + generic_regular: "Normal" + unknown: "Modus unbekannt" + private_room: "Privater Raum" text: made_by_string: |- Erstellt von: %{firstAuthor} @@ -530,6 +573,7 @@ de: created_duplicates_miis: "%{amount} duplizierte Miis erstellt" profile_set_primary: "Profil als Hauptprofil festlegen" dolphin_updated: "Dolphin Emulator wurde aktualisiert" + link_opened: "Link geöffnet" snackbar_error: mii_failure_deserialize: "Daten von Mii '%{error}' konnten nicht deserialisiert werden." mii_failure_update: "Mii '%{error}' konnte nicht aktualisiert werden." diff --git a/WheelWizard/Resources/Languages/en.yml b/WheelWizard/Resources/Languages/en.yml index ce27ad711..1157ba073 100644 --- a/WheelWizard/Resources/Languages/en.yml +++ b/WheelWizard/Resources/Languages/en.yml @@ -216,6 +216,48 @@ en: mod_browser: "Mod Browser" mii_selector: "Mii Selector" mii_editor: "Mii Editor" + game_mode: + rr_150cc: "RR 150CC" + rr_150cc_ct: "RR 150CC CTs" + rr_200cc: "RR 200CC" + rr_tt: "RR Time Trial" + rr_item_rain: "RR Item Rain" + rr_battle: "RR Battle" + rr_batte_elim: "RR Elimination Battle" + rr_vanilla: "RR Vanilla" + ctgp_c: "CTGP-C" + insane_kart: "Insane Kart" + insane_ultras_vs: "Ultras VS" + insane_crazy_items: "Crazy Items" + insane_bob_omb: "Bob-omb Blast" + insane_inf_accel: "Infinite Acceleration" + insane_banana_slip: "Banana Slip" + insane_rand_items: "Random Items" + insane_unfair_items: "Unfair Items" + insane_blue_madness: "Blueshell Madness" + insane_mush_dash: "Mushroom Dash" + insane_bumper_karts: "Bumper Karts" + insane_item_rampage: "Item Rampage" + insane_item_rain: "Item Rain" + insane_shell_break: "Shell Break" + insane_riibalanced: "Riibalanced" + luminous: "Luminous" + luminous_tt: "Luminous TT" + opt_150cc: "OP 150CC" + opt_tt: "OP TT" + opt_r1: "OP R1" + opt_r2: "OP R2" + opt_r3: "OP R3" + opt_r4: "OP R4" + wtp_150cc: "WTP 150CC" + wtp_200cc: "WTP 200CC" + wtp_tt: "WTP Time Trial" + wtp_item_rain: "WTP Item Rain" + wtp_styd: "WTP STYD" + generic_vs: "Versus" + generic_regular: "Regular" + unknown: "Unknown Mode" + private_room: "Private Room" text: made_by_string: |- Made by: %{firstAuthor} @@ -584,6 +626,7 @@ en: created_duplicates_miis: "Created %{amount} duplicate Miis" profile_set_primary: "Set profile as primary" dolphin_updated: "Dolphin Emulator has been updated" + link_opened: "Opened link" snackbar_error: mii_failure_deserialize: "Failed to deserialize Mii '%{error}'" mii_failure_update: "Failed to update Mii '%{error}'" diff --git a/WheelWizard/Views/Shell/ViewUtils.cs b/WheelWizard/Views/Shell/ViewUtils.cs index 25a5144a9..a3f172b29 100644 --- a/WheelWizard/Views/Shell/ViewUtils.cs +++ b/WheelWizard/Views/Shell/ViewUtils.cs @@ -23,7 +23,7 @@ public enum SnackbarType public static void OpenLink(string link) { Process.Start(new ProcessStartInfo { FileName = link, UseShellExecute = true }); - ShowSnackbar("Opened link"); + ShowSnackbar(t("snackbar_success.link_opened")); } public static void OpenRwfcPlayer(string? friendCode)