/// <summary> /// 言語情報から翻訳シート(CSV形式)を保存する。 /// </summary> /// <param name="langInfo">言語情報</param> /// <param name="path">CSV形式の翻訳シートのパス</param> public static void SaveToCsv(SuLanguageInfo langInfo, string path) { using (var sw = new StreamWriter(path, false, Encoding.UTF8)) { using (var csv = new CsvWriter(sw)) { csv.Configuration.RegisterClassMap <CsvMapper>(); csv.WriteHeader <SuTransSheetEntry>(); csv.NextRecord(); foreach (var langFile in langInfo.Items.Values) { var sequence = 0; foreach (var langEntry in langFile.Items.Values) { var sheetEntry = new SuTransSheetEntry(); sheetEntry.EpisodeID = langFile.EpisodeID; sheetEntry.FyleType = langFile.FileType.ToString(); sheetEntry.ID = langEntry.ID; sheetEntry.Type = langEntry.Type; sheetEntry.English = langEntry.Text; sheetEntry.Japanese = string.Empty; sheetEntry.Sequence = sequence; csv.WriteRecord(sheetEntry); csv.NextRecord(); sequence++; } } } } }
/// <summary> /// 翻訳シートエントリーを追加する。 /// </summary> /// <param name="episodeID">EpisodeID</param> /// <param name="entry">翻訳シートエントリー</param> public void AddEntry(string episodeID, SuTransSheetEntry entry) { if (this.Items.ContainsKey(episodeID)) { var transSheetFile = this.Items[episodeID]; transSheetFile.AddEntry(entry); } else { //// 翻訳シートファイルが存在しない場合は新たに作成する。 var transSheetFile = new SuTransSheetFile(); transSheetFile.AddEntry(entry); this.Items.Add(episodeID, transSheetFile); } }