public static void CopyFile(SliceInfo sliceInfo, SDLXLIFFSliceOrChange form)
        {
            try
            {
                String      file = sliceInfo.File;
                XmlDocument xDoc = new XmlDocument();
                xDoc.PreserveWhitespace = true;
                xDoc.Load(file);

                String xmlEncoding = "utf-8";
                try
                {
                    if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
                    {
                        // Get the encoding declaration.
                        XmlDeclaration decl = (XmlDeclaration)xDoc.FirstChild;
                        xmlEncoding = decl.Encoding;
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }
                XmlNodeList fileList = xDoc.DocumentElement.GetElementsByTagName("file");
                foreach (XmlElement fileElement in fileList.OfType <XmlElement>())
                {
                    XmlElement  bodyElement   = (XmlElement)(fileElement.GetElementsByTagName("body")[0]);
                    XmlNodeList groupElements = bodyElement.GetElementsByTagName("group");

                    foreach (var groupElement in groupElements.OfType <XmlElement>())
                    {
                        //look in segments
                        XmlNodeList transUnits = ((XmlElement)groupElement).GetElementsByTagName("trans-unit");
                        foreach (var transUnit in transUnits.OfType <XmlElement>())
                        {
                            CopyInTransUnit(sliceInfo, transUnit);
                        }
                        transUnits = null;
                    }

                    //look in segments
                    XmlNodeList transUnitsInBody = ((XmlElement)bodyElement).ChildNodes; //.GetElementsByTagName("trans-unit");
                    foreach (var transUnit in transUnitsInBody.OfType <XmlElement>())
                    {
                        if (((XmlNode)transUnit).Name != "trans-unit")
                        {
                            continue;
                        }
                        CopyInTransUnit(sliceInfo, transUnit);
                    }
                    transUnitsInBody = null;
                    bodyElement      = null;
                    groupElements    = null;
                }
                fileList = null;

                Encoding encoding = new UTF8Encoding();
                if (!String.IsNullOrEmpty(xmlEncoding))
                {
                    encoding = Encoding.GetEncoding(xmlEncoding);
                }
                using (var writer = new XmlTextWriter(file, encoding))
                {
                    //writer.Formatting = Formatting.None;
                    xDoc.Save(writer);
                }
                xDoc = null;
                form.StepProcess("Source segments from file: " + Path.GetFileName(sliceInfo.File) + " are copied.");
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
            }
        }
Exemple #2
0
        public static void DoReplaceInFile(string file, ReplaceSettings settings, SDLXLIFFSliceOrChange sdlxliffSliceOrChange)
        {
            try
            {
                sdlxliffSliceOrChange.StepProcess("Replaceing in file: " + file + "...");

                String fileContent = String.Empty;
                using (StreamReader sr = new StreamReader(file))
                {
                    fileContent = sr.ReadToEnd();
                }
                fileContent = Regex.Replace(fileContent, "\t", "");

                using (StreamWriter sw = new StreamWriter(file, false))
                {
                    sw.Write(fileContent);
                }

                XmlDocument xDoc = new XmlDocument();
                xDoc.PreserveWhitespace = true;
                xDoc.Load(file);

                String xmlEncoding = "utf-8";
                try
                {
                    if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
                    {
                        // Get the encoding declaration.
                        XmlDeclaration decl = (XmlDeclaration)xDoc.FirstChild;
                        xmlEncoding = decl.Encoding;
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }

                XmlNodeList fileList = xDoc.DocumentElement.GetElementsByTagName("file");
                foreach (XmlElement fileElement in fileList.OfType <XmlElement>())
                {
                    XmlElement  bodyElement   = (XmlElement)(fileElement.GetElementsByTagName("body")[0]);
                    XmlNodeList groupElements = bodyElement.GetElementsByTagName("group");

                    foreach (var groupElement in groupElements.OfType <XmlElement>())
                    {
                        //look in segments
                        XmlNodeList transUnits = ((XmlElement)groupElement).GetElementsByTagName("trans-unit");
                        foreach (XmlElement transUnit in transUnits.OfType <XmlElement>())
                        {
                            XmlNodeList source = transUnit.GetElementsByTagName("source");
                            if (source.Count > 0)                             //in mrk, g si innertext
                            {
                                ReplaceAllChildsValue((XmlElement)source[0], settings);
                            }
                            source = null;
                            XmlNodeList segSource = transUnit.GetElementsByTagName("seg-source");
                            if (segSource.Count > 0)                             //in mrk, g si innertext
                            {
                                ReplaceAllChildsValue((XmlElement)segSource[0], settings);
                            }
                            segSource = null;
                            XmlNodeList target = transUnit.GetElementsByTagName("target");
                            if (target.Count > 0)                             //in mrk, g si innertext
                            {
                                ReplaceAllChildsValue((XmlElement)target[0], settings, false);
                            }
                            target = null;
                        }
                    }

                    //look in segments not located in groups
                    XmlNodeList transUnitsInBody = bodyElement.ChildNodes;                    //.GetElementsByTagName("trans-unit");
                    foreach (XmlElement transUnit in transUnitsInBody.OfType <XmlElement>())
                    {
                        if (transUnit.Name != "trans-unit")
                        {
                            continue;
                        }
                        XmlNodeList source = transUnit.GetElementsByTagName("source");
                        if (source.Count > 0)                         //in mrk, g si innertext
                        {
                            ReplaceAllChildsValue((XmlElement)source[0], settings);
                        }
                        source = null;
                        XmlNodeList segSource = transUnit.GetElementsByTagName("seg-source");
                        if (segSource.Count > 0)                         //in mrk, g si innertext
                        {
                            ReplaceAllChildsValue((XmlElement)segSource[0], settings);
                        }
                        segSource = null;
                        XmlNodeList target = transUnit.GetElementsByTagName("target");
                        if (target.Count > 0)                         //in mrk, g si innertext
                        {
                            ReplaceAllChildsValue((XmlElement)target[0], settings, false);
                        }
                        target = null;
                    }

                    bodyElement      = null;
                    groupElements    = null;
                    transUnitsInBody = null;
                }
                Encoding encoding = new UTF8Encoding();
                if (!String.IsNullOrEmpty(xmlEncoding))
                {
                    encoding = Encoding.GetEncoding(xmlEncoding);
                }

                using (var writer = new XmlTextWriter(file, encoding))
                {
                    ////writer.Formatting = Formatting.None;
                    xDoc.Save(writer);
                }

                fileContent = String.Empty;
                using (StreamReader sr = new StreamReader(file))
                {
                    fileContent = sr.ReadToEnd();
                }
                fileContent = Regex.Replace(fileContent, "", "\t");

                using (StreamWriter sw = new StreamWriter(file, false))
                {
                    sw.Write(fileContent);
                }

                xDoc     = null;
                fileList = null;
                sdlxliffSliceOrChange.StepProcess("All information replaced in file: " + file + ".");
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
            }
        }
Exemple #3
0
        public static void CopyFile(SliceInfo sliceInfo, SDLXLIFFSliceOrChange form)
        {
            try
            {
                var file = sliceInfo.File;
                var xDoc = new XmlDocument {
                    PreserveWhitespace = true
                };
                xDoc.Load(file);

                var xmlEncoding = "utf-8";

                if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
                {
                    // Get the encoding declaration.
                    var decl = (XmlDeclaration)xDoc.FirstChild;
                    xmlEncoding = decl.Encoding;
                }

                var fileList = xDoc.DocumentElement?.GetElementsByTagName("file");
                if (fileList != null)
                {
                    foreach (var fileElement in fileList.OfType <XmlElement>())
                    {
                        var bodyElement   = (XmlElement)(fileElement.GetElementsByTagName("body")[0]);
                        var groupElements = bodyElement.GetElementsByTagName("group");

                        foreach (var groupElement in groupElements.OfType <XmlElement>())
                        {
                            //look in segments
                            var transUnits = groupElement.GetElementsByTagName("trans-unit");
                            foreach (var transUnit in transUnits.OfType <XmlElement>())
                            {
                                CopyInTransUnit(sliceInfo, transUnit);
                            }
                        }

                        //look in segments
                        var transUnitsInBody = bodyElement.ChildNodes;
                        foreach (var transUnit in transUnitsInBody.OfType <XmlElement>())
                        {
                            if (transUnit.Name != "trans-unit")
                            {
                                continue;
                            }
                            CopyInTransUnit(sliceInfo, transUnit);
                        }
                    }
                }

                Encoding encoding = new UTF8Encoding();
                if (!string.IsNullOrEmpty(xmlEncoding))
                {
                    encoding = Encoding.GetEncoding(xmlEncoding);
                }
                using (var writer = new XmlTextWriter(file, encoding))
                {
                    xDoc.Save(writer);
                }
                form.StepProcess("Source segments from file: " + Path.GetFileName(sliceInfo.File) + " are copied.");
            }
            catch (Exception ex)
            {
                _logger.Error($"{MethodBase.GetCurrentMethod().Name} \n {ex}");
            }
        }
Exemple #4
0
 public UpdateManager(SDLXLIFFSliceOrChange sdlxliffSliceOrChange)
 {
     _sdlxliffSliceOrChange = sdlxliffSliceOrChange;
 }
        public static void DoReplaceInFile(string file, ReplaceSettings settings, SDLXLIFFSliceOrChange sdlxliffSliceOrChange)
        {
            try
            {
                sdlxliffSliceOrChange.StepProcess("Replaceing in file: " + file + "...");

                string fileContent;
                using (var sr = new StreamReader(file))
                {
                    fileContent = sr.ReadToEnd();
                }
                fileContent = Regex.Replace(fileContent, "\t", "");

                using (var sw = new StreamWriter(file, false))
                {
                    sw.Write(fileContent);
                }

                var xDoc = new XmlDocument
                {
                    PreserveWhitespace = true
                };
                xDoc.Load(file);

                var xmlEncoding = "utf-8";
                if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
                {
                    // Get the encoding declaration.
                    var decl = (XmlDeclaration)xDoc.FirstChild;
                    xmlEncoding = decl.Encoding;
                }

                var fileList = xDoc.DocumentElement?.GetElementsByTagName("file");
                if (fileList != null)
                {
                    ParseFileElements(fileList, settings);
                }

                Encoding encoding = new UTF8Encoding();
                if (!string.IsNullOrEmpty(xmlEncoding))
                {
                    encoding = Encoding.GetEncoding(xmlEncoding);
                }

                using (var writer = new XmlTextWriter(file, encoding))
                {
                    xDoc.Save(writer);
                }

                using (var sr = new StreamReader(file))
                {
                    fileContent = sr.ReadToEnd();
                }
                fileContent = Regex.Replace(fileContent, "", "\t");

                using (var sw = new StreamWriter(file, false))
                {
                    sw.Write(fileContent);
                }
                sdlxliffSliceOrChange.StepProcess("All information replaced in file: " + file + ".");
            }
            catch (Exception ex)
            {
                _logger.Error($"{MethodBase.GetCurrentMethod().Name} \n {ex}");
            }
        }