LanguageEditor.LanguageEntity.LanguageEntity C# (CSharp) Method

LanguageEntity() private method

private LanguageEntity ( string languageFilename ) : System
languageFilename string
return System
        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));
                        }
                    }
                }
            }
        }

Same methods

LanguageEntity::LanguageEntity ( ) : System