/// <summary> /// Add the translation Result into DataBase /// </summary> /// <param name="transResult">Translation Result</param> /// <returns>Just added Result's EntryID</returns> public int AddResult(TranslationResult transResult) { string procName = "usp_AddTranslationToCache"; SqlParameter[] cmdParms = new SqlParameter[]{ new SqlParameter("@EntryText", SqlDbType.NVarChar), new SqlParameter("@LangFromID", SqlDbType.Int), new SqlParameter("@LangToID", SqlDbType.Int), new SqlParameter("@TranslationText", SqlDbType.NVarChar), new SqlParameter("@AccountID", SqlDbType.Int) }; cmdParms[0].Value = transResult.SourceTransText; cmdParms[1].Value = transResult.LangFromID; cmdParms[2].Value = transResult.LangToID; cmdParms[3].Value = transResult.TranslationText; cmdParms[4].Value = transResult.AccountID; try { return SQLHelper.ExecuteReturnQueryProc(connnectionString, procName, cmdParms); } catch (SqlException ex) { throw ex; } }
private TranslationResult TranslateUsingDataBase(TranslationRequest translationRequest) { TranslationResult transResult = null; try { TranslationEntry entry = trans.Translate(translationRequest); if (entry != null && !String.IsNullOrEmpty(entry.TranslationText.Trim())) { AddLog(entry.EntryID, true); transResult = new TranslationResult() { SourceTransText = translationRequest.SourceTransText.Replace("]A;", "\n"), TranslationText = entry.TranslationText, DetectLanguage = translationRequest.DetectLanguage, LangFromID = translationRequest.LangFromID, LangToID = translationRequest.LangToID, AccountID = TranslatorServiceClient.Account.AccountID, WhereFrom = entry.EntryID > 0 ? Enum.Parse(typeof(TranslationSourceEnum), entry.SourceID.ToString()).ToString() : TranslationSourceEnum.BingWeb.ToString() }; } } catch (Exception ex) { throw ex; } return transResult; }
private TranslationResult TranslateFromBing(TranslationRequest translationRequest) { string fromLang = translationRequest.LangFrom; string toLang = translationRequest.LangTo; //As to match with SCCM (SCCM contains "PTB" and "PTG", but Bing only contains "PTG") , so "ptb" is manual added in DataBae Languages table. //Only translate with "pt" by Bing, no matter what user choose "ptb" or "pt". If translate Using DataBase, the language will be base on user choosed. fromLang = fromLang == "ptb" ? "pt" : fromLang; toLang = toLang == "ptb" ? "pt" : toLang; string translation = _transClient.Translate(appId, translationRequest.TransText, fromLang, toLang, contentType, category); TranslationResult transResult = new TranslationResult() { SourceTransText = translationRequest.SourceTransText, TranslationText = translation, DetectLanguage = translationRequest.DetectLanguage, LangFromID = translationRequest.LangFromID, LangToID = translationRequest.LangToID, AccountID = TranslatorServiceClient.Account.AccountID, WhereFrom = TranslationSourceEnum.BingWeb.ToString() }; if (IsAccessDB == true && !ConfigSetting.OnlyTranslateFromBing && fromLang != toLang && transResult.SourceTransText != transResult.TranslationText && translationRequest.TransText.Length <= 256) // 256 match with 'TranslationEntries' table's 'EntryText' column's size { int entryId = trans.AddResult(transResult);//Add Result to DataBase AddLog(entryId, false); } return transResult; }
private void TranslationComplete(TranslationResult transResult) { if (ConfigSetting.Mini) { floatBox.FontColor = Brushes.Black; floatBox.Translation = transResult.TranslationText; } SetAutoDetectedLanguageName(cboFrom, transResult.DetectLanguage); SetValueFrom(transResult.SourceTransText); SetValueTo(transResult.TranslationText); SetStatusLabelValue(tsslblWhere, "From : " + transResult.WhereFrom, Brushes.Black); SetStatusLabelValue(tsslblException, ""); SetRichTextBoxValue(rtxtProperties, ""); }