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)