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);
    }
示例#2
0
        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)
            {

            }
        }
示例#3
0
        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)
            {
            }
        }
示例#4
0
        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)
            {
            }
        }