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()); }
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); }
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));; }