public async Task <List <PreTranslateSegment> > PrepareTempData(List <PreTranslateSegment> preTranslatesegments)
        {
            try
            {
                for (var i = 0; i < preTranslatesegments.Count; i++)
                {
                    if (preTranslatesegments[i] != null)
                    {
                        string sourceText;
                        var    newseg = preTranslatesegments[i].TranslationUnit.SourceSegment.Duplicate();

                        if (newseg.HasTags)
                        {
                            var tagPlacer = new BeGlobalTagPlacer(newseg);
                            sourceText = tagPlacer.PreparedSourceText;
                        }
                        else
                        {
                            sourceText = newseg.ToPlain();
                        }

                        sourceText = _normalizeSourceTextHelper.NormalizeText(sourceText);
                        preTranslatesegments[i].SourceText = sourceText;
                    }
                }

                var sourceLanguage =
                    _normalizeSourceTextHelper.GetCorespondingLangCode(_languageDirection.SourceCulture);
                var targetLanguage =
                    _normalizeSourceTextHelper.GetCorespondingLangCode(_languageDirection.TargetCulture);

                var translator = new BeGlobalV4Translator("https://translate-api.sdlbeglobal.com", _options.ClientId,
                                                          _options.ClientSecret, sourceLanguage, targetLanguage, _options.Model, _options.UseClientAuthentication);

                await Task.Run(() => Parallel.ForEach(preTranslatesegments, segment =>
                {
                    if (segment != null)
                    {
                        var translation          = HttpUtility.UrlDecode(translator.TranslateText(segment.SourceText));
                        segment.PlainTranslation = HttpUtility.HtmlDecode(translation);
                    }
                })).ConfigureAwait(true);

                return(preTranslatesegments);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(preTranslatesegments);
        }
Пример #2
0
        public string Translate(LanguagePair languageDirection, string sourceText)
        {
            var targetLanguage = _normalizeTextHelper.GetCorespondingLangCode(languageDirection.TargetCulture);
            var sourceLanguage = _normalizeTextHelper.GetCorespondingLangCode(languageDirection.SourceCulture);

            sourceText = _normalizeTextHelper.NormalizeText(sourceText);

            var beGlobalTranslator = new BeGlobalV4Translator("https://translate-api.sdlbeglobal.com", ClientId, ClientSecret,
                                                              sourceLanguage, targetLanguage, _model, UseClientAuthentication);

            var translatedText = HttpUtility.UrlDecode(beGlobalTranslator.TranslateText(sourceText));

            translatedText = HttpUtility.HtmlDecode(translatedText);

            return(translatedText);
        }