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); }
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); }
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; }
/// <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>(); }