Beispiel #1
0
        /// <summary>
        /// Instantiates the variables and fills the list file content into
        /// a Dictionary collection object.
        /// </summary>
        /// <param name="provider"></param>
        /// <param name="languages"></param>
        #region "ListTranslationProviderLanguageDirection"
        public FiskmoProviderLanguageDirection(FiskmoProvider provider, LanguagePair languages)
        {
            #region "Instantiate"
            // UT.LogMessageToFile("Init ListTranslationProviderLanguageDirection");

            _provider          = provider;
            _languageDirection = languages;
            _options           = _provider.Options;



            if (Boolean.Parse(_options.pregenerateMt))
            {
                EditorController editorController = SdlTradosStudio.Application.GetController <EditorController>();
                editorController.ActiveDocumentChanged += DocChanged;
            }

            _visitor = new FiskmoProviderElementVisitor(_options);

            var sourceCode = this._languageDirection.SourceCulture.TwoLetterISOLanguageName;
            var targetCode = this._languageDirection.TargetCulture.TwoLetterISOLanguageName;
            this.langpair = $"{sourceCode}-{targetCode}";

            if (!FiskmoProviderLanguageDirection.processedDocuments.ContainsKey(this.langpair))
            {
                FiskmoProviderLanguageDirection.processedDocuments[this.langpair] = new ConcurrentBag <Document>();
            }

            var modelManager = new ModelManager();

            //Start a marian instance if one has not been started or the previous one has exited
            //for some reason.
            if (!FiskmoProviderLanguageDirection._marianProcesses.ContainsKey(this.langpair) ||
                FiskmoProviderLanguageDirection._marianProcesses[this.langpair].MtPipe.HasExited)
            {
                //if ((sourceCode == "sv" && targetCode == "fi") || (sourceCode == "fi" && targetCode == "sv"))
                if (true)
                {
                    var latestModelDir = modelManager.GetLatestModelDir(sourceCode, targetCode);

                    FiskmoProviderLanguageDirection._marianProcesses[this.langpair] =
                        new MarianProcess(latestModelDir, sourceCode, targetCode);
                }
            }
            #endregion
        }
Beispiel #2
0
        /// <summary>
        /// Instantiates the variables and fills the list file content into
        /// a Dictionary collection object.
        /// </summary>
        /// <param name="provider"></param>
        /// <param name="languages"></param>
        #region "ListTranslationProviderLanguageDirection"
        public FiskmoProviderLanguageDirection(FiskmoProvider provider, LanguagePair languages)
        {
            #region "Instantiate"
            // UT.LogMessageToFile("Init ListTranslationProviderLanguageDirection");

            _provider          = provider;
            _languageDirection = languages;
            _options           = _provider.Options;

            _visitor = new FiskmoProviderElementVisitor();

            var sourceCode = this._languageDirection.SourceCulture.TwoLetterISOLanguageName;
            var targetCode = this._languageDirection.TargetCulture.TwoLetterISOLanguageName;
            this.langpair = $"{sourceCode}-{targetCode}";

            #endregion
        }
        protected override void OnInitializeTask()
        {
            this.collectedSentencePairCount = 0;
            this.settings      = GetSetting <FinetuneBatchTaskSettings>();
            this.fiskmoOptions = new FiskmoOptions(new Uri(this.settings.ProviderOptions));

            //Use project guid in case no model tag specified
            if (this.fiskmoOptions.modelTag == "")
            {
                this.fiskmoOptions.modelTag = this.Project.GetProjectInfo().Id.ToString();
            }
            this.tms = this.InstantiateProjectTms();
            this.ProjectTranslations = new Dictionary <Language, List <Tuple <string, string> > >();
            this.ProjectNewSegments  = new Dictionary <Language, List <string> >();
            this.ProjectFuzzies      = new Dictionary <Language, List <TranslationUnit> >();
            this.sourceVisitor       = new FiskmoProviderElementVisitor();
            this.targetVisitor       = new FiskmoProviderElementVisitor();
            base.OnInitializeTask();
        }