using Newtonsoft.Json; using System.Collections.Generic; namespace UVC.Locale { /// /// JSON 형식의 다국어 데이터를 담는 클래스입니다. /// 이 클래스는 "languages" 섹션과 "words" 섹션으로 구성된 JSON 파일의 전체 구조에 해당합니다. /// /// /// JSON 파일 예시 (`locale.json`): /// /// { /// "languages": { /// "en": "English", /// "ko": "한국어" /// }, /// "words": { /// "error": { /// "ko": "에러", /// "en": "Error" /// }, /// "button_ok": { /// "ko": "확인", /// "en": "OK" /// } /// } /// } /// /// public class LocalizationDataSource { /// /// 지원하는 언어의 코드와 표시 이름을 저장하는 딕셔너리입니다. /// 키는 언어 코드(예: "en", "ko")이며, 값은 해당 언어의 표시 이름(예: "English", "한국어")입니다. /// /// /// /// // Languages["en"] -> "English" /// /// [JsonProperty("languages")] public Dictionary Languages { get; set; } ////// /// 실제 번역 데이터를 저장하는 딕셔너리입니다. /// 첫 번째 키는 번역 키(예: "error", "button_ok")이며, /// 값은 해당 번역 키에 대한 언어별 번역 문자열을 담는 또 다른 딕셔너리입니다. /// 이 내부 딕셔너리의 키는 언어 코드(예: "en", "ko")이고, 값은 번역된 텍스트입니다. /// /// /// /// // Words["error"]["en"] -> "Error" /// /// [JsonProperty("words")] public Dictionary> Words { get; set; } /// /// 클래스의 새 인스턴스를 초기화합니다. /// 딕셔너리를 빈 상태로 생성합니다. /// public LocalizationDataSource() { Languages = new Dictionary(); Words = new Dictionary>(); } } }