Example #1
0
        public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore)
        {
            //TODO: Instantiate the new Rate it View part
            try
            {
                var uri = new Uri($"{Constants.MTCloudUriScheme}://");
                var connectionService = new ConnectionService(owner, new VersionService(), StudioInstance.GetLanguageCloudIdentityApi(), MtCloudApplicationInitializer.Client);

                var credential       = connectionService.GetCredential(credentialStore);
                var connectionResult = connectionService.EnsureSignedIn(credential, true);

                if (!connectionResult.Item1)
                {
                    throw new TranslationProviderAuthenticationException(PluginResources.Message_Invalid_credentials);
                }

                MtCloudApplicationInitializer.PublishEvent(new TranslationProviderAdded());

                connectionService.SaveCredential(credentialStore);

                MtCloudApplicationInitializer.SetTranslationService(connectionService);

                var languageProvider = new LanguageProvider();
                var provider         = new SdlMTCloudTranslationProvider(uri, string.Empty, MtCloudApplicationInitializer.TranslationService,
                                                                         languageProvider);

                return(new ITranslationProvider[] { provider });
            }
            catch (Exception e)
            {
                _logger.Error($"{Constants.Browse} {e.Message}\n {e.StackTrace}");
            }

            return(null);
        }
        private void EnableAction(TranslationProviderStatusChanged tpStatus = null)
        {
            var currentProject = MtCloudApplicationInitializer.GetProjectInProcessing();

            if (currentProject == null || currentProject.GetProjectInfo().Id !=
                MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project.GetProjectInfo().Id)
            {
                return;
            }

            bool?hasSdlMtAdded;

            if (tpStatus == null)
            {
                hasSdlMtAdded = MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project
                                .GetTranslationProviderConfiguration().
                                Entries?.FirstOrDefault(
                    entry =>
                    entry.MainTranslationProvider
                    .Uri
                    .ToString().Contains(PluginResources.SDLMTCloudUri))?.MainTranslationProvider.Enabled;
            }
            else
            {
                if (!tpStatus.TpUri?.ToString().Contains(PluginResources.SDLMTCloudUri) ?? false)
                {
                    return;
                }
                hasSdlMtAdded = tpStatus.NewStatus;
            }

            Enabled = hasSdlMtAdded ?? false;
        }
Example #3
0
        private void Setup(bool providerAdded = false)
        {
            if (MtCloudApplicationInitializer.CurrentViewDetector.View != Helpers.CurrentViewDetector.CurrentView.EditorView)
            {
                return;
            }

            var projectInProcessing = MtCloudApplicationInitializer.GetProjectInProcessing();

            if (MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project !=
                projectInProcessing)
            {
                return;
            }

            var currentProvider = MtCloudApplicationInitializer.GetCurrentProjectProvider();

            var visibility = currentProvider != null && currentProvider.Options.SendFeedback && (GetTpStatus() || providerAdded);

            SwitchVisibility(visibility);

            if (currentProvider is null)
            {
                return;
            }
            try
            {
                Application.Current?.Dispatcher?.Invoke(
                    () => RateIt.SetTranslationService(currentProvider.TranslationService));
            }
            catch
            {
                // catch all; unable to locate the controller
            }
        }
Example #4
0
        public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState,
                                                              ITranslationProviderCredentialStore credentialStore)
        {
            var connectionService = new ConnectionService(StudioInstance.GetActiveForm(), new VersionService(),
                                                          StudioInstance.GetLanguageCloudIdentityApi(), MtCloudApplicationInitializer.Client);

            var credential       = connectionService.GetCredential(credentialStore);
            var connectionResult = connectionService.EnsureSignedIn(credential);

            if (!connectionResult.Item1)
            {
                throw new TranslationProviderAuthenticationException(PluginResources.Message_Invalid_credentials);
            }
            connectionService.SaveCredential(credentialStore);

            var editorController = StudioInstance.GetEditorController();

            MtCloudApplicationInitializer.SetTranslationService(connectionService);

            var languageProvider = new LanguageProvider();
            var provider         = new SdlMTCloudTranslationProvider(translationProviderUri, translationProviderState,
                                                                     MtCloudApplicationInitializer.TranslationService, languageProvider, editorController);

            return(provider);
        }
