namespace Mirabelian; internal class Language { [JsonPropertyName("version")] public string Version { get; set; } = string.Empty; [JsonPropertyName("name")] public string Name { get; set; } = string.Empty; [JsonPropertyName("words")] public Dictionary Words { get; set; } void LanguageVersion(string name, string version) => Tracer.LogLine($"{name} language v{version}"); Dictionary Defaults = new() { { "hello", "walin" }, { "friend", "suhar" }, { "water", "utol" }, { "fire", "kotan" }, { "mountain", "hukar" }, { "fast", "sulat" }, { "happy", "halun" }, { "speak", "ratul" }, { "walk", "saren" }, { "know", "hiren" }, { "exit", "etris" }, }; public Language(string file) { var filePath = Path.Combine(Tracer.AppDirectory, file); if (!File.Exists(filePath)) { Name = "Simplified Mirabelian"; Version = "0.1"; Words = Defaults; Tracer.LogLine("Failed to locate language file. Switching to defaults."); LanguageVersion(Name, Version); } else { Tracer.LogLine($"Language file found at {filePath}"); var jsonFile = File.ReadAllText(filePath); var json = JsonSerializer.Deserialize(jsonFile); LanguageVersion(json.Name, json.Version); Words = json.Words; } } }