/// <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); }
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); }