示例#1
0
        public void AddTranslationCategory(TranslationCategory translationCategory)
        {
            if (string.IsNullOrEmpty(translationCategory.Name))
                new InvalidOperationException("Cannot add translationCategory without name");

            translationCategories.Add(translationCategory);
        }
示例#2
0
        public void AddTranslationCategory(TranslationCategory translationCategory)
        {
            if (string.IsNullOrEmpty(translationCategory.Name))
            {
                new InvalidOperationException("Cannot add translationCategory without name");
            }

            translationCategories.Add(translationCategory);
        }
示例#3
0
 public TranslationCategory FindOrAddTranslationCategory(string translationCategory)
 {
     TranslationCategory tc = GetTranslationCategory(translationCategory);
     if (tc == null)
     {
         tc = new TranslationCategory(translationCategory);
         AddTranslationCategory(tc);
     }
     return tc;
 }
示例#4
0
        public TranslationCategory FindOrAddTranslationCategory(string translationCategory)
        {
            TranslationCategory tc = GetTranslationCategory(translationCategory);

            if (tc == null)
            {
                tc = new TranslationCategory(translationCategory);
                AddTranslationCategory(tc);
            }
            return(tc);
        }
示例#5
0
        public void TranslateControl(object controlToTranslate)
        {
            if (Translator.translation == null)
            {
                return;
            }

            string name;

            if (controlToTranslate is Control)
            {
                name = ((Control)controlToTranslate).Name;
            }
            else
            {
                name = controlToTranslate.GetType().Name;
            }

            if (!Translator.translation.HasTranslationCategory(name))
            {
                return;
            }

            TranslationCategory translationCategory = Translator.translation.GetTranslationCategory(name);

            foreach (TranslationItem translationItem in translationCategory.GetTranslationItems())
            {
                object subControl = null;

                if (translationItem.Name.Equals("$this"))
                {
                    subControl = controlToTranslate;
                }
                else
                {
                    FieldInfo fieldInfo = controlToTranslate.GetType().GetField(translationItem.Name, BindingFlags.NonPublic | BindingFlags.Instance);
                    if (fieldInfo != null)
                    {
                        subControl = fieldInfo.GetValue(controlToTranslate);
                    }
                }

                if (subControl == null)
                {
                    continue;
                }

                PropertyInfo propertyInfo = subControl.GetType().GetProperty(translationItem.Property, BindingFlags.Public | BindingFlags.Instance);
                if (propertyInfo != null)
                {
                    propertyInfo.SetValue(subControl, translationItem.Value, null);
                }
            }
        }
示例#6
0
        public string TranslateItem(string category, string item, string property, string defaultValue)
        {
            TranslationCategory tc = GetTranslationCategory(category);

            if (tc == null)
            {
                return(defaultValue);
            }
            TranslationItem ti = tc.GetTranslationItem(item, property);

            return(ti == null || string.IsNullOrEmpty(ti.Value) ? defaultValue : ti.Value);
        }
示例#7
0
        public string TranslateItem(string category, string item, string property, string defaultValue)
        {
            TranslationCategory tc = GetTranslationCategory(category);

            if (tc == null)
            {
                return(defaultValue);
            }
            TranslationItem ti = tc.GetTranslationItem(item, property);

            if (ti == null)
            {
                return(defaultValue);
            }
            else
            {
                return(ti.Value);
            }
        }
示例#8
0
        public string GetString(string category, string control, string property)
        {
            if (Translator.translation == null)
            {
                return(null);
            }
            if (!Translator.translation.HasTranslationCategory(category))
            {
                return(null);
            }


            TranslationCategory translationCategory = Translator.translation.GetTranslationCategory(category);

            if (!translationCategory.HasTranslationItem(control, property))
            {
                return(null);
            }

            return(translationCategory.GetTranslationItem(control, property).Value);
        }
示例#9
0
 private IEnumerable<TranslationItemWithCategory> GetCategoryItems(TranslationCategory filter)
 {
     var filterTranslate = translationItems.Where(
         translateItem => filter == null || filter.Name.Equals(translateItem.Category)).
         Where(
             translateItem =>
             translateItem.Status != TranslationType.Obsolete &&
             (!hideTranslatedItems.Checked || string.IsNullOrEmpty(translateItem.TranslatedValue)));
     return filterTranslate;
 }
示例#10
0
        private void FillTranslateGrid(TranslationCategory filter)
        {
            if (translationItems == null)
                return;

            translateItemBindingSource.DataSource = null;

            if (filter == allCategories)
                filter = null;

            translateItemBindingSource.DataSource = GetCategoryItems(filter).ToList();

            UpdateProgress();
        }
示例#11
0
        private void FillTranslateGrid(TranslationCategory filter)
        {
            if (translate == null)
                return;

            translateItemBindingSource.DataSource = null;

            var filterTranslate = translate.Where(translateItem => filter == null || filter == allCategories || filter.Name.Equals(translateItem.Category)).Where(translateItem => !hideTranslatedItems.Checked || string.IsNullOrEmpty(translateItem.TranslatedValue)).ToList();

            translateItemBindingSource.DataSource = filterTranslate;

            UpdateProgress();
        }
示例#12
0
 private IEnumerable<TranslationItemWithCategory> GetCategoryItems(TranslationCategory filter)
 {
     var filteredByCategory = translationItems.Where(
         translateItem => filter == null || filter.Name.Equals(translateItem.Category));
     var filteredItems = filteredByCategory.Where(
             translateItem =>
                 {
                     if (translateItem.Status == TranslationType.Obsolete)
                         return false;
                     if (!hideTranslatedItems.Checked)
                         return true;
                     return translateItem.Status != TranslationType.Translated;
                 });
     return filteredItems;
 }