본문으로 건너뛰기

Localization — 개요

AchEngine Localization은 JSON/CSV 기반 다국어 시스템입니다. 로케일 전환, 폴백, 시스템 언어 자동 감지, 타입-세이프 키 상수 코드 생성을 지원합니다.

핵심 구성 요소

클래스역할
LocalizationManager로케일 전환, 텍스트 조회 파사드
LocalizationSettings설정 ScriptableObject (Resources 배치)
LocaleDatabase로케일 목록 및 JSON 파일 매핑
LocalizedString런타임 다국어 텍스트 래퍼
L (생성 클래스)타입-세이프 키 상수 (코드 생성 결과)

기본 사용

using AchEngine.Localization;

// 현재 로케일의 텍스트 조회
string text = LocalizationManager.Get("menu.start");

// 타입-세이프 키 (코드 생성 후)
string text2 = LocalizationManager.Get(L.Menu.Start);

// 로케일 변경
LocalizationManager.SetLocale("ja");

// 로케일 변경 이벤트 구독
LocalizationManager.OnLocaleChanged += OnLocaleChanged;

JSON 형식

// ko.json — 한국어
{
"menu.start": "게임 시작",
"menu.settings": "설정",
"dialog.confirm": "확인",
"item.sword.name": "철 검",
"item.sword.desc": "평범한 철 검입니다."
}

JSON 키는 dot-notation으로 중첩 없이 평탄하게 작성합니다.

TMP 컴포넌트 자동 갱신

LocalizedText 컴포넌트를 TextMeshPro 오브젝트에 추가하면 로케일이 바뀔 때 자동으로 텍스트를 갱신합니다.

[TextMeshProUGUI]
└── LocalizedText ← 키: "menu.start"
TMP 지원

TextMeshPro(com.unity.textmeshpro)가 설치된 경우 LocalizedText 컴포넌트가 활성화됩니다.

FontAsset Maker

AchEngine › Localization › FontAsset Maker에서 폰트를 하나 넣고 버튼을 누르면 LocaleDatabase의 실제 번역 문자열, 프로젝트의 CSV/JSON/TXT TextAsset, 기본 ASCII를 모아 정적 TMP FontAsset을 생성합니다. 런타임에서 새 한글 문자열을 조합하는 경우에는 Include Korean glyph preset을 켜서 한글 전체 프리셋도 함께 구울 수 있습니다.

생성된 FontAsset은 Assets/Fonts/Generated에 저장됩니다.

다음 단계