Пример #1
0
        public void GetConfigurationTest()
        {
            // arrage
            var httpClient = new HttpClient();

            // act
            ITranslatorService translatorService = new TranslatorService(httpClient, EnvironmentName, ContentRootPath);
            TranslatorConfig   config            = translatorService.GetConfiguration();

            // assert
            Assert.Equal(configuration.TranslatorTextAPIKey, config.TranslatorTextAPIKey);
        }
Пример #2
0
        public static void Run(TimerInfo myTimer, TraceWriter log)
        {
            try
            {
                var translatorSetting = new TranslatorSetting
                {
                    APIKey = ConfigurationManager.AppSettings["TranslatorAPIKey"],
                };
                var twitterSetting = new TwitterSetting
                {
                    ConsumerKey       = ConfigurationManager.AppSettings["TwitterConsumerKey"],
                    ConsumerSecret    = ConfigurationManager.AppSettings["TwitterConsumerSecret"],
                    AccessToken       = ConfigurationManager.AppSettings["TwitterAccessToken"],
                    AccessTokenSecret = ConfigurationManager.AppSettings["TwitterAccessTokenSecret"],
                };
                var visionSetting = new VisionSetting
                {
                    APIKey   = ConfigurationManager.AppSettings["VisionAPIAPIKey"],
                    Endpoint = ConfigurationManager.AppSettings["VisionAPIEndpoint"],
                };
                var cosmosDbSetting = new CosmosDbSetting
                {
                    EndpointUri = ConfigurationManager.AppSettings["CosmosDbEndpointUri"],
                    PrimaryKey  = ConfigurationManager.AppSettings["CosmosDbPrimaryKey"],
                };
                var analyzeSetting = new AnalyzeSetting
                {
                    Keyword = ConfigurationManager.AppSettings["AnalyzeKeyword"],
                };

                // services
                var logger                     = new TraceWriterLogger(log);
                var translatorService          = new TranslatorService(Options.Create(translatorSetting), logger);
                var twitterService             = new TwitterService(Options.Create(twitterSetting), logger);
                var visionService              = new VisionService(Options.Create(visionSetting), translatorService, logger);
                var categolizedImageRepository = new CategorizedImageRepository(Options.Create(cosmosDbSetting), logger);
                var analyzeService             = new AnalyzeService(Options.Create(analyzeSetting),
                                                                    twitterService,
                                                                    visionService,
                                                                    categolizedImageRepository,
                                                                    logger);

                // initialize
                twitterService.InitializeAsync().Wait();

                // run
                analyzeService.AnalyzeAsync().Wait();
            }
            catch (Exception ex)
            {
                log.Error($"Error {ex.ToString()}");
            }
        }
Пример #3
0
        public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (string.IsNullOrEmpty(turnContext.Activity.Text))
            {
                await next(cancellationToken);

                return;
            }

            var language = await _languageStateProperty.GetAsync(turnContext, () => null);

            if (string.IsNullOrEmpty(language))
            {
                language = await TranslatorService.Detect(turnContext.Activity.Text);

                await _languageStateProperty.SetAsync(turnContext, language);
            }

            if (!language.StartsWith("en"))
            {
                // If the language in the message is not english we will translate it to english before continue
                var translatedText = await TranslatorService.Translate(turnContext.Activity.Text, language, "en");

                turnContext.Activity.Text = translatedText;
            }

            turnContext.OnSendActivities(async(newContext, activities, nextSend) =>
            {
                var userLanguage    = await _languageStateProperty.GetAsync(turnContext, () => DefaultLanguage) ?? DefaultLanguage;
                var shouldTranslate = userLanguage != DefaultLanguage;

                // Translate messages sent to the user to user language
                if (shouldTranslate)
                {
                    var tasks = new List <Task>();
                    foreach (Activity currentActivity in activities.Where(a => a.Type == ActivityTypes.Message))
                    {
                        tasks.Add(TranslateMessageActivityAsync(currentActivity, userLanguage));
                    }

                    if (tasks.Any())
                    {
                        await Task.WhenAll(tasks).ConfigureAwait(false);
                    }
                }

                return(await nextSend());
            });

            await next(cancellationToken);
        }
Пример #4
0
        static void Main(string[] args)
        {
            while (true)
            {
                try {
                    TranslatorService translatorService = new TranslatorService();
                    translatorService.Execute();
                }
                catch (Exception ex) {
                    Console.WriteLine($"An error occured while translating files: {ex}");
                }

                Thread.Sleep(Config.Instance.TranslatorExecutionInterval);
            }
        }
