public void TranslateWithUnsupportedCharactersTest()
        {
            TranslationInput translateInput = new TranslationInput("Chciałbym!", TranslatorType.L33tSp34k);
            ITranslator      translator     = TranslatorFactory.CreateTranslator(translateInput);

            TranslationResult result = translator.Translate(translateInput);

            Assert.IsTrue(string.Equals(@"[#[14Ł8j|v|!", result.Translated));
        }
        public void TranslateTest()
        {
            TranslationInput translateInput = new TranslationInput("Advanced Field Solutions", TranslatorType.L33tSp34k);
            ITranslator      translator     = TranslatorFactory.CreateTranslator(translateInput);

            TranslationResult result = translator.Translate(translateInput);

            Assert.IsTrue(string.Equals(@"4)\/4^/[3) |""131) 501(_)710^/5", result.Translated));
        }
Пример #3
0
        public ActionResult Translate(string textToTranslate)
        {
            TranslationInput translationInput = new TranslationInput(textToTranslate, TranslatorType.L33tSp34k);
            ITranslator      translator       = TranslatorFactory.CreateTranslator(translationInput);

            TranslationResult translationResult = translator.Translate(translationInput);

            return(Json(translationResult));
        }
        public ActionResult Edit(TranslationInput input)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("../User/EditTranslation", input));
            }
            AdminController adminController = new AdminController();

            return(adminController.Edit(input));
        }
        public async Task <IEnumerable <TranslationOutput> > Translate(TranslationInput input)
        {
            if (input == null || String.IsNullOrWhiteSpace(input.ContentToTranslate))
            {
                throw new ArgumentNullException(nameof(input));
            }

            var languageCultureCode = this.GetLanguageCode();

            // Reaches out into the host to check the config for override
            var languageFromConfig = this.configuration["LanguageOverride"];

            if (!String.IsNullOrEmpty(languageFromConfig))
            {
                languageCultureCode = languageFromConfig;
            }

            // Uses a local third party service
            var dictionary = await dictionaryService.GetLanguageDictionary(languageCultureCode);

            if (dictionary == null)
            {
                return(Enumerable.Empty <TranslationOutput>());
            }

            var wordToTranslate = input.ContentToTranslate.ToLower();

            if (!dictionary.ContainsKey(wordToTranslate))
            {
                return(Enumerable.Empty <TranslationOutput>());
            }

            var results = new List <TranslationOutput>();

            foreach (var key in dictionary.Keys.Where(k => k.ToLower().StartsWith(wordToTranslate)))
            {
                var translation = dictionary[key];
                var accuracy    = key.Length == wordToTranslate.Length ? 100 : 0;
                if (accuracy == 0)
                {
                    accuracy = 100 / (wordToTranslate.Length - key.Length);
                }

                results.Add(new TranslationOutput
                {
                    Accuracy    = accuracy,
                    ToLanguage  = languageCultureCode,
                    Translation = translation
                });
            }

            return(results);
        }
Пример #6
0
        TranslateText([FromBody] TranslationInput translationInput)
        {
            if (translationInput.Text == null || translationInput.To == null)
            {
                return(BadRequest());
            }

            TranslationManager.OriginalText = translationInput.Text;

            var result = await TranslationManager.GetTranslation(translationInput.To);

            return(Ok(result));
        }
