이번 포스팅에서는 현지화를 위해 유니티 엔진에서 사용자가 실행 중인 운영체제의 설정된 언어를 가져와 초기 언어를 설정하는 방법을 작성해보겠습니다.
1. 설정된 시스템 언어 가져오기
설정 된 시스템 언어를 가져오기 위해 해야 할 것은 없고 프로그램이 구동될 때 static 클래스인 Application 클래스의 systemLanguage 변수에 할당된다고 유니티 공식 API문서에 표기되어 있습니다. systemLanguage는 enum의 형태를 가지고 있고 내용은 아래와 같습니다.
public enum SystemLanguage
{
Afrikaans = 0, Arabic = 1, Basque = 2, Belarusian = 3, Bulgarian = 4, Catalan = 5,
Chinese = 6, Czech = 7, Danish = 8, Dutch = 9, English = 10, Estonian = 11, Faroese = 12,
Finnish = 13, French = 14, German = 15, Greek = 16, Hebrew = 17, Hugarian = 18,
Hungarian = 18, Icelandic = 19, Indonesian = 20, Italian = 21, Japanese = 22, Korean = 23,
Latvian = 24, Lithuanian = 25, Norwegian = 26, Polish = 27, Portuguese = 28, Romanian = 29,
Russian = 30, SerboCroatian = 31, Slovak = 32, Slovenian = 33, Spanish = 34, Swedish = 35,
Thai = 36, Turkish = 37, Ukrainian = 38, Vietnamese = 39, ChineseSimplified = 40,
ChineseTraditional = 41, Unknown = 42
}
2. 스크립트 구성
LanguageManager.cs (시스템 언어 설정을 불러와 초기 언어 값을 설정)
▶ LanguageManager.cs
언어 설정에 사용할 enum을 선언하고 프로그램이 구동될 때 Application.systemLanguage를 읽어와 확인하고 매치되는 값을 gameLanguage 값에 할당합니다. 시스템의 언어가 서비스되는 3개의 언어 외로 설정되어있다면 마지막 else구문을 통해 영어로 설정합니다. 테스트를 위해 빈 오브젝트에 해당 스크립트를 추가합니다.
using UnityEngine;
public enum GameLanguage { ENGLISH, KOREAN, JAPANESE } // 게임 언어를 설정의 기준이될 enum 선언
public class LanguageManager : MonoBehaviour
{
GameLanguage gameLanguage; // 이 변수언어를 확인해서 게임컨텐츠를 해당 언어로 변역합니다.
// 출시 될 3개의 언어만 확인합니다.
void Awake()
{
if(Application.systemLanguage == SystemLanguage.English)
{
gameLanguage = GameLanguage.ENGLISH;
}
else if(Application.systemLanguage == SystemLanguage.Korean)
{
gameLanguage = GameLanguage.KOREAN;
}
else if(Application.systemLanguage == SystemLanguage.Japanese)
{
gameLanguage = GameLanguage.JAPANESE;
}
else
{
gameLanguage = GameLanguage.ENGLISH;
}
Debug.Log(gameLanguage);
}
}
3. 결과
에디터에서 테스트하니 PC의 언어 값을 정상적으로 가져옵니다.
이렇게 가져온 시스템의 언어정보로 게임 내 콘텐츠를 현지화합니다.
이 방법 외에도 C#에서 제공하는 Cultureinfo를 통해 시스템 언어를 가져올 수 있습니다.
'유니티 이야기' 카테고리의 다른 글
[Unity] 대량의 엑셀데이터 유니티 인스턴스로 밀어넣기 (0) | 2022.08.28 |
---|---|
[Unity] json 직렬화 저장 및 읽어오기 + 암호화 (utf8) (1) | 2022.08.27 |
[Unity] CultureInfo를 통해 언어 설정 하기 (0) | 2022.08.26 |
[Unity] 게임 데이터 바이너리 파일로 저장하기 (0) | 2022.08.25 |
[Unity] GUI Text 다국어 번역 하기 (0) | 2022.08.23 |
댓글