コード例 #1
0
        /// <summary>
        /// Initializes the language pair and saves it if requested
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GlobalTranslateForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                try {
                    if (useSavedPairBox.Checked)   // user selected "use existing language pair", but didn't specify the language pair
                    {
                        if (LanguagePair == null)
                        {
                            throw new Exception("Saved language pair must be specified.");
                        }
                    }
                    if (useNewPairBox.Checked)   // user selected "use new language pair"
                    {
                        if (souceLanguageBox.SelectedIndex == -1 || targetLanguageBox.SelectedIndex == -1)
                        {
                            throw new Exception("Both source and target language must be specified.");
                        }

                        string srcLanguage = null, targetLanguage = null;
                        if (souceLanguageBox.SelectedIndex == 0)   // "auto" option selected
                        {
                            srcLanguage = string.Empty;
                        }
                        else
                        {
                            srcLanguage = displayedCultures[souceLanguageBox.SelectedIndex - 1].TwoLetterISOLanguageName;
                        }
                        targetLanguage = displayedCultures[targetLanguageBox.SelectedIndex].TwoLetterISOLanguageName;

                        // create new language pair from specified languages
                        LanguagePair = new SettingsObject.LanguagePair()
                        {
                            FromLanguage = srcLanguage, ToLanguage = targetLanguage
                        };

                        // if user specified to remember the pair and such pair does not exist, save it
                        if (addLanguagePairBox.Checked && !SettingsObject.Instance.LanguagePairs.Contains(LanguagePair))
                        {
                            SettingsObject.Instance.LanguagePairs.Add(LanguagePair);
                            SettingsObject.Instance.NotifyPropertyChanged(CHANGE_CATEGORY.EDITOR);
                        }
                    }
                } catch (Exception ex) {
                    e.Cancel = true;
                    VLOutputWindow.VisualLocalizerPane.WriteException(ex);
                    VisualLocalizer.Library.Components.MessageBox.ShowException(ex);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Called before displaying the context menu
        /// </summary>
        protected override void ContextMenu_Popup(object sender, EventArgs e)
        {
            try {
                UpdateContextItemsEnabled();

                foreach (MenuItem menuItem in translateMenu.MenuItems) // for each translation provider
                {
                    menuItem.MenuItems.Clear();                        // clear current language pair menu items
                    TRANSLATE_PROVIDER provider = (TRANSLATE_PROVIDER)menuItem.Tag;

                    // if the provider is Bing, AppId is required
                    bool enabled = true;
                    if (provider == TRANSLATE_PROVIDER.BING)
                    {
                        enabled = !string.IsNullOrEmpty(SettingsObject.Instance.BingAppId);
                    }

                    menuItem.Enabled = enabled;

                    // add current language pairs from settings
                    foreach (var pair in SettingsObject.Instance.LanguagePairs)
                    {
                        MenuItem newItem = new MenuItem(pair.ToString());
                        newItem.Tag    = pair;
                        newItem.Click += new EventHandler((o, args) => {
                            SettingsObject.LanguagePair sentPair = (o as MenuItem).Tag as SettingsObject.LanguagePair;
                            EditorControl_TranslateRequested(provider, sentPair.FromLanguage, sentPair.ToLanguage);
                        });
                        newItem.Enabled = enabled;
                        menuItem.MenuItems.Add(newItem);
                    }

                    // add option to add a new language pair
                    MenuItem addItem = new MenuItem("New language pair...", new EventHandler((o, args) => {
                        EditorControl_TranslateRequested(provider);
                    }));
                    addItem.Enabled = enabled;
                    menuItem.MenuItems.Add(addItem);
                }
            } catch (Exception ex) {
                VLOutputWindow.VisualLocalizerPane.WriteException(ex);
                VisualLocalizer.Library.Components.MessageBox.ShowException(ex);
            }
        }
コード例 #3
0
 /// <summary>
 /// Selected language pair changed
 /// </summary>
 private void LanguagePairsBox_SelectedIndexChanged(object sender, EventArgs e)
 {
     LanguagePair = (SettingsObject.LanguagePair)languagePairsBox.SelectedItem;
 }