Exemple #1
0
        public TranslatedResource getResources(Dictionary <string, string> fnames)
        {
            TranslatedResource result = new TranslatedResource();

            result.basepath = basepath;

            foreach (string lang in fnames.Keys)
            {
                result.LoadXML(lang, fnames[lang]);
            }

            return(result);
        }
Exemple #2
0
        public void LoadXML(string filename)
        {
            XmlDocument xml = new XmlDocument();

            xml.Load(filename);

            XmlNode n = xml.SelectSingleNode("/root/basepath");

            this.basepath = n.Attributes["name"].Value;
            basepath      = new Regex("[/\\\\]+$").Replace(basepath, "");

            XmlNodeList nl = xml.SelectNodes("/root/resource");

            foreach (XmlNode r in nl)
            {
                TranslatedResource tr = new TranslatedResource();
                tr.basepath = basepath;

                string b = r.Attributes["base"].Value;
                if (b.IndexOf(basepath) == 0)
                {
                    b = b.Remove(0, basepath.Length);
                }

                XmlNode f = r.SelectSingleNode("files");
                foreach (XmlNode l in f.SelectNodes("file"))
                {
                    string lang = l.Attributes["lang"].Value;
                    tr.files[lang] = l.FirstChild.InnerText;
                    if (tr.files[lang].IndexOf(basepath) == 0)
                    {
                        tr.files[lang] = tr.files[lang].Remove(0, basepath.Length);
                    }
                }

                foreach (XmlNode k in r.SelectNodes("key"))
                {
                    string        key = k.Attributes["value"].Value;
                    TranslatedKey tk  = new TranslatedKey();
                    foreach (XmlNode t in k.ChildNodes)
                    {
                        string lang = t.Attributes["lang"].Value;
                        tk.Translations[lang] = t.InnerText;
                    }
                    tr.TranslatedKey[key] = tk;
                }

                Resources[b] = tr;
            }
        }
Exemple #3
0
        private void listViewAdd(string fname, TranslatedResource dict, string filter = ".*")
        {
            List <ListViewItem> lvi = new List <ListViewItem>();

            try
            {
                foreach (KeyValuePair <string, TranslatedKey> pair in dict.TranslatedKey)
                {
                    RegexOptions options = (searchcaseBox.Checked) ? RegexOptions.None : RegexOptions.IgnoreCase;

                    bool matched = Regex.Match(pair.Key.ToString(), filter, options).Success;

                    foreach (string lang in displayedLanguages)
                    {
                        if (pair.Value.Translations.ContainsKey(lang))
                        {
                            matched |= Regex.Match(pair.Value.Translations[lang].ToString(), filter, options).Success;
                        }
                    }

                    if (!matched)
                    {
                        continue;
                    }

                    // populate listview
                    ListViewItem item = new ListViewItem(new string[] { fname, pair.Key.ToString() });
                    foreach (string lang in displayedLanguages)
                    {
                        ListViewItem.ListViewSubItem subitem = item.SubItems.Add("");
                        subitem.Name = lang;
                    }

                    item.Tag = pair.Value;  // speichere Zeiger auf TranslatedKey im Item-Tag
                    item.UseItemStyleForSubItems = false;
                    UpdateItem(item);
                    lvi.Add(item);
                }
                listView1.Items.AddRange(lvi.ToArray());    // viel schneller als einzelnes Hinzufügen!
            }
            catch (Exception e)
            {
            }
        }