Skip to content
Merged
4 changes: 2 additions & 2 deletions WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@
<ContextMenu>
<MenuItem Header="{loc:T action.copy_friend_code}" Click="CopyFriendCode_OnClick" />
<Separator />
<MenuItem Header="View Profile" Click="ViewProfile_OnClick" />
<MenuItem Header="View player on RWFC" Click="ViewOnRwfc_OnClick" />
<MenuItem Header="{loc:T action.view_profile}" Click="ViewProfile_OnClick" />
<MenuItem Header="{loc:T action.view_player_rwfc}" Click="ViewOnRwfc_OnClick" />
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
Expand Down
20 changes: 10 additions & 10 deletions WheelWizard/Features/RrRooms/Views/RoomDetailsPage.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<int>(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;
}

Expand All @@ -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;
}

Expand All @@ -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;
}

Expand Down Expand Up @@ -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<string> 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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
IconData="{StaticResource XMark}"
Margin="0,0,6,0"
Click="Cancel_OnClick" Tone="Secondary"/>
<components:ActionButton Text="Add Friend"
<components:ActionButton Text="{loc:T action.add_friend}"
IconData="{StaticResource CheckMark}"
Margin="6,0,0,0"
Click="AddFriend_OnClick" Tone="Brand"/>
Expand Down
82 changes: 41 additions & 41 deletions WheelWizard/Models/RRInfo/RrRoom.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
46 changes: 45 additions & 1 deletion WheelWizard/Resources/Languages/de.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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}
Expand Down Expand Up @@ -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."
Expand Down
43 changes: 43 additions & 0 deletions WheelWizard/Resources/Languages/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down Expand Up @@ -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}'"
Expand Down
2 changes: 1 addition & 1 deletion WheelWizard/Views/Shell/ViewUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Loading