コード例 #1
0
        private void Save(LangInfo info)
        {
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent = true;
            XmlWriter writer1 = XmlWriter.Create(info.Path, settings);

            XamlWriter.Save(info.Dictionary, writer1);
        }
コード例 #2
0
        public void SetInfo(List <LangInfo> lang, DataTable dataTable)
        {
            var list = ToDynamic(dataTable);

            foreach (DataColumn column in dataTable.Columns)
            {
                if (column.ColumnName == "Key")
                {
                    continue;
                }
                var findlang = lang.FirstOrDefault(x => x.Name == column.ColumnName);
                if (findlang == null)
                {
                    findlang = new LangInfo()
                    {
                        Name = column.ColumnName, Path = $"{Name}.xaml"
                    };
                    lang.Add(findlang);
                }
            }
            var keylist = new List <string>();

            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var info in lang)
                {
                    var key = row["Key"].ToString();
                    keylist.Add(key);
                    info.Dictionary[key] = row[info.Name];
                }
            }

            foreach (var info in lang)
            {
                var dickey   = info.Dictionary.Keys.Cast <string>().ToList();
                var difflist = dickey.Except(keylist);
                foreach (var key in difflist)
                {
                    info.Dictionary.Remove(key);
                }
            }
        }