示例#1
0
        public async Task AddRecord(string textInit, string textResult, string from, string to, Guid createdById)
        {
            textInit = textInit.ToLower();
            var old = await _readOnlyRepository.GetById <TranslateItem>(textInit);

            var item = new TranslateItem()
            {
                Id = textInit, TextRu = textResult, Translated = textInit.ToLower() != textResult.ToLower()
            };

            if (old == null)
            {
                _writeOnlyRepository.Add(item, createdById);
                _writeOnlyRepository.Commit();
            }
            else
            {
                if (textInit.ToLower() == textResult.ToLower() || old.TextRu.ToLower() == textResult.ToLower())
                {
                    return;
                }
                _writeOnlyRepository.Update <TranslateItem>(item, createdById);
                await _writeOnlyRepository.Save();
            }
        }
示例#2
0
        private void LoadTranslation()
        {
            translate = new List <TranslateItem>();

            foreach (TranslationCategory translationCategory in neutralTranslation.GetTranslationCategories())
            {
                foreach (TranslationItem translationItem in translationCategory.GetTranslationItems())
                {
                    var translateItem = new TranslateItem
                    {
                        Category     = translationCategory.Name,
                        Name         = translationItem.Name,
                        Property     = translationItem.Property,
                        NeutralValue = translationItem.Value
                    };

                    if (translator != null)
                    {
                        translateItem.TranslatedValue = translator.GetString(translationCategory.Name, translateItem.Name, translateItem.Property);
                    }

                    translate.Add(translateItem);
                }
            }

            UpdateProgress();
        }
示例#3
0
 public string Translate(string source, string lang)
 {
     if (source.Length > 0)
     {
         WebRequest request = WebRequest.Create("https://translate.yandex.net/api/v1.5/tr.json/translate?"
                                                + "key=" + key
                                                + "&text=" + source
                                                + "&lang=" + lang);
         WebResponse response = request.GetResponse();
         using (StreamReader sr = new StreamReader(response.GetResponseStream()))
         {
             string feedback;
             if ((feedback = sr.ReadLine()) != null)
             {
                 TranslateItem item   = JsonConvert.DeserializeObject <TranslateItem>(feedback);
                 string        result = "";
                 foreach (string line in item.text)
                 {
                     result += line;
                 }
                 return(result);
             }
         }
         return(source);
     }
     return("");
 }
        public static string GetTranslateItem(RestCommand command, int phraseID)
        {
            TranslateItem translateItem = Translate.GetTranslateItem(command.LoginUser, phraseID);

            if (translateItem.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(translateItem.GetXml("TranslateItem", true));
        }
示例#5
0
        private void translatedText_Leave(object sender, System.EventArgs e)
        {
            //Debug.Assert(translateItemInEditing != null);

            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = translatedText.Text;

                translateItemInEditing = null;
            }
        }
示例#6
0
        private void translatedText_Enter(object sender, System.EventArgs e)
        {
            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = translatedText.Text;
            }

            translateItemInEditing = (TranslateItem)translateItemBindingSource.Current;

            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = editingCellPrefixText.Text + " " + translateItemInEditing.TranslatedValue;
            }
        }
示例#7
0
        public async Task AddRecords(IDictionary <string, string> texts, string fromCode, string toCode, Guid createdById)
        {
            foreach (var textInit in texts)
            {
                var text = textInit.Key.ToLower();
                var old  = await _readOnlyRepository.GetById <TranslateItem>(textInit.Key);

                var item = new TranslateItem()
                {
                    Id = text, TextRu = textInit.Value, Translated = text != textInit.Value.ToLower()
                };
                if (old == null)
                {
                    _writeOnlyRepository.Add(item, createdById);
                }
            }
            _writeOnlyRepository.Commit();
        }
示例#8
0
        public async Task AddRecords(IDictionary <string, string> texts, string fromCode, string toCode, Guid createdById)
        {
            var keys    = texts.Select(x => x.Key.ToLower()).ToList();
            var records = await _readOnlyRepository.Get <TranslateItem>(filter : x => keys.Contains(x.Id));

            foreach (var textInit in texts)
            {
                var text = textInit.Key.ToLower();
                var old  = records.FirstOrDefault(x => x.Id == text);

                var item = new TranslateItem()
                {
                    Id = text, TextRu = textInit.Value, Translated = text != textInit.Value.ToLower()
                };
                if (old == null)
                {
                    _writeOnlyRepository.Add(item, createdById);
                }
            }
            _writeOnlyRepository.Commit();
        }
