Table of Contents

Interface ILocalizationSystem

Namespace
Framework.Systems.Localization
Assembly
Assembly-CSharp.dll

현지화 조회 / 언어 변경 / 에셋 로드 단일 진입점.

public interface ILocalizationSystem

Examples

var title = _localization.GetString(
    LocalizationTables.UI,
    LocalizationKeys.UI.StartButton);

var result = await _localization.ChangeLanguageAsync(LocaleCodes.Korean, ct);

var logo = await _localization.LoadAssetAsync<Sprite>(
    LocalizationTables.UIAsset,
    LocalizationKeys.UI.Logo,
    ct);

Remarks

[규칙] InitializeAsync 는 RootScope 에서 자동 호출. 사용자 직접 호출 금지. [규칙] 키 하드코딩 금지. LocalizationKeys / LocalizationTables 상수 경유. [규칙] 언어 코드 하드코딩 금지. LocaleCodes 상수 경유.

Properties

CurrentLocaleCode

현재 활성 Locale 코드. ex) "ko"

string CurrentLocaleCode { get; }

Property Value

string

Methods

ChangeLanguageAsync(string, CancellationToken)

언어 변경. 완료 후 OnLanguageChanged 발행. 존재하지 않는 Locale 코드 → Result.Fail.

UniTask<Result> ChangeLanguageAsync(string localeCode, CancellationToken ct = default)

Parameters

localeCode string
ct CancellationToken

Returns

UniTask<Result>

GetAvailableLocales()

사용 가능한 Locale 코드 목록. 언어 선택 UI Dropdown 등에 활용.

IReadOnlyList<string> GetAvailableLocales()

Returns

IReadOnlyList<string>

GetLocales()

사용 가능한 Locale 상세 정보 목록. NativeName / EnglishName 포함.

IReadOnlyList<LocaleInfo> GetLocales()

Returns

IReadOnlyList<LocaleInfo>

GetString(string, string)

String Table 에서 문자열 조회. 키 없으면 key 원문 반환. Development Build 에서 Warning 출력.

string GetString(string table, string key)

Parameters

table string
key string

Returns

string

GetString(string, string, params object[])

Smart String 동적 인자 포함 문자열 조회.

string GetString(string table, string key, params object[] arguments)

Parameters

table string
key string
arguments object[]

Returns

string

GetStringOrEmpty(string, string)

String Table 에서 문자열 조회. 키 없으면 string.Empty 반환. 선택적 텍스트 / 툴팁 등 없어도 무방한 경우 사용.

string GetStringOrEmpty(string table, string key)

Parameters

table string
key string

Returns

string

IsCurrentLocale(string)

현재 Locale이 지정 코드와 같은지 확인. 불필요한 ChangeLanguageAsync 호출 방지용.

bool IsCurrentLocale(string localeCode)

Parameters

localeCode string

Returns

bool

LoadAssetAsync<T>(string, string, CancellationToken)

Asset Table 에서 에셋 비동기 로드. 동일 locale + table + key 조합은 내부 캐시에서 즉시 반환. 언어 변경 시 캐시 자동 무효화.

UniTask<Result<T>> LoadAssetAsync<T>(string table, string key, CancellationToken ct = default) where T : Object

Parameters

table string
key string
ct CancellationToken

Returns

UniTask<Result<T>>

Type Parameters

T

Events

OnLanguageChanged

언어 변경 이벤트. (이전 코드, 새 코드) 순으로 전달.

event Action<string, string> OnLanguageChanged

Event Type

Action<string, string>