public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { MultilingualValue <MultilingualValueMetaData <string> > result = new MultilingualValue <MultilingualValueMetaData <string> >(); JsonToken firstToken = reader.TokenType; reader.Read(); //skip first Token while (reader.TokenType != JsonToken.EndObject) { string languageType = (string)reader.Value; reader.Read(); MultilingualValueMetaData <string> metaData = null; if (reader.TokenType == JsonToken.StartObject) { metaData = serializer.Deserialize <MultilingualValueMetaData <string> >(reader); } else { metaData = new MultilingualValueMetaData <string>(); metaData.AutoTranslation = (string)reader.Value; } result[languageType] = metaData; reader.Read(); } return(result); }
public void LoadConfiguration() { try { string path = GetFolderPath() + "ModInfo.xml"; this.Languages = new List<string>(); if (System.IO.File.Exists(path)) { XDocument configuration = XDocument.Load(path); this.ID = configuration.Root.Attribute("ID").Value; this.Name = new MultilingualValue(); this.Name.SetXML(configuration.Root.Element("Name")); this.Description = new MultilingualValue(); this.Description.SetXML(configuration.Root.Element("Description")); this.Version = configuration.Root.Element("Version").Value; this.Buttons = new List<Button>(); foreach (string k in this.Description.GetLanguages()) if (!Languages.Contains(k)) Languages.Add(k); foreach (string k in this.Name.GetLanguages()) if (!Languages.Contains(k)) Languages.Add(k); foreach (XElement button in configuration.Root.Elements("Button")) { Button b = new Button(); b.project = this; b.ID = Utils.XMLHelper.GetXMLAttributeAsString(button, "ID", ""); b.StandardKey = Utils.XMLHelper.GetXMLAttributeAsString(button, "Standard", ""); b.Name = new MultilingualValue(); b.Name.SetXML(button.Element("Name")); b.Description = new MultilingualValue(); b.Description.SetXML(button.Element("Description")); foreach (string k in b.Description.GetLanguages()) if (!Languages.Contains(k)) Languages.Add(k); foreach (string k in b.Name.GetLanguages()) if (!Languages.Contains(k)) Languages.Add(k); Buttons.Add(b); } } } catch (Exception e) { } }
public void LoadConfiguration() { try { string path = GetFolderPath() + "ModInfo.xml"; this.Languages = new List <string>(); if (System.IO.File.Exists(path)) { XDocument configuration = XDocument.Load(path); this.ID = configuration.Root.Attribute("ID").Value; this.Name = new MultilingualValue(); this.Name.SetXML(configuration.Root.Element("Name")); this.Description = new MultilingualValue(); this.Description.SetXML(configuration.Root.Element("Description")); this.Version = configuration.Root.Element("Version").Value; this.Buttons = new List <Button>(); foreach (string k in this.Description.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (string k in this.Name.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (XElement button in configuration.Root.Elements("Button")) { Button b = new Button(); b.project = this; b.ID = Utils.XMLHelper.GetXMLAttributeAsString(button, "ID", ""); b.StandardKey = Utils.XMLHelper.GetXMLAttributeAsString(button, "Standard", ""); b.Name = new MultilingualValue(); b.Name.SetXML(button.Element("Name")); b.Description = new MultilingualValue(); b.Description.SetXML(button.Element("Description")); foreach (string k in b.Description.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (string k in b.Name.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } Buttons.Add(b); } } } catch (Exception e) { } }
public void LoadConfiguration() { try { var path = GetFolderPath() + "ModInfo.xml"; Languages = new List <string>(); if (File.Exists(path)) { var configuration = XDocument.Load(path); Id = configuration.Root.Attribute("ID").Value; Name = new MultilingualValue(); Name.SetXml(configuration.Root.Element("Name")); Description = new MultilingualValue(); Description.SetXml(configuration.Root.Element("Description")); Version = configuration.Root.Element("Version").Value; Buttons = new List <Button>(); foreach (var k in Description.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (var k in Name.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (var button in configuration.Root.Elements("Button")) { var b = new Button { Project = this, Id = XmlHelper.GetXmlAttributeAsString(button, "ID"), StandardKey = XmlHelper.GetXmlAttributeAsString(button, "Standard"), Name = new MultilingualValue() }; b.Name.SetXml(button.Element("Name")); b.Description = new MultilingualValue(); b.Description.SetXml(button.Element("Description")); foreach (var k in b.Description.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } foreach (var k in b.Name.GetLanguages()) { if (!Languages.Contains(k)) { Languages.Add(k); } } Buttons.Add(b); } } } catch (Exception e) { } }