/// <summary> /// 初始化语言列表 /// </summary> private void InitList() { String path = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), LangueDir); String[] flies = System.IO.Directory.GetFiles(path, "*.lng"); List <LangInfo> list = new List <LangInfo>(); foreach (var file in flies) { using (var sr = new StreamReader(file, System.Text.Encoding.UTF8)) { int flagCount = 0; var info = new LangInfo(); info.FileFullName = file; info.LCID = -1; do { string line = sr.ReadLine(); if (string.IsNullOrEmpty(line) || line.StartsWith("//")) { continue; } var temp = line.Split('='); switch (temp[0]) { case "FileVersion": if (temp[1] == Ver) { flagCount++; } break; case "Language": info.DisplayName = temp[1]; flagCount++; break; case "LanguageID": info.LCID = int.Parse(temp[1]); flagCount++; break; case "Font": info.Font = temp[1]; flagCount++; break; default: break; } } while (flagCount < 4 && !sr.EndOfStream); if (flagCount == 4) { list.Add(info); } } } LangList = list; }
/// <summary> /// 设置当前语言 /// </summary> /// <param name="lang">要使用的语言的信息</param> public void SetCurrentWords(LangInfo lang) { CurrentWords = new Dictionary <string, string>(); CurrentLang = lang; using (var sr = new StreamReader(CurrentLang.FileFullName, System.Text.Encoding.UTF8)) { while (!sr.EndOfStream) { string line = sr.ReadLine(); if (string.IsNullOrEmpty(line) || line.StartsWith("//")) { continue; } var temp = line.Split('='); switch (temp[0]) { case "FileVersion": case "Language": case "LanguageID": case "Font": break; default: currentWord.Add(temp[0], temp[1]); break; } } } }