TouchyTickets/TouchyTickets/Localization.cs
2020-06-02 14:16:14 +02:00

37 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using Microsoft.Xna.Framework;
using MLEM.Startup;
using Newtonsoft.Json;
namespace TouchyTickets {
public static class Localization {
private static readonly Dictionary<string, string> Strings;
static Localization() {
var location = GameImpl.Instance.Content.RootDirectory + "/Localization/Localization";
var culture = CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
foreach (var path in new[] {$"{location}.{culture}.json", $"{location}.json"}) {
try {
using (var reader = new JsonTextReader(new StreamReader(TitleContainer.OpenStream(path)))) {
var ret = SaveHandler.Serializer.Deserialize<Dictionary<string, string>>(reader);
if (ret == null)
continue;
Strings = ret;
break;
}
} catch (Exception) {
// move on to the next path
}
}
}
public static string Get(string key) {
return Strings.TryGetValue(key, out var ret) ? ret : $"?{key}?";
}
}
}