ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Unity] Localization을 활용하여 국가별 맞는 언어 적용하기
    Unity 2025. 3. 6. 20:42

    개요

    현재 간단한 단어맞추기 게임을 제작중인데, 본인의 언어가 다른 언어로 어떤것인지 맞추는 게임을 만들면서 Localization의 도입이 필수적이라고 생각이 되었다. 

    구글 플레이 스토어에 런칭할 목적이기 때문에, 가능하면 해외 런칭도 진행해볼 생각이다. 

    그에 맞춰 Unity에서 제공하는 Localization 패키지를 사용하여 국가 코드에 따라서 텍스트가 바뀌는 것을 시도해볼 것이다.

    1. Localization 패키지 설치

    • Window - Package Manager에 들어간다. 
    • Packages: UnityRegistry를 선택한다.
    • localization을 검색하여 설치한다. 

    Unity에서 다운받을수 있게 Package Manager를 통해 제공하기 때문에, 설치는 정말 쉽다. 

    이제 설치가 완료되면, Localization 패키지를 확인할 수 있다. 

    2. Localization 관련 파일 생성 및 설정

    이제 Edit - Project Settings 를 들어가면 Localization 탭이 활성화된 것을 확인할 수 있다. 

    필자는 이미 테이블을 생성한 상태라서 설정이 되어있지만, 

    생성하지 않은 상태라면 Active Settings 가 None으로 설정되어있을것이다.

    밑에 위치한 create버튼을 눌러 파일 경로를 지정해주고, 파일을 생성해준다. 

    생성이 완료되면, 이제 우리가 타겟으로 잡을 언어를 선택해주어야 한다.

    밑에 위치한 AddLocale 버튼을 눌러주면, 나라에 맞는 언어정보를 확인할 수 있다. 

    여기서 원하는 국가(영어 - en / 한국어 - kr)과 같은 식으로 체크 한 후, Add Locales를 클릭하여 경로를 지정하면 해당 국가의 Locale 파일이 생성된다.  필자는 영어(en), 한국어(kr), 일본어(ja)를 설정해주었다. 

    자 이제 세팅을 다시 보자.

    기본적으로 세팅되는 언어를 설정해주어야 하는데, 이는 Specific Locale Selector에서 설정해줄 수 있다. 

    Locale 파일들이 잘 생성이 되었다면, 다음과 같이 설정해줄 수 있을것이다. 

    본인은 가장 많은 유저가 사용하는 영어로 기본 설정을 진행해주었다. 

     

    이제 어느정도 설정이 완료되었으니, 번역으로 사용될 데이터 테이블을 만들어보자.

    3. String Table 생성 & 입력하기

    Asset Management에 Localization Tables로 들어가면, 원하는 테이블을 생성할 수 있다. 

    생성할 수 있는 테이블의 종류는 두가지다.

    1. String Table Collection: 문자열 데이터를 담고 있는 테이블로, 국가 코드를 매칭시켜 맞는 언어를 출력해준다.
    2. Asset Table Collection: 에셋 데이터를 담고 있는 테이블로, 국가 코드를 매칭시켜 맞는 에셋을 반환해준다. 
      1. 예를 들어서, 국가 별 국기가 설정되어 있다고 가정하자.
      2. 한국은 태극기, 미국은 성조기가 보여야 할것이다. 
      3. 우리는 코드를 써 줄 필요 없이 이미지를 등록해주면 세팅에 의해 알맞게 에셋이 반환된다!

    이번에 테스트할 테이블은 String Table로, 테이블을 한번 만들어보자.

    New Table Collection을 클릭해

    New Table Collection을 클릭해 원하는 언어들을 체크해주고, Create로 테이블을 생성해준다. 

    이제 위에 보이는 것처럼, 키값에 맞춰 언어를 작성해줄 준비를 마쳤다.

     

    이제 우리는 key값에 맞춰, 각 언어에 맞게 작성해주면 된다. 

    4.Text에 Localization 적용하기

    이제 테이블은 작성을 완료했는데, 이걸 게임 내에 어떻게 적용해야 하는걸까?

    답은 Text 컴포넌트에 있다. (TMP_text 컴포넌트를 사용하지만 편의를 위해 Text로 하겠다)

    캔버스에 TMP Text를 하나 생성해보자. 

    TextMeshPro - Text 컴포넌트의 삼점을 클릭하면, 맨 하단에 Localize 메뉴가 있는 것을 확인할 수 있다. 

    클릭하면, Localize string Event라는 새로운 컴포넌트가 하나 추가된다. 

    우리는 이제 여기에, 어떤 key를 적용시킬건지 선택하면 된다. 

    현재 텍스트는 게임 시작 버튼이므로 start_game을 선택.

    다음과 같이 세팅이 잘 된것을 확인할 수 있다. 

    이제, 게임에서 확인해보자.

    Play를 누르면 게임 화면 우측 상단에 국가 정보가 표시된다. 

    잘 적용되는 것을 확인할 수 있다. 

    **일본어 / 한국어를 표시하기 위해서는 Font Asset에서 한국어 / 일본어 출력이 가능하도록 생성해주어야 한다. 

    폰트 에셋 만드는 방법은 다른 포스팅에서 다뤄볼 예정.

     

    마무리하며...

    이제 Globaㄹㄹㄹ 런칭을 위한 첫번째 스탭을 진행하였다. 

    Unity에서 제공하는 Localization 기능을 통해, 우리가 따로 코드를 쓸 필요 없이 현지화가 가능하게 되었다. 

     

    하지만..... 게임을 개발할 수록 내용은 많아질테고 그걸 일일이 번역해주는 것은 너무나 귀찮은 작업이다.

    다음 포스팅에서는 구글 스프레드 시트에서 자동 번역 기능을 제작하고, 유니티에 연결하여 버튼 한번으로 데이터를 불러올 수 있도록 작업을 진행해보겠다.

    그럼 다들,

    😘즐코(즐거운 코딩 되시길)!

Designed by Tistory.