public override void CreateResourceData(string name, string value) { WixLocalizationData resxData = new WixLocalizationData(this, name); resxData.Value = value; Data.Add(name, resxData); this.FileGroup.AllData[name].Add(resxData); }
public override void CreateResourceDataComment(string name, string comment) { WixLocalizationData resxData = new WixLocalizationData(this, name); resxData.Comment = comment; Data.Add(name, resxData); this.FileGroup.AllData[name].Add(resxData); }
public WixLocalizationFile(VSFileContainer folder, FileInfo file) : base(folder, file) { var r = new Regex(".([a-zA-Z]{2,2}([-][a-zA-Z]{2,2})*).wxl"); var m = r.Match(file.Name); if (m.Success) Prefix = file.Name.Substring(0, file.Name.Length - m.Value.Length); else Prefix = Path.GetFileNameWithoutExtension(file.Name); using (XmlReader reader = new XmlTextReader(file.FullName)) { XPathDocument xml = new XPathDocument(reader); XPathNavigator nav = xml.CreateNavigator(); XmlNamespaceManager manager = new XmlNamespaceManager(nav.NameTable); manager.AddNamespace("wix", NS_WIX_2006); //XPathExpression expr = XPathExpression.Compile("/wix:WixLocalization"); //expr.SetContext(manager); XPathNavigator cult = nav.SelectSingleNode("/wix:WixLocalization", manager); if (cult != null && !String.IsNullOrEmpty(cult.GetAttribute("Culture", ""))) { try { Culture = CultureInfo.GetCultureInfo(cult.GetAttribute("Culture", "")); IsCultureAutoDetected = true; } catch { Culture = CultureInfo.InvariantCulture; } } else Culture = CultureInfo.InvariantCulture; folder.Project.ResxProjectFile.LoadFile(this); //expr = XPathExpression.Compile("/wix:WixLocalization/wix:String"); //expr.SetContext(manager); XPathNodeIterator nodes = nav.Select("/wix:WixLocalization/wix:String", manager); while (nodes.MoveNext()) { WixLocalizationData d = new WixLocalizationData(this, nodes.Current); if (!Data.ContainsKey(d.Name)) Data.Add(d.Name, d); } } }
public WixLocalizationFile(VSFileContainer folder, FileInfo file) : base(folder, file) { var r = new Regex(".([a-zA-Z]{2,2}([-][a-zA-Z]{2,2})*).wxl"); var m = r.Match(file.Name); if (m.Success) { Prefix = file.Name.Substring(0, file.Name.Length - m.Value.Length); } else { Prefix = Path.GetFileNameWithoutExtension(file.Name); } using (XmlReader reader = new XmlTextReader(file.FullName)) { XPathDocument xml = new XPathDocument(reader); XPathNavigator nav = xml.CreateNavigator(); XmlNamespaceManager manager = new XmlNamespaceManager(nav.NameTable); manager.AddNamespace("wix", NS_WIX_2006); //XPathExpression expr = XPathExpression.Compile("/wix:WixLocalization"); //expr.SetContext(manager); XPathNavigator cult = nav.SelectSingleNode("/wix:WixLocalization", manager); if (cult != null && !String.IsNullOrEmpty(cult.GetAttribute("Culture", ""))) { try { Culture = CultureInfo.GetCultureInfo(cult.GetAttribute("Culture", "")); IsCultureAutoDetected = true; } catch { Culture = CultureInfo.InvariantCulture; } } else { Culture = CultureInfo.InvariantCulture; } folder.Project.ResxProjectFile.LoadFile(this); //expr = XPathExpression.Compile("/wix:WixLocalization/wix:String"); //expr.SetContext(manager); XPathNodeIterator nodes = nav.Select("/wix:WixLocalization/wix:String", manager); while (nodes.MoveNext()) { var d = new WixLocalizationData(this, nodes.Current); if (folder.Project.SkipGroup(d.Name)) { continue; } if (!Data.ContainsKey(d.Name)) { Data.Add(d.Name, d); } } } }