예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        /// <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);
            }
        }