Наследование: System.Windows.Forms.ListViewItem
Пример #1
0
        private void lvLanguageEditor_AfterLabelEdit(object sender, LabelEditEventArgs e)
        {
            if (!(sender is ListView) || !(((ListView)sender).Items[e.Item] is TranslationEntity))
            {
                return;
            }

            TranslationEntity translationEntity = lvLanguageEditor.Items[e.Item] as TranslationEntity;

            if (e.Label != null && string.Compare(e.Label.Trim(), translationEntity.Translation, StringComparison.InvariantCulture) != 0)
            {
                translationEntity.Edited          = true;
                translationEntity.Language.Edited = true;
            }
        }
Пример #2
0
        public int Compare(object x, object y)
        {
            if (orderOfSort == SortOrder.None || !(x is TranslationEntity) || !(y is TranslationEntity))
            {
                return(0);
            }

            TranslationEntity translationEntityX = (TranslationEntity)x;
            TranslationEntity translationEntityY = (TranslationEntity)y;

            int sortOrder = orderOfSort == SortOrder.Ascending ? 1 : -1;

            return(sortOrder * string.Compare(translationEntityX.SubItems[columnToSort].Text.Trim(),
                                              translationEntityY.SubItems[columnToSort].Text.Trim(),
                                              StringComparison.InvariantCulture));
        }
Пример #3
0
        private LanguageEntity(string languageFilename)
        {
            TranslationEntities = new Dictionary<string, TranslationEntity>();
            string content;

            using (StreamReader sr = new StreamReader(languageFilename))
            {
                Filename = languageFilename;
                content = sr.ReadToEnd();

                MatchCollection matches = Regex.Matches(languageFilename, LanguageFilenameRegexPattern);

                if (matches.Count != 1 || matches[0].Groups.Count != 2)
                {
                    throw new ApplicationException("Language ID not found!");
                }

                Id = matches[0].Groups[1].Value;

                matches = Regex.Matches(content, @"\$lang_name( *?)=( *?)""(.*?)""( *?);");

                if (matches.Count > 0 && matches[0].Groups.Count == 5)
                {
                    Name = matches[0].Groups[3].Value;
                    HeaderTitle = string.Format("{0} ({1})", languageFilename, Name);
                }
                else
                {
                    HeaderTitle = Name = languageFilename;
                }

                matches = Regex.Matches(content, @"\$language_pack( *?)\[( *?)'(.*?)'( *?)\]( *?)=( *?)""(.*?)""( *?);");

                foreach (Match match in matches)
                {
                    string translationId = match.Groups[3].Value.ToLower();
                    string defaulTranslation = DefaultLanguage != null &&
                                               DefaultLanguage.TranslationEntities.ContainsKey(translationId)
                                                   ? DefaultLanguage.TranslationEntities[translationId].Translation
                                                   : string.Empty;
                    TranslationEntity translation = new TranslationEntity(this, translationId, match.Groups[7].Value, defaulTranslation);

                    if (TranslationEntities.ContainsKey(translationId))
                    {
                        TranslationEntities[translationId] = translation;
                    }
                    else
                    {
                        TranslationEntities.Add(translationId, translation);
                    }
                }

                if (DefaultLanguage != null)
                {
                    foreach (TranslationEntity translationEntity in DefaultLanguage.TranslationEntities.Values)
                    {
                        if (!TranslationEntities.ContainsKey(translationEntity.TranslationId))
                        {
                            TranslationEntities.Add(translationEntity.TranslationId,
                                                    new TranslationEntity(this, translationEntity.TranslationId,
                                                                          string.Empty, translationEntity.Translation));
                        }
                    }
                }
            }
        }
Пример #4
0
        private LanguageEntity(string languageFilename)
        {
            TranslationEntities = new Dictionary <string, TranslationEntity>();
            string content;

            using (StreamReader sr = new StreamReader(languageFilename))
            {
                Filename = languageFilename;
                content  = sr.ReadToEnd();

                MatchCollection matches = Regex.Matches(languageFilename, LanguageFilenameRegexPattern);

                if (matches.Count != 1 || matches[0].Groups.Count != 2)
                {
                    throw new ApplicationException("Language ID not found!");
                }

                Id = matches[0].Groups[1].Value;

                matches = Regex.Matches(content, @"\$lang_name( *?)=( *?)""(.*?)""( *?);");

                if (matches.Count > 0 && matches[0].Groups.Count == 5)
                {
                    Name        = matches[0].Groups[3].Value;
                    HeaderTitle = string.Format("{0} ({1})", languageFilename, Name);
                }
                else
                {
                    HeaderTitle = Name = languageFilename;
                }

                matches = Regex.Matches(content, @"\$language_pack( *?)\[( *?)'(.*?)'( *?)\]( *?)=( *?)""(.*?)""( *?);");

                foreach (Match match in matches)
                {
                    string translationId     = match.Groups[3].Value.ToLower();
                    string defaulTranslation = DefaultLanguage != null &&
                                               DefaultLanguage.TranslationEntities.ContainsKey(translationId)
                                                   ? DefaultLanguage.TranslationEntities[translationId].Translation
                                                   : string.Empty;
                    TranslationEntity translation = new TranslationEntity(this, translationId, match.Groups[7].Value, defaulTranslation);

                    if (TranslationEntities.ContainsKey(translationId))
                    {
                        TranslationEntities[translationId] = translation;
                    }
                    else
                    {
                        TranslationEntities.Add(translationId, translation);
                    }
                }

                if (DefaultLanguage != null)
                {
                    foreach (TranslationEntity translationEntity in DefaultLanguage.TranslationEntities.Values)
                    {
                        if (!TranslationEntities.ContainsKey(translationEntity.TranslationId))
                        {
                            TranslationEntities.Add(translationEntity.TranslationId,
                                                    new TranslationEntity(this, translationEntity.TranslationId,
                                                                          string.Empty, translationEntity.Translation));
                        }
                    }
                }
            }
        }