Пример #1
0
        public ContentResult Dictionary(TranslatorCriteria criteria)
        {
            var html = "<div>Implementing</div>";

            if (criteria.From == "zh")
            {
                var url = string.Format(@"http://www.mdbg.net/chindict/chindict_ajax.php?c=wordvocab&i={0}&st=0",
                                        HttpUtility.UrlEncode(criteria.Text));
                using (var webClient = WebClientFactory.ChromeClient())
                {
                    webClient.Encoding = Encoding.UTF8;
                    html = webClient.DownloadString(url);
                }
                var startIndex = html.IndexOf("<table", StringComparison.OrdinalIgnoreCase);
                var endIndex   = html.IndexOf("</body>", StringComparison.OrdinalIgnoreCase);
                if (endIndex > startIndex)
                {
                    return new ContentResult {
                               Content = html.Substring(startIndex, endIndex - startIndex), ContentEncoding = new UTF8Encoding(), ContentType = "text/html"
                    }
                }
                ;
            }
            return(new ContentResult {
                Content = html
            });
        }
Пример #2
0
        public JsonResult ApplyGlossary(TranslatorCriteria criteria)
        {
            var searchModel = CreateSearchModel(new GlossaryCriteria {
                ID = criteria.ID, SearchType = criteria.SearchType
            });
            var glossaries = Facade <SearchFacade>().Search(searchModel);

            foreach (var glossary in glossaries.Data)
            {
                criteria.Text = criteria.Text.Replace(glossary.Raw, glossary.Final);
            }
            return(Json(criteria.Text, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public string Translate(TranslatorCriteria criteria)
        {
            ApplyGlossary(criteria);

            if (criteria.By == 0)
            {
                return(criteria.Text);
            }

            var translator = TranslatorFactory.GetTranslator(criteria.By);

            return(translator.Translate(criteria.Text, criteria.From, criteria.To));
        }
Пример #4
0
        private TranslatorCriteria ApplyGlossary(TranslatorCriteria criteria)
        {
            if (criteria.Glossary == 0)
            {
                return(criteria);
            }

            var searchModel = new SearchModel <GlossaryCriteria>
            {
                Criteria = new GlossaryCriteria {
                    ID = criteria.ID, SearchType = criteria.SearchType
                },
                PagedListConfig = new PagedListConfig {
                    PageSize = int.MaxValue
                }
            };
            var glossaries = new SearchFacade().Search(searchModel);

            foreach (var glossary in glossaries.Data)
            {
                criteria.Text = criteria.Text.Replace(glossary.Raw, glossary.Final);
            }
            return(criteria);
        }
Пример #5
0
        public JsonResult BingTranslator(TranslatorCriteria criteria)
        {
            var translated = Facade <TranslatorFacade>().Translate(criteria);

            return(Json(translated, JsonRequestBehavior.AllowGet));
        }