mirabelian/Language.cs
2025-03-21 19:06:46 -04:00

55 lines
1.3 KiB
C#

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<string, string> Words { get; set; }
void LanguageVersion(string name, string version) =>
Tracer.LogLine($"{name} language v{version}");
Dictionary<string, string> 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<Language>(jsonFile);
LanguageVersion(json.Name, json.Version);
Words = json.Words;
}
}
}