/// <summary>
        /// 言語データ情報からCSVファイルを作成する。
        /// </summary>
        /// <param name="dataInfo">言語データ情報</param>
        /// <param name="path">CSV形式の翻訳シート</param>
        /// <param name="enc">文字コード</param>
        public static void SaveToFile(
            CrsTransDataInfo dataInfo, string path, Encoding enc = null)
        {
            using (var writer = new CsvWriter(
                       new StreamWriter(path, false, Encoding.UTF8)))
            {
                writer.Configuration.RegisterClassMap <CsvMapper>();
                writer.WriteHeader <CrsTransSheetEntry>();
                writer.NextRecord();

                foreach (var dataFile in dataInfo.Items.Values)
                {
                    int no = 0;
                    foreach (var dataEntry in dataFile.Items.Values)
                    {
                        var sheetEntry = new CrsTransSheetEntry(
                            dataFile.AssetName,
                            no,
                            dataEntry.TranslationId,
                            dataEntry.TranslationText,
                            string.Empty,
                            string.Empty,
                            dataEntry.HumanlyReadableDate);

                        writer.WriteRecord(sheetEntry);
                        writer.NextRecord();

                        no++;
                    }
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// 翻訳シートエントリーを追加する。
 /// </summary>
 /// <param name="sheetEntry">翻訳シートエントリー</param>
 public void AddEntry(CrsTransSheetEntry sheetEntry)
 {
     if (this.Items.ContainsKey(sheetEntry.EntryID))
     {
         //// キーが重複している場合は例外を発生させる。
         throw new Exception($"Duplucate ID({sheetEntry.EntryID})");
     }
     else
     {
         this.Items.Add(sheetEntry.EntryID, sheetEntry);
     }
 }
Beispiel #3
0
 /// <summary>
 /// 翻訳シートエントリーを追加する。
 /// </summary>
 /// <param name="assetName">アセット名</param>
 /// <param name="sheetEntry">翻訳シートエントリー</param>
 public void AddEntry(string assetName, CrsTransSheetEntry sheetEntry)
 {
     if (this.Items.ContainsKey(assetName))
     {
         //// 既に登録済みに場合は翻訳シートファイルに追加する。
         var sheetFile = this.Items[assetName];
         sheetFile.AddEntry(sheetEntry);
     }
     else
     {
         //// 翻訳シートファイルが未登録の場合は新規に作成し、
         //// 翻訳シートエントリーを追加する。
         var sheetFile = new CrsTransSheetFile(assetName);
         sheetFile.AddEntry(sheetEntry);
         this.Items.Add(sheetFile.AssetName, sheetFile);
     }
 }