Esempio n. 1
0
        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";
        }
Esempio n. 3
0
        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);
            }
        }