/// <summary> /// 言語エントリーを追加する。 /// </summary> /// <param name="langEntry">言語エントリー</param> public void AddEntry(SuLanguageEntry langEntry) { if (this.Items.ContainsKey(langEntry.ID)) { throw new Exception($"Duplicate key({langEntry.ID})"); } else { this.Items.Add(langEntry.ID, langEntry); } }
/// <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); } }