public static void Init() { Culture = CultureInfo.InvariantCulture; Messages = new Dictionary <string, Dictionary <string, string> >(); foreach (CultureInfo currentCulture in CultureInfo.GetCultures(CultureTypes.AllCultures)) { string code = GetCodeFromCulture(currentCulture); // Load Dictionary <string, string> items = new Dictionary <string, string>(); string jsonPath = Engine.Instance.LocateResource("lang/" + code + ".json"); if (jsonPath != "") { Json jData = null; if (Json.TryParse(Platform.Instance.FileContentsReadText(jsonPath), out jData)) { foreach (KeyValuePair <string, object> kp in jData.GetDictionary()) { string itemId = kp.Key; string itemText = kp.Value as string; items[itemId] = itemText; } } } Messages[code] = items; } }
// Only dictionary, only string supported right now. public static void JsonToXml(Json source, XmlElement destination) { if (source.IsDictionary()) { foreach (KeyValuePair <string, object> kp in source.GetDictionary()) { if (kp.Value is string) { destination.SetAttribute(kp.Key as string, kp.Value as string); } } } }
public static string GetText(string id) { CultureInfo currentCulture = Culture; for (;;) { string code = currentCulture.Name; if (code == "") { code = "inv"; } if (Messages.ContainsKey(code) == false) { // Load Dictionary <string, string> items = new Dictionary <string, string>(); string jsonPath = Engine.Instance.LocateResource("lang/" + code + ".json"); if (jsonPath != "") { Json jData = null; if (Json.TryParse(Platform.Instance.FileContentsReadText(jsonPath), out jData)) { foreach (KeyValuePair <string, object> kp in jData.GetDictionary()) { string itemId = kp.Key; string itemText = kp.Value as string; items[itemId] = itemText; } } } Messages[code] = items; } if (Messages[code].ContainsKey(id)) { return(Messages[code][id]); } if (code == "inv") { return(""); // Not Found } currentCulture = currentCulture.Parent; } }