Пример #1
0
        private static void MakeCsv(TOptions.TArgs opt)
        {
            var langInfo = new PfkLanguageInfo();

            //// 原文を読み込み言語情報を作成する。
            PfkLanguageDao.LoadFromFile(langInfo, opt.FileNameLangInput);

            //// 言語情報から翻訳シートを出力する。制御文字はタグ化する。
            if (opt.RowsPerSheet > 0)
            {
                //// シートを分割する。
                var dir      = Path.GetDirectoryName(Path.GetFullPath(opt.FileNameSheet));
                var fileName = Path.GetFileNameWithoutExtension(opt.FileNameSheet);

                int total = langInfo.GetEntryCountWithoutEmpty();
                var count = total / opt.RowsPerSheet;
                for (var i = 0; i < count + 1; i++)
                {
                    var path = Path.Combine(dir, $"{fileName}_{i + 1}.csv");
                    var from = i * opt.RowsPerSheet;
                    var to   = (i * opt.RowsPerSheet) + opt.RowsPerSheet - 1;
                    PfkTransSheetDao.SaveToCsv(
                        langInfo, path, from, to, opt.UseTag);
                }
            }
            else
            {
                //// シートを分割しない。
                PfkTransSheetDao.SaveToCsv(
                    langInfo, opt.FileNameSheet, 0, 9999999, opt.UseTag);
            }
        }
Пример #2
0
        private static void MakeExcel(TOptions.TArgs opt)
        {
            var langInfo = new PfkLanguageInfo();

            PfkLanguageDao.LoadFromFile(langInfo, opt.FileNameLangInput);

            var fanInfo = new PfkLanguageInfo();

            if (!string.IsNullOrWhiteSpace(opt.FileNameFanInput))
            {
                //// 有志翻訳版の言語情報を作成する。
                PfkLanguageDao.LoadFromFile(fanInfo, opt.FileNameFanInput);
            }

            //// UMM対応版データを読み込む。
            var ummDataInfo = new PfkUmmDataInfo();

            if (!string.IsNullOrEmpty(opt.FileNameUmm))
            {
                PfkUmmDataDao.LoadFromCsv(ummDataInfo, opt.FileNameUmm);
            }

            PfkTransSheetDao.SaveToExcel(
                langInfo, fanInfo, ummDataInfo, opt.FileNameSheet, opt.RowsPerSheet, opt.UseTag);
        }
Пример #3
0
        private static void MakeMod(TOptions.TArgs opt)
        {
            //// 用語集の読み込み
            PfkGlossaryInfo glossaryInfo = null;

            if (string.IsNullOrWhiteSpace(opt.FileNameGlossary))
            {
                glossaryInfo = new PfkGlossaryInfo();
            }
            else
            {
                glossaryInfo = PfkGlossaryDao.LoadFromCsv(opt.FileNameGlossary);
            }

            //// 翻訳シートを読み込む
            var sheetInfo = new PfkTransSheetInfo();
            var fileID    = "enGB";

            switch (opt.SheetType)
            {
            case TOptions.NSheetType.Unknown:
                break;

            case TOptions.NSheetType.SingleFile:
                //// タグの制御文字への変換は副作用がないため、必ず実行する。
                PfkTransSheetDao.LoadFromFile(sheetInfo, opt.FileNameSheet, fileID, true);
                break;

            case TOptions.NSheetType.MultiFile:
                PfkTransSheetDao.LoadFromFolder(sheetInfo, opt.FileNameSheet, fileID, true);
                break;

            default:
                throw new Exception($"Unknown error. Sheet type({opt.SheetType})");
            }

            if (opt.UseUnityModMan)
            {
                //// UMM形式のCSVファイルを出力する(タグは制御文字に変換する)。
                PfkUmmDataDao.SaveToUmmFile(
                    opt.FileNameInput,
                    sheetInfo,
                    glossaryInfo,
                    opt.FileNameOutput,
                    opt.UseReferenceId,
                    opt.UseMachineTrans,
                    opt.MtransMark,
                    opt.UseForceMt);
            }
            else
            {
                //// 翻訳済みJSONファイルを出力する(タグは制御文字に変換する)。
                PfkLanguageDao.SaveToFile(
                    opt.FileNameInput,
                    sheetInfo,
                    glossaryInfo,
                    opt.FileNameOutput,
                    opt.UseReferenceId,
                    opt.UseMachineTrans,
                    opt.MtransMark,
                    opt.UseForceMt);
            }
        }