Пример #5
0
        public async void TranslateSentenceTest()
        {
            // arrage
            var expectedTranslation = "hello";
            List <Dictionary <string, List <Dictionary <string, string> > > > translationResponse            = new List <Dictionary <string, List <Dictionary <string, string> > > >();
            Dictionary <string, List <Dictionary <string, string> > >         translationResponse_Dictionary = new Dictionary <string, List <Dictionary <string, string> > >();
            List <Dictionary <string, string> > translationResponse_Dictionary_List            = new List <Dictionary <string, string> >();
            Dictionary <string, string>         translationResponse_Dictionary_List_Dictionary = new Dictionary <string, string>();

            translationResponse_Dictionary_List_Dictionary.Add("text", "hello");

            translationResponse_Dictionary_List.Add(translationResponse_Dictionary_List_Dictionary);
            translationResponse_Dictionary.Add("translations", translationResponse_Dictionary_List);
            translationResponse.Add(translationResponse_Dictionary);

            var jsonTranslationResponse = JsonConvert.SerializeObject(translationResponse);
            var handlerMock             = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonTranslationResponse),
            })
            .Verifiable();

            var httpClient = new HttpClient(handlerMock.Object)
            {
                BaseAddress = new Uri("http://localhost/")
            };

            // act
            ITranslatorService translatorService = new TranslatorService(httpClient, EnvironmentName, ContentRootPath);
            var translation = await translatorService.TranslateSentenceAsync("hola", "es", "en");

            // assert
            Assert.Equal(expectedTranslation, translation);
        }
Пример #6
0
        public ChangeLanguageDialog(
            UserState userState,
            TelemetryClient telemetryClient,
            TranslatorService translator,
            IOptionsMonitor <BotSettings> optionsAccessor
            )
            : base(nameof(ChangeLanguageDialog))
        {
            _languagePreferenceProperty = userState.CreateProperty <string>(TranslationMiddleware.PreferredLanguageSetting);
            _pauseTranslationProperty   = userState.CreateProperty <bool>(TranslationMiddleware.PauseTranslationSetting);
            _translator      = translator;
            _telemetryClient = telemetryClient;
            _options         = optionsAccessor.CurrentValue;

            AddDialog(new ChoicePrompt("languagePrompt"));
            AddDialog(new WaterfallDialog("localRoot",
                                          new WaterfallStep[] { StartDialogAsync, ProcessLanguageResponse }));
            InitialDialogId = "localRoot";
        }
Пример #7
0
        public async void GetDesiredLanguageTest()
        {
            // arrage
            var expectedLanguage        = "es";
            var desiredLanguageResponse = new List <DesiredLanguageResponse>()
            {
                new DesiredLanguageResponse()
                {
                    language = expectedLanguage, alternatives = new List <DesiredLanguageResponse>()
                    {
                        new DesiredLanguageResponse()
                    }
                }
            };
            var jsonDesiredLanguageResponse = JsonConvert.SerializeObject(desiredLanguageResponse);
            var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonDesiredLanguageResponse),
            })
            .Verifiable();

            var httpClient = new HttpClient(handlerMock.Object)
            {
                BaseAddress = new Uri("http://localhost/")
            };

            // act
            ITranslatorService translatorService = new TranslatorService(httpClient, EnvironmentName, ContentRootPath);
            var language = await translatorService.GetDesiredLanguageAsync("hola");

            // assert
            Assert.Equal(expectedLanguage, language);
        }
        public async Task Translate_Yoda_Correctly()
        {
            //given
            var model = new MessageViewModel()
            {
                Text = "this is war"
            };

            //when
            var mock = new Mock <ILogger <TranslatorService> >();

            ILogger <TranslatorService> logger = mock.Object;

            var sut = new TranslatorService(logger);

            var result = await sut.YodaTranslate(model);

            //then
            Assert.Equal("War,  this is", result);
        }
        private async Task <IList <CardAction> > TranslateCardActions(string targetLanguage, IEnumerable <CardAction> actions)
        {
            if (targetLanguage?.StartsWith("en") ?? true)
            {
                return(actions.ToList());
            }

            var translatedActions = new List <CardAction>();

            foreach (var action in actions)
            {
                var title = await TranslatorService.Translate(action.Title, "en", targetLanguage);

                var value = await TranslatorService.Translate(action.Value as string, "en", targetLanguage);

                translatedActions.Add(new CardAction(action.Type, title, action.Image, value: value));
            }

            return(translatedActions);
        }
Пример #10
0
        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            if (activity.Type == ActivityTypes.Message)
            {
                //  if (IsSpellCorrectionEnabled)
                // {
                try
                {
                    //  activity.Text = await this.spellService.GetCorrectedTextAsync(activity.Text);
                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                    var input = activity.Text;

                    Task.Run(async() =>
                    {
                        //  var accessToken = await GetAuthenticationToken(ApiKey);
                        var output = await TranslatorService.TranslateText(input, targetLang);
                        Console.WriteLine(output);
                        activity.Text = output;
                        await Conversation.SendAsync(activity, () => new RootLuisDialog());
                        // Activity reply = activity.CreateReply($"Your text translation to English is => '{output}'");
                        //  await connector.Conversations.ReplyToActivityAsync(reply);
                    }).Wait();
                }
                catch (Exception ex)
                {
                    Trace.TraceError(ex.ToString());
                }
                // }

                //await Conversation.SendAsync(activity, () => new RootLuisDialog());
            }
            else
            {
                this.HandleSystemMessage(activity);
            }

            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
