Exemplo n.º 1
0
        /// <summary>
        /// StringTableを読み込み、言語ファイルを返す。
        /// 言語ファイルにファイル履歴の枠組みを作成し設定する。
        /// </summary>
        /// <param name="path">StringTableファイルのパス</param>
        /// <param name="productLine">製品区分</param>
        /// <param name="fileID">FileID</param>
        /// <returns>言語ファイル</returns>
        public static MieLanguageFile LoadFromXml(string path, MieProduct.NProductLine productLine, out string fileID)
        {
            //// StringTableの読み込み
            var stringTableFile = StringTableFile.Load(path);
            //// ファイル履歴の作成
            MieLanguageHistoryFile mieLanguageHistoryFile = new MieLanguageHistoryFile(stringTableFile.Name);

            //// FileIDを統一形式に変換する。
            fileID = MieFileUtils.ConvertFileIDToCommon(stringTableFile.Name);
            var commonFileID = MieStringUtils.NormalizedFileID(fileID);
            var fileCode     = MieHashTools.ComputeFileID(commonFileID);

            var mieLanguageFile = new MieLanguageFile(fileCode);

            stringTableFile
            .Entries
            .ForEach(entry =>
            {
                var referenceID      = MieTranslationLib.MieUtils.MieHashTools.ComputeReferenceID(stringTableFile.Name, entry.ID);
                var mieLanguageEntry = new MieLanguageEntry(entry.ID, entry.DefaultText, entry.FemaleText, productLine, referenceID);
                mieLanguageFile.AddEntry(mieLanguageEntry);
            });

            return(mieLanguageFile);
        }
Exemplo n.º 2
0
        public static void LoadFromSystemDB(MieSystemDB systemDB, MieLanguageInfo langInfo)
        {
            SQLiteCommand command = systemDB.Connection.CreateCommand();

            command.CommandText = @"SELECT * FROM LanguageEntries ORDER BY FileCode;";
            using (SQLiteDataReader reader = command.ExecuteReader())
            {
                while (reader.Read() == true)
                {
                    var fileCode     = (long)reader["FileCode"];
                    var id           = (int)(long)reader["ID"];
                    var referenceID  = (long)reader["ReferenceID"];
                    var defaultText  = (string)reader["DefaultText"];
                    var femaleText   = (string)reader["FemaleText"];
                    var xProductLine = (long)reader["ProductLine"];
                    var xUpdatedAt   = (long)reader["UpdatedAt"];

                    MieProduct.NProductLine productLine = (MieProduct.NProductLine)Enum.ToObject(typeof(MieProduct.NProductLine), xProductLine);
                    DateTime updateAt = new DateTime(xUpdatedAt);

                    MieLanguageEntry langEntry = new MieLanguageEntry(id, defaultText, femaleText, productLine, referenceID, updateAt);
                    langInfo.AddFileEntry(fileCode, langEntry);
                }
            }
        }
        /// <summary>
        /// 履歴に言語エントリーを追加する。
        /// </summary>
        /// <param name="entry">言語エントリー</param>
        public void Archibe(MieLanguageEntry entry)
        {
            //// ファイル履歴からエントリー履歴を取り出す。
            var history = this.items[entry.ID];

            //// エントリー履歴に追加する。
            history.AddEntry(entry);
            //// エントリー履歴を
            this.languageArchiber.ArchibeHistory(history);
        }
        public void AddEntry(MieLanguageEntry entry)
        {
            DateTime updateat = DateTime.UtcNow;

            this.items.Add(updateat, entry);
        }