// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global using System.Text.Json.Serialization; namespace PKHeX.Core; /// /// Localization strings for move learning source information. /// public sealed class MoveSourceLocalization { private static readonly MoveSourceLocalizationContext Context = new(LocalizationStorage.Options); public static readonly LocalizationStorage Cache = new("movesource", Context.MoveSourceLocalization); public static MoveSourceLocalization Get(string language = GameLanguage.DefaultLanguage) => Cache.Get(language); public static MoveSourceLocalization Get(LanguageID language) => Cache.Get(language.GetLanguageCode()); /// Format text for exporting a legality check result for a Move. public required string FormatMove { get; init; } = "{0} Move {1}: {2}"; /// Format text for exporting a legality check result for a Relearn Move. public required string FormatRelearn { get; init; } = "{0} Relearn Move {1}: {2}"; // Basic source types public required string SourceDefault { get; init; } = "Default move."; public required string SourceDuplicate { get; init; } = "Duplicate Move."; public required string SourceEmpty { get; init; } = "Empty Move."; public required string SourceInvalid { get; init; } = "Invalid Move."; public required string SourceLevelUp { get; init; } = "Learned by Level-up."; public required string SourceRelearn { get; init; } = "Relearnable Move."; public required string SourceSpecial { get; init; } = "Special Non-Relearn Move."; public required string SourceTMHM { get; init; } = "Learned by TM/HM."; public required string SourceTutor { get; init; } = "Learned by Move Tutor."; public required string SourceShared { get; init; } = "Shared Non-Relearn Move."; // Egg-related sources public required string RelearnEgg { get; init; } = "Base Egg move."; public required string EggInherited { get; init; } = "Inherited Egg move."; public required string EggTMHM { get; init; } = "Inherited TM/HM move."; public required string EggInheritedTutor { get; init; } = "Inherited tutor move."; public required string EggInvalid { get; init; } = "Not an expected Egg move."; public required string EggLevelUp { get; init; } = "Inherited move learned by Level-up."; } [JsonSerializable(typeof(MoveSourceLocalization))] public sealed partial class MoveSourceLocalizationContext : JsonSerializerContext;