Exemplo n.º 1
0
        /// <summary>
        /// Detects the languages that might be used in the text.
        /// You can send more than one text in a single request to detect multiple texts.
        /// </summary>
        /// <param name="text">The text to use when detecting languages.</param>
        /// <returns>A list of languages that might be used in the text.</returns>
        public List <LanguageDetection> DetectLanguage(params string[] text)
        {
            //https://www.googleapis.com/language/translate/v2/detect?key=key&q=google+translate+is+fast
            RestRequest request = CreateRequest("detect");

            CheckRequest(text);

            //Required
            foreach (string q in text)
            {
                request.AddParameter("q", q);
            }

            //Output
            LanguageDetectionResult results = GetResponse <LanguageDetectionResult>(request);

            //Flatten the results from Google Translate API
            List <LanguageDetection> detections = new List <LanguageDetection>();

            foreach (List <LanguageDetection> languageDetections in results.Data.Detections)
            {
                detections.AddRange(languageDetections);
            }

            return(detections);
        }
Exemplo n.º 2
0
        internal static DetectLanguageResultCollection ConvertToDetectLanguageResultCollection(LanguageDetectionResult results, IDictionary <string, int> idToIndexMap)
        {
            var detectedLanguages = new List <DetectLanguageResult>(results.Documents.Count);

            //Read errors
            foreach (DocumentError error in results.Errors)
            {
                detectedLanguages.Add(new DetectLanguageResult(error.Id, ConvertToError(error.Error)));
            }

            //Read languages
            foreach (var language in results.Documents)
            {
                detectedLanguages.Add(new DetectLanguageResult(language.Id, language.Statistics ?? default, ConvertToDetectedLanguage(language)));
            }

            detectedLanguages = SortHeterogeneousCollection(detectedLanguages, idToIndexMap);

            return(new DetectLanguageResultCollection(detectedLanguages, results.Statistics, results.ModelVersion));
        }