public TranslateRequest(string text, string from, string to, TranslateFormat format)
     : this(text, from, to)
 {
     Format = format;
 }
        internal static TranslateData Translate(string text, string from, string to, TranslateFormat format)
        {
            if (text == null)
            {
                throw new ArgumentNullException("text");
            }
            if (from == null)
            {
                throw new ArgumentNullException("from");
            }
            if (to == null)
            {
                throw new ArgumentNullException("to");
            }

            TranslateRequest request = new TranslateRequest(text, from, to, format);

            WebRequest webRequest;
            if(Timeout != 0)
            {
                webRequest = request.GetWebRequest(Timeout);
            }
            else
            {
                webRequest = request.GetWebRequest();
            }

            TranslateData responseData;
            try
            {
                responseData = RequestUtility.GetResponseData<TranslateData>(webRequest);
            }
            catch (GoogleAPIException ex)
            {
                throw new TranslateException(string.Format("request:\"{0}\"", request), ex);
            }

            return responseData;
        }
Beispiel #3
0
 public TranslateRequest(string text, string from, string to, TranslateFormat format)
     : this(text, from, to)
 {
     Format = format;
 }
        /// <summary>
        /// Translate the text to <paramref name="to"/> and auto detect which language the text is from.
        /// </summary>
        /// <param name="text">The content to translate.</param>
        /// <param name="to">The target language you want to translate to.</param>
        /// <param name="format">The format of the text.</param>
        /// <param name="from">The detected language of the original text.</param>
        /// <returns>The translate result.</returns>
        /// <exception cref="TranslateException">Translate failed.</exception>
        public static string Translate(string text, Language to, TranslateFormat format, out Language from)
        {
            if (!LanguageUtility.IsTranslatable(to))
            {
                throw new TranslateException(string.Format("Can not translate this language to \"{0}\"", to));
            }
            TranslateData result;
            try
            {
                result = Translate(text, LanguageUtility.GetLanguageCode(Language.Unknown), LanguageUtility.GetLanguageCode(to), format);
            }
            catch (TranslateException ex)
            {
                throw new TranslateException("Translate failed!", ex);
            }
            from = LanguageUtility.GetLanguage(result.DetectedSourceLanguage);

            if (format == TranslateFormat.text)
            {
                return HttpUtility.HtmlDecode(result.TranslatedText);
            }
            return result.TranslatedText;
        }