Пример #7
0
        public TranslationResult Translate(TranslationInput textToTranslate)
        {
            if (textToTranslate == null || string.IsNullOrEmpty(textToTranslate.Value))
            {
                return(null);
            }

            string translatedText = TranslateText(textToTranslate.Value);

            TranslationResult result = new TranslationResult(textToTranslate.Value, translatedText);

            return(result);
        }
        public ActionResult Edit(TranslationInput input)
        {
            //TODO: still need some improvements
            if (!ModelState.IsValid)
            {
                return(PartialView("EditTranslation", input));
            }
            input.Votes = 1;

            var updateMode = ITranslationMode.GetTranslationModeByID(input.TextId, input.LanguageCode);

            if (updateMode == null)//This mean it is the first Translation of this string
            {
                TranslationMode mode = new TranslationMode();
                mode.TextId       = input.TextId;
                mode.LanguageCode = input.LanguageCode;
                mode.Mode         = input.ModeOfTranslation;
                ITranslationMode.InsertTranslationMode(mode);

                updateMode = mode;

                if (input.ModeOfTranslation == 2)
                {
                    var griddata    = this.Gridformat();
                    var gridrowData = griddata.GridRows.Where(x => x.TextId == input.TextId).FirstOrDefault();
                    return(Json(MapToGridModel(gridrowData)));
                }
            }
            else
            {
                updateMode.Mode = input.ModeOfTranslation;
                ITranslationMode.UpdateTranslationMode(updateMode);

                if (updateMode.Mode == 2)
                {
                    var updateGriddata    = this.Gridformat();
                    var updateGridrowData = updateGriddata.GridRows.Where(x => x.TextId == input.TextId).FirstOrDefault();
                    return(Json(MapToGridModel(updateGridrowData)));
                }
            }

            var newtranslation = new Translation();

            if (updateMode.Mode == 0 || updateMode.Mode == 1)
            {
                var repetTranslated = ITranslation.GetAll().Where(x => x.TextId == input.TextId && x.LanguageCode == input.LanguageCode && x.Translated_Text == input.TranslationText).FirstOrDefault();
                if (repetTranslated != null)
                {
                    if (updateMode.Mode == 0)
                    {
                        var items = ITranslation.GetTranslationLogByCode(repetTranslated.TextId, repetTranslated.LanguageCode).ToList();
                        foreach (var item in items)
                        {
                            item.OfficialBoolean = false;
                        }
                        var maxVote = items.Max(s => s.Votes);
                        var setdata = items.Where(x => x.Votes == maxVote).FirstOrDefault();
                        setdata.OfficialBoolean = true;
                        setdata.Votes           = maxVote;

                        ITranslation.Update(setdata);
                    }
                    return(Json(repetTranslated));
                }

                //Find the las translation that has officialBoolean in true
                var translatedData = ITranslation.GetAll()
                                     .Where(x =>
                                            x.TextId == input.TextId &&
                                            x.LanguageCode == input.LanguageCode &&
                                            x.OfficialBoolean == true)
                                     .FirstOrDefault();

                if (translatedData != null)
                {
                    translatedData.OfficialBoolean = false;
                    translatedData.Votes           = translatedData.Votes > 0 ? 0 : translatedData.Votes;

                    //Update the last saved translation with the new values in order to put the new translation as the one to be shown in the grid.
                    // translateData is NOT the new input to be saved, is the last saved in a previous instance
                    ITranslation.Update(translatedData);
                }

                // the new translation to be saved in db
                var translatedText = new Translation();
                translatedText.Translated_Text = input.TranslationText;
                translatedText.LanguageCode    = input.LanguageCode;
                translatedText.TextId          = input.TextId;
                translatedText.Votes           = 0;
                translatedText.OfficialBoolean = true;

                ITranslation.Save(translatedText);

                newtranslation = ITranslation.GetAll().Where(x => x.Id == translatedText.Id).FirstOrDefault();

                this.VoteCount("Like", newtranslation.TextId, newtranslation.Id, newtranslation.LanguageCode);

                TranslationLog translation_log = new TranslationLog();
                translation_log.TextId          = translatedText.TextId;
                translation_log.System_Date     = DateTime.Now;
                translation_log.LanguageCode    = translatedText.LanguageCode;
                translation_log.Translated_Text = translatedText.Translated_Text;

                ITranslation_Log.Save(translation_log);
            }

            var data    = this.Gridformat();
            var rowData = data.GridRows.Where(x => x.TextId == input.TextId).FirstOrDefault();

            if (System.Web.HttpContext.Current.Request.Cookies["MissingTrans"] != null)
            {
                if (System.Web.HttpContext.Current.Request.Cookies["MissingTrans"].Value != "true")
                {
                    return(Json(MapToGridModel(rowData)));
                }
                else
                {
                    return(Json(data));
                }
            }
            else
            {
                return(Json(data));
            }
        }
Пример #9
0
        public HttpResponseMessage Post([FromBodyAttribute] TranslationInput input) // id refers to Application Key
        {
            LanguageTextTranslation translatedText = null;
            HttpResponseMessage     response       = new HttpResponseMessage();
            Response res = new Response();

            try
            {
                if (input != null)
                {
                    MongodbConnect mongo = new MongodbConnect(ConfigurationManager.AppSettings["MongoDBName"].ToString());

                    // Validate Application key
                    var validApplication = mongo.GetRecordByApplicationKey(input.id);

                    if (validApplication != null)
                    {
                        // Validate Application has language or not

                        if (input.languagecode != null && input.languagecode.Length > 0)
                        {
                            if (mongo.ValidateApplicationLanguage(input.id, input.languagecode) != null)
                            {
                                translatedText = mongo.GetTranslatedText(validApplication.ApplicationID, input.languagecode);
                            }
                            else
                            {
                                response    = Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Translation Language is not supported");
                                res.Status  = "Failed";
                                res.Message = "Translation Language is not supported";
                                res.Result  = null;
                            }
                        }
                        else
                        {
                            translatedText = mongo.GetTranslatedText(validApplication.ApplicationID, string.Empty);
                        }

                        if (translatedText != null)
                        {
                            response = Request.CreateResponse(HttpStatusCode.OK);
                            if (translatedText.Translation != null)
                            {
                                res.Status  = "Success";
                                res.Message = "Translation Found";
                            }
                            else
                            {
                                res.Status  = "Success";
                                res.Message = "Translation Not Found";
                            }

                            res.Result = translatedText;
                        }
                    }
                    else
                    {
                        response    = Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Application Key is unauthorized");
                        res.Status  = "Failed";
                        res.Message = "Application Key is unauthorized";
                        res.Result  = null;
                    }
                }
                else
                {
                    response    = Request.CreateErrorResponse(HttpStatusCode.BadRequest, "HTTP BedRequest. Check your request body and header.");
                    res.Status  = "Failed";
                    res.Message = "HTTP BedRequest. Check your request body and header.";
                    res.Result  = null;
                }
            }
            catch (Exception ex)
            {
                Console.Error.Write(ex.Message);
                response    = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unexpected Error");
                res.Status  = "Failed";
                res.Message = "Unexpected Error";
                res.Result  = null;
            }

            response.Content = new StringContent(JsonConvert.SerializeObject(res, Formatting.Indented), Encoding.UTF8, "application/json");
            return(response);
        }
 public Task <IEnumerable <TranslationOutput> > TranslateV2(TranslationInput input) => Translate(input);
Пример #11
0
 void FocusInput(object sender, EventArgs e)
 {
     TranslationInput.Focus();
 }