diff --git a/osu.Android.props b/osu.Android.props
index b01210a7b1..1866acd248 100644
--- a/osu.Android.props
+++ b/osu.Android.props
@@ -52,7 +52,7 @@
-
+
diff --git a/osu.Game/Beatmaps/BeatmapSetOnlineStatus.cs b/osu.Game/Beatmaps/BeatmapSetOnlineStatus.cs
index 6003e23a84..edaf044466 100644
--- a/osu.Game/Beatmaps/BeatmapSetOnlineStatus.cs
+++ b/osu.Game/Beatmaps/BeatmapSetOnlineStatus.cs
@@ -1,22 +1,34 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Beatmaps
{
- [LocalisableEnum(typeof(BeatmapSetOnlineStatusEnumLocalisationMapper))]
public enum BeatmapSetOnlineStatus
{
None = -3,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusGraveyard))]
Graveyard = -2,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusWip))]
WIP = -1,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusPending))]
Pending = 0,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusRanked))]
Ranked = 1,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusApproved))]
Approved = 2,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusQualified))]
Qualified = 3,
+
+ [LocalisableDescription(typeof(BeatmapsetsStrings), nameof(BeatmapsetsStrings.ShowStatusLoved))]
Loved = 4,
}
@@ -25,40 +37,4 @@ namespace osu.Game.Beatmaps
public static bool GrantsPerformancePoints(this BeatmapSetOnlineStatus status)
=> status == BeatmapSetOnlineStatus.Ranked || status == BeatmapSetOnlineStatus.Approved;
}
-
- public class BeatmapSetOnlineStatusEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(BeatmapSetOnlineStatus value)
- {
- switch (value)
- {
- case BeatmapSetOnlineStatus.None:
- return string.Empty;
-
- case BeatmapSetOnlineStatus.Graveyard:
- return BeatmapsetsStrings.ShowStatusGraveyard;
-
- case BeatmapSetOnlineStatus.WIP:
- return BeatmapsetsStrings.ShowStatusWip;
-
- case BeatmapSetOnlineStatus.Pending:
- return BeatmapsetsStrings.ShowStatusPending;
-
- case BeatmapSetOnlineStatus.Ranked:
- return BeatmapsetsStrings.ShowStatusRanked;
-
- case BeatmapSetOnlineStatus.Approved:
- return BeatmapsetsStrings.ShowStatusApproved;
-
- case BeatmapSetOnlineStatus.Qualified:
- return BeatmapsetsStrings.ShowStatusQualified;
-
- case BeatmapSetOnlineStatus.Loved:
- return BeatmapsetsStrings.ShowStatusLoved;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchCategory.cs b/osu.Game/Overlays/BeatmapListing/SearchCategory.cs
index 8a9df76af3..d6ae41aba1 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchCategory.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchCategory.cs
@@ -1,69 +1,42 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchCategoryEnumLocalisationMapper))]
public enum SearchCategory
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusAny))]
Any,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusLeaderboard))]
[Description("Has Leaderboard")]
Leaderboard,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusRanked))]
Ranked,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusQualified))]
Qualified,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusLoved))]
Loved,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusFavourites))]
Favourites,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusPending))]
[Description("Pending & WIP")]
Pending,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusGraveyard))]
Graveyard,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.StatusMine))]
[Description("My Maps")]
Mine,
}
-
- public class SearchCategoryEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchCategory value)
- {
- switch (value)
- {
- case SearchCategory.Any:
- return BeatmapsStrings.StatusAny;
-
- case SearchCategory.Leaderboard:
- return BeatmapsStrings.StatusLeaderboard;
-
- case SearchCategory.Ranked:
- return BeatmapsStrings.StatusRanked;
-
- case SearchCategory.Qualified:
- return BeatmapsStrings.StatusQualified;
-
- case SearchCategory.Loved:
- return BeatmapsStrings.StatusLoved;
-
- case SearchCategory.Favourites:
- return BeatmapsStrings.StatusFavourites;
-
- case SearchCategory.Pending:
- return BeatmapsStrings.StatusPending;
-
- case SearchCategory.Graveyard:
- return BeatmapsStrings.StatusGraveyard;
-
- case SearchCategory.Mine:
- return BeatmapsStrings.StatusMine;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchExplicit.cs b/osu.Game/Overlays/BeatmapListing/SearchExplicit.cs
index 78e6a4e094..80482b32a0 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchExplicit.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchExplicit.cs
@@ -1,34 +1,17 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchExplicitEnumLocalisationMapper))]
public enum SearchExplicit
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.NsfwExclude))]
Hide,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.NsfwInclude))]
Show
}
-
- public class SearchExplicitEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchExplicit value)
- {
- switch (value)
- {
- case SearchExplicit.Hide:
- return BeatmapsStrings.NsfwExclude;
-
- case SearchExplicit.Show:
- return BeatmapsStrings.NsfwInclude;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchExtra.cs b/osu.Game/Overlays/BeatmapListing/SearchExtra.cs
index 4b3fb6e833..e54632acd8 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchExtra.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchExtra.cs
@@ -1,38 +1,20 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchExtraEnumLocalisationMapper))]
public enum SearchExtra
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ExtraVideo))]
[Description("Has Video")]
Video,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ExtraStoryboard))]
[Description("Has Storyboard")]
Storyboard
}
-
- public class SearchExtraEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchExtra value)
- {
- switch (value)
- {
- case SearchExtra.Video:
- return BeatmapsStrings.ExtraVideo;
-
- case SearchExtra.Storyboard:
- return BeatmapsStrings.ExtraStoryboard;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchGeneral.cs b/osu.Game/Overlays/BeatmapListing/SearchGeneral.cs
index b4c629f7fa..d334b82e88 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchGeneral.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchGeneral.cs
@@ -1,44 +1,24 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchGeneralEnumLocalisationMapper))]
public enum SearchGeneral
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GeneralRecommended))]
[Description("Recommended difficulty")]
Recommended,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GeneralConverts))]
[Description("Include converted beatmaps")]
Converts,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GeneralFollows))]
[Description("Subscribed mappers")]
Follows
}
-
- public class SearchGeneralEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchGeneral value)
- {
- switch (value)
- {
- case SearchGeneral.Recommended:
- return BeatmapsStrings.GeneralRecommended;
-
- case SearchGeneral.Converts:
- return BeatmapsStrings.GeneralConverts;
-
- case SearchGeneral.Follows:
- return BeatmapsStrings.GeneralFollows;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchGenre.cs b/osu.Game/Overlays/BeatmapListing/SearchGenre.cs
index b2709ecd2e..08855284cb 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchGenre.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchGenre.cs
@@ -1,87 +1,56 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchGenreEnumLocalisationMapper))]
public enum SearchGenre
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreAny))]
Any = 0,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreUnspecified))]
Unspecified = 1,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreVideoGame))]
[Description("Video Game")]
VideoGame = 2,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreAnime))]
Anime = 3,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreRock))]
Rock = 4,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenrePop))]
Pop = 5,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreOther))]
Other = 6,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreNovelty))]
Novelty = 7,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreHipHop))]
[Description("Hip Hop")]
HipHop = 9,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreElectronic))]
Electronic = 10,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreMetal))]
Metal = 11,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreClassical))]
Classical = 12,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreFolk))]
Folk = 13,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.GenreJazz))]
Jazz = 14
}
-
- public class SearchGenreEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchGenre value)
- {
- switch (value)
- {
- case SearchGenre.Any:
- return BeatmapsStrings.GenreAny;
-
- case SearchGenre.Unspecified:
- return BeatmapsStrings.GenreUnspecified;
-
- case SearchGenre.VideoGame:
- return BeatmapsStrings.GenreVideoGame;
-
- case SearchGenre.Anime:
- return BeatmapsStrings.GenreAnime;
-
- case SearchGenre.Rock:
- return BeatmapsStrings.GenreRock;
-
- case SearchGenre.Pop:
- return BeatmapsStrings.GenrePop;
-
- case SearchGenre.Other:
- return BeatmapsStrings.GenreOther;
-
- case SearchGenre.Novelty:
- return BeatmapsStrings.GenreNovelty;
-
- case SearchGenre.HipHop:
- return BeatmapsStrings.GenreHipHop;
-
- case SearchGenre.Electronic:
- return BeatmapsStrings.GenreElectronic;
-
- case SearchGenre.Metal:
- return BeatmapsStrings.GenreMetal;
-
- case SearchGenre.Classical:
- return BeatmapsStrings.GenreClassical;
-
- case SearchGenre.Folk:
- return BeatmapsStrings.GenreFolk;
-
- case SearchGenre.Jazz:
- return BeatmapsStrings.GenreJazz;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchLanguage.cs b/osu.Game/Overlays/BeatmapListing/SearchLanguage.cs
index fc176c305a..7ffa0282b7 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchLanguage.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchLanguage.cs
@@ -1,117 +1,73 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Framework.Utils;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchLanguageEnumLocalisationMapper))]
[HasOrderedElements]
public enum SearchLanguage
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageAny))]
[Order(0)]
Any,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageUnspecified))]
[Order(14)]
Unspecified,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageEnglish))]
[Order(1)]
English,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageJapanese))]
[Order(6)]
Japanese,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageChinese))]
[Order(2)]
Chinese,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageInstrumental))]
[Order(12)]
Instrumental,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageKorean))]
[Order(7)]
Korean,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageFrench))]
[Order(3)]
French,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageGerman))]
[Order(4)]
German,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageSwedish))]
[Order(9)]
Swedish,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageSpanish))]
[Order(8)]
Spanish,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageItalian))]
[Order(5)]
Italian,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageRussian))]
[Order(10)]
Russian,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguagePolish))]
[Order(11)]
Polish,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.LanguageOther))]
[Order(13)]
Other
}
-
- public class SearchLanguageEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchLanguage value)
- {
- switch (value)
- {
- case SearchLanguage.Any:
- return BeatmapsStrings.LanguageAny;
-
- case SearchLanguage.Unspecified:
- return BeatmapsStrings.LanguageUnspecified;
-
- case SearchLanguage.English:
- return BeatmapsStrings.LanguageEnglish;
-
- case SearchLanguage.Japanese:
- return BeatmapsStrings.LanguageJapanese;
-
- case SearchLanguage.Chinese:
- return BeatmapsStrings.LanguageChinese;
-
- case SearchLanguage.Instrumental:
- return BeatmapsStrings.LanguageInstrumental;
-
- case SearchLanguage.Korean:
- return BeatmapsStrings.LanguageKorean;
-
- case SearchLanguage.French:
- return BeatmapsStrings.LanguageFrench;
-
- case SearchLanguage.German:
- return BeatmapsStrings.LanguageGerman;
-
- case SearchLanguage.Swedish:
- return BeatmapsStrings.LanguageSwedish;
-
- case SearchLanguage.Spanish:
- return BeatmapsStrings.LanguageSpanish;
-
- case SearchLanguage.Italian:
- return BeatmapsStrings.LanguageItalian;
-
- case SearchLanguage.Russian:
- return BeatmapsStrings.LanguageRussian;
-
- case SearchLanguage.Polish:
- return BeatmapsStrings.LanguagePolish;
-
- case SearchLanguage.Other:
- return BeatmapsStrings.LanguageOther;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SearchPlayed.cs b/osu.Game/Overlays/BeatmapListing/SearchPlayed.cs
index f24cf46c2d..3b04ac01ca 100644
--- a/osu.Game/Overlays/BeatmapListing/SearchPlayed.cs
+++ b/osu.Game/Overlays/BeatmapListing/SearchPlayed.cs
@@ -1,38 +1,20 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SearchPlayedEnumLocalisationMapper))]
public enum SearchPlayed
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.PlayedAny))]
Any,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.PlayedPlayed))]
Played,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.PlayedUnplayed))]
Unplayed
}
-
- public class SearchPlayedEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SearchPlayed value)
- {
- switch (value)
- {
- case SearchPlayed.Any:
- return BeatmapsStrings.PlayedAny;
-
- case SearchPlayed.Played:
- return BeatmapsStrings.PlayedPlayed;
-
- case SearchPlayed.Unplayed:
- return BeatmapsStrings.PlayedUnplayed;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/BeatmapListing/SortCriteria.cs b/osu.Game/Overlays/BeatmapListing/SortCriteria.cs
index 5ea885eecc..871b3c162b 100644
--- a/osu.Game/Overlays/BeatmapListing/SortCriteria.cs
+++ b/osu.Game/Overlays/BeatmapListing/SortCriteria.cs
@@ -1,58 +1,35 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.BeatmapListing
{
- [LocalisableEnum(typeof(SortCriteriaLocalisationMapper))]
public enum SortCriteria
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingTitle))]
Title,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingArtist))]
Artist,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingDifficulty))]
Difficulty,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingRanked))]
Ranked,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingRating))]
Rating,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingPlays))]
Plays,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingFavourites))]
Favourites,
+
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.ListingSearchSortingRelevance))]
Relevance
}
-
- public class SortCriteriaLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(SortCriteria value)
- {
- switch (value)
- {
- case SortCriteria.Title:
- return BeatmapsStrings.ListingSearchSortingTitle;
-
- case SortCriteria.Artist:
- return BeatmapsStrings.ListingSearchSortingArtist;
-
- case SortCriteria.Difficulty:
- return BeatmapsStrings.ListingSearchSortingDifficulty;
-
- case SortCriteria.Ranked:
- return BeatmapsStrings.ListingSearchSortingRanked;
-
- case SortCriteria.Rating:
- return BeatmapsStrings.ListingSearchSortingRating;
-
- case SortCriteria.Plays:
- return BeatmapsStrings.ListingSearchSortingPlays;
-
- case SortCriteria.Favourites:
- return BeatmapsStrings.ListingSearchSortingFavourites;
-
- case SortCriteria.Relevance:
- return BeatmapsStrings.ListingSearchSortingRelevance;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/Dashboard/DashboardOverlayHeader.cs b/osu.Game/Overlays/Dashboard/DashboardOverlayHeader.cs
index 70991d47b7..2c8db14950 100644
--- a/osu.Game/Overlays/Dashboard/DashboardOverlayHeader.cs
+++ b/osu.Game/Overlays/Dashboard/DashboardOverlayHeader.cs
@@ -1,7 +1,6 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Localisation;
@@ -24,30 +23,12 @@ namespace osu.Game.Overlays.Dashboard
}
}
- [LocalisableEnum(typeof(DashboardOverlayTabsEnumLocalisationMapper))]
public enum DashboardOverlayTabs
{
+ [LocalisableDescription(typeof(FriendsStrings), nameof(FriendsStrings.TitleCompact))]
Friends,
[Description("Currently Playing")]
CurrentlyPlaying
}
-
- public class DashboardOverlayTabsEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(DashboardOverlayTabs value)
- {
- switch (value)
- {
- case DashboardOverlayTabs.Friends:
- return FriendsStrings.TitleCompact;
-
- case DashboardOverlayTabs.CurrentlyPlaying:
- return @"Currently Playing";
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/Dashboard/Friends/OnlineStatus.cs b/osu.Game/Overlays/Dashboard/Friends/OnlineStatus.cs
index 4b5a7ef066..853c94d8ae 100644
--- a/osu.Game/Overlays/Dashboard/Friends/OnlineStatus.cs
+++ b/osu.Game/Overlays/Dashboard/Friends/OnlineStatus.cs
@@ -1,38 +1,20 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.Dashboard.Friends
{
- [LocalisableEnum(typeof(OnlineStatusEnumLocalisationMapper))]
public enum OnlineStatus
{
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.StatusAll))]
All,
+
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.StatusOnline))]
Online,
+
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.StatusOffline))]
Offline
}
-
- public class OnlineStatusEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(OnlineStatus value)
- {
- switch (value)
- {
- case OnlineStatus.All:
- return SortStrings.All;
-
- case OnlineStatus.Online:
- return UsersStrings.StatusOnline;
-
- case OnlineStatus.Offline:
- return UsersStrings.StatusOffline;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/Dashboard/Friends/UserSortTabControl.cs b/osu.Game/Overlays/Dashboard/Friends/UserSortTabControl.cs
index dc756e2957..7fee5f4668 100644
--- a/osu.Game/Overlays/Dashboard/Friends/UserSortTabControl.cs
+++ b/osu.Game/Overlays/Dashboard/Friends/UserSortTabControl.cs
@@ -1,7 +1,6 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
@@ -12,33 +11,16 @@ namespace osu.Game.Overlays.Dashboard.Friends
{
}
- [LocalisableEnum(typeof(UserSortCriteriaEnumLocalisationMappper))]
public enum UserSortCriteria
{
+ [LocalisableDescription(typeof(SortStrings), nameof(SortStrings.LastVisit))]
[Description(@"Recently Active")]
LastVisit,
+
+ [LocalisableDescription(typeof(SortStrings), nameof(SortStrings.Rank))]
Rank,
+
+ [LocalisableDescription(typeof(SortStrings), nameof(SortStrings.Username))]
Username
}
-
- public class UserSortCriteriaEnumLocalisationMappper : EnumLocalisationMapper
- {
- public override LocalisableString Map(UserSortCriteria value)
- {
- switch (value)
- {
- case UserSortCriteria.LastVisit:
- return SortStrings.LastVisit;
-
- case UserSortCriteria.Rank:
- return SortStrings.Rank;
-
- case UserSortCriteria.Username:
- return SortStrings.Username;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/OverlayPanelDisplayStyleControl.cs b/osu.Game/Overlays/OverlayPanelDisplayStyleControl.cs
index c2268ff43c..d7a3b052ae 100644
--- a/osu.Game/Overlays/OverlayPanelDisplayStyleControl.cs
+++ b/osu.Game/Overlays/OverlayPanelDisplayStyleControl.cs
@@ -12,7 +12,6 @@ using osu.Framework.Allocation;
using osuTK.Graphics;
using osu.Framework.Graphics.Cursor;
using osu.Framework.Localisation;
-using System;
using osu.Game.Resources.Localisation.Web;
using osu.Framework.Extensions;
@@ -101,32 +100,15 @@ namespace osu.Game.Overlays
}
}
- [LocalisableEnum(typeof(OverlayPanelDisplayStyleEnumLocalisationMapper))]
public enum OverlayPanelDisplayStyle
{
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.ViewModeCard))]
Card,
+
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.ViewModeList))]
List,
+
+ [LocalisableDescription(typeof(UsersStrings), nameof(UsersStrings.ViewModeBrick))]
Brick
}
-
- public class OverlayPanelDisplayStyleEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(OverlayPanelDisplayStyle value)
- {
- switch (value)
- {
- case OverlayPanelDisplayStyle.Card:
- return UsersStrings.ViewModeCard;
-
- case OverlayPanelDisplayStyle.List:
- return UsersStrings.ViewModeList;
-
- case OverlayPanelDisplayStyle.Brick:
- return UsersStrings.ViewModeBrick;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/Rankings/RankingsOverlayHeader.cs b/osu.Game/Overlays/Rankings/RankingsOverlayHeader.cs
index 4916b8b327..417b33ddf6 100644
--- a/osu.Game/Overlays/Rankings/RankingsOverlayHeader.cs
+++ b/osu.Game/Overlays/Rankings/RankingsOverlayHeader.cs
@@ -1,10 +1,10 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using osu.Framework.Graphics;
using osu.Framework.Bindables;
using osu.Game.Localisation;
using osu.Game.Resources.Localisation.Web;
+using osu.Framework.Graphics;
using osu.Game.Rulesets;
using osu.Game.Users;
diff --git a/osu.Game/Overlays/Rankings/RankingsScope.cs b/osu.Game/Overlays/Rankings/RankingsScope.cs
index 684408d3a2..e660c2898a 100644
--- a/osu.Game/Overlays/Rankings/RankingsScope.cs
+++ b/osu.Game/Overlays/Rankings/RankingsScope.cs
@@ -1,42 +1,23 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Overlays.Rankings
{
- [LocalisableEnum(typeof(RankingsScopeEnumLocalisationMapper))]
public enum RankingsScope
{
+ [LocalisableDescription(typeof(RankingsStrings), nameof(RankingsStrings.TypePerformance))]
Performance,
+
+ [LocalisableDescription(typeof(RankingsStrings), nameof(RankingsStrings.TypeCharts))]
Spotlights,
+
+ [LocalisableDescription(typeof(RankingsStrings), nameof(RankingsStrings.TypeScore))]
Score,
+
+ [LocalisableDescription(typeof(RankingsStrings), nameof(RankingsStrings.TypeCountry))]
Country
}
-
- public class RankingsScopeEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(RankingsScope value)
- {
- switch (value)
- {
- case RankingsScope.Performance:
- return RankingsStrings.TypePerformance;
-
- case RankingsScope.Spotlights:
- return RankingsStrings.TypeCharts;
-
- case RankingsScope.Score:
- return RankingsStrings.TypeScore;
-
- case RankingsScope.Country:
- return RankingsStrings.TypeCountry;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Overlays/Rankings/RankingsSortTabControl.cs b/osu.Game/Overlays/Rankings/RankingsSortTabControl.cs
index c04eb5bdd1..f05795b2a2 100644
--- a/osu.Game/Overlays/Rankings/RankingsSortTabControl.cs
+++ b/osu.Game/Overlays/Rankings/RankingsSortTabControl.cs
@@ -1,7 +1,6 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using osu.Framework.Extensions.LocalisationExtensions;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
@@ -16,28 +15,12 @@ namespace osu.Game.Overlays.Rankings
}
}
- [LocalisableEnum(typeof(RankingsSortCriteriaEnumLocalisationMapper))]
public enum RankingsSortCriteria
{
+ [LocalisableDescription(typeof(SortStrings), nameof(SortStrings.All))]
All,
+
+ [LocalisableDescription(typeof(SortStrings), nameof(SortStrings.Friends))]
Friends
}
-
- public class RankingsSortCriteriaEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(RankingsSortCriteria value)
- {
- switch (value)
- {
- case RankingsSortCriteria.All:
- return SortStrings.All;
-
- case RankingsSortCriteria.Friends:
- return SortStrings.Friends;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/Scoring/ScoreRank.cs b/osu.Game/Scoring/ScoreRank.cs
index f3b4551ff8..64f7da9ba3 100644
--- a/osu.Game/Scoring/ScoreRank.cs
+++ b/osu.Game/Scoring/ScoreRank.cs
@@ -1,74 +1,44 @@
// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
-using System;
using System.ComponentModel;
using osu.Framework.Localisation;
using osu.Game.Resources.Localisation.Web;
namespace osu.Game.Scoring
{
- [LocalisableEnum(typeof(ScoreRankEnumLocalisationMapper))]
public enum ScoreRank
{
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankD))]
[Description(@"D")]
D,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankC))]
[Description(@"C")]
C,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankB))]
[Description(@"B")]
B,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankA))]
[Description(@"A")]
A,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankS))]
[Description(@"S")]
S,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankSH))]
[Description(@"S+")]
SH,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankX))]
[Description(@"SS")]
X,
+ [LocalisableDescription(typeof(BeatmapsStrings), nameof(BeatmapsStrings.RankXH))]
[Description(@"SS+")]
XH,
}
-
- public class ScoreRankEnumLocalisationMapper : EnumLocalisationMapper
- {
- public override LocalisableString Map(ScoreRank value)
- {
- switch (value)
- {
- case ScoreRank.XH:
- return BeatmapsStrings.RankXH;
-
- case ScoreRank.X:
- return BeatmapsStrings.RankX;
-
- case ScoreRank.SH:
- return BeatmapsStrings.RankSH;
-
- case ScoreRank.S:
- return BeatmapsStrings.RankS;
-
- case ScoreRank.A:
- return BeatmapsStrings.RankA;
-
- case ScoreRank.B:
- return BeatmapsStrings.RankB;
-
- case ScoreRank.C:
- return BeatmapsStrings.RankC;
-
- case ScoreRank.D:
- return BeatmapsStrings.RankD;
-
- default:
- throw new ArgumentOutOfRangeException(nameof(value), value, null);
- }
- }
- }
}
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index b3eeaa4be7..4b0edf990e 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -36,7 +36,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/osu.iOS.props b/osu.iOS.props
index 7ad27b222c..e4992e1132 100644
--- a/osu.iOS.props
+++ b/osu.iOS.props
@@ -70,7 +70,7 @@
-
+
@@ -93,7 +93,7 @@
-
+