예제 #1
0
        public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage,
                               Codepage suggestedCodepage, INativeTextLocationMessageReporter messageReporter,
                               ISettingsGroup settingsGroup)
        {
            var info = new SniffInfo();

            try
            {
                _packageModel = _packageService.GetPackageModel();
                var sourceLanguageExtension = string.Empty;
                if (_packageModel != null)
                {
                    sourceLanguageExtension = _packageModel.LanguagePairs[0].SourceLanguage.ThreeLetterWindowsLanguageName;
                }

                if (File.Exists(nativeFilePath))
                {
                    // call method to check if file is supported
                    info.IsSupported = IsFileSupported(nativeFilePath, sourceLanguageExtension);
                    // call method to determine the file language pair
                    GetFileLanguages(ref info, nativeFilePath);
                }
                else
                {
                    info.IsSupported = true;
                }
            }
            catch (Exception ex)
            {
                Log.Logger.Error($"Sniff method: {ex.Message}\n {ex.StackTrace}");
            }
            return(info);
        }
예제 #2
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            var doc = new XmlDocument();

            doc.Load(nativeFilePath);

            if (doc.DocumentElement != null)
            {
                var fileElements = doc.GetElementsByTagName(File);

                foreach (XmlElement file in fileElements)
                {
                    if (file.HasAttributes)
                    {
                        var source = file.Attributes[SourceLanguage];
                        if (source != null && source.Value.Length == 5)
                        {
                            info.DetectedSourceLanguage =
                                new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(source.Value),
                                                                                                  DetectionLevel.Certain);
                        }

                        var target = file.Attributes[TargetLanguage];
                        if (target != null && target.Value.Length == 5)
                        {
                            info.DetectedTargetLanguage =
                                new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(target.Value),
                                                                                                  DetectionLevel.Certain);
                        }
                    }
                }
            }
        }
예제 #3
0
        public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage,
                               Codepage suggestedCodepage, INativeTextLocationMessageReporter messageReporter,
                               ISettingsGroup settingsGroup)
        {
            var info = new SniffInfo();

            _fileService = new FileService();
            var packageModel            = _packageService.GetPackageModel();
            var sourceLanguageExtension = string.Empty;

            if (packageModel != null)
            {
                sourceLanguageExtension = packageModel.LanguagePairs[0].SourceLanguage.ThreeLetterWindowsLanguageName;
            }

            if (File.Exists(nativeFilePath))
            {
                // call method to check if file is supported
                info.IsSupported = IsFileSupported(nativeFilePath, sourceLanguageExtension);
                // call method to determine the file language pair
                SetFileLanguages(ref info);
            }
            else
            {
                info.IsSupported = false;
            }
            return(info);
        }
예제 #4
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(nativeFilePath);

            info.DetectedSourceLanguage =
                new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(MapLanguage(srcFileExtension)), DetectionLevel.Certain);

            info.DetectedTargetLanguage =
                new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(MapLanguage(trgFileExtension)), DetectionLevel.Certain);
        }
예제 #5
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            try
            {
                var doc = new XmlDocument();
                doc.Load(nativeFilePath);

                info.DetectedSourceLanguage = new Pair <Language, DetectionLevel>(new Language(MapLanguage(srcFileExtension)), DetectionLevel.Certain);
                info.DetectedTargetLanguage = new Pair <Language, DetectionLevel>(new Language(MapLanguage(trgFileExtension)), DetectionLevel.Certain);
            }
            catch (Exception ex)
            {
                Log.Logger.Error($"GetFileLanguages method: {ex.Message}\n {ex.StackTrace}");
            }
        }
예제 #6
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            XmlDocument doc = new XmlDocument();


            doc.Load(nativeFilePath);
            string tmxSource = doc.SelectSingleNode("tmx/header/@srclang").InnerText;

            info.DetectedSourceLanguage =
                new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(tmxSource), DetectionLevel.Certain);

            if (doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0] != null &&
                doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0].InnerText.Length == 5)
            {
                string tmxTarget = doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0].InnerText;
                info.DetectedTargetLanguage = new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(tmxTarget),
                                                                                                                DetectionLevel.Certain);
            }
        }
