/// <summary> /// Create basic project from scratch, not using templates /// </summary> public FileBasedProject CreateProject(LocalProjectSettings settings) { FileBasedProject result; try { ////Create new project object FileBasedProject createdProject = new FileBasedProject( GetProjectInfo( settings.ProjectName, new Language(settings.SourceLanguage), new Language[] { new Language(settings.TargetLanguage) })); ////Add files createdProject.AddFolderWithFiles(settings.InputFolder, true); ////Add TM's which will be used in the project AddMasterTM(createdProject, settings.PathToMasterTM); ////Adapt some project settings AdaptProjectSettings(createdProject); ////Add termbase AddTermbase(createdProject, settings.TermbasePath, settings.SourceLanguage, settings.TargetLanguage); ////Start the tasks RunTasks(createdProject, settings); ////Create project package to be sent to translator CreateProjectPackage(createdProject, new Language(settings.TargetLanguage), settings.PackageOutputPath); ////missing - getting translated files. createdProject.Save(); result = createdProject; ////project is saved but not listed in Studio, this is by design. } catch (Exception ex) { throw new Exception("Problem during project creation", ex); } return(result); }
/// <summary> /// /// </summary> /// <param name="createdProject">A project you have created</param> /// <param name="settings">Settings containing initial input parameters</param> private void RunTasks(FileBasedProject createdProject, LocalProjectSettings settings) { Language targetLanguage = new Language(settings.TargetLanguage); List <TaskStatusEventArgs> taskStatusEventArgsList = new List <TaskStatusEventArgs>(); List <MessageEventArgs> messageEventArgsList = new List <MessageEventArgs>(); // set up perfect match ProjectFile[] projectFiles = createdProject.GetSourceLanguageFiles(); createdProject.AddBilingualReferenceFiles(GetBilingualFileMappings(new Language[] { targetLanguage }, projectFiles, settings.PreviousVersionPath)); // scan files AutomaticTask automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.Scan, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // convert files automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.ConvertToTranslatableFormat, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // copy files to target languages automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.CopyToTargetLanguages, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // from now on use target language files projectFiles = createdProject.GetTargetLanguageFiles(targetLanguage); // Apply Perfect Match automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.PerfectMatch, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // analyze files automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.AnalyzeFiles, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // translate files automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.PreTranslateFiles, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); // populate project TM automaticTask = RunTasks( createdProject, projectFiles, AutomaticTaskTemplateIds.PopulateProjectTranslationMemories, taskStatusEventArgsList, messageEventArgsList); CheckEvents(taskStatusEventArgsList, messageEventArgsList); }