/// <summary> /// 指定したフォルダーにMB(Localization)を保存する。 /// </summary> /// <param name="folderPath">フォルダーのパス</param> /// <param name="localizeInfoJP">ローカライズ情報</param> /// <param name="useReplace">上書きの有無</param> public static void SaveToFolder(string folderPath, UapLocalizationInfo localizeInfoJP, bool useReplace) { foreach (var localizeFile in localizeInfoJP.Items.Values) { var path = Path.Combine(folderPath, localizeFile.FileID + ".LocalizationReference"); //// exists | useReplace | //// y | y | run //// y | n | cancel //// n | y | run //// n | n | run if (File.Exists(path) && !useReplace) { //// 上書きしない var fileName = Path.GetFileName(path); Console.WriteLine($"ファイルが既に存在します。File({fileName}){Environment.NewLine}上書きする場合は -r オプションを指定してください。"); } else { OxfFileUtils.SafeCreateDirectory(folderPath); using (StreamWriter sw = new StreamWriter(path, false, Encoding.ASCII)) { BinaryWriter bw = new BinaryWriter(sw.BaseStream); WriteEntries(localizeFile, bw); } } } }
/// <summary> /// 指定したフォルダー内のMB(Localization)を読み込む /// </summary> /// <param name="localizationInfo">Localization情報</param> /// <param name="folderPath">フォルダーのパス</param> /// <param name="pattern">ファイル名のパターン</param> public static void LoadFromFolder( UapLocalizationInfo localizationInfo, string folderPath, string pattern) { string[] files = Directory.GetFiles(folderPath, pattern, SearchOption.AllDirectories); foreach (var locFile in files) { LoadFromFile(localizationInfo, locFile); } }
/// <summary> /// 指定したパスのMB(Localization)を読み込み、ローカライズ情報に追加する。 /// </summary> /// <param name="localizationInfo">ローカライズ情報</param> /// <param name="path">ファイルのパス</param> private static void LoadFromFile( UapLocalizationInfo localizationInfo, string path) { using (var sr = new StreamReader(path)) { using (var br = new BinaryReader( sr.BaseStream, Encoding.UTF8)) { var fileID = Path.GetFileNameWithoutExtension(path); var localizationFile = new UapLocalizationFile(fileID); ReadEntries(localizationFile, br); localizationInfo.AddFile(localizationFile); } } }