public int Run() { var writer = XmlWriter.Create(XmlFilePath); writer.WriteWhitespace(Environment.NewLine); writer.WriteProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"format-html.xsl\""); writer.WriteWhitespace(Environment.NewLine); writer.WriteStartElement("messages"); var msg = new PoMessageWriter(writer, Roundtrip); var fileInput = new StreamReader(PoFilePath); while (fileInput.Peek() >= 0) { var l = fileInput.ReadLine(); if (l == null) break; // Continuation string? var m = (new Regex("^\\s*\"(.*)\"")).Match(l); if(m.Success) { //Debug.Assert(msg.Current != null); msg.Current.Add(EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString()))); continue; } else { msg.Flush(); } m = new Regex("^msgid \"(.*)\"", RegexOptions.Singleline).Match(l); if(m.Success) { msg.Msgid = new List<String> { EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString())) }; msg.Current = msg.Msgid; } m = new Regex("^msgstr \"(.*)\"", RegexOptions.Singleline).Match(l); if (m.Success) { msg.Msgstr = new List<String> { EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString())) }; msg.Current = msg.Msgstr; } m = new Regex("^# \\s*(.*)").Match(l); if (m.Success) { msg.UsrComment.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#\\.\\s*(.*)").Match(l); if (m.Success) { msg.DotComment.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#:\\s*(.*)").Match(l); if (m.Success) { msg.Reference.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#,\\s*(.*)").Match(l); if (m.Success) { msg.Flags.Add(EscapeForXml(m.Groups[1].ToString())); } } msg.Flush(); writer.WriteWhitespace(Environment.NewLine); writer.WriteEndDocument(); writer.Close(); fileInput.Close(); return 0; }
public int Run() { var writer = XmlWriter.Create(XmlFilePath); writer.WriteWhitespace(Environment.NewLine); writer.WriteProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"format-html.xsl\""); writer.WriteWhitespace(Environment.NewLine); writer.WriteStartElement("messages"); var msg = new PoMessageWriter(writer, Roundtrip); var fileInput = new StreamReader(PoFilePath); while (fileInput.Peek() >= 0) { var l = fileInput.ReadLine(); if (l == null) { break; } // Continuation string? var m = (new Regex("^\\s*\"(.*)\"")).Match(l); if (m.Success) { //Debug.Assert(msg.Current != null); msg.Current.Add(EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString()))); continue; } else { msg.Flush(); } m = new Regex("^msgid \"(.*)\"", RegexOptions.Singleline).Match(l); if (m.Success) { msg.Msgid = new List <String> { EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString())) }; msg.Current = msg.Msgid; } m = new Regex("^msgstr \"(.*)\"", RegexOptions.Singleline).Match(l); if (m.Success) { msg.Msgstr = new List <String> { EscapeForXml(UnescapeBackslashes(m.Groups[1].ToString())) }; msg.Current = msg.Msgstr; } m = new Regex("^# \\s*(.*)").Match(l); if (m.Success) { msg.UsrComment.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#\\.\\s*(.*)").Match(l); if (m.Success) { msg.DotComment.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#:\\s*(.*)").Match(l); if (m.Success) { msg.Reference.Add(EscapeForXml(m.Groups[1].ToString())); } m = new Regex("^#,\\s*(.*)").Match(l); if (m.Success) { msg.Flags.Add(EscapeForXml(m.Groups[1].ToString())); } } msg.Flush(); writer.WriteWhitespace(Environment.NewLine); writer.WriteEndDocument(); writer.Close(); fileInput.Close(); return(0); }