예제 #7
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            XmlDocument doc = new XmlDocument();

            
            doc.Load(nativeFilePath);
            string tmxSource = doc.SelectSingleNode("tmx/header/@srclang").InnerText;

            info.DetectedSourceLanguage =
                new Sdl.FileTypeSupport.Framework.Pair<Language, DetectionLevel>(new Language(tmxSource), DetectionLevel.Certain); 

            if (doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0] != null && 
                doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0].InnerText.Length==5)
            {
                string tmxTarget = doc.SelectSingleNode("tmx/body/tu[1]/tuv[2]").Attributes[0].InnerText;
                info.DetectedTargetLanguage = new Sdl.FileTypeSupport.Framework.Pair<Language, DetectionLevel>(new Language(tmxTarget), 
                    DetectionLevel.Certain);
            }
        }
        public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage,
                               Codepage suggestedCodepage, INativeTextLocationMessageReporter messageReporter,
                               ISettingsGroup settingsGroup)
        {
            SniffInfo info = new SniffInfo();

            if (System.IO.File.Exists(nativeFilePath))
            {
                // call method to check if file is supported
                info.IsSupported = IsFileSupported(nativeFilePath);
                // call method to determine the file language pair
                GetFileLanguages(ref info, nativeFilePath);
            }
            else
            {
                info.IsSupported = false;
            }

            return(info);
        }
예제 #9
0
        public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage, 
            Codepage suggestedCodepage, INativeTextLocationMessageReporter messageReporter, 
            ISettingsGroup settingsGroup)
        {
            var info = new SniffInfo();

            if (System.IO.File.Exists(nativeFilePath))
            {
                // call method to check if file is supported
                info.IsSupported = IsFileSupported(nativeFilePath);
                // call method to determine the file language pair
                GetFileLanguages(ref info, nativeFilePath);
            }
            else
            {
                info.IsSupported = false;
            }

            return info;
        }
        public SniffInfo Sniff(string nativeFilePath, Language suggestedSourceLanguage, Codepage suggestedCodepage,
                               INativeTextLocationMessageReporter messageReporter, ISettingsGroup settingsGroup)
        {
            SniffInfo fileInfo = new SniffInfo();

            using (StreamReader _reader = new StreamReader(nativeFilePath))
            {
                if (_reader.ReadLine().StartsWith("[Version="))
                {
                    fileInfo.IsSupported = true;
                }
                else
                {
                    fileInfo.IsSupported = false;
                    messageReporter.ReportMessage(this, nativeFilePath,
                                                  ErrorLevel.Error, StringResources.Sniffer_Message,
                                                  StringResources.Sniffer_Location);
                }
            }

            return(fileInfo);
        }
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(nativeFilePath);
            if (doc.DocumentElement.HasAttributes)
            {
                XmlAttribute source = doc.DocumentElement.Attributes[_SourceLanguage];
                if (source != null)
                {
                    info.DetectedSourceLanguage =
                        new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(source.Value),
                                                                                          DetectionLevel.Certain);
                }

                XmlAttribute target = doc.DocumentElement.Attributes[_TargetLanguage];
                if (source != null)
                {
                    info.DetectedTargetLanguage =
                        new Sdl.FileTypeSupport.Framework.Pair <Language, DetectionLevel>(new Language(target.Value),
                                                                                          DetectionLevel.Certain);
                }
            }
        }
예제 #12
0
        // retrieve the source and target language
        // from the file header
        private void GetFileLanguages(ref SniffInfo info, string nativeFilePath)
        {
            var doc = new XmlDocument();
            
            doc.Load(nativeFilePath);
            if (doc.DocumentElement != null && doc.DocumentElement.HasAttributes)
            {
                XmlAttribute source = doc.DocumentElement.Attributes[SourceLanguage];
                if (source != null && source.Value.Length ==5)
                {
                    info.DetectedSourceLanguage =
                        new Sdl.FileTypeSupport.Framework.Pair<Language, DetectionLevel>(new Language(source.Value),
                            DetectionLevel.Certain);
                }

                XmlAttribute target = doc.DocumentElement.Attributes[TargetLanguage];
                if (target != null && target.Value.Length ==5)
                {
                    info.DetectedTargetLanguage =
                        new Sdl.FileTypeSupport.Framework.Pair<Language, DetectionLevel>(new Language(target.Value),
                            DetectionLevel.Certain);
                }
            }
        }
예제 #13
0
 private void SetFileLanguages(ref SniffInfo info)
 {
     info.DetectedSourceLanguage = new Pair <Language, DetectionLevel>(new Language(_fileService.MapFileLanguage(_srcFileExtension)), DetectionLevel.Certain);
     info.DetectedTargetLanguage = new Pair <Language, DetectionLevel>(new Language(_fileService.MapFileLanguage(_trgFileExtension)), DetectionLevel.Certain);
 }