Exemple #1
0
        public async Task <ActionResult <IList <SupportedLanguage> > > GetGoogleTranslateLanguages()
        {
            TranslationServiceClient service = await translateServiceAccessor.InitializeServiceAsync();

            string[] displayLanguageCodeList = { "en" };

            #region Accept Header
            if (Request.Headers.TryGetValue("Accept-Language", out StringValues value))
            {
                string[] accept_language_values = value.ToString().Split(',');
            }
            #endregion

            int i = 0;             // iterate over display language code list
            IList <SupportedLanguage> response = null;
            while (response == null && i < displayLanguageCodeList.Length)
            {
                string displayLanguageCode = displayLanguageCodeList[i];

                try {
                    SupportedLanguages temp = await service.GetSupportedLanguagesAsync(new GetSupportedLanguagesRequest {
                        Parent = ApplicationValues.GOOGLE_PROJECT_NAME.ToString(),
                        DisplayLanguageCode = displayLanguageCode,
                    });

                    response = temp.Languages;
                } catch (Grpc.Core.RpcException) {
                    i++;
                }
            }

            return(new ActionResult <IList <SupportedLanguage> >(response));
        }
        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());
        }
Exemple #3
0
        private async Task <Video> AddLocalizationToVideo(Video video, AppVideoLocalizeRequest body, string localizationCountHash)
        {
            TranslationServiceClient service = await translateServiceAccessor.InitializeServiceAsync();

            string[] languages = body.TranslationLanguageCollection;

            video.Snippet.DefaultLanguage ??= "en"; // TODO replace with language detection

            if (body.NullifyVideoLocalizations || video.Localizations == null)
            {
                video.Localizations = new Dictionary <string, VideoLocalization>();
            }


            Task[] tasks = new Task[languages.Length];

            for (int i = 0; i < languages.Length; i++)
            {
                string language = languages[i];
                tasks[i] = AddLocalizationToVideoTask(service, video, language, localizationCountHash);
            }

            await Task.WhenAll(tasks); // wait for all localizations to be added

            return(video);
        }
Exemple #4
0
        public async Task <ActionResult <string> > GetSimpleTranslation(
            [FromQuery] string targetLanguageCode,
            [FromQuery] string sourceLanguageCode,
            [FromBody] string text)
        {
            TranslationServiceClient service = await translateServiceAccessor.InitializeServiceAsync();

            return(await service.SimpleTranslation(targetLanguageCode, sourceLanguageCode, text));;
        }