public ITranslationProvider CreateTranslationProvider(Uri translationProviderUri, string translationProviderState, ITranslationProviderCredentialStore credentialStore) { if (!SupportsTranslationProviderUri(translationProviderUri)) { throw new Exception("Cannot handle URI."); } ListTranslationProvider tp = new ListTranslationProvider(new ListTranslationOptions(translationProviderUri)); return(tp); }
/// <summary> /// Show the plug-in settings form when the user is adding the translation provider plug-in /// through the GUI of SDL Trados Studio /// </summary> /// <param name="owner"></param> /// <param name="languagePairs"></param> /// <param name="credentialStore"></param> /// <returns></returns> #region "Browse" public ITranslationProvider[] Browse(IWin32Window owner, LanguagePair[] languagePairs, ITranslationProviderCredentialStore credentialStore) { ListProviderConfDialog dialog = new ListProviderConfDialog(new ListTranslationOptions()); if (dialog.ShowDialog(owner) == DialogResult.OK) { ListTranslationProvider testProvider = new ListTranslationProvider(dialog.Options); return(new ITranslationProvider[] { testProvider }); } return(null); }
/// <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) { ListTranslationProvider editProvider = translationProvider as ListTranslationProvider; if (editProvider == null) { return(false); } ListProviderConfDialog dialog = new ListProviderConfDialog(editProvider.Options); if (dialog.ShowDialog(owner) == DialogResult.OK) { editProvider.Options = dialog.Options; return(true); } return(false); }
/// <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 ListTranslationProviderLanguageDirection(ListTranslationProvider provider, LanguagePair languages) { #region "Instantiate" _provider = provider; _languageDirection = languages; _options = _provider.Options; _visitor = new ListTranslationProviderElementVisitor(_options); _listOfTranslations = new Dictionary <string, string>(); #endregion #region "CompileCollection" // Load the content of the specified list file and fill it // into the multiple identical sources are not allowed using (StreamReader sourceFile = new StreamReader(_options.ListFileName)) { sourceFile.ReadLine(); // Skip the first line as it contains the language direction. char fileDelimiter = Convert.ToChar(_options.Delimiter); while (!sourceFile.EndOfStream) { string[] currentPair = sourceFile.ReadLine().Split(fileDelimiter); if (currentPair.Count <string>() != 2) { // The current line does not contain a proper source/target segment pair. continue; } // Add the source/target segment pair to the collection // after checking that the current source segment does not // already exist in the Dictionary. if (!_listOfTranslations.ContainsKey(currentPair[0])) { _listOfTranslations.Add(currentPair[0], currentPair[1]); } } sourceFile.Close(); } #endregion }