private string searchInServer(String sourceString) { if (_neurotolgeConnector == null) { // Use basic connection settings string serverAddress = _options.serverAddress; int serverPort = int.Parse(_options.port); // Use features string client = _options.client; string subject = _options.subject; List <string> features = new List <string>(); if (!String.IsNullOrEmpty(client)) { features.Add(client); } if (!String.IsNullOrEmpty(subject)) { features.Add(subject); } if (!String.IsNullOrEmpty(_options.otherFeatures)) { features.AddRange(_options.otherFeatures.Split(';')); } _neurotolgeConnector = new NeurotolgeConnector(serverAddress, serverPort, features); } var translatedText = _neurotolgeConnector.getTranslation(_languageDirection, sourceString); return(translatedText); }
private async Task <List <PreTranslateSegment> > PrepareTempData(List <PreTranslateSegment> preTranslateSegments) { try { string sourceString = String.Empty; for (var i = 0; i < preTranslateSegments.Count; i++) { var newSeg = preTranslateSegments[i].TranslationUnit.SourceSegment.Duplicate(); string sourceText = newSeg.ToPlain(); preTranslateSegments[i].SourceText = sourceText; if (i == preTranslateSegments.Count - 1) { sourceString += sourceText; } else { sourceString += sourceText + "|"; } } // Use basic connection settings string serverAddress = _options.serverAddress; int serverPort = int.Parse(_options.port); // Use features string client = _options.client; string subject = _options.subject; List <string> features = new List <string>(); if (!String.IsNullOrEmpty(client)) { features.Add(client); } if (!String.IsNullOrEmpty(subject)) { features.Add(subject); } if (!String.IsNullOrEmpty(_options.otherFeatures)) { features.AddRange(_options.otherFeatures.Split(';')); } var translator = new NeurotolgeConnector(serverAddress, serverPort, features); //await Task.Run(() => Parallel.ForEach(preTranslateSegments, segment => //{ // var translation = HttpUtility.UrlDecode(translator.getTranslation(_languageDirection, segment.SourceText)); // segment.PlainTranslation = HttpUtility.HtmlDecode(translation); //})).ConfigureAwait(true); //await Task.Run(() => //{ // var translations = translator.getTranslation(_languageDirection, sourceString); // string[] substrings = translations.Split('|'); //}).ConfigureAwait(true); var translations = translator.getTranslation(_languageDirection, sourceString); string[] translationsSplit = translations.Split('|'); if (translationsSplit.Length == preTranslateSegments.Count) { for (var i = 0; i < preTranslateSegments.Count; i++) { preTranslateSegments[i].PlainTranslation = translationsSplit[i]; } } else { Console.Write("error in searchtranslationunits. The lengths are not the same."); } return(preTranslateSegments); } catch (Exception e) { Console.WriteLine(e); } return(preTranslateSegments); }