Beispiel #1
0
        private static TranslationResult CreateModel(TranslationResultDto dto, IReadOnlyList <string> sourceSegment)
        {
            if (dto == null)
            {
                return(null);
            }

            return(new TranslationResult(sourceSegment, dto.Target, dto.Confidences.Cast <double>(), dto.Sources,
                                         CreateModel(dto.Alignment, sourceSegment.Count, dto.Target.Length), dto.Phrases.Select(CreateModel)));
        }
        public async Task <ActionResult <TranslationResultDto> > Translate([FromQuery][Required] string translationQuery)
        {
            try
            {
                var result = await _mediator.Send(new TranslateQuery(translationQuery, null, null));

                var dto = new TranslationResultDto(result.TranslatedText);
                return(Ok(dto));
            }
            catch (Exception exc)
            {
                return(BadRequest(new TranslationResultDto {
                    ErrorMessage = exc.Message
                }));
            }
        }
Beispiel #3
0
        public TranslationResult Adapt(TranslationRequest request, TranslationResultDto resultDto)
        {
            var translations = new List <TextTranslation>();

            for (var i = 0; i < resultDto.Translations.Count; i++)
            {
                var translationDto         = resultDto.Translations.ElementAt(i);
                var detectedSourceLanguage = TranslationLanguage.CreateByCode(translationDto.Detected_source_language);
                var textKey = request.TextParts.ElementAt(i).Key;
                var text    = translationDto.Text;

                request.IgnoreMarkup.Evaluate(
                    markup =>
                {
                    text = text.Replace(IgnoreForTranslationMarkup.DeeplIgnoreBeginTag, markup.BeginTag);
                    text = text.Replace(IgnoreForTranslationMarkup.DeeplIgnoreEndTag, markup.EndTag);
                });

                var identifiableText = new TextPart(textKey, text);
                translations.Add(new TextTranslation(detectedSourceLanguage, identifiableText));
            }

            return(new TranslationResult(translations));
        }
Beispiel #4
0
 private static IReadOnlyCollection <Translation> AdaptTranslations(TranslationResultDto resultDto)
 {
     return(resultDto.Translations.Select(f => new Translation(f.To, f.Text)).ToList());
 }