Ejemplo n.º 1
0
        public static async Task <string> SimpleTranslation(this TranslationServiceClient service, string targetLanguageCode, string sourceLanguageCode, string text)
        {
            if (targetLanguageCode == sourceLanguageCode)
            {
                return(text);
            }

            if (string.IsNullOrWhiteSpace(text))
            {
                return(text);
            }

            TranslateTextRequest request = new TranslateTextRequest {
                Parent             = ApplicationValues.GOOGLE_PROJECT_NAME.ToString(),
                TargetLanguageCode = targetLanguageCode,
                SourceLanguageCode = sourceLanguageCode,
                Contents           = { text },
                MimeType           = "text/plain",
            };

            TranslateTextResponse response = await service.TranslateTextAsync(request);

            string translation = response.Translations[0].TranslatedText;

            // Translations are HTML encoded
            using (StringWriter sw = new StringWriter()) {
                HttpUtility.HtmlDecode(translation, sw);
                return(sw.ToString());
            }
        }
        public async Task <ActionResult <string> > GetSimpleTranslation(
            [Required, FromQuery] string targetLanguageCode,
            [Required, FromQuery] string sourceLanguageCode,
            [FromQuery] string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(text);
            }

            TranslateTextRequest request = new TranslateTextRequest {
                Parent             = GoogleCloudTranslateServiceAccessor.PARENT,
                TargetLanguageCode = targetLanguageCode,
                SourceLanguageCode = sourceLanguageCode,
                Contents           = { text },
            };

            TranslationServiceClient service = await translateServiceAccessor.InitializeServiceAsync();

            TranslateTextResponse response = await service.TranslateTextAsync(request);

            string translation = response.Translations[0].TranslatedText;

            // Translations are HTML encoded
            using StringWriter sw = new StringWriter();
            HttpUtility.HtmlDecode(translation, sw);
            return(sw.ToString());
        }
        public async static Task <String> googleTranslateApiV3(String textToTranslate, String targetLanguage, String projectName, ILogger logger, IOptions <GoogleTranslateApiCredentials> googleTranslateApiCredentials)
        {
            if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT").Equals("Development"))
            {
                //var credential = GoogleCredential.GetApplicationDefaultAsync();
                //Hostirano lokalno
                TranslationServiceClientBuilder translationServiceClientBuilder = new TranslationServiceClientBuilder();
                translationServiceClientBuilder.JsonCredentials = JsonConvert.SerializeObject(googleTranslateApiCredentials.Value);
                TranslationServiceClient translationServiceClient = await translationServiceClientBuilder.BuildAsync();

                TranslateTextRequest request = new TranslateTextRequest
                {
                    Contents =
                    {
                        // The content to translate.
                        textToTranslate,
                    },
                    TargetLanguageCode   = targetLanguage,
                    ParentAsLocationName = new LocationName(projectName, "global"),
                };
                TranslateTextResponse response = await translationServiceClient.TranslateTextAsync(request);

                return(response.Translations[0].TranslatedText);
            }
            if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT").Equals("Production"))
            {
                TranslationServiceClient translationServiceClient = await TranslationServiceClient.CreateAsync();

                TranslateTextRequest request = new TranslateTextRequest
                {
                    Contents =
                    {
                        // The content to translate.
                        textToTranslate,
                    },
                    TargetLanguageCode   = targetLanguage,
                    ParentAsLocationName = new LocationName(projectName, "global"),
                };
                TranslateTextResponse response = await translationServiceClient.TranslateTextAsync(request);

                return(response.Translations[0].TranslatedText);
            }

            return(null);
        }
        /// <summary>Snippet for TranslateTextAsync</summary>
        public async Task TranslateTextAsync_RequestObject()
        {
            // Snippet: TranslateTextAsync(TranslateTextRequest,CallSettings)
            // Additional: TranslateTextAsync(TranslateTextRequest,CancellationToken)
            // Create client
            TranslationServiceClient translationServiceClient = await TranslationServiceClient.CreateAsync();

            // Initialize request argument(s)
            TranslateTextRequest request = new TranslateTextRequest
            {
                Contents             = { },
                TargetLanguageCode   = "",
                ParentAsLocationName = new LocationName("[PROJECT]", "[LOCATION]"),
            };
            // Make the request
            TranslateTextResponse response = await translationServiceClient.TranslateTextAsync(request);

            // End snippet
        }
Ejemplo n.º 5
0
        public async ValueTask <string> TranslateText(string glossaryId, string text)
        {
            var glossaryConfig = new TranslateTextGlossaryConfig()
            {
                Glossary = $"projects/{projectId}/locations/{locaionId}/glossaries/{glossaryId}"
            };

            var request = new TranslateTextRequest
            {
                Contents             = { text, },
                SourceLanguageCode   = "en",
                TargetLanguageCode   = "ko",
                MimeType             = "text/html",
                ParentAsLocationName = new LocationName(projectId, locaionId),
                GlossaryConfig       = glossaryConfig
            };

            var response = await client.TranslateTextAsync(request);

            return(response.GlossaryTranslations.FirstOrDefault()?.TranslatedText);
        }
Ejemplo n.º 6
0
        public async Task <IReadOnlyList <TranslationResult> > TranslateAsync(IEnumerable <string> texts, string targetLanguage, string sourceLanguage = null, CancellationToken ct = default)
        {
            var results = new List <TranslationResult>();

            if (string.IsNullOrWhiteSpace(options.ProjectId))
            {
                for (var i = 0; i < texts.Count(); i++)
                {
                    results.Add(TranslationResult.NotConfigured);
                }

                return(results);
            }

            if (!texts.Any())
            {
                return(results);
            }

            if (service == null)
            {
                service = new TranslationServiceClientBuilder().Build();
            }

            var request = new TranslateTextRequest
            {
                Parent = $"projects/{options.ProjectId}"
            };

            foreach (var text in texts)
            {
                request.Contents.Add(text);
            }

            request.TargetLanguageCode = GetLanguageCode(targetLanguage);

            if (sourceLanguage != null)
            {
                request.SourceLanguageCode = GetLanguageCode(sourceLanguage);
            }

            request.MimeType = "text/plain";

            try
            {
                var response = await service.TranslateTextAsync(request, ct);

                foreach (var translation in response.Translations)
                {
                    var language = GetSourceLanguage(translation.DetectedLanguageCode, sourceLanguage);

                    results.Add(new TranslationResult(translation.TranslatedText, language));
                }
            }
            catch (RpcException ex)
            {
                var result = GetResult(ex.Status);

                for (var i = 0; i < texts.Count(); i++)
                {
                    results.Add(result);
                }
            }

            return(results);
        }