soma0sd

코딩 & 과학 & 교육

[tModLoader] 모드개발: 테라리아 기본 번역 가져오기

반응형
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

using Terraria;
public override void Load() {
    // 위치: {내문서}\My Games\Terraria\ModLoader\korean\Localized.json
    string exportTerraria = Path.Combine(Main.SavePath, "korean");
    Directory.CreateDirectory(exportTerraria);
    Dictionary<string, Dictionary<string, string>> RawLocalizedItem
        = new Dictionary<string, Dictionary<string, string>>();
    foreach (Terraria.Localization.LocalizedText localized in
        Terraria.Localization.LanguageManager.Instance
        .FindAll(new System.Text.RegularExpressions.Regex(".+")))
    {
        string[] keys = localized.Key.Split('.');
        if (RawLocalizedItem[keys[0]] == null)
            RawLocalizedItem.Add(keys[0], new Dictionary<string, string>());
        RawLocalizedItem[keys[0]].Add(
            String.Join(".", keys.Skip(1)) , $@"{localized.Value}");
    }
    File.WriteAllText(Path.Combine(exportTerraria, "Localized.json"),
      Newtonsoft.Json.JsonConvert.SerializeObject(RawLocalizedItem).ToString());
}

만들어진 JSON 파일은 9664 라인이며, 모드를 로딩하는 Mod.Load()에서 정상적으로 결과를 출력하는 것을 확인했습니다.

반응형
태그:

댓글

End of content

No more pages to load