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); }
/// <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); }
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); }