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