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);
            }
        }
示例#2
0
        public void AddTermbase(FileBasedProject project, string termbaseFileName)
        {
            #region "TbConfig"
            TermbaseConfiguration termbaseConfig = project.GetTermbaseConfiguration();
            #endregion

            #region "AddTb"
            Termbase tb = new LocalTermbase(termbaseFileName);
            termbaseConfig.Termbases.Add(tb);
            #endregion

            #region "TermRecOptions"
            TermRecognitionOptions options = termbaseConfig.TermRecognitionOptions;
            options.MinimumMatchValue = 50;
            options.SearchDepth       = 200;
            options.ShowWithNoAvailableTranslation = true;
            options.SearchOrder = TermbaseSearchOrder.Hierarchical;
            #endregion

            #region "ProjectLanguagesAndTbIndexes"
            string[] termbaseIndex = { "English", "German", "French" };

            Language projSourceLang  = new Language(CultureInfo.GetCultureInfo("en-US"));
            Language projTargetLang1 = new Language(CultureInfo.GetCultureInfo("de-DE"));
            Language projTargetLang2 = new Language(CultureInfo.GetCultureInfo("fr-FR"));
            #endregion

            #region "TermbaseLanguageIndex"
            termbaseConfig.LanguageIndexes.Add(new TermbaseLanguageIndex(projSourceLang, termbaseIndex[0]));
            termbaseConfig.LanguageIndexes.Add(new TermbaseLanguageIndex(projTargetLang1, termbaseIndex[1]));
            termbaseConfig.LanguageIndexes.Add(new TermbaseLanguageIndex(projTargetLang2, termbaseIndex[2]));
            #endregion

            #region "UpdateTermbaseConfiguration"
            project.UpdateTermbaseConfiguration(termbaseConfig);
            #endregion
        }