/// <summary> /// 指定されたフォルダーの言語データを読み込み、言語情報に格納する。 /// </summary> /// <param name="langInfo">言語情報</param> /// <param name="folderPath">言語情報を読み込むフォルダーのパス</param> public static void LoadFromFolder(SuLanguageInfo langInfo, string folderPath) { var fullPath = Path.GetFullPath(folderPath); var di = new DirectoryInfo(fullPath); var files = di.GetFiles("*.xml", SearchOption.AllDirectories); foreach (var f in files) { if (!Path.GetExtension(f.FullName).Equals( ".xml", StringComparison.InvariantCultureIgnoreCase)) { continue; } var episodeID = GetEpisodeID(f.FullName); var fileType = GetFileType(f.FullName); if (fileType == SuLanguageFile.NFileType.None) { Console.WriteLine($"Warning: Unsupported file({fullPath})"); } else { LoadFromXml(langInfo, episodeID, fileType, f.FullName); } } }
/// <summary> /// 指定されたXMLファイルを読み込み、言語情報に格納する。 /// </summary> /// <param name="langInfo">言語情報</param> /// <param name="episodeID">EpisodeID</param> /// <param name="fileType">FileType</param> /// <param name="path">XMLファイルのパス</param> public static void LoadFromXml( SuLanguageInfo langInfo, string episodeID, SuLanguageFile.NFileType fileType, string path) { var langFile = new SuLanguageFile(episodeID, fileType); langInfo.AddFile(langFile); var xml = XDocument.Load(path); XElement table = null; if (langFile.FileKey.Equals("E04:UI", StringComparison.OrdinalIgnoreCase)) { //// E04のUI.xmlのみUIではなく DIALOGUE var fileTypeString = langFile.GetFileTypeStrint(SuLanguageFile.NFileType.Dialog); table = xml.Element(fileTypeString); } else { table = xml.Element(langFile.FileTypeString); } var rows = table.Elements("txt"); foreach (var row in rows) { var attr = row.Attribute("id"); var id = attr.Value; var text = row.Value; var entry = new SuLanguageEntry(id, text); langFile.AddEntry(entry); } }