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 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>(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}?"; } } }