LanguageEditor.LanguageEntity.Save C# (CSharp) Method

Save() public method

public Save ( ) : void
return void
        public void Save()
        {
            string emptyLanguage = EmptyLanguagePhp.Replace("%LANGNAME%", Name);

            List<string[]> langVarRows = new List<string[]>(TranslationEntities.Count);
            int langVarNameMaxLen = 0;

            foreach (KeyValuePair<string, TranslationEntity> translationKeyValuePairEntity in TranslationEntities)
            {
                string langVarValue = translationKeyValuePairEntity.Value.Translation;

                if (string.IsNullOrEmpty(langVarValue) || langVarValue.Trim().Length == 0)
                {
                    continue;
                }

                string langVarName = string.Format("$language_pack['{0}']", translationKeyValuePairEntity.Key);

                int langVarNameLen = langVarName.Length;

                if (langVarNameMaxLen < langVarNameLen)
                {
                    langVarNameMaxLen = langVarNameLen;
                }

                langVarRows.Add(new[] { langVarName, langVarValue });
            }

            StringBuilder sb = new StringBuilder();

            foreach (string[] langVarRow in langVarRows)
            {
                sb.AppendLine(string.Format("{0} = \"{1}\";", langVarRow[0].PadRight(langVarNameMaxLen), langVarRow[1]));
            }

            emptyLanguage = emptyLanguage.Replace("%LANGPACKROWS%", sb.ToString());

            using (StreamWriter sw = new StreamWriter(Filename, false, Encoding.UTF8))
            {
                sw.Write(emptyLanguage);
            }

            Edited = false;

            foreach (TranslationEntity translationEntity in TranslationEntities.Values)
            {
                translationEntity.Edited = false;
            }
        }