[UI] - 다국어화(Localization)
지난 시간에 직접 스크립트를 만들고 적용시키며 다국어화를 적용 시켰다.
이번에는 유니티에서 제공해 주는 다국어화 시스템을 이용해서 게임에 적용시켜보자.
패키지 버전은 Unity 버전 2021.2 이상부터 사용할 수 있다.
1. Package Manager에서 Loclization 패키지 설치
2. Edit -> Project Settings -> Localization -> Active Settings 만들어주기
3. 폴더 저장 후 해당 폴더에서 Locale Generator 클릭 후 사용할 언어 체크 후 폴더에 다시저장
![]() |
![]() |
기본 언어는 한국어로 설정하고 영어, 일본어 추가해주기
- Command Line Locale Selector(기본 설정값): 커맨드라인에서 언어를 바꿀 때 사용함
- System Locale Selector(기본 설정값): OS에 설정된 기본 언어
- Specific Locale Selector(변경값): 프로젝트에서 사용할 언어, 추가 가능함, 사용할 Locale은 Locale Generator에서 추가하여 사용한다.
- Project Locale Identifier: 해당 프로젝트에서 기본(default)로 사용할 언어
![]() |
![]() |
위 과정에서 기본적인 세팅은 끝났고 다국어 데이터를 사용하기 위해 테이블을 만들어서 관리하자
4. 테이블 만들기
Window -> Asset Management -> Localization Tables
Type: String Table Collection - 문자열
Type: Asset -> 이미지도 추가가능하다.
- 메타데이터 아이콘: 클릭하여 comment를 남기거나 플랫폼을 설정할 수 있다.
5. 각 텍스트에 적용하기
Preferences -> 2개 체크 해제 - 체크 해제해야 String Reference에서 제작한 테이블이 보인다.
다국어화를 적용시킬 텍스트에
Localize String Evnet 추가 -> String Reference -> Table 적용 -> Update String 적용 -> 원활한 테스트를 위해 Runtime Only > Editor And Runtime으로 변경
TIP : 더보기를 누르고 Localize 를 하면 더 편하게 생성가능하다.
번외
테이블에 없는 텍스트 바로 추가하기
Localize String Evnet 추가 -> Table Collection 해당 테이블 추가 -> Add Table Entry -> 정보 작성
결과
![]() |
![]() |
인게임에서 언어 변경
LocaleManager 생성
버튼에 적용
텍스트에 직접 Localize를 하지못하고 Table 데이터에서 필요한 언어를 스크립트를 통해 불러와야 할 경우
확인을 위해 챗 봇 생성
ChatFunction.cs 생성
문제점
런타임중 말풍선이 나오는도중 언어 변경 시 언어가 변경이 안된다!!
LocalizationSettings.SelectedLocaleChanged 이벤트를 활용해서 런타임중 언어를 변경해주자
결과
CSV로 Export 하기
테이블 작업을 Unity에서만 하면 협업하기에 불편할 것이다. CSV Export기능을 사용해보자.
만든 테이블 -> Extensions -> + -> Csv 또는 Google 선택해서 생성
잘 생성된 모습