public async Task <string> TranslateTextAsync(string text) { if (TranslatorService == null) { TranslatorService = new TranslatorServiceClient(Keys.TRANSLATOR_API_KEY); } return(await TranslatorService.TranslateAsync(text, "pt")); }
public TextFieldTranslatorViewModel() { // Load Available Languages from WCF Service. MyTranslatorProxy = new TranslatorServiceClient(); MyCMDTranslateNow = new CMDTranslateNow(); MyCMDDetectLanguage = new CMDDetectLanguage(); MyCMDGetAutoComplete = new CMDGetAutoComplete(); MyCMDGetSimilarWords = new CMDGetSimilarWords(); ThreadPool.QueueUserWorkItem(new WaitCallback((object param) => { string[] myLanguages = MyTranslatorProxy.GetLanguageList(); AvailableLanguages = myLanguages.ToList <string>(); if (AvailableLanguages.Count > 0) { SelectedLanguage = AvailableLanguages[0]; } })); DetectedLanguage = ""; AutoCompleteSuggestion = "Write a word here to get it translated"; }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as Activity; var userText = activity.Text; if (userText == null) { await context.PostAsync($"こんにちは!ルー語BOTだよ。ルー語にしたい文章を入れてみてね。"); } else { // API Client の作成 var textAnalyticsClient = new TextAnalyticsAPI(); textAnalyticsClient.AzureRegion = textAnalyticsRegion; textAnalyticsClient.SubscriptionKey = textAnalyticsSubKey; var translatorClient = new TranslatorServiceClient(translatorSubKey); var keyPhraseJa = new List <string>(); var keyPhraseEn = new List <string>(); // Text Analytics API を利用したキーワードの取得 try { var textAnalyticsResult = textAnalyticsClient.KeyPhrases( new MultiLanguageBatchInput( new List <MultiLanguageInput>() { new MultiLanguageInput("ja", "1", userText) })); foreach (var keyPhrase in textAnalyticsResult.Documents[0].KeyPhrases) { //await context.PostAsync($"Keyword= " + keyPhrase); keyPhraseJa.Add(keyPhrase); } } catch { await context.PostAsync($"Error: TextAnalytics API"); } // Translator API を利用したキーワードの翻訳(日本語→英語) try { foreach (var keyPhrase in keyPhraseJa) { var res = await translatorClient.TranslateAsync(keyPhrase, to : "en-us"); //await context.PostAsync($"Keyword in English = " + res); keyPhraseEn.Add(res); } } catch { await context.PostAsync($"Error: Translator API"); } // キーワード(日本語→英語)の入れ替えと返答 for (int i = 0; i < keyPhraseJa.Count; i++) { userText = userText.Replace(keyPhraseJa[i], keyPhraseEn[i]); } await context.PostAsync(userText); context.Wait(MessageReceivedAsync); } }