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; } }
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)); }
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)); } } } } }
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)); } } } } }