Пример #1
0
        private Dictionary <string, string> GetTranslations()
        {
            Dictionary <string, string> translations = new Dictionary <string, string>();

            foreach (string line in TranslationTexts.Lines())
            {
                string[] parts = line.Split('\t');
                if (parts.Length == 2)
                {
                    string key = parts[0].TrimEnd().TrimStart();
                    if (!translations.ContainsKey(key))
                    {
                        translations.Add(key, parts[1].TrimEnd().TrimStart());
                    }
                }
                else if (!string.IsNullOrEmpty(parts[0]))
                {
                    string key = parts[0].TrimEnd().TrimStart();
                    if (!translations.ContainsKey(key))
                    {
                        translations.Add(key, "");
                    }
                }
            }
            return(translations);
        }
Пример #2
0
        private void ParseTranslations()
        {
            Dictionary <string, string> translations = new Dictionary <string, string>();

            bool   getNextFind    = false;
            string findLine       = null;
            bool   getNextReplace = false;
            string replaceLine    = null;

            foreach (string line in TranslationTexts.Lines())
            {
                if (line.StartsWith("FIND"))
                {
                    getNextFind = true;
                }
                else if (getNextFind)
                {
                    findLine    = line;
                    getNextFind = false;
                }
                else if (line.StartsWith("REPLACE"))
                {
                    getNextReplace = true;
                }
                else if (getNextReplace)
                {
                    replaceLine    = line;
                    getNextReplace = false;

                    string[] findParts    = findLine.Split(',');
                    string[] replaceParts = replaceLine.Split(',');
                    for (int i = 0; i < findParts.Length; i++)
                    {
                        if (!translations.ContainsKey(findParts[i].TrimEnd().TrimStart()))
                        {
                            translations.Add(findParts[i].TrimEnd().TrimStart(),
                                             replaceParts[i].TrimEnd().TrimStart());
                        }
                    }
                }
            }

            StringBuilder         sb = new StringBuilder();
            TranslationCollection translationLists = new TranslationCollection();

            foreach (var key in translations.Keys.OrderBy(k => k))
            {
                string value = translations[key];
                sb.Append(key);
                sb.Append('\t');
                sb.AppendLine(value);

                translationLists.Add(new Translation(key, value));
            }

            Translations     = translationLists;
            TranslationTexts = sb.ToString();
        }