/// <summary> /// If the plug-in settings can be changed by the user, /// SDL Trados Studio will display a Settings button. /// By clicking this button, users raise the plug-in user interface, /// in which they can modify any applicable settings, in our implementation /// the delimiter character and the list file name. /// </summary> /// <param name="owner"></param> /// <param name="translationProvider"></param> /// <param name="languagePairs"></param> /// <param name="credentialStore"></param> /// <returns></returns> #region "Edit" public bool Edit(IWin32Window owner, ITranslationProvider translationProvider, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { MtTranslationProvider editProvider = translationProvider as MtTranslationProvider; if (editProvider == null) { return(false); } //get saved key if there is one and put it into options //get google credentials TranslationProviderCredential getCredGt = GetMyCredentials(credentialStore, "mtenhancedprovidergt:///"); if (getCredGt != null) { editProvider.Options.apiKey = getCredGt.Credential; editProvider.Options.persistGoogleKey = getCredGt.Persist; } //get microsoft credentials TranslationProviderCredential getCredMt = GetMyCredentials(credentialStore, "mtenhancedprovidermst:///"); if (getCredMt != null) { try { GenericCredentials creds = new GenericCredentials(getCredMt.Credential); //parse credential into username and password editProvider.Options.ClientID = creds.UserName; editProvider.Options.ClientSecret = creds.Password; editProvider.Options.persistMicrosoftCreds = getCredMt.Persist; } catch { }//swallow b/c it will just fail to fill in instead of crashing the whole program } MtProviderConfDialog dialog = new MtProviderConfDialog(editProvider.Options, credentialStore); //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) { editProvider.Options = dialog.Options; string apiKey = editProvider.Options.apiKey; //we are setting credentials selectively based on the chosen provider to avoid saving the other if it is blank if (dialog.Options.SelectedProvider == MtTranslationOptions.ProviderType.GoogleTranslate) { //set google credential SetGoogleCredentials(credentialStore, apiKey, dialog.Options.persistGoogleKey); } else if (dialog.Options.SelectedProvider == MtTranslationOptions.ProviderType.MicrosoftTranslator) { //set mst cred GenericCredentials creds2 = new GenericCredentials(dialog.Options.ClientID, dialog.Options.ClientSecret); SetMstCredentials(credentialStore, creds2, dialog.Options.persistMicrosoftCreds); } return(true); } return(false); }
public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { #region "CheckHandlesUri" if (!SupportsTranslationProviderUri(translationProviderUri)) { throw new Exception(PluginResources.UriNotSupportedMessage); } #endregion //create options class based on URI passed to the method MtTranslationOptions loadOptions = new MtTranslationOptions(translationProviderUri); //start with MT...check if we are using MT if (loadOptions.SelectedProvider == MtTranslationOptions.ProviderType.MicrosoftTranslator) { Uri myUri = new Uri("mtenhancedprovidermst:///"); if (credentialStore.GetCredential(myUri) != null) { bool credPersists = credentialStore.GetCredential(myUri).Persist; TranslationProviderCredential cred = new TranslationProviderCredential("", credPersists); //will this work?? cred = credentialStore.GetCredential(myUri); //if credential is there then just get it GenericCredentials cred2 = new GenericCredentials(cred.Credential); //convert to generic credentials //add creds to options loadOptions.ClientID = cred2.UserName; loadOptions.ClientSecret = cred2.Password; } else { throw new TranslationProviderAuthenticationException(); } } else //if we are using Google as the provider need to get API key { Uri myUri = new Uri("mtenhancedprovidergt:///"); if (credentialStore.GetCredential(myUri) != null) { bool credPersists = credentialStore.GetCredential(myUri).Persist; TranslationProviderCredential cred = new TranslationProviderCredential("", credPersists); //will this work?? cred = credentialStore.GetCredential(myUri); //if credential is there then just get it //add gt key to options loadOptions.apiKey = cred.Credential; } else { throw new TranslationProviderAuthenticationException(); //throwing this exception ends up causing Studio to call MtTranslationProviderWinFormsUI.GetCredentialsFromUser(); //which we use to prompt the user to enter credentials } } //construct new provider with options..these options are going to include the cred.credential and the cred.persists MtTranslationProvider tp = new MtTranslationProvider(loadOptions); return(tp); }
public MtTranslationProviderLanguageDirection(MtTranslationProvider provider, LanguagePair languages) { #region "Instantiate" _provider = provider; _languageDirection = languages; _options = _provider.Options; _visitor = new MtTranslationProviderElementVisitor(_options); #endregion }
/// <summary> /// Instantiates the variables and fills the list file content into /// a Dictionary collection object. /// </summary> /// <param name="provider"></param> /// <param name="languages"></param> #region "ListTranslationProviderLanguageDirection" public MtTranslationProviderLanguageDirection(MtTranslationProvider provider, LanguagePair languages) { #region "Instantiate" _provider = provider; _languageDirection = languages; _options = _provider.Options; _visitor = new MtTranslationProviderElementVisitor(_options); #endregion }
public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { //construct options to send to form MtTranslationOptions loadOptions = new MtTranslationOptions(); //get saved key if there is one and put it into options //get google credentials TranslationProviderCredential getCredGt = GetMyCredentials(credentialStore, "mtenhancedprovidergt:///"); if (getCredGt != null) { loadOptions.apiKey = getCredGt.Credential; loadOptions.persistGoogleKey = getCredGt.Persist; } //get microsoft credentials TranslationProviderCredential getCredMt = GetMyCredentials(credentialStore, "mtenhancedprovidermst:///"); if (getCredMt != null) { try { GenericCredentials creds = new GenericCredentials(getCredMt.Credential); //parse credential into username and password loadOptions.ClientID = creds.UserName; loadOptions.ClientSecret = creds.Password; loadOptions.persistMicrosoftCreds = getCredMt.Persist; } catch { } //swallow b/c it will just fail to fill in instead of crashing the whole program } //construct form MtProviderConfDialog dialog = new MtProviderConfDialog(loadOptions, credentialStore); //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) { MtTranslationProvider testProvider = new MtTranslationProvider(dialog.Options); string apiKey = dialog.Options.apiKey; //we are setting credentials selectively based on the chosen provider to avoid saving the other if it is blank if (dialog.Options.SelectedProvider == MtTranslationOptions.ProviderType.GoogleTranslate) { //set google credential SetGoogleCredentials(credentialStore, apiKey, dialog.Options.persistGoogleKey); } else if (dialog.Options.SelectedProvider == MtTranslationOptions.ProviderType.MicrosoftTranslator) { //set mst cred GenericCredentials creds2 = new GenericCredentials(dialog.Options.ClientID, dialog.Options.ClientSecret); SetMstCredentials(credentialStore, creds2, dialog.Options.persistMicrosoftCreds); } return new ITranslationProvider[] { testProvider }; } return null; }
public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { #region "CheckHandlesUri" if (!SupportsTranslationProviderUri(translationProviderUri)) { throw new Exception(PluginResources.UriNotSupportedMessage); } #endregion //create options class based on URI passed to the method MtTranslationOptions loadOptions = new MtTranslationOptions(translationProviderUri); //start with MT...check if we are using MT if (loadOptions.SelectedProvider == MtTranslationOptions.ProviderType.MicrosoftTranslator) { Uri myUri = new Uri("mtenhancedprovidermst:///"); if (credentialStore.GetCredential(myUri) != null) { bool credPersists = credentialStore.GetCredential(myUri).Persist; TranslationProviderCredential cred = new TranslationProviderCredential("", credPersists); //will this work?? cred = credentialStore.GetCredential(myUri); //if credential is there then just get it GenericCredentials cred2 = new GenericCredentials(cred.Credential);//convert to generic credentials //add creds to options loadOptions.ClientID = cred2.UserName; loadOptions.ClientSecret = cred2.Password; } else { throw new TranslationProviderAuthenticationException(); } } else //if we are using Google as the provider need to get API key { Uri myUri = new Uri("mtenhancedprovidergt:///"); if (credentialStore.GetCredential(myUri) != null) { bool credPersists = credentialStore.GetCredential(myUri).Persist; TranslationProviderCredential cred = new TranslationProviderCredential("", credPersists); //will this work?? cred = credentialStore.GetCredential(myUri); //if credential is there then just get it //add gt key to options loadOptions.apiKey = cred.Credential; } else { throw new TranslationProviderAuthenticationException(); //throwing this exception ends up causing Studio to call MtTranslationProviderWinFormsUI.GetCredentialsFromUser(); //which we use to prompt the user to enter credentials } } //construct new provider with options..these options are going to include the cred.credential and the cred.persists MtTranslationProvider tp = new MtTranslationProvider(loadOptions); return tp; }