/// <summary> /// Add entries to a given termbase /// </summary> /// <param name="oTb"></param> public void PopulateTermbase(ITermbase termbase) { try { telemetryTracker.StartTrackRequest("Population of the termbase"); telemetryTracker.TrackEvent("Population of the termbase", null); var extractor = new ProjectTermsExtractor(); var targetProjectFiles = project.GetTargetLanguageFiles(); var targetFilesReportedToSelectedFile = targetProjectFiles.Where(file => file.Name.Equals(selectedFile.Name)); extractor.ExtractBilingualContent(targetFilesReportedToSelectedFile.ToArray()); Dictionary <string, List <KeyValuePair <string, string> > > bilingualContentPair = extractor.GetBilingualContentPair(); foreach (var item in bilingualContentPair.Keys) { var entry = CreateEntry(item, selectedFile.SourceFile.Language, bilingualContentPair[item]); var oEntries = termbase.Entries; oEntries.New(entry, true); } } catch (Exception e) { telemetryTracker.TrackException(new TermbaseGenerationException(PluginResources.Error_PopulateTermbase + e.Message)); telemetryTracker.TrackTrace((new TermbaseGenerationException(PluginResources.Error_PopulateTermbase + e.Message)).StackTrace, Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Error); throw new TermbaseGenerationException(PluginResources.Error_PopulateTermbase + e.Message); } }
private void IncludeTermbaseInStudio(ITermbase termbase, TermbaseGeneration termbaseCreator, string termbasePath) { ITelemetryTracker telemetryTracker = new TelemetryTracker(); try { telemetryTracker.StartTrackRequest("Including the termbase into Trados Studio"); telemetryTracker.TrackEvent("Including the termbase into Trados Studio", null); #region TbConfig var project = SdlTradosStudio.Application.GetController <ProjectsController>().CurrentProject; TermbaseConfiguration termbaseConfig = project.GetTermbaseConfiguration(); #endregion #region AddTb var studioTermbase = new LocalTermbase(termbasePath); termbaseConfig.Termbases.Add(studioTermbase); #endregion #region TermRecOptions TermRecognitionOptions options = termbaseConfig.TermRecognitionOptions; options.MinimumMatchValue = 50; options.SearchDepth = 200; options.ShowWithNoAvailableTranslation = true; options.SearchOrder = TermbaseSearchOrder.Hierarchical; #endregion #region TermbaseLanguageIndex var langs = termbaseCreator.GetProjectLanguages(); termbaseConfig.LanguageIndexes.Clear(); foreach (var lang in langs.Keys) { termbaseConfig.LanguageIndexes.Add(new TermbaseLanguageIndex(new Language(CultureInfo.GetCultureInfo(langs[lang])), lang)); } #endregion #region UpdateTermbaseConfiguration project.UpdateTermbaseConfiguration(termbaseConfig); #endregion } catch (Exception e) { telemetryTracker.TrackException(new UploadTermbaseException(PluginResources.Error_IncludeTermbaseInStudio + e.Message)); telemetryTracker.TrackTrace((new UploadTermbaseException(PluginResources.Error_IncludeTermbaseInStudio + e.Message)).StackTrace, Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Error); throw new UploadTermbaseException(PluginResources.Error_IncludeTermbaseInStudio + e.Message); } }