示例#1
0
 /// <summary>
 /// 言語エントリーを追加する。
 /// </summary>
 /// <param name="langEntry">言語エントリー</param>
 public void AddEntry(PfkLanguageEntry langEntry)
 {
     if (this.Items.ContainsKey(langEntry.Key))
     {
         throw new Exception($"Duplicate key({langEntry.Key}). FileID({this.FileID})");
     }
     else
     {
         this.Items.Add(langEntry.Key, langEntry);
     }
 }
示例#2
0
 /// <summary>
 /// 言語ファイルを追加する。
 /// </summary>
 /// <param name="newSheetFile">言語ファイル</param>
 public void AddFile(PfkLanguageFile newSheetFile)
 {
     if (this.Items.ContainsKey(newSheetFile.FileID))
     {
         //// すでに登録済みの場合は、言語エントリーを追加する。
         var currentSheetFile = this.Items[newSheetFile.FileID];
         foreach (var newEntry in newSheetFile.Items.Values)
         {
             var langEntry = new PfkLanguageEntry(newEntry.Key, newEntry.Text);
             currentSheetFile.AddEntry(langEntry);
         }
     }
     else
     {
         this.Items.Add(newSheetFile.FileID, newSheetFile);
     }
 }
示例#3
0
 /// <summary>
 /// 言語ファイルから言語情報を作成する。
 /// </summary>
 /// <param name="sheetInfo">言語情報</param>
 /// <param name="path">言語ファイルのパス</param>
 public static void LoadFromFile(PfkLanguageInfo sheetInfo, string path)
 {
     using (var sr = new StreamReader(path, Encoding.UTF8))
     {
         var sheetFile = new PfkLanguageFile(path);
         sheetInfo.AddFile(sheetFile);
         //// JSONファイルをテキスト形式で読み込む。
         var text = sr.ReadToEnd();
         //// テキスト形式のJSONファイルを解析する。
         var jsonData = PfkGameDesignBase.FromJson(text);
         foreach (var stringPair in jsonData.Strings)
         {
             //// 解析済みデータから、言語エントリーを作成する。
             var langEntry = new PfkLanguageEntry(stringPair.Key, stringPair.Value);
             sheetFile.AddEntry(langEntry);
         }
     }
 }