示例#9
0
        private void LoadTranslation()
        {
            translate = new List<TranslateItem>();

            foreach (TranslationCategory translationCategory in neutralTranslation.GetTranslationCategories())
            {

                foreach (TranslationItem translationItem in translationCategory.GetTranslationItems())
                {
                    var translateItem = new TranslateItem
                                            {
                                                Category = translationCategory.Name,
                                                Name = translationItem.Name,
                                                Property = translationItem.Property,
                                                NeutralValue = translationItem.Value
                                            };

                    if (translator != null)
                        translateItem.TranslatedValue = translator.GetString(translationCategory.Name, translateItem.Name, translateItem.Property);

                    translate.Add(translateItem);
                }
            }

            UpdateProgress();
        }
示例#10
0
        private void LoadTranslation()
        {
            translate = new List <TranslateItem>();

            var neutralItems =
                from translationCategory in neutralTranslation.GetTranslationCategories()
                from translationItem in translationCategory.GetTranslationItems()
                select new
            {
                Category = translationCategory.Name,
                Name     = translationItem.Name,
                Property = translationItem.Property,
                Source   = translationItem.Source,
                Value    = translationItem.Value
            };
            var translationItems = translation != null ?
                                   (from translationCategory in translation.GetTranslationCategories()
                                    from translationItem in translationCategory.GetTranslationItems()
                                    select new
            {
                Category = translationCategory.Name,
                Name = translationItem.Name,
                Property = translationItem.Property,
                Source = translationItem.Source,
                Value = translationItem.Value
            }).ToList() : null;

            Dictionary <string, string> dict = new Dictionary <string, string>();

            foreach (var item in neutralItems)
            {
                var translateItem = new TranslateItem
                {
                    Category     = item.Category,
                    Name         = item.Name,
                    Property     = item.Property,
                    NeutralValue = item.Value,
                    Status       = TranslationType.New
                };

                if (translation != null)
                {
                    var curItem =
                        (from trItem in translationItems
                         where trItem.Category.TrimStart('_') == item.Category.TrimStart('_') &&
                         trItem.Name.TrimStart('_') == item.Name.TrimStart('_') &&
                         trItem.Property == item.Property
                         select trItem).FirstOrDefault();

                    if (curItem != null)
                    {
                        translateItem.TranslatedValue = curItem.Value;
                        if (curItem.Source == null || CompareSourceString(item.Value, curItem.Source))
                        {
                            if (!String.IsNullOrEmpty(curItem.Value))
                            {
                                translateItem.Status = TranslationType.Translated;
                            }
                            else
                            {
                                translateItem.Status = TranslationType.Unfinished;
                            }
                        }
                        else
                        {
                            translateItem.Status = TranslationType.Obsolete;
                        }
                        translationItems.Remove(curItem);
                        string source = curItem.Source ?? item.Value;
                        if (!String.IsNullOrEmpty(curItem.Value) && !dict.ContainsKey(source))
                        {
                            dict.Add(source, curItem.Value);
                        }
                    }
                }

                translate.Add(translateItem);
            }

            if (translationItems != null)
            {
                foreach (var item in translationItems)
                {
                    if (!String.IsNullOrEmpty(item.Value))
                    {
                        var translateItem = new TranslateItem
                        {
                            Category        = item.Category,
                            Name            = item.Name,
                            Property        = item.Property,
                            NeutralValue    = item.Source,
                            TranslatedValue = item.Value,
                            Status          = TranslationType.Obsolete
                        };

                        translate.Add(translateItem);
                        if (item.Source != null && !dict.ContainsKey(item.Source))
                        {
                            dict.Add(item.Source, item.Value);
                        }
                    }
                }
            }

            var untranlatedItems = from trItem in translate
                                   where trItem.Status == TranslationType.New &&
                                   dict.ContainsKey(trItem.NeutralValue)
                                   select trItem;

            foreach (var untranlatedItem in untranlatedItems)
            {
                untranlatedItem.Status          = TranslationType.Unfinished;
                untranlatedItem.TranslatedValue = dict[untranlatedItem.NeutralValue];
            }

            UpdateProgress();
        }
        private void translatedText_Leave(object sender, System.EventArgs e)
        {
            //Debug.Assert(translateItemInEditing != null);

            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = translatedText.Text;

                translateItemInEditing = null;
            }
        }
        private void translatedText_Enter(object sender, System.EventArgs e)
        {
            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = translatedText.Text;
            }

            translateItemInEditing = (TranslateItem)translateItemBindingSource.Current;

            if (translateItemInEditing != null)
            {
                translateItemInEditing.TranslatedValue = editingCellPrefixText.Text + " " + translateItemInEditing.TranslatedValue;
            }
        }
