기능구현/아웃게임

[UI] - 다국어화(Localization)

MuscleDeveloper5683 2025. 4. 3. 17:10
728x90
SMALL

 

지난 시간에 직접 스크립트를 만들고 적용시키며 다국어화를 적용 시켰다.

 

이번에는 유니티에서 제공해 주는 다국어화 시스템을 이용해서 게임에 적용시켜보자.

패키지 버전은 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 선택해서 생성

 

 

 

잘 생성된 모습

 

 

728x90