주녘공부일지

[페인트 맨] 다국어 지원 시스템 (Localization) 본문

GameDevelopment/[Unity] Project

[페인트 맨] 다국어 지원 시스템 (Localization)

주녘 2024. 3. 29. 18:05

유니티에서 제공하는 다국어 지원 시스템 : Localization Package

- 설정한 언어에 따라 세팅된 문자열, 에셋 등을 런타임에 변경할 수 있음

- CSV, Google 시트로 임포트, 익스포트 하여 데이터를 관리할 수 있음

https://docs.unity3d.com/Packages/com.unity.localization@1.0/manual/index.html

 

About Localization | Localization | 1.0.5

About Localization Use the Localization package to configure localization settings for your application. Add support for multiple languages and regional variants, including: String localization: Set different strings to display based on locale. Use the Sma

docs.unity3d.com

Localization Table

- 텍스처, 모델, 오디오 파일 등과 같은 다양한 에셋을 대상으로 할 수 있음

- Localize Event 컴포넌트 내에서 Table과 Key를 선택할 수 있음

Sprite Table
Text Table

런타임에서 언어 설정 변경

- SelectedLocale에 언어를 나타내는 로케일 변수를 세팅하여 런타임에서 언어 설정을 변경할 수 있음

+ 로컬레이제이션 테이블의 이름과 테이블 내의 키 이름을 가지고 값을 가져올 수 있음

using UnityEngine.Localization;
using UnityEngine.Localization.Settings;

// Localization Settings - Available Locales 순서와 같아야 함
public enum LocalizationType
{
    English = 0,
    Korean = 1,
}

public void OnClickChangeToKorean()
{
    // 언어 변경 - 한국어
    ChangeLanguage(LocalizationType.Korean);
}

public void OnClickChangeToEnglish()
{
    // 언어 변경 - 영어
    ChangeLanguage(LocalizationType.English);
}

private void ChangeLanguage(LocalizationType languageType)
{
    LocalizationSettings.SelectedLocale = 
        LocalizationSettings.AvailableLocales.Locales[(int)languageType];
}