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));
        }
Exemple #5
0
        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);
        }