public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { AppItializer.EnsureInitializer(); var originalUri = new Uri("sdlmachinetranslationcloudprovider:///"); var options = new BeGlobalTranslationOptions(translationProviderUri); if (credentialStore.GetCredential(originalUri) != null) { var credentials = credentialStore.GetCredential(originalUri); if (options.BeGlobalService == null) { var messageBoxService = new MessageBoxService(); options.BeGlobalService = new BeGlobalV4Translator(options, messageBoxService, credentials); } } else { credentialStore.AddCredential(originalUri, new TranslationProviderCredential(originalUri.ToString(), true)); } var accountId = options.BeGlobalService?.GetUserInformation(); var subscriptionInfo = options.BeGlobalService?.GetLanguagePairs(accountId.ToString()); options.SubscriptionInfo = subscriptionInfo; return(new BeGlobalTranslationProvider(options)); }
private Segment[] TranslateSegments(Segment[] sourceSegments) { if (_options.AuthenticationMethod.Equals(Constants.StudioAuthentication)) { AppItializer.EnsureInitializer(); Application.Current?.Dispatcher?.Invoke(() => { _studioCredentials.GetToken(); }); } var xliffDocument = CreateXliffFile(sourceSegments); var sourceLanguage = _normalizeSourceTextHelper.GetCorespondingLangCode(_languageDirection.SourceCulture); var targetLanguage = _normalizeSourceTextHelper.GetCorespondingLangCode(_languageDirection.TargetCulture); var translatedXliffText = WebUtility.UrlDecode( _options.BeGlobalService.TranslateText(xliffDocument.ToString(), sourceLanguage, targetLanguage)); var translatedXliff = Converter.ParseXliffString(translatedXliffText); if (translatedXliff != null) { return(translatedXliff.GetTargetSegments()); } return(new Segment[sourceSegments.Length]); }
public override void Execute() { AppItializer.EnsureInitializer(); var currentProject = SdlTradosStudio.Application?.GetController <ProjectsController>().CurrentProject; var settings = currentProject?.GetTranslationProviderConfiguration(); var translationProvider = settings?.Entries?.FirstOrDefault(entry => entry.MainTranslationProvider.Uri.OriginalString.Contains("sdlmachinetranslationcloudprovider")); if (translationProvider != null) { var uri = translationProvider.MainTranslationProvider?.Uri; var languagePairs = GetProjectLanguagePairs(currentProject); var options = new BeGlobalTranslationOptions(uri); var beGlobalWindow = new BeGlobalWindow(); var beGlobalVm = new BeGlobalWindowViewModel(options, languagePairs, null); beGlobalWindow.DataContext = beGlobalVm; beGlobalWindow.ShowDialog(); if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value) { settings.Entries .Find(entry => entry.MainTranslationProvider.Uri.OriginalString.Contains("sdlmachinetranslationcloudprovider")) .MainTranslationProvider.Uri = options.Uri; currentProject.UpdateTranslationProviderConfiguration(settings); } } }
public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { AppItializer.EnsureInitializer(); var options = new BeGlobalTranslationOptions(translationProviderUri); if (options.BeGlobalService == null) { options.BeGlobalService = new BeGlobalV4Translator(options.Model); } try { var accountId = options.BeGlobalService.GetUserInformation(); var subscriptionInfo = options.BeGlobalService.GetLanguagePairs(accountId.ToString()); options.SubscriptionInfo = subscriptionInfo; } catch (Exception e) { Log.Logger.Error(e, "Error on CreateTranslationProvider"); } return(new BeGlobalTranslationProvider(options)); }
public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { try { var editProvider = translationProvider as BeGlobalTranslationProvider; if (editProvider == null) { return(false); } //get saved key if there is one and put it into options var credentials = GetCredentials(credentialStore, "sdlmachinetranslationcloudprovider:///"); if (credentials != null) { var splitedCredentials = credentials.Credential.Split('#'); if (splitedCredentials.Length == 2 && !string.IsNullOrEmpty(splitedCredentials[0]) && !string.IsNullOrEmpty(splitedCredentials[1])) { editProvider.Options.ClientId = splitedCredentials[0]; editProvider.Options.ClientSecret = splitedCredentials[1]; } } var token = string.Empty; AppItializer.EnsureInitializer(); var beGlobalVm = new BeGlobalWindowViewModel(editProvider.Options, languagePairs, credentials); beGlobalVm.BeGlobalWindow.DataContext = beGlobalVm; beGlobalVm.BeGlobalWindow.ShowDialog(); if (beGlobalVm.BeGlobalWindow.DialogResult.HasValue && beGlobalVm.BeGlobalWindow.DialogResult.Value) { editProvider.Options = beGlobalVm.Options; editProvider.Options.ClientId = beGlobalVm.BeGlobalWindow.ClientIdBox.Password.TrimEnd(); editProvider.Options.ClientSecret = beGlobalVm.BeGlobalWindow.ClientSecretBox.Password.TrimEnd(); SetCredentials(credentialStore, editProvider.Options.ClientId, beGlobalVm.Options.ClientSecret, true); return(true); } } catch (Exception e) { Log.Logger.Error($"{Constants.EditWindow} {e.Message}\n {e.StackTrace}"); } return(false); }
public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { try { var editProvider = translationProvider as BeGlobalTranslationProvider; if (editProvider == null) { return(false); } var token = string.Empty; AppItializer.EnsureInitializer(); Application.Current?.Dispatcher?.Invoke(() => { token = _studioCredentials.GetToken(); }); if (!string.IsNullOrEmpty(token)) { var beGlobalWindow = new BeGlobalWindow(); var beGlobalVm = new BeGlobalWindowViewModel(beGlobalWindow, editProvider.Options, languagePairs); beGlobalWindow.DataContext = beGlobalVm; beGlobalWindow.ShowDialog(); if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value) { editProvider.Options = beGlobalVm.Options; return(true); } } } catch (Exception e) { Log.Logger.Error($"Edit window: {e.Message}\n {e.StackTrace}"); } return(false); }
public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { try { AppItializer.EnsureInitializer(); var options = new BeGlobalTranslationOptions(); var token = string.Empty; Application.Current?.Dispatcher?.Invoke(() => { token = _studioCredentials.GetToken(); }); if (!string.IsNullOrEmpty(token)) { var beGlobalWindow = new BeGlobalWindow(); var beGlobalVm = new BeGlobalWindowViewModel(beGlobalWindow, options, languagePairs); beGlobalWindow.DataContext = beGlobalVm; beGlobalWindow.ShowDialog(); if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value) { var beGlobalService = new BeGlobalV4Translator(beGlobalVm.Options.Model); beGlobalVm.Options.BeGlobalService = beGlobalService; var provider = new BeGlobalTranslationProvider(options) { Options = beGlobalVm.Options }; return(new ITranslationProvider[] { provider }); } } } catch (Exception e) { Log.Logger.Error($"Browse: {e.Message}\n {e.StackTrace}"); } return(null); }
public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { try { var options = new BeGlobalTranslationOptions(); var token = string.Empty; var credentials = GetCredentials(credentialStore, "sdlmachinetranslationcloudprovider:///"); AppItializer.EnsureInitializer(); var beGlobalWindow = new BeGlobalWindow(); var beGlobalVm = new BeGlobalWindowViewModel(options, languagePairs, credentials); beGlobalWindow.DataContext = beGlobalVm; beGlobalWindow.ShowDialog(); if (beGlobalWindow.DialogResult.HasValue && beGlobalWindow.DialogResult.Value) { var messageBoxService = new MessageBoxService(); var beGlobalService = new BeGlobalV4Translator(beGlobalVm.Options, messageBoxService, credentials); beGlobalVm.Options.BeGlobalService = beGlobalService; var provider = new BeGlobalTranslationProvider(options) { Options = beGlobalVm.Options }; SetCredentials(credentialStore, beGlobalVm.Options.ClientId, beGlobalVm.Options.ClientSecret, true); return(new ITranslationProvider[] { provider }); } } catch (Exception e) { Log.Logger.Error($"{Constants.Browse} {e.Message}\n {e.StackTrace}"); } return(null); }