示例#13
0
        private void LoadTranslation()
        {
            translate = new List<TranslateItem>();

            var neutralItems =
                from translationCategory in neutralTranslation.GetTranslationCategories()
                from translationItem in translationCategory.GetTranslationItems()
                select new
                {
                    Category = translationCategory.Name,
                    Name = translationItem.Name,
                    Property = translationItem.Property,
                    Source = translationItem.Source,
                    Value = translationItem.Value
                };
            var translationItems = translation != null ?
                (from translationCategory in translation.GetTranslationCategories()
                 from translationItem in translationCategory.GetTranslationItems()
                 select new
                 {
                     Category = translationCategory.Name,
                     Name = translationItem.Name,
                     Property = translationItem.Property,
                     Source = translationItem.Source,
                     Value = translationItem.Value
                 }).ToList() : null;

            Dictionary<string, string> dict = new Dictionary<string, string>();
            foreach (var item in neutralItems)
            {
                var translateItem = new TranslateItem
                                        {
                                            Category = item.Category,
                                            Name = item.Name,
                                            Property = item.Property,
                                            NeutralValue = item.Value,
                                            Status = TranslationType.New
                                        };

                if (translation != null)
                {
                    var curItem =
                        (from trItem in translationItems
                         where trItem.Category.TrimStart('_') == item.Category.TrimStart('_') &&
                         trItem.Name.TrimStart('_') == item.Name.TrimStart('_') &&
                         trItem.Property == item.Property
                         select trItem).FirstOrDefault();

                    if (curItem != null)
                    {
                        translateItem.TranslatedValue = curItem.Value;
                        if (curItem.Source == null || CompareSourceString(item.Value, curItem.Source))
                        {
                            if (!String.IsNullOrEmpty(curItem.Value))
                                translateItem.Status = TranslationType.Translated;
                            else
                                translateItem.Status = TranslationType.Unfinished;
                        }
                        else
                            translateItem.Status = TranslationType.Obsolete;
                        translationItems.Remove(curItem);
                        string source = curItem.Source ?? item.Value;
                        if (!String.IsNullOrEmpty(curItem.Value) && !dict.ContainsKey(source))
                            dict.Add(source, curItem.Value);
                    }
                }

                translate.Add(translateItem);
            }

            if (translationItems != null)
            {
                foreach (var item in translationItems)
                {
                    if (!String.IsNullOrEmpty(item.Value))
                    {
                        var translateItem = new TranslateItem
                            {
                                Category = item.Category,
                                Name = item.Name,
                                Property = item.Property,
                                NeutralValue = item.Source,
                                TranslatedValue = item.Value,
                                Status = TranslationType.Obsolete
                            };

                        translate.Add(translateItem);
                        if (item.Source != null && !dict.ContainsKey(item.Source))
                            dict.Add(item.Source, item.Value);
                    }
                }
            }

            var untranlatedItems = from trItem in translate
                                   where trItem.Status == TranslationType.New &&
                                   dict.ContainsKey(trItem.NeutralValue)
                                   select trItem;

            foreach (var untranlatedItem in untranlatedItems)
            {
                untranlatedItem.Status = TranslationType.Unfinished;
                untranlatedItem.TranslatedValue = dict[untranlatedItem.NeutralValue];
            }

            UpdateProgress();
        }