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>();
}
}
}