Example #5
0
        private void EnableAction(TranslationProviderStatusChanged tpStatus = null)
        {
            if (MtCloudApplicationInitializer.GetProjectInProcessing().GetProjectInfo().Id !=
                MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project.GetProjectInfo().Id)
            {
                return;
            }

            bool?hasSdlMtAdded;

            if (tpStatus == null)
            {
                hasSdlMtAdded = MtCloudApplicationInitializer.EditorController.ActiveDocument?.Project
                                .GetTranslationProviderConfiguration().
                                Entries?.Any(
                    entry =>
                    entry.MainTranslationProvider
                    .Uri
                    .ToString().Contains("sdlmtcloud"));
            }
            else
            {
                hasSdlMtAdded = tpStatus.NewStatus;
            }

            Enabled = hasSdlMtAdded ?? false;
        }
Example #6
0
        public MetadataSupervisor(ISegmentMetadataCreator segmentMetadataCreator, EditorController editorController)
        {
            _segmentMetadataCreator = segmentMetadataCreator;
            _editorController       = editorController;

            MtCloudApplicationInitializer
            .Subscribe <RefreshQeStatus>(OnQeStatus);
        }
Example #7
0
        public RateItController()
        {
            MtCloudApplicationInitializer.EditorController.ActiveDocumentChanged += EditorController_ActiveDocumentChanged;

            MtCloudApplicationInitializer.Subscribe <TranslationProviderStatusChanged>(Settings_TranslationProviderStatusChanged);
            MtCloudApplicationInitializer.Subscribe <TranslationProviderRateItOptionsChanged>(TranslationProviderRateItOptionsChanged);
            MtCloudApplicationInitializer.Subscribe <TranslationProviderAdded>(TranslationProviderAdded);
        }
Example #8
0
        private static bool GetTpStatus()
        {
            var tpStatus =
                MtCloudApplicationInitializer.GetProjectInProcessing()?.GetTranslationProviderConfiguration().Entries
                .FirstOrDefault(
                    e => e.MainTranslationProvider.Uri.ToString().Contains(PluginResources.SDLMTCloudUri))?.MainTranslationProvider
                .Enabled;

            return(tpStatus ?? false);
        }
Example #9
0
        public TranslationProviderInfo GetTranslationProviderInfo(Uri translationProviderUri, string translationProviderState)
        {
            MtCloudApplicationInitializer.RefreshQeStatus();
            var info = new TranslationProviderInfo
            {
                TranslationMethod = TranslationMethod.MachineTranslation,
                Name = PluginResources.Plugin_NiceName
            };

            return(info);
        }
Example #10
0
        public MetadataSupervisor(ISegmentMetadataCreator segmentMetadataCreator, EditorController editorController)
        {
            _segmentMetadataCreator = segmentMetadataCreator;
            _editorController       = editorController;

            _providerNames = new List <string> {
                PluginResources.SDLMTCloud_Provider_Name, PluginResources.SDLMTCloud_Provider_OldName, PluginResources.SDLMTCloud_Provider_OldName2
            };

            _ = MtCloudApplicationInitializer
                .Subscribe <RefreshQeStatus>(OnQeStatus);
        }
        public AddDictionaryTermAction()
        {
            Enabled = false;
            //Because this object gets constructed before the EditorController has been initialized, we need to make sure that the subscription to the event happens only after the EditorController has had a chance to be initialized
            //We cannot do this in the MTAppInitializer because this object gets constructed even before MtAppInit.Execute() is called
            MtCloudApplicationInitializer.Subscribe <StudioWindowCreatedNotificationEvent>(
                _ => MtCloudApplicationInitializer.EditorController.ActiveDocumentChanged +=
                    (_, _) => EnableAction());

            MtCloudApplicationInitializer.Subscribe <TranslationProviderAdded>(_ => EnableAction(new TranslationProviderStatusChanged(null, true)));

            MtCloudApplicationInitializer.Subscribe <TranslationProviderStatusChanged>(EnableAction);
        }
Example #12
0
        public SdlMTCloudTranslationProvider(Uri uri, string translationProviderState, ITranslationService translationService,
                                             ILanguageProvider languageProvider)
        {
            Uri = uri;
            LanguageProvider   = languageProvider;
            TranslationService = translationService;
            _editorController  = MtCloudApplicationInitializer.EditorController;
            _rateItController  = MtCloudApplicationInitializer.RateItController;

            var projectsController = MtCloudApplicationInitializer.ProjectsController;

            if (projectsController is not null)
            {
                projectsController.CurrentProjectChanged -= ProjectsController_CurrentProjectChanged;
                projectsController.CurrentProjectChanged += ProjectsController_CurrentProjectChanged;
                _currentProject = projectsController.CurrentProject.GetProjectInfo();
            }

            LoadState(translationProviderState);
            ActivateRatingController();

            MtCloudApplicationInitializer.Subscribe <TranslationProviderStatusChanged>(Settings_TranslationProviderStatusChanged);
        }