Beispiel #1
0
        void ShowSynonyms(TipTextBox textBox)
        {
            if (textBox == null)
            {
                MessageBox.Show("Current editor is missing"); return;
            }

            GoogleSynonymsDictionary dict = new GoogleSynonymsDictionary();

            if (string.IsNullOrEmpty(dict.GetContainsSourceLanguage(textBox.LangDir.From)))
            {
                MessageBox.Show(string.Format("Language {0} is missing for dictionary", textBox.LangDir.From)); return;
            }

            int start = textBox.SelectionStart;
            int end   = start;

            string word       = TipTextBox.GetWord(textBox, ref start, ref end);
            string titledWord = word;

            if (word.Contains(SentenceForLesson.CharHided))
            {
                if (textBox.Sentence == null)
                {
                    MessageBox.Show("Current sentence is missing"); return;
                }
                word = TipTextBox.GetClearWord(textBox.Sentence, start, end);
            }

            if (!string.IsNullOrEmpty(word))
            {
                FloatWebBrowserForm browserForm = new FloatWebBrowserForm();
                browserForm.HTMLContent = dict.GetContent(word, textBox.LangDir);
                browserForm.Text        = string.Format("Synonyms for '{0}'", titledWord);
                browserForm.Show(this);
            }
        }
Beispiel #2
0
        void timer_Tick(object sender, EventArgs e)
        {
            if (this.Sentence == null)
            {
                return;
            }
            if (this.ForeignText.IsDisposed)
            {
                return;
            }
            // здесь вызов только выделенного текста
            // oldSelectedText сбрасывается через секунду
            if (oldSelectedText != this.ForeignText.SelectedText) // проверим с таймером что текст устоялся
            {
                oldSelectedText = this.ForeignText.SelectedText;
            }
            else
            {
                if (this.ActiveControl == ForeignText)
                {
                    if (oldSelectedText != previousTextForTranslate)
                    {
                        string _SelectedText = this.ForeignText.SelectedText;
                        string _maskedText   = "";
                        // Console.WriteLine(_SelectedText + " -- CallTranslate(_SelectedText);");

                        if (_SelectedText.Contains(SentenceForLesson.CharHided))
                        {
                            if (_SelectedText.Length == 1)
                            {
                                return;
                            }
                            _maskedText   = _SelectedText;
                            _SelectedText = TipTextBox.GetClearWord(this.Sentence,
                                                                    this.ForeignText.SelectionStart, this.ForeignText.SelectionStart + this.ForeignText.SelectionLength);
                        }

                        // старое один выделенный символ не переводим
                        if (previousTextForTranslate == _SelectedText) // || _SelectedText.Length == 1 )
                        {
                            return;
                        }

                        if (oldSelectedText.Length > 0 && UtilsForText.IsWord(_SelectedText)) // IsHaveSeveralWords(_SelectedText))
                        {
                            string translation = this.Sentence.GetCashForTranslation(_SelectedText);
                            if (string.IsNullOrEmpty(translation) && !WWW.InternetIsUnavailable.Equals(translation))
                            {
                                CallTranslate(_SelectedText, _maskedText);
                            }
                            else
                            {
                                this.translatedText.AssignText(translation);
                            }
                        }
                        else
                        {
                            this.translatedText.AssignText(this.Sentence.TranslAndComment);
                        }
                        previousTextForTranslate = _SelectedText;
                    }
                }
            }
        }