diff --git a/osu.Game.Rulesets.Catch/CatchRuleset.cs b/osu.Game.Rulesets.Catch/CatchRuleset.cs
index f832d99807..ed151855b1 100644
--- a/osu.Game.Rulesets.Catch/CatchRuleset.cs
+++ b/osu.Game.Rulesets.Catch/CatchRuleset.cs
@@ -23,6 +23,7 @@ using osu.Game.Rulesets.Difficulty;
using osu.Game.Rulesets.Scoring;
using System;
using osu.Framework.Extensions.EnumExtensions;
+using osu.Framework.Localisation;
using osu.Game.Rulesets.Catch.Edit;
using osu.Game.Rulesets.Catch.Skinning.Legacy;
using osu.Game.Rulesets.Edit;
@@ -162,7 +163,7 @@ namespace osu.Game.Rulesets.Catch
};
}
- public override string GetDisplayNameForHitResult(HitResult result)
+ public override LocalisableString GetDisplayNameForHitResult(HitResult result)
{
switch (result)
{
diff --git a/osu.Game.Rulesets.Mania/ManiaRuleset.cs b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
index f787bb3c41..2167e5e5ac 100644
--- a/osu.Game.Rulesets.Mania/ManiaRuleset.cs
+++ b/osu.Game.Rulesets.Mania/ManiaRuleset.cs
@@ -15,6 +15,7 @@ using osu.Framework.Extensions.EnumExtensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.Bindings;
+using osu.Framework.Localisation;
using osu.Game.Graphics;
using osu.Game.Rulesets.Mania.Replays;
using osu.Game.Rulesets.Replays.Types;
@@ -356,7 +357,7 @@ namespace osu.Game.Rulesets.Mania
};
}
- public override string GetDisplayNameForHitResult(HitResult result)
+ public override LocalisableString GetDisplayNameForHitResult(HitResult result)
{
switch (result)
{
diff --git a/osu.Game.Rulesets.Osu/OsuRuleset.cs b/osu.Game.Rulesets.Osu/OsuRuleset.cs
index 8070e6464d..f7df949414 100644
--- a/osu.Game.Rulesets.Osu/OsuRuleset.cs
+++ b/osu.Game.Rulesets.Osu/OsuRuleset.cs
@@ -32,6 +32,7 @@ using osu.Game.Skinning;
using System;
using System.Linq;
using osu.Framework.Extensions.EnumExtensions;
+using osu.Framework.Localisation;
using osu.Game.Rulesets.Osu.Edit.Setup;
using osu.Game.Rulesets.Osu.Objects;
using osu.Game.Rulesets.Osu.Skinning.Legacy;
@@ -253,7 +254,7 @@ namespace osu.Game.Rulesets.Osu
};
}
- public override string GetDisplayNameForHitResult(HitResult result)
+ public override LocalisableString GetDisplayNameForHitResult(HitResult result)
{
switch (result)
{
diff --git a/osu.Game.Rulesets.Taiko/TaikoRuleset.cs b/osu.Game.Rulesets.Taiko/TaikoRuleset.cs
index 961864c36a..555c272954 100644
--- a/osu.Game.Rulesets.Taiko/TaikoRuleset.cs
+++ b/osu.Game.Rulesets.Taiko/TaikoRuleset.cs
@@ -25,6 +25,7 @@ using osu.Game.Scoring;
using System;
using System.Linq;
using osu.Framework.Extensions.EnumExtensions;
+using osu.Framework.Localisation;
using osu.Game.Rulesets.Edit;
using osu.Game.Rulesets.Taiko.Edit;
using osu.Game.Rulesets.Taiko.Objects;
@@ -192,7 +193,7 @@ namespace osu.Game.Rulesets.Taiko
};
}
- public override string GetDisplayNameForHitResult(HitResult result)
+ public override LocalisableString GetDisplayNameForHitResult(HitResult result)
{
switch (result)
{
diff --git a/osu.Game/Online/Leaderboards/LeaderboardScoreTooltip.cs b/osu.Game/Online/Leaderboards/LeaderboardScoreTooltip.cs
index 53a4719050..2f3ece0e3b 100644
--- a/osu.Game/Online/Leaderboards/LeaderboardScoreTooltip.cs
+++ b/osu.Game/Online/Leaderboards/LeaderboardScoreTooltip.cs
@@ -10,6 +10,8 @@ using osuTK;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics;
using osu.Framework.Allocation;
+using osu.Framework.Extensions.LocalisationExtensions;
+using osu.Framework.Localisation;
using osu.Game.Rulesets.Scoring;
using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.UI;
@@ -126,7 +128,7 @@ namespace osu.Game.Online.Leaderboards
private class HitResultCell : CompositeDrawable
{
- private readonly string displayName;
+ private readonly LocalisableString displayName;
private readonly HitResult result;
private readonly int count;
@@ -134,7 +136,7 @@ namespace osu.Game.Online.Leaderboards
{
AutoSizeAxes = Axes.Both;
- displayName = stat.DisplayName;
+ displayName = stat.DisplayName.ToUpper();
result = stat.Result;
count = stat.Count;
}
@@ -153,7 +155,7 @@ namespace osu.Game.Online.Leaderboards
new OsuSpriteText
{
Font = OsuFont.Torus.With(size: 12, weight: FontWeight.SemiBold),
- Text = displayName.ToUpperInvariant(),
+ Text = displayName.ToUpper(),
Colour = colours.ForHitResult(result),
},
new OsuSpriteText
diff --git a/osu.Game/Overlays/BeatmapSet/Scores/ScoreTable.cs b/osu.Game/Overlays/BeatmapSet/Scores/ScoreTable.cs
index 5463c7a50f..11aefd435d 100644
--- a/osu.Game/Overlays/BeatmapSet/Scores/ScoreTable.cs
+++ b/osu.Game/Overlays/BeatmapSet/Scores/ScoreTable.cs
@@ -59,7 +59,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
///
/// The statistics that appear in the table, in order of appearance.
///
- private readonly List<(HitResult result, string displayName)> statisticResultTypes = new List<(HitResult, string)>();
+ private readonly List<(HitResult result, LocalisableString displayName)> statisticResultTypes = new List<(HitResult, LocalisableString)>();
private bool showPerformancePoints;
@@ -114,7 +114,7 @@ namespace osu.Game.Overlays.BeatmapSet.Scores
if (result.IsBonus())
continue;
- string displayName = ruleset.GetDisplayNameForHitResult(result);
+ var displayName = ruleset.GetDisplayNameForHitResult(result);
columns.Add(new TableColumn(displayName, Anchor.CentreLeft, new Dimension(GridSizeMode.Distributed, minSize: 35, maxSize: 60)));
statisticResultTypes.Add((result, displayName));
diff --git a/osu.Game/Rulesets/Ruleset.cs b/osu.Game/Rulesets/Ruleset.cs
index c1ec6c30ef..50ce6b3b12 100644
--- a/osu.Game/Rulesets/Ruleset.cs
+++ b/osu.Game/Rulesets/Ruleset.cs
@@ -28,6 +28,7 @@ using osu.Game.Users;
using JetBrains.Annotations;
using osu.Framework.Extensions;
using osu.Framework.Extensions.EnumExtensions;
+using osu.Framework.Localisation;
using osu.Framework.Testing;
using osu.Game.Extensions;
using osu.Game.Rulesets.Filter;
@@ -313,7 +314,7 @@ namespace osu.Game.Rulesets
///
/// All valid s along with a display-friendly name.
///
- public IEnumerable<(HitResult result, string displayName)> GetHitResults()
+ public IEnumerable<(HitResult result, LocalisableString displayName)> GetHitResults()
{
var validResults = GetValidHitResults();
@@ -351,7 +352,7 @@ namespace osu.Game.Rulesets
///
/// The result type to get the name for.
/// The display name.
- public virtual string GetDisplayNameForHitResult(HitResult result) => result.GetDescription();
+ public virtual LocalisableString GetDisplayNameForHitResult(HitResult result) => result.GetLocalisableDescription();
///
/// Creates ruleset-specific beatmap filter criteria to be used on the song select screen.
diff --git a/osu.Game/Scoring/HitResultDisplayStatistic.cs b/osu.Game/Scoring/HitResultDisplayStatistic.cs
index 4603ff053e..20deff4875 100644
--- a/osu.Game/Scoring/HitResultDisplayStatistic.cs
+++ b/osu.Game/Scoring/HitResultDisplayStatistic.cs
@@ -3,6 +3,7 @@
#nullable disable
+using osu.Framework.Localisation;
using osu.Game.Rulesets.Scoring;
namespace osu.Game.Scoring
@@ -30,9 +31,9 @@ namespace osu.Game.Scoring
///
/// A custom display name for the result type. May be provided by rulesets to give better clarity.
///
- public string DisplayName { get; }
+ public LocalisableString DisplayName { get; }
- public HitResultDisplayStatistic(HitResult result, int count, int? maxCount, string displayName)
+ public HitResultDisplayStatistic(HitResult result, int count, int? maxCount, LocalisableString displayName)
{
Result = result;
Count = count;