public dictCrsData(Langs crsLang, dictOptions options) { this.options = options; this.crsLang = crsLang; var formsFn = string.Format(Machines.rootPath + @"RwDicts\Forms\{0}forms_{1}.xml", options.lingeaOnly ? "ling_" : null, crsLang); try { forms = LookupLib.fromStrings(File.ReadAllLines(formsFn)); } catch { throw; } sounds = options.sounds[crsLang]; }
public static void DictForCourses() { //dictOptions options = new dictOptions() { forAllCourses = true, lingeaOnly = false, dictTypes = new DictEntryType[] { DictEntryType.lingeaOld} }; dictOptions options = new dictOptions() { FriendlyId = CourseMeta.dictTypes.L, forAllCourses = false, lingeaOnly = true }; Parallel.ForEach(DictLib.crsLangs, //.Where(l => l == Langs.de_de), //new ParallelOptions { MaxDegreeOfParallelism = 1 }, lng => DictForCourses(lng, CommonLib.bigLocalizations, //.Where(l => l == Langs.bg_bg), XmlUtils.FileToObject <DictCrsWords>(string.Format(Machines.rootPath + @"RwDicts\UsedWords\CourseWords_{0}.xml", lng)), options) ); }
//************ slovniky ke kurzum static void DictForCourses(Langs crsLang, IEnumerable <Langs> natLangs, DictCrsWords langCrs, dictOptions options) { //dictCrsData crsData = options.getCrsData(crsLang); //if (options.forAllCourses) { // //jeden slovnik pro cely kurz // var wordForms = crsData.getWordsForms(langCrs.exs.SelectMany(e => e.normalized.Split(' ')).Distinct().OrderBy(w => w)); //.SelectMany(s => jsCompatibleWordWrap(s)).Distinct()); //.Where(w => w == "abbreviations")); // Parallel.ForEach(natLangs.Where(n => n != crsLang), // //new ParallelOptions { MaxDegreeOfParallelism = 1 }, // natLang => { // dictNatData natData = crsData.getNatData(natLang); // var dict = natData.dictForText(wordForms, null); // if (dict == null) return; // EADeployLib.writeFile( // @"d:\temp\", // crsLang.ToString() + ".json", // natLang, // JsonConvert.SerializeObject(dict, Newtonsoft.Json.Formatting.Indented, EADeployLib.jsonSet), // true); // }); //} else { // //pro kazdy modul jeden slovnik // var mods = langCrs.exs.GroupBy(e => e.modId).Select(g => new { jsonId = g.Key, exs = g.ToArray(), isGramm = g.Key.StartsWith(grammSpace) }).ToArray(); // Parallel.ForEach(natLangs.Where(n => n != crsLang), // //new ParallelOptions { MaxDegreeOfParallelism = 1 }, // natLang => { // dictNatData natData = crsData.getNatData(natLang); // List<string> notFound = new List<string>(); // foreach (var mod in mods) { // //if (mod.jsonId != "russian2_xlesson5_schapterc_shome_dhtm") continue; // var words = crsData.getWordsForms(mod.exs.SelectMany(testEx => testEx.normalized.Split(' ')).Distinct().OrderBy(w => w)); //.SelectMany(s => jsCompatibleWordWrap(s)).Distinct()); // //HashSet<string> wordsSet = new HashSet<string>(words); // var dict = natData.dictForText(words, null); // if (dict == null) continue; // var dirName = mod.isGramm ? "EAGrammar" : "EAData"; // var modId = mod.isGramm ? mod.jsonId.Replace(grammSpace, null) : mod.jsonId; // var modDir = Machines.basicPath + @"rew\Web4\Schools\" + dirName + @"\"; // EADeployLib.writeFile( // modDir, // modId + "_" + options.FriendlyId + ".json", // natLang, // JsonConvert.SerializeObject(dict, Newtonsoft.Json.Formatting.Indented, EADeployLib.jsonSet), // true); // //info propName zvukovych souborech // File.WriteAllLines( // modDir + natLang.ToString().Replace('_', '-') + @"\" + modId + "_" + options.FriendlyId + ".txt", // dict.sounds); // notFound.AddRange(dict.notFound); // //dict.Entries.SelectMany(e => e.Value.soundFiles.Where(s => !string.IsNullOrEmpty(s)).Select(s => @"RwDicts\LingeaSound\" + s + ".mp3")).Distinct()); // } // File.WriteAllLines(string.Format(@"d:\LMCom\rew\Web4\RwDicts\NotFounds\{0}_{1}_{2}.txt", natLang, crsLang, options.FriendlyId), notFound.OrderBy(w => w)); // }); //} }