diff --git a/osu.Game/Localisation/DailyChallengeStrings.cs b/osu.Game/Localisation/DailyChallengeStrings.cs
index 32ff98db06..09c6089636 100644
--- a/osu.Game/Localisation/DailyChallengeStrings.cs
+++ b/osu.Game/Localisation/DailyChallengeStrings.cs
@@ -24,6 +24,51 @@ Tomorrow's challenge is now being prepared and will appear soon.");
///
public static LocalisableString ChallengeLiveNotification => new TranslatableString(getKey(@"todays_daily_challenge_is_now"), @"Today's daily challenge is now live! Click here to play.");
+ ///
+ /// "Today's Challenge"
+ ///
+ public static LocalisableString TodaysChallenge => new TranslatableString(getKey(@"todays_challenge"), @"Today's Challenge");
+
+ ///
+ /// "Difficulty: {0}"
+ ///
+ public static LocalisableString DifficultyInfo(string difficultyName) => new TranslatableString(getKey(@"difficulty_info"), @"Difficulty: {0}", difficultyName);
+
+ ///
+ /// "Time remaining"
+ ///
+ public static LocalisableString SectionTimeRemaining => new TranslatableString(getKey(@"section_time_remaining"), @"Time remaining");
+
+ ///
+ /// "Score breakdown"
+ ///
+ public static LocalisableString SectionScoreBreakdown => new TranslatableString(getKey(@"section_score_breakdown"), @"Score breakdown");
+
+ ///
+ /// "Total pass count"
+ ///
+ public static LocalisableString SectionTotalPasses => new TranslatableString(getKey(@"section_total_passes"), @"Total pass count");
+
+ ///
+ /// "Cumulative total score"
+ ///
+ public static LocalisableString SectionCumulativeScore => new TranslatableString(getKey(@"section_cumulative_score"), @"Cumulative total score");
+
+ ///
+ /// "Events"
+ ///
+ public static LocalisableString SectionEvents => new TranslatableString(getKey(@"section_events"), @"Events");
+
+ ///
+ /// "You"
+ ///
+ public static LocalisableString You => new TranslatableString(getKey(@"you"), @"You");
+
+ ///
+ /// "{0:N0} passes in {1:N0} - {2:N0} range"
+ ///
+ public static LocalisableString ScoreBreakdownBarTooltip(long passesCount, int minScore, int maxScore) => new TranslatableString(getKey(@"score_breakdown_bar_tooltip"), @"{0:N0} passes in {1:N0} - {2:N0} range", passesCount, minScore, maxScore);
+
private static string getKey(string key) => $@"{prefix}:{key}";
}
}
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallenge.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallenge.cs
index 97f80e1111..609d3fed80 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallenge.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallenge.cs
@@ -322,7 +322,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
footerButtons.Insert(-1, new UserModSelectButton
{
- Text = "Free mods",
+ Text = OnlinePlayStrings.FooterButtonFreemods,
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
RelativeSizeAxes = Axes.Y,
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeEventFeed.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeEventFeed.cs
index 044c599ae9..f60863ece7 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeEventFeed.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeEventFeed.cs
@@ -11,6 +11,7 @@ using osu.Framework.Utils;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Screens.OnlinePlay.DailyChallenge.Events;
using osu.Game.Users.Drawables;
using osuTK;
@@ -30,7 +31,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
InternalChildren = new Drawable[]
{
- new SectionHeader("Events"),
+ new SectionHeader(DailyChallengeStrings.SectionEvents),
new Container
{
RelativeSizeAxes = Axes.Both,
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeIntro.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeIntro.cs
index 075d2af0aa..7df106e90a 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeIntro.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeIntro.cs
@@ -17,9 +17,11 @@ using osu.Game.Beatmaps.Drawables;
using osu.Game.Configuration;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
+using osu.Game.Localisation;
using osu.Game.Online;
using osu.Game.Online.Rooms;
using osu.Game.Overlays;
+using osu.Game.Resources.Localisation.Web;
using osu.Game.Rulesets;
using osu.Game.Screens.OnlinePlay.Match;
using osu.Game.Screens.Play.HUD;
@@ -145,7 +147,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
- Text = "Today's Challenge",
+ Text = DailyChallengeStrings.TodaysChallenge,
Margin = new MarginPadding { Horizontal = 10f, Vertical = 5f },
Shear = -OsuGame.SHEAR,
Font = OsuFont.GetFont(size: 32, weight: FontWeight.Light, typeface: Typeface.TorusAlternate),
@@ -254,7 +256,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
},
new TruncatingSpriteText
{
- Text = $"Difficulty: {beatmap.DifficultyName}",
+ Text = DailyChallengeStrings.DifficultyInfo(beatmap.DifficultyName),
Font = OsuFont.GetFont(size: 20, italics: true),
MaxWidth = horizontal_info_size,
Shear = -OsuGame.SHEAR,
@@ -263,7 +265,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
},
new TruncatingSpriteText
{
- Text = $"by {beatmap.Metadata.Author.Username}",
+ Text = BeatmappacksStrings.ShowCreatedBy(beatmap.Metadata.Author.Username),
Font = OsuFont.GetFont(size: 16, italics: true),
MaxWidth = horizontal_info_size,
Shear = -OsuGame.SHEAR,
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeLeaderboard.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeLeaderboard.cs
index 62c5c0c8df..4c45e66371 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeLeaderboard.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeLeaderboard.cs
@@ -12,6 +12,7 @@ using osu.Framework.Graphics.Containers;
using osu.Game.Beatmaps;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Online.API;
using osu.Game.Online.Rooms;
using osu.Game.Rulesets;
@@ -80,7 +81,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
],
Content = new[]
{
- new Drawable[] { new SectionHeader("Leaderboard") },
+ new Drawable[] { new SectionHeader(OnlinePlayStrings.PlaylistLeaderboard) },
new Drawable[]
{
new Container
@@ -109,7 +110,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
}
}
},
- new Drawable[] { userBestHeader = new SectionHeader("Personal best") { Alpha = 0, } },
+ new Drawable[] { userBestHeader = new SectionHeader(BeatmapLeaderboardWedgeStrings.PersonalBest) { Alpha = 0, } },
new Drawable[]
{
userBestContainer = new Container
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeScoreBreakdown.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeScoreBreakdown.cs
index 71ab73b535..4b35a5483f 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeScoreBreakdown.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeScoreBreakdown.cs
@@ -14,6 +14,7 @@ using osu.Framework.Localisation;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Online.Metadata;
using osu.Game.Online.Rooms;
using osu.Game.Overlays;
@@ -36,7 +37,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
InternalChildren = new Drawable[]
{
- new SectionHeader("Score breakdown"),
+ new SectionHeader(DailyChallengeStrings.SectionScoreBreakdown),
barsContainer = new FillFlowContainer
{
Direction = FillDirection.Horizontal,
@@ -215,7 +216,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
Anchor = Anchor.BottomCentre,
Origin = Anchor.BottomCentre,
Colour = colours.Orange1,
- Text = "You",
+ Text = DailyChallengeStrings.You,
Font = OsuFont.Default.With(weight: FontWeight.Bold),
Alpha = 0,
RelativePositionAxes = Axes.Y,
@@ -285,7 +286,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
flashLayer.FadeOutFromOne(600, Easing.OutQuint);
}
- public LocalisableString TooltipText => LocalisableString.Format("{0:N0} passes in {1:N0} - {2:N0} range", count, BinStart, BinEnd);
+ public LocalisableString TooltipText => DailyChallengeStrings.ScoreBreakdownBarTooltip(count, BinStart, BinEnd);
}
}
}
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTimeRemainingRing.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTimeRemainingRing.cs
index bf01ee6b52..7aefab82d6 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTimeRemainingRing.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTimeRemainingRing.cs
@@ -11,6 +11,7 @@ using osu.Framework.Threading;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Online.Rooms;
using osu.Game.Overlays;
using osuTK;
@@ -40,7 +41,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
InternalChildren = new Drawable[]
{
- new SectionHeader("Time remaining"),
+ new SectionHeader(DailyChallengeStrings.SectionTimeRemaining),
new DrawSizePreservingFillContainer
{
RelativeSizeAxes = Axes.Both,
diff --git a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTotalsDisplay.cs b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTotalsDisplay.cs
index e2535ed806..e50ed44522 100644
--- a/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTotalsDisplay.cs
+++ b/osu.Game/Screens/OnlinePlay/DailyChallenge/DailyChallengeTotalsDisplay.cs
@@ -10,6 +10,7 @@ using osu.Framework.Localisation;
using osu.Game.Graphics;
using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface;
+using osu.Game.Localisation;
using osu.Game.Screens.OnlinePlay.DailyChallenge.Events;
using osuTK;
@@ -42,7 +43,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
{
new Drawable[]
{
- new SectionHeader("Total pass count")
+ new SectionHeader(DailyChallengeStrings.SectionTotalPasses)
},
new Drawable[]
{
@@ -60,7 +61,7 @@ namespace osu.Game.Screens.OnlinePlay.DailyChallenge
},
new Drawable[]
{
- new SectionHeader("Cumulative total score")
+ new SectionHeader(DailyChallengeStrings.SectionCumulativeScore)
},
new Drawable[]
{