Пример #1
0
        public static void ReplaceResx(TranslationDict dict, EnumLanguage lang, string resxFile, string destFile)
        {
            var xDoc = new XmlDocument();

            xDoc.Load(resxFile);
            var root     = xDoc.DocumentElement;
            var nodeList = root.GetElementsByTagName("data");

            foreach (var node in nodeList)
            {
                var e   = (XmlElement)node;
                var key = e.GetAttribute("name");
                if (!dict.ContainsKey(key))
                {
                    Console.WriteLine(key);
                    continue;
                }
                var children = e.GetElementsByTagName("value");
                foreach (var c in children)
                {
                    var value = ((XmlElement)c).InnerText;
                    ((XmlElement)c).InnerText = dict[key][lang];
                    break;
                }
            }
            xDoc.Save(destFile);
        }
Пример #2
0
        /// <param name="ki">keyIndex = 2</param>
        public static TranslationDict LoadFromXlsx(string xlsxFile, int ki, Dictionary <EnumLanguage, int> tMap)
        {
            var          dict  = new TranslationDict();
            var          wb    = new XLWorkbook(xlsxFile);
            IXLWorksheet sheet = wb.Worksheet(1);
            var          rows  = sheet.Rows();
            var          nr    = 0;

            foreach (var row in rows)
            {
                if (++nr > 1)
                {
                    var key = row.Cell(ki).Value.ToString().Trim();
                    if (!dict.ContainsKey(key))
                    {
                        dict.Add(new Translation(key));
                    }
                    foreach (var t in tMap)
                    {
                        var s = row.Cell(t.Value).Value.ToString().Trim();
                        dict[key].Add(t.Key, s);
                    }
                }
            }

            return(dict);
        }
Пример #3
0
        public static void ReplaceXaml(TranslationDict dict, EnumLanguage lang, string xamlFile, string destFile)
        {
            var p     = "x:Key=\"";
            var s1    = " xml:space=\"preserve\">";
            var s2    = "</sys:String>";
            var lines = new List <string>();

            using (var sr = new StreamReader(xamlFile))
            {
                while (!sr.EndOfStream)
                {
                    var s = sr.ReadLine();
                    if (p.Length > s.Length)
                    {
                        lines.Add(s);
                    }
                    else
                    {
                        var i = s.IndexOf(p);
                        if (i < 0)
                        {
                            lines.Add(s);
                        }
                        else
                        {
                            i = i + p.Length;
                            var j = s.IndexOf('\"', i + 1);
                            if (j > 0)
                            {
                                var key = s.Substring(i, j - i);
                                if (dict.ContainsKey(key))
                                {
                                    var c = s.Substring(0, j + 1) + s1 + dict[key][lang] + s2;
                                    lines.Add(c);
                                }
                                else
                                {
                                    lines.Add(s);
                                }
                            }
                            else
                            {
                                lines.Add(s);
                            }
                        }
                    }
                }
            }
            File.WriteAllLines(destFile, lines);
        }