Пример #1
0
        public dictCrsData getCrsData(Langs crsLang)
        {
            dictCrsData res;

            lock (this) if (!crsData.TryGetValue(crsLang, out res))
                {
                    if (!crsData.TryGetValue(crsLang, out res))
                    {
                        crsData.Add(crsLang, res = new dictCrsData(crsLang, this));
                    }
                }
            return(res);
        }
Пример #2
0
        public dictNatData(Langs natLang, dictCrsData crsData)
        {
            this.crsData = crsData; this.natLang = natLang;
            foreach (DictEntryType type in crsData.options.lingeaOnly ? XExtension.Create(DictEntryType.lingeaOld) : crsData.options.dictTypes)
            {
                switch (type)
                {
                case DictEntryType.lingeaOld:
                    string fn = Machines.rootPath + string.Format(@"RwDicts\Sources\LingeaOld\{1}_{0}.xml", crsData.crsLang, natLang);
                    if (!File.Exists(fn))
                    {
                        continue;
                    }
                    var dict = XmlUtils.FileToObject <DictObj>(fn);
                    //provazani hesla se zvukem
                    foreach (var en in dict.entries)
                    {
                        foreach (var snd in en.entry.Descendants("sound"))
                        {
                            if (snd.Value.StartsWith("@"))
                            {
                                string url;
                                if (!crsData.sounds.TryGetValue(snd.Value.Substring(1), out url))
                                {
                                    continue;
                                }
                                snd.Value = url;
                            }
                        }
                    }
                    addDictEntries(dict.entries);
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }