Exemplo n.º 1
0
 /// <summary>
 /// ローカライズファイルをStreamに書き出す。
 /// </summary>
 /// <param name="localizeFile">ローカライズファイル</param>
 /// <param name="bw">Stream</param>
 private static void WriteEntries(UapLocalizationFile localizeFile, BinaryWriter bw)
 {
     bw.Write(localizeFile.Items.Count);
     foreach (var entry in localizeFile.Items.Values)
     {
         WriteEntry(entry, bw);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 自分自身のクローンを返す。
        /// </summary>
        /// <returns>ローカライズファイル</returns>
        public UapLocalizationFile Clone()
        {
            UapLocalizationFile uapLocalizationFile = new UapLocalizationFile(this.FileID);

            foreach (var entry in this.Items.Values)
            {
                uapLocalizationFile.AddEntry(entry.Clone());
            }

            return(uapLocalizationFile);
        }
Exemplo n.º 3
0
 /// <summary>
 /// ローカライズファイルを追加する。
 /// </summary>
 /// <param name="localizationFile">ローカライズファイル</param>
 public void AddFile(UapLocalizationFile localizationFile)
 {
     if (this.Items.ContainsKey(localizationFile.FileID))
     {
         throw new Exception($"Duplicate file id({localizationFile.FileID}).");
     }
     else
     {
         this.Items.Add(localizationFile.FileID, localizationFile);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Streamからローカライズエントリー読み込み、ローカライズファイルに追加する。
        /// </summary>
        /// <param name="localizationFile">ローカライズファイル</param>
        /// <param name="sr">Stream</param>
        private static void ReadEntries(
            UapLocalizationFile localizationFile, BinaryReader sr)
        {
            var entries = sr.ReadInt32();

            for (int i = 0; i < entries; i++)
            {
                var entry = ReadEntry(sr, localizationFile.FileID);
                localizationFile.AddEntry(entry);
            }
        }
Exemplo n.º 5
0
 /// <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);
         }
     }
 }