Beispiel #1
0
        private MessageModel SetLanguagePairInformation(
            IProject newProject,
            PackageModel package)
        {
            if (package?.LanguagePairs != null)
            {
                foreach (var pair in package.LanguagePairs)
                {
                    if (!pair.TargetFile.Any() || pair.TargetFile.Count == 0)
                    {
                        _messageModel.IsProjectCreated = false;
                        _messageModel.Message          =
                            "Project was not created correctly because no target files were found in the package!";
                        _messageModel.Title = "Informative message";
                        return(_messageModel);
                    }

                    if (pair.CreateNewTm)
                    {
                        //TODO:Investigate and refactor
                        foreach (var starTmMetadata in pair.StarTranslationMemoryMetadatas)
                        {
                            AddTmPenalties(package, starTmMetadata);
                            AddMtMemories(package, starTmMetadata);
                        }

                        //TODO: Investigate if we really need this later we'll join the mt and tms becasue
                        // Remove found items from pair.StarTranslationMemoryMetadatas (the remained ones are those which does not have penalties set on them)
                        foreach (var item in _penaltiesTmsList)
                        {
                            pair.StarTranslationMemoryMetadatas.Remove(item);
                        }

                        // Remove Machine Translation memories from pair.StarTranslationMemoryMetadatas, if the user requests them, they will be imported separately, but never in the main TM
                        pair.StarTranslationMemoryMetadatas.RemoveAll(item =>
                                                                      Path.GetFileName(item?.TargetFile ?? "").Contains("_AEXTR_MT_"));
                    }

                    _targetProjectFiles?.Clear();

                    // Import language pair TM if any
                    ImportLanguagePairTm(pair, newProject, package);

                    _targetProjectFiles?.AddRange(newProject.AddFiles(pair.TargetFile.ToArray()));
                    _messageModel = UpdateProjectSettings(newProject);
                }
                _projectsController?.RefreshProjects();
            }
            return(_messageModel);
        }