37 lines
1.3 KiB
C#
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}?";
|
|
}
|
|
|
|
}
|
|
} |