Hello,
I am devolving a console application that simply generates a project.. Everything works fine except that the pre-translation is not executed. Nothing happens. TMs are assigned.
When I load the generated project in Studio and executes the pre-translation all works and I get my pre translated files. Why is it not working with my program?
This is the code. What am I doing wrong?
public void CreateBasedOnTemplate(string docFolder)
{
string templateFile = @"R:\ProjectTemplates\2011\dSPACE_Inhouse.sdltpl";
ProjectTemplateReference template = new ProjectTemplateReference(templateFile);
FileBasedProject newProject = new FileBasedProject(this.GetInfoForTemplateProject(), template);
//FileBasedProject newProject = new FileBasedProject(this.GetInfoForTemplateProject());
this.AddFiles(newProject, docFolder, true);
newProject.Save();
this.ConvertFiles(newProject);
this.ProcessTargetLanguageFiles(newProject, "de-DE");
newProject.Save();
}
public ProjectInfo GetInfoForTemplateProject()
{
#region "TemplateProjectInfo"
ProjectInfo info = new ProjectInfo();
info.Name = "Project based on Template";
info.DueDate = DateTime.Now.AddDays(3);
string localProjectFolder = string.Format(CultureInfo.CurrentCulture, "{0}{1}Studio 2014{1}Projects{1}{2}", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).ToString(), Path.DirectorySeparatorChar.ToString(), info.Name);
info.LocalProjectFolder = localProjectFolder;
Language srcLang = new Language(CultureInfo.GetCultureInfo("en-US"));
info.SourceLanguage = srcLang;
//Language[] trgLangs = new Language[] { new Language(CultureInfo.GetCultureInfo("de-DE")), new Language(CultureInfo.GetCultureInfo("fr-FR")) };
Language[] trgLangs = new Language[] { new Language(CultureInfo.GetCultureInfo("de-DE")) };
info.TargetLanguages = trgLangs;
return info;
#endregion
}
private void AddFiles(FileBasedProject project, string folder, bool recursion)
{
project.AddFolderWithFiles(folder, recursion);
ProjectFile[] projectFiles = project.GetSourceLanguageFiles();
AutomaticTask scan = project.RunAutomaticTask(projectFiles.GetIds(), AutomaticTaskTemplateIds.Scan);
}
private void ConvertFiles(FileBasedProject project)
{
ProjectFile[] files = project.GetSourceLanguageFiles();
for (int i = 0; i < project.GetSourceLanguageFiles().Length; i++)
{
if (files.Role == FileRole.Translatable)
{
Guid[] currentFileId = { files.Id };
AutomaticTask convertTask = project.RunAutomaticTask(currentFileId, AutomaticTaskTemplateIds.ConvertToTranslatableFormat);
AutomaticTask copyTask = project.RunAutomaticTask(currentFileId, AutomaticTaskTemplateIds.CopyToTargetLanguages);
}
}
}
public void ProcessTargetLanguageFiles(FileBasedProject project, string locale)
{
Language targetLanguage = new Language(CultureInfo.GetCultureInfo(locale));
ProjectFile[] targetFiles = project.GetTargetLanguageFiles(targetLanguage);
//project.AddBilingualReferenceFiles(GetBilingualFileMappings(new Language[] { targetLanguage }, targetFiles, @"c:\ProjectFiles\PreviousProjectFiles"));
//AutomaticTask perfectMatchTask = project.RunAutomaticTask(targetFiles.GetIds(), AutomaticTaskTemplateIds.PerfectMatch);
AutomaticTask analzyeTask = project.RunAutomaticTask(targetFiles.GetIds(), AutomaticTaskTemplateIds.AnalyzeFiles);
AutomaticTask translateTask = project.RunAutomaticTask(targetFiles.GetIds(), AutomaticTaskTemplateIds.PreTranslateFiles);
}
Thanks
André