Exemplo n.º 1
0
 private void Translate()
 {
     if (this.CurrentThread.ThreadState != ThreadState.Running)
     {
         Console.Write("Exit from thread with state");
         Console.WriteLine(this.CurrentThread.ThreadState);
         return;
     }
     try
     {
         ++m_waitingUiObject.WaitingProgressCounter;
         string result = m_provider.GetContent(m_text, m_langPair);
         lock (m_containerCollection)
             m_containerCollection.Add(m_keyForResult, result);
         m_waitingUiObject.OnFinish();
     }
     catch (Exception ex)
     {
         // коллекция в DictCollection уже изменена т.е. пошли другие запросы
         // TODO: try word "discipline" from google synonims
         // может проявлятся на медленном интенете
         Utils.PublicException(ex);
         //Console.WriteLine(ex);
     }
     finally
     {
         //this.TwinText.pictureBoxWating.Visible = false;
         --m_waitingUiObject.WaitingProgressCounter;
     }
 }
Exemplo n.º 2
0
        private void TranslateCurrentSentence()
        {
            if (Sentence == null)
            {
                return;
            }
            try
            {
                ++waitingUiObject.WaitingProgressCounter;


                string textForTranslate = Sentence is SentenceForTutor ? ((SentenceForTutor)Sentence).ClearText : Sentence.TextValue;
                string keyForCash       = null;
                // кэши все равно при смене языка почистится
                // string keyForCash = string.Format("{0}_{1} : {2}", m_codeFrom, m_codeTo, Sentence.TextValue);

                if (!string.IsNullOrEmpty(m_word)) // если пустой то переведется целиком предложение
                {
                    textForTranslate = m_word;
                    keyForCash       = m_word;
                }

                //GoogleTranslateBase googleProvider;
                //// if( != -1) for GoogleTipDictionary
                ////if (UtilsForText.IsHaveSeveralWords(textForTranslate))
                ////    googleProvider = GoogleTranslate.Instance;
                ////else
                //    googleProvider = GoogleDictionary.Instance;

                string translation =
                    GoogleDictionary.Instance.GetContent(textForTranslate, m_maskedWord, m_codeFrom, m_codeTo);

                Sentence.AddCashForTranslation(keyForCash, translation);
                waitingUiObject.OnFinish();
            }
            finally
            {
                //this.TwinText.pictureBoxWating.Visible = false;
                --waitingUiObject.WaitingProgressCounter;
            }
        }