mirror of
https://github.com/tonytins/mirabelian.git
synced 2025-04-29 19:51:40 -04:00
55 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|