コード例 #1
0
        private List <StarTranslationMemoryMetadata> GetTransitTmsForLanguagePair(string pathToTempFolder,
                                                                                  string packageName, LanguagePair languagePair)
        {
            var availableTms     = new List <StarTranslationMemoryMetadata>();
            var metadataFileInfo = new MetadataFileInfo
            {
                SourceMtFilesPath = new List <string>(),
                SourceTmFilesPath = new List <string>(),
                TargetMtFilesPath = new List <string>(),
                TargetTmFilesPath = new List <string>()
            };

            var sourceFilesExtension = Path.GetExtension(languagePair.SourceFile[0]);
            var targetFilesExtension = Path.GetExtension(languagePair.TargetFile[0]);

            if (!_fileService.AreFilesExtensionsSupported(sourceFilesExtension, targetFilesExtension))
            {
                return(availableTms);
            }

            //_AXTR TMs/MTs
            var tempDirInfo = new DirectoryInfo(pathToTempFolder);
            var allTms      = tempDirInfo.GetFiles("_AEXTR_*", SearchOption.TopDirectoryOnly).GroupBy(f => f.Extension);

            GroupTmsIntoLists(allTms, targetFilesExtension, sourceFilesExtension, metadataFileInfo);
            SetAvailableTms(availableTms, languagePair, metadataFileInfo, packageName);

            //Ref folder tms
            var refFolderPath = Path.Combine(pathToTempFolder, "REF");

            if (Directory.Exists(refFolderPath))
            {
                var refFolderDirectories = Directory.GetDirectories(refFolderPath);

                foreach (var subDirectory in refFolderDirectories)
                {
                    var subDirFileInfo = new DirectoryInfo(subDirectory).GetFiles().GroupBy(f => f.Extension);
                    GroupTmsIntoLists(subDirFileInfo, targetFilesExtension, sourceFilesExtension, metadataFileInfo);
                }
                metadataFileInfo.IsRefFolderMetadata = true;
                SetAvailableTms(availableTms, languagePair, metadataFileInfo, packageName);
            }

            if (availableTms.Any())
            {
                languagePair.HasTm = true;
            }
            return(availableTms);
        }
コード例 #2
0
        private void GroupTmsIntoLists(IEnumerable <IGrouping <string, FileInfo> > subDirFileInfo, string targetExtension, string transitSourceExtension, MetadataFileInfo metadataFileInfo)
        {
            foreach (var subGroupInfo in subDirFileInfo)
            {
                //We create the source files based on the target files because in REF folder case we'll need only the source files for the current language pair not all of them
                if (subGroupInfo.Key.Contains(targetExtension))
                {
                    var files   = subGroupInfo.ToList();
                    var tmFiles = files.Where(f => !f.Name.Contains("MT")).Select(f => f.FullName);
                    var mtFiles = files
                                  .Where(f => f.Name.Contains("MT"))
                                  .Select(f => f.FullName);
                    metadataFileInfo.TargetTmFilesPath.AddRange(tmFiles);
                    metadataFileInfo.TargetMtFilesPath.AddRange(mtFiles);

                    metadataFileInfo.SourceTmFilesPath.AddRange(GetCorrespondingSourceFiles(tmFiles, transitSourceExtension));
                    metadataFileInfo.SourceMtFilesPath.AddRange(GetCorrespondingSourceFiles(mtFiles, transitSourceExtension));
                }
            }
        }
コード例 #3
0
        private void SetAvailableTms(List <StarTranslationMemoryMetadata> availableTms, LanguagePair languagePair, MetadataFileInfo metadataFileInfo, string packageName)
        {
            var sourceLangCode = languagePair.SourceLanguage.TwoLetterISOLanguageName;
            var targetLangCode = languagePair.TargetLanguage.TwoLetterISOLanguageName;

            if (metadataFileInfo.SourceTmFilesPath.Any())
            {
                var tm = new StarTranslationMemoryMetadata
                {
                    Name = $"{packageName}.{sourceLangCode}-{targetLangCode}",
                    TransitTmsSourceFilesPath  = new List <string>(metadataFileInfo.SourceTmFilesPath),
                    TransitTmsTargeteFilesPath = new List <string>(metadataFileInfo.TargetTmFilesPath),
                    IsReferenceMeta            = metadataFileInfo.IsRefFolderMetadata
                };
                availableTms.Add(tm);
            }

            if (metadataFileInfo.SourceMtFilesPath.Any())
            {
                var mt = new StarTranslationMemoryMetadata
                {
                    Name = $"MT_{packageName}.{sourceLangCode}-{targetLangCode}",
                    TransitTmsSourceFilesPath  = new List <string>(metadataFileInfo.SourceMtFilesPath),
                    TransitTmsTargeteFilesPath = new List <string>(metadataFileInfo.TargetMtFilesPath),
                    IsReferenceMeta            = metadataFileInfo.IsRefFolderMetadata,
                    IsMtFile = true
                };
                availableTms.Add(mt);
            }
        }