public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore)
        {
            // Implement error display
            if (languagePairs.Length > 1)
            {
                return(null);
            }

            //construct options to send to form
            var loadOptions = new MtTranslationOptions();
            //get saved key if there is one and put it into options

            //get credentials
            var getCred = GetMyCredentials(credentialStore, "argostranslateprovider:///");

            if (getCred != null)
            {
                loadOptions.ApiKey       = getCred.Credential;
                loadOptions.PersistCreds = getCred.Persist;
            }

            //construct form
            var dialog = new MtProviderConfDialog(loadOptions, credentialStore, languagePairs[0]);

            //we are letting user delete creds but after testing it seems that it's ok if the individual credentials are null, b/c our method will re-add them to the credstore based on the uri
            if (dialog.ShowDialog(owner) == DialogResult.OK)
            {
                var testProvider = new MtTranslationProvider(dialog.Options);
                SetCredentials(credentialStore, dialog.Options.ApiKey, dialog.Options.PersistCreds);

                return(new ITranslationProvider[] { testProvider });
            }
            return(null);
        }
示例#2
0
 public MtProviderConfDialog(MtTranslationOptions options, ITranslationProviderCredentialStore credentialStore, LanguagePair langPair)
 {
     this.credstore = credentialStore;
     uri            = new Uri("argostranslateprovider:///");
     Options        = options;
     connector      = new ApiConnector(Options);
     this.langPair  = langPair;
     InitializeComponent();
     UpdateDialog();
 }
        /// <summary>
        /// Used for displaying the plug-in info such as the plug-in name,
        /// tooltip, and icon.
        /// </summary>
        /// <param name="translationProviderUri"></param>
        /// <param name="translationProviderState"></param>
        /// <returns></returns>

        public TranslationProviderDisplayInfo GetDisplayInfo(Uri translationProviderUri, string translationProviderState)
        {
            var info    = new TranslationProviderDisplayInfo();
            var options = new MtTranslationOptions(translationProviderUri);

            info.TranslationProviderIcon = PluginResources.ArgosMT;

            info.Name              = PluginResources.Plugin_NiceName;
            info.TooltipText       = PluginResources.Plugin_Tooltip;
            info.SearchResultImage = PluginResources.argos_small;
            //TODO: update icon
            return(info);
        }
示例#4
0
        private string Lookup(string sourcetext, MtTranslationOptions options)
        {
            var sourcelang = _languageDirection.SourceCulture.ToString();
            var targetlang = _languageDirection.TargetCulture.ToString();

            //instantiate ApiConnector if necessary
            if (_connector == null)
            {
                _connector = new ApiConnector(_options);
            }

            var translatedText = _connector.Translate(sourcelang, targetlang, sourcetext);

            return(translatedText);
        }
        /// <summary>
        /// This gets called when a TranslationProviderAuthenticationException is thrown
        /// Since SDL Studio doesn't pass the provider instance here and even if we do a workaround...
        /// any new options set in the form that comes up are never saved to the project XML...
        /// so there is no way to change any options, only to provide the credentials
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="translationProviderUri"></param>
        /// <param name="translationProviderState"></param>
        /// <param name="credentialStore"></param>
        /// <returns></returns>

        public bool GetCredentialsFromUser(IWin32Window owner, Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore)
        {
            var options = new MtTranslationOptions(translationProviderUri);
            var caption = "Credentials"; //default in case any problem retrieving localized resource below

            caption = PluginResources.PromptForCredentialsCaption;

            var dialog = new MtProviderConfDialog(options, caption, credentialStore);

            if (dialog.ShowDialog(owner) == DialogResult.OK)
            {
                SetCredentials(credentialStore, dialog.Options.ApiKey, dialog.Options.PersistCreds);
                return(true);
            }
            return(false);
        }
        public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore)
        {
            if (!SupportsTranslationProviderUri(translationProviderUri))
            {
                throw new Exception(PluginResources.UriNotSupportedMessage);
            }

            //create options class based on URI passed to the method
            var loadOptions = new MtTranslationOptions(translationProviderUri);

            var myUri = new Uri("argostranslateprovider:///");
            var creds = credentialStore.GetCredential(myUri);

            if (creds != null && creds.Credential != String.Empty)
            {
                loadOptions.ApiKey = creds.Credential;
            }
            var tp = new MtTranslationProvider(loadOptions);

            return(tp);
        }
 public MtTranslationProviderElementVisitor(MtTranslationOptions options)
 {
     _options = options;
 }
示例#8
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>

        public MtTranslationProviderLanguageDirection(MtTranslationProvider provider, LanguagePair languages)
        {
            _provider          = provider;
            _languageDirection = languages;
            _options           = _provider.Options;
        }
 public void LoadState(string translationProviderState)
 {
     Options = JsonConvert.DeserializeObject <MtTranslationOptions>(translationProviderState);
 }
 public MtTranslationProvider(MtTranslationOptions options)
 {
     Options             = options;
     _languageDirections = new List <MtTranslationProviderLanguageDirection>();
 }