/// <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++; } } } }
/// <summary> /// 言語データ情報と翻訳シート情報を元に翻訳済み言語データ情報を返す。 /// </summary> /// <param name="dataInfo">言語データ情報</param> /// <param name="sheetInfo">翻訳シート情報</param> /// <param name="useMT">機械翻訳を採用する</param> /// <returns>翻訳済み言語データ情報</returns> public static CrsTransDataInfo Translate( CrsTransDataInfo dataInfo, CrsTransSheetInfo sheetInfo, bool useMT = false) { var dataFileJp = new CrsTransDataInfo(); dataFileJp.DataHeader = dataInfo.DataHeader.Clone(); foreach (var dataFile in dataInfo.Items.Values) { foreach (var entry in dataFile.Items.Values) { var sheetEntry = sheetInfo.GetEntry(dataFile.AssetName, entry.TranslationId); if (sheetEntry != null) { var entryJp = entry.GetTranslatedEntry( entry.TranslationText, sheetEntry.Japanese, sheetEntry.MTrans, useMT); dataFileJp.AddEntry(dataFile.FileName, dataFile.AssetName, entryJp); } } } return(dataFileJp); }
private static void MakeSheet(TOptions.TArgs opt) { var dataInfo = new CrsTransDataInfo(); CrsTransDataDao.LoadFromFolder( dataInfo, opt.FolderNameLangInput); CrsTransSheetDao.SaveToFile(dataInfo, opt.FileNameSheet); }
private static void MakeMod(TOptions.TArgs opt) { var dataInfo = new CrsTransDataInfo(); CrsTransDataDao.LoadFromFile( dataInfo, opt.FileNameInput, string.Empty); var sheetInfo = new CrsTransSheetInfo(); CrsTransSheetDao.LoadFromFile( sheetInfo, opt.FileNameSheet); var translatedInfo = CrsTranslation.Translate(dataInfo, sheetInfo, opt.UseMachineTrans); CrsTransDataDao.SaveToFile(opt.FileNameOutput, translatedInfo); }