Пример #11
0
        public ActionResult Submit()
        {
            using (var t = DbSession.BeginTransaction())
            {
                var me = TranslatorService.FindByEmail(HttpContext.User.Identity.Name);

                var changes = DbSession.CreateCriteria <Translation>()
                              .Add(Restrictions.Eq("IsPublished", false))
                              .Add(Restrictions.Eq("Translator", me))
                              .CreateAlias("Key", "k")
                              .CreateAlias("k.Set", "s")
                              .Future <Translation>();

                var votes = DbSession.QueryOver <TranslationVote>()
                            .Where(x => x.IsPublished == false)
                            .And(x => x.Translator == me)
                            .Future();

                foreach (var translation in changes.ToList())
                {
                    translation.IsPublished    = true;
                    translation.NeedsReviewing = true;

                    DbSession.Update(translation);
                }

                foreach (var vote in votes.ToList())
                {
                    vote.IsPublished    = true;
                    vote.NeedsReviewing = true;

                    DbSession.Update(vote);
                }

                t.Commit();
            }


            return(RedirectToAction("Index"));
        }
Пример #12
0
        public IActionResult Index()
        {
            #region with google api
            //var client = TranslationClient.Create();
            //List<ProductVM> vMs = new List<ProductVM>();
            //var products = context.Products.ToList();
            //foreach (var item in products)
            //{
            //    ProductVM p = new ProductVM()
            //    {
            //        Description = item.Description,
            //        Price = item.Price,
            //        Name = item.Name,
            //        DescriptionENG = client.TranslateText(item.Description, LanguageCodes.Turkish, LanguageCodes.English).TranslatedText
            //    };
            //    vMs.Add(p);
            //}
            #endregion with yandex api


            //var client = TranslationClient.Create();
            List <ProductVM> vMs = new List <ProductVM>();
            var products         = context.Products.ToList();
            foreach (var item in products)
            {
                ProductVM p = new ProductVM()
                {
                    Description    = item.Description,
                    Price          = item.Price,
                    Name           = item.Name,
                    DescriptionENG = TranslatorService.AzToEng(item.Description)
                };
                vMs.Add(p);
            }



            return(View(vMs));
        }
Пример #13
0
        static ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            SimpleIoc.Default.Register <ITranslatorService>(() =>
            {
                var language = GetLanguage();
                var service  = new TranslatorService(Constants.TranslatorClientId, Constants.TranslatorClientSecret, language);

                return(service);
            });

            SimpleIoc.Default.Register <VisionServiceClient>(() => new VisionServiceClient(Constants.VisionSubscriptionKey));

            SimpleIoc.Default.Register <ISpeechService, SpeechService>();
            SimpleIoc.Default.Register <IStreamingService, StreamingService>();
            SimpleIoc.Default.Register <ISettingsService, SettingsService>();

            SimpleIoc.Default.Register <MainViewModel>();

            OnInitialize();
        }
Пример #14
0
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            var translator = new TranslatorService();

            if (activity == null)
            {
                //tc.TrackTrace("MessagesController::NULL Activity received");
            }
            else if (activity.Type == ActivityTypes.Message)
            {
                var text = activity.Text;

                if (text.ToLowerInvariant() == "ping")
                {
                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                    Activity        reply     = activity.CreateReply("pong");
                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
                else if (activity.Text.ToLowerInvariant().Contains("command language"))
                {
                    var t = activity.Text.ToLowerInvariant().Replace("command language", "");
                    t = t.Trim();

                    await translator.SetLanguage(activity, t);

                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                    Activity        reply     = activity.CreateReply(await translator.TranslateBack(activity, "Your language preference has been set!"));
                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
                else
                {
                    var language = await translator.GetLanguage(activity);

                    if (!string.IsNullOrWhiteSpace(language))
                    {
                        var detected = await translator.Detect(text);

                        if (detected == "en")
                        {
                            //do nothing becasue it might be a response.
                            //  await translator.SetLanguage(activity, null);
                        }
                        else
                        {
                            var translated = await translator.Translate(text, language);

                            if (!string.IsNullOrWhiteSpace(translated))
                            {
                                activity.Text = translated;
                            }
                        }
                    }
                    await Conversation.SendAsync(activity, () => new LuisModel());
                }
            }
            else
            {
                await _handleSystemMessage(activity);
            }
            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
Пример #15
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MicrosoftTranslatorPage"/> class.
        /// </summary>
        public MicrosoftTranslatorPage()
        {
            InitializeComponent();

            _translatorClient = TranslatorService.Instance;
        }
Пример #16
0
 public TranslatorServiceAdapter(ISupportHandler nextHandler) : base(nextHandler)
 {
     _translatorService = new TranslatorService();
 }
 public void Init()
 {
     _translatorService = new TranslatorService(Utils.TranslatorKey);
 }
Пример #18
0
 public TranslatingDialogContext(IDialogContext original)
 {
     _translatorService = new TranslatorService();
     _original          = original;
 }
Пример #19
0
 public TranslatorsController()
 {
     translatorService = new TranslatorService();
 }
Пример #20
0
 /*
  * METHODS
  */
 void Gets()
 {
     // DESCRIPTION: Get references to external objects
     translatorDictionary = TranslatorService.Instance;
     myDisplay            = GetComponent <Text>();
 }