/// <summary> /// ローカライズ情報(英語版)と翻訳シート情報(Localization)を使用し、翻訳を行い、 /// 翻訳済みDialog情報を返す。 /// </summary> /// <param name="transSheetLocalizationInfo">翻訳シート情報(Localization)</param> /// <param name="localizationInfoEN">ローカライズ情報(英語版)</param> /// <param name="langNo">言語番号</param> /// <param name="useMT">機械翻訳の使用有無</param> /// <returns>翻訳済みローカライズ情報</returns> public static UapLocalizationInfo TranslateLocalization( UapTransSheetLocalizationInfo transSheetLocalizationInfo, UapLocalizationInfo localizationInfoEN, int langNo, bool useMT) { var localizationInfoJP = new UapLocalizationInfo(); //// ローカライズファイル(英語版)を元に翻訳を行い、ローカライズファイル(日本語版)を作成する。 foreach (var localizationFileEN in localizationInfoEN.Items.Values) { //// ローカライズファイル(英語版)のクローンを作成し、ローカライズファイル(日本語版)の雛形とする。 var localizationFileJP = localizationFileEN.Clone(); localizationInfoJP.AddFile(localizationFileJP); foreach (var localizationEntryJP in localizationFileJP.Items.Values) { //// 該当エントリの翻訳シートエントリーを取得。 UapTransSheetLocalizationEntry sheetEntry = transSheetLocalizationInfo.GetEntry( localizationFileEN.FileID, localizationEntryJP.ID); //// 言語エントリーを翻訳 if (localizationEntryJP.LanguageEntries.ContainsKey(langNo)) { localizationEntryJP.LanguageEntries[langNo] = GetTranslatedText( localizationEntryJP.LanguageEntries[langNo], sheetEntry.Japanese, sheetEntry.MTrans, useMT); } else { Console.WriteLine($"Warning: LangNo not found. LangNo({langNo}) ID({localizationEntryJP.ID}) FileID({localizationFileJP.FileID})"); } } } return(localizationInfoJP); }
private static void SaveLocalize(TOptions.TArgs opt) { //// 翻訳シートの読み込み var sheetLocalizationInfo = new UapTransSheetLocalizationInfo(); string locPath = opt.FileNameSheet; UapTransSheetLocalizationDao.LoadFromCsv(sheetLocalizationInfo, locPath); //// 言語情報(原文)の読み込み var localizationInfoEN = new UapLocalizationInfo(); UapLocalizationDao.LoadFromFolder( localizationInfoEN, opt.FolderNameInput, "*.LocalizationReference"); //// 翻訳済み言語情報の作成 var localizationInfoJP = UapTranslation.TranslateLocalization(sheetLocalizationInfo, localizationInfoEN, opt.LanguageNo, opt.UseMachineTrans); UapLocalizationDao.SaveToFolder(opt.FolderNameOutput, localizationInfoJP, opt.UseReplace); }