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; }
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 } }
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); }
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; }
public MetadataSupervisor(ISegmentMetadataCreator segmentMetadataCreator, EditorController editorController) { _segmentMetadataCreator = segmentMetadataCreator; _editorController = editorController; MtCloudApplicationInitializer .Subscribe <RefreshQeStatus>(OnQeStatus); }
public RateItController() { MtCloudApplicationInitializer.EditorController.ActiveDocumentChanged += EditorController_ActiveDocumentChanged; MtCloudApplicationInitializer.Subscribe <TranslationProviderStatusChanged>(Settings_TranslationProviderStatusChanged); MtCloudApplicationInitializer.Subscribe <TranslationProviderRateItOptionsChanged>(TranslationProviderRateItOptionsChanged); MtCloudApplicationInitializer.Subscribe <TranslationProviderAdded>(TranslationProviderAdded); }
private static bool GetTpStatus() { var tpStatus = MtCloudApplicationInitializer.GetProjectInProcessing()?.GetTranslationProviderConfiguration().Entries .FirstOrDefault( e => e.MainTranslationProvider.Uri.ToString().Contains(PluginResources.SDLMTCloudUri))?.MainTranslationProvider .Enabled; return(tpStatus ?? false); }
public TranslationProviderInfo GetTranslationProviderInfo(Uri translationProviderUri, string translationProviderState) { MtCloudApplicationInitializer.RefreshQeStatus(); var info = new TranslationProviderInfo { TranslationMethod = TranslationMethod.MachineTranslation, Name = PluginResources.Plugin_NiceName }; return(info); }
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); }
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); }