예제 #1
0
        /// <summary>
        /// Begins an asynchronous request for translating 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="callback">The <see cref="AsyncCallback"/> delegate.</param>
        /// <param name="state">An object containing state information for this asynchronous request.</param>
        /// <returns>An <see cref="IAsyncResult"/> that references the asynchronous request.</returns>
        public IAsyncResult BeginTranslateAndDetect(string text, string to, string format, AsyncCallback callback, object state)
        {
            var translateAsyncResult = new TranslateAsyncResult(format);
            var innerAsyncResult     = this.BeginNativeTranslate(
                text,
                Language.Unknown,
                to,
                format,
                asyncResult =>
            {
                translateAsyncResult.InnerAsyncResult = asyncResult;
                if (callback != null)
                {
                    callback(translateAsyncResult);
                }
            },
                state);

            translateAsyncResult.InnerAsyncResult = innerAsyncResult;
            return(translateAsyncResult);
        }
        /// <summary>
        /// Begins an asynchronous request for translating 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="callback">The <see cref="AsyncCallback"/> delegate.</param>
        /// <param name="state">An object containing state information for this asynchronous request.</param>
        /// <returns>An <see cref="IAsyncResult"/> that references the asynchronous request.</returns>
        public IAsyncResult BeginTranslateAndDetect(string text, string to, string format, AsyncCallback callback, object state)
        {
            var translateAsyncResult = new TranslateAsyncResult(format);
            var innerAsyncResult = this.BeginNativeTranslate(
                text,
                Language.Unknown,
                to,
                format,
                asyncResult =>
                {
                    translateAsyncResult.InnerAsyncResult = asyncResult;
                    if (callback != null)
                    {
                        callback(translateAsyncResult);
                    }
                },
                state);

            translateAsyncResult.InnerAsyncResult = innerAsyncResult;
            return translateAsyncResult;
        }