diff --git a/osu.Game.Rulesets.Karaoke/Edit/Generator/Languages/LanguageDetector.cs b/osu.Game.Rulesets.Karaoke/Edit/Generator/Languages/LanguageDetector.cs
index ad41221c4..a513dd78c 100644
--- a/osu.Game.Rulesets.Karaoke/Edit/Generator/Languages/LanguageDetector.cs
+++ b/osu.Game.Rulesets.Karaoke/Edit/Generator/Languages/LanguageDetector.cs
@@ -7,6 +7,7 @@
using osu.Framework.Localisation;
using osu.Game.Rulesets.Karaoke.Edit.Generator.Types;
using osu.Game.Rulesets.Karaoke.Objects;
+using osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator;
namespace osu.Game.Rulesets.Karaoke.Edit.Generator.Languages
{
@@ -31,7 +32,7 @@ public LanguageDetector(LanguageDetectorConfig config)
public LocalisableString? GetInvalidMessage(Lyric lyric)
{
if (string.IsNullOrWhiteSpace(lyric.Text))
- return "Lyric should not be empty.";
+ return LanguageDetectorStrings.LyricShouldNotBeEmpty;
return null;
}
diff --git a/osu.Game.Rulesets.Karaoke/Edit/Generator/Notes/NoteGenerator.cs b/osu.Game.Rulesets.Karaoke/Edit/Generator/Notes/NoteGenerator.cs
index 51e94b571..60e45d460 100644
--- a/osu.Game.Rulesets.Karaoke/Edit/Generator/Notes/NoteGenerator.cs
+++ b/osu.Game.Rulesets.Karaoke/Edit/Generator/Notes/NoteGenerator.cs
@@ -8,6 +8,7 @@
using osu.Game.Rulesets.Karaoke.Edit.Generator.Types;
using osu.Game.Rulesets.Karaoke.Objects;
using osu.Game.Rulesets.Karaoke.Utils;
+using osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator;
namespace osu.Game.Rulesets.Karaoke.Edit.Generator.Notes
{
@@ -25,10 +26,10 @@ public NoteGenerator(NoteGeneratorConfig config)
var timeTags = lyric.TimeTags;
if (lyric.TimeTags.Count < 2)
- return "Sorry, lyric must have at least two time-tags.";
+ return NoteGeneratorStrings.SorryLyricMustHaveAtLeastTwoTimeTags;
if (timeTags.Any(x => x.Time == null))
- return "All time-tag should have the time.";
+ return NoteGeneratorStrings.AllTimeTagShouldHaveTheTime;
return null;
}
diff --git a/osu.Game.Rulesets.Karaoke/Edit/Generator/RomajiTags/RomajiTagGenerator.cs b/osu.Game.Rulesets.Karaoke/Edit/Generator/RomajiTags/RomajiTagGenerator.cs
index c4f276f10..604e45c5a 100644
--- a/osu.Game.Rulesets.Karaoke/Edit/Generator/RomajiTags/RomajiTagGenerator.cs
+++ b/osu.Game.Rulesets.Karaoke/Edit/Generator/RomajiTags/RomajiTagGenerator.cs
@@ -4,6 +4,7 @@
using osu.Framework.Localisation;
using osu.Game.Rulesets.Karaoke.Edit.Generator.Types;
using osu.Game.Rulesets.Karaoke.Objects;
+using osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator;
namespace osu.Game.Rulesets.Karaoke.Edit.Generator.RomajiTags
{
@@ -19,7 +20,7 @@ protected RomajiTagGenerator(T config)
public LocalisableString? GetInvalidMessage(Lyric lyric)
{
if (string.IsNullOrWhiteSpace(lyric.Text))
- return "Lyric should not be empty.";
+ return RomajiTagGeneratorStrings.LyricShouldNotBeEmpty;
return null;
}
diff --git a/osu.Game.Rulesets.Karaoke/Edit/Generator/RubyTags/RubyTagGenerator.cs b/osu.Game.Rulesets.Karaoke/Edit/Generator/RubyTags/RubyTagGenerator.cs
index 148357256..ace93705e 100644
--- a/osu.Game.Rulesets.Karaoke/Edit/Generator/RubyTags/RubyTagGenerator.cs
+++ b/osu.Game.Rulesets.Karaoke/Edit/Generator/RubyTags/RubyTagGenerator.cs
@@ -4,6 +4,7 @@
using osu.Framework.Localisation;
using osu.Game.Rulesets.Karaoke.Edit.Generator.Types;
using osu.Game.Rulesets.Karaoke.Objects;
+using osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator;
namespace osu.Game.Rulesets.Karaoke.Edit.Generator.RubyTags
{
@@ -19,7 +20,7 @@ protected RubyTagGenerator(T config)
public LocalisableString? GetInvalidMessage(Lyric lyric)
{
if (string.IsNullOrWhiteSpace(lyric.Text))
- return "Lyric should not be empty.";
+ return RubyTagGeneratorStrings.LyricShouldNotBeEmpty;
return null;
}
diff --git a/osu.Game.Rulesets.Karaoke/Edit/Generator/TimeTags/TimeTagGenerator.cs b/osu.Game.Rulesets.Karaoke/Edit/Generator/TimeTags/TimeTagGenerator.cs
index c93392e89..1dac026dd 100644
--- a/osu.Game.Rulesets.Karaoke/Edit/Generator/TimeTags/TimeTagGenerator.cs
+++ b/osu.Game.Rulesets.Karaoke/Edit/Generator/TimeTags/TimeTagGenerator.cs
@@ -7,6 +7,7 @@
using osu.Framework.Localisation;
using osu.Game.Rulesets.Karaoke.Edit.Generator.Types;
using osu.Game.Rulesets.Karaoke.Objects;
+using osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator;
namespace osu.Game.Rulesets.Karaoke.Edit.Generator.TimeTags
{
@@ -22,7 +23,7 @@ protected TimeTagGenerator(T config)
public LocalisableString? GetInvalidMessage(Lyric lyric)
{
if (string.IsNullOrEmpty(lyric.Text))
- return "Lyric should not be empty.";
+ return TimeTagGeneratorStrings.LyricShouldNotBeEmpty;
return null;
}
diff --git a/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/LanguageDetectorStrings.cs b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/LanguageDetectorStrings.cs
new file mode 100644
index 000000000..2c89fcc62
--- /dev/null
+++ b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/LanguageDetectorStrings.cs
@@ -0,0 +1,16 @@
+using osu.Framework.Localisation;
+
+namespace osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator
+{
+ public static class LanguageDetectorStrings
+ {
+ private const string prefix = @"osu.Game.Rulesets.Karaoke.Localisation.LanguageDetector";
+
+ ///
+ /// "Lyric should not be empty."
+ ///
+ public static LocalisableString LyricShouldNotBeEmpty => new TranslatableString(getKey(@"lyric_should_not_be_empty"), @"Lyric should not be empty.");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
+ }
+}
diff --git a/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/NoteGeneratorStrings.cs b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/NoteGeneratorStrings.cs
new file mode 100644
index 000000000..0295e7859
--- /dev/null
+++ b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/NoteGeneratorStrings.cs
@@ -0,0 +1,21 @@
+using osu.Framework.Localisation;
+
+namespace osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator
+{
+ public static class NoteGeneratorStrings
+ {
+ private const string prefix = @"osu.Game.Rulesets.Karaoke.Localisation.NoteGenerator";
+
+ ///
+ /// "Sorry, lyric must have at least two time-tags."
+ ///
+ public static LocalisableString SorryLyricMustHaveAtLeastTwoTimeTags => new TranslatableString(getKey(@"sorry_lyric_must_have_at_least_two_time_tags"), @"Sorry, lyric must have at least two time-tags.");
+
+ ///
+ /// "All time-tag should have the time."
+ ///
+ public static LocalisableString AllTimeTagShouldHaveTheTime => new TranslatableString(getKey(@"all_time_tag_should_have_the_time"), @"All time-tag should have the time.");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
+ }
+}
diff --git a/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RomajiTagGeneratorStrings.cs b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RomajiTagGeneratorStrings.cs
new file mode 100644
index 000000000..8b91f924d
--- /dev/null
+++ b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RomajiTagGeneratorStrings.cs
@@ -0,0 +1,16 @@
+using osu.Framework.Localisation;
+
+namespace osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator
+{
+ public static class RomajiTagGeneratorStrings
+ {
+ private const string prefix = @"osu.Game.Rulesets.Karaoke.Localisation.RomajiTagGenerator";
+
+ ///
+ /// "Lyric should not be empty."
+ ///
+ public static LocalisableString LyricShouldNotBeEmpty => new TranslatableString(getKey(@"lyric_should_not_be_empty"), @"Lyric should not be empty.");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
+ }
+}
diff --git a/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RubyTagGeneratorStrings.cs b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RubyTagGeneratorStrings.cs
new file mode 100644
index 000000000..8401fd202
--- /dev/null
+++ b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/RubyTagGeneratorStrings.cs
@@ -0,0 +1,16 @@
+using osu.Framework.Localisation;
+
+namespace osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator
+{
+ public static class RubyTagGeneratorStrings
+ {
+ private const string prefix = @"osu.Game.Rulesets.Karaoke.Localisation.RubyTagGenerator";
+
+ ///
+ /// "Lyric should not be empty."
+ ///
+ public static LocalisableString LyricShouldNotBeEmpty => new TranslatableString(getKey(@"lyric_should_not_be_empty"), @"Lyric should not be empty.");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
+ }
+}
diff --git a/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/TimeTagGeneratorStrings.cs b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/TimeTagGeneratorStrings.cs
new file mode 100644
index 000000000..805499b66
--- /dev/null
+++ b/osu.Game.Rulesets.Karaoke/Localisation/Edit/Generator/TimeTagGeneratorStrings.cs
@@ -0,0 +1,16 @@
+using osu.Framework.Localisation;
+
+namespace osu.Game.Rulesets.Karaoke.Localisation.Edit.Generator
+{
+ public static class TimeTagGeneratorStrings
+ {
+ private const string prefix = @"osu.Game.Rulesets.Karaoke.Localisation.TimeTagGenerator";
+
+ ///
+ /// "Lyric should not be empty."
+ ///
+ public static LocalisableString LyricShouldNotBeEmpty => new TranslatableString(getKey(@"lyric_should_not_be_empty"), @"Lyric should not be empty.");
+
+ private static string getKey(string key) => $@"{prefix}:{key}";
+ }
+}