Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 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);
            }
        }