유니티 I2Localization 번역 적용하기 #번역하는 방법


I2Localization에 대해서 모르시는 분은 아래 포스팅을 참고해 주세요.

 

유니티 가장 강력한 번역도구 I2 Localization을 소개합니다!

I2 Localization란? Unity에서 사용할 수 있는 번역 시스템입니다. UI, 2D, TextMesh Pro와 같은 주요 컴포넌트들에 사용가능하며 개발자가 다양한 플랫폼(PC, 모바일 등)에서 로컬화(번역)된 경험을 제공할

wlsdn629.tistory.com

 

I2Localization 번역을 사용하기 위해서는 이전 작업을 하고 오셔야 합니다.

아래 포스팅을 참고해 주세요.

 

유니티 I2Localization #Google Spreadsheet 연동하기

예전에 번역을 도와주는 에셋에 대해 소개드린적이 있었습니다. 설명이 부족한 것 같아 I2Localization 에셋 사용방법에 대해 조금씩 올려보고자 합니다.  유니티 가장 강력한 번역도구 I2 Localizati

wlsdn629.tistory.com

 


Source 컴포넌트를 수정하여 번역할 언어 추가하기

Source 컴포넌트

 

Source 컴포넌트를 보면 다양한 탭이 존재하는데 그중 먼저 볼 탭은 Languauges 부분입니다.

사전 준비로는 SpreadSheets탭에 본인 구글 계정을 연결 및 인증해 둔 상태여야 합니다.

 

Languauges 탭을 보면 처음에는 아무것도 없는 상태입니다. 저는 3개 국가의 언어를 추가했기에 위와 같은 모습을 하고 있습니다.

 

추가하는 순서

 

먼저 번역이 필요한 국가의 언어를 검색해 줍니다. 몇 글자 치다 보면 알아서 필터링되어 해당 국가가 나오는데 클릭하시고 우측에 Add버튼을 누르시면 됩니다.

 

저는 프랑스어가 필요 없기에 여기서 따로 추가는 하지 않겠습니다.

 

Languages 현재 프로젝트에서 지원하는 언어 목록
  - Show: 선택된 언어의 현황을 표시
- Translate: 자동 번역 기능
Store Integration iOS 및 Android 플랫폼 지원 여부
App Name translations 앱 이름 번역 설정 
On Missing Translation 번역이 누락된 경우의 동작 설정 
Unload Languages At Runtime 런타임 시 언어를 언로드할지 여부 설정 (현재는 Never)
Default Language 기본 언어 설정 (현재는 Device Language)

 


App Name Translations

설명: 애플리케이션의 이름을 여러 언어로 번역할 수 있습니다. 예를 들어, 앱 이름이 영어로 "MyApp"인 경우, 일본어와 한국어로도 각각 번역된 이름을 제공할 수 있습니다.

예시

  • English (United States): "MyApp"
  • Japanese: "マイアプリ"
  • Korean: "마이앱"

On Missing Translation

설명: 특정 언어에 대한 번역이 누락된 경우에 어떻게 처리할지를 설정합니다. 

  • Fallback: 번역이 누락된 경우, 기본 언어 또는 설정된 대체 언어로 표시됩니다.
  • Empty: 번역이 누락된 경우, 빈 문자열을 표시합니다.
  • Show Warning: 번역이 누락된 경우, 경고 메시지를 표시합니다.

예시

  • 앱에서 스페인어 번역이 누락된 경우, Fallback 설정이 되어 있다면 영어(기본 언어)로 표시됩니다.

Unload Languages At Runtime

설명: 런타임 시 사용하지 않는 언어 데이터를 메모리에서 언로드 할지 여부를 설정합니다. 이 설정을 통해 메모리 사용량을 관리할 수 있습니다.

  • Never: 런타임 중에도 모든 언어 데이터를 메모리에 유지합니다.
  • Always: 사용하지 않는 언어 데이터를 런타임 중 언로드 합니다.
  • Only if not used: 사용되지 않는 언어 데이터만 언로드 합니다.

예시

  • 만약 Never로 설정하면, 사용자는 앱을 사용하는 동안 모든 언어 데이터가 메모리에 남아 있게 됩니다. 이는 메모리 사용량이 증가할 수 있지만, 언어 전환이 빠르게 이루어집니다.

Default Language

설명: 애플리케이션의 기본 언어를 설정합니다. 이 언어는 사용자가 별도로 언어를 설정하지 않았을 때 사용됩니다.

  • Device Language: 사용자의 기기 설정에 따라 자동으로 언어를 선택합니다.
  • Specific Language: 특정 언어를 기본으로 설정할 수 있습니다 (예: 영어).

예시

  • 기본 언어가 Device Language로 설정되어 있으면, 한국어를 사용하는 기기에서는 자동으로 한국어가 기본 언어로 설정됩니다. 만약 기본 언어를 English (United States)로 설정하면, 모든 사용자가 처음 앱을 실행할 때 영어로 표시됩니다.

 


Terms 탭을 통해 번역하기

Terms 탭

 

Terms탭에 가면 처음에는 아무것도 없지만 테스트를 위해 미리 만들어 두었기에 3개가 존재합니다.

 

설정

 

플러스 버튼을 누르면 번역할 Type을 설정할 수 있는 탭이 생성됩니다.

 

Tpye을 설정한 후 임의로 하나의 언어를 작성한 후에 우측 하단 Translate All 버튼을 누르면 나머지 언어들이 번역이 됩니다. 이때 아까도 언급했던 구글 계정과 연동된 상태여야 합니다.

 

항목
설명 예시
Text 텍스트 로컬라이제이션을 관리합니다. 예: UI 텍스트 등. 영어: "Welcome"
일본어: "ようこそ"
한국어: "환영합니다"
Font 폰트 로컬라이제이션을 관리합니다.  영어: Arial
일본어: Noto Sans JP
한국어: 나눔고딕
Texture 텍스처 로컬라이제이션을 관리합니다. 언어별로 다른 이미지 리소스를 사용할 수 있습니다. 영어: Textures/Welcome_EN.png
일본어: Textures/Welcome_JP.png
한국어: Textures/Welcome_KR.png
Audio Clip 오디오 클립 로컬라이제이션을 관리합니다.  영어: Audio/Welcome_EN.mp3
일본어: Audio/Welcome_JP.mp3
한국어: Audio/Welcome_KR.mp3
Game Object 게임 오브젝트 로컬라이제이션을 관리합니다. 예: 특정 언어에서만 활성화되는 오브젝트 등. 영어: GameObjects/WelcomePanel_EN
일본어: GameObjects/WelcomePanel_JP
한국어: GameObjects/WelcomePanel_KR
Sprite 스프라이트 로컬라이제이션을 관리합니다. 언어별로 다른 스프라이트 이미지를 사용할 수 있습니다. 영어: Sprites/Welcome_EN
일본어: Sprites/Welcome_JP
한국어: Sprites/Welcome_KR
Material 머티리얼 로컬라이제이션을 관리합니다. 언어별로 다른 머티리얼을 사용할 수 있습니다. 영어: Materials/Welcome_EN
일본어: Materials/Welcome_JP
한국어: Materials/Welcome_KR
Child 자식 오브젝트 로컬라이제이션을 관리합니다. 언어별로 다른 자식 오브젝트를 사용할 수 있습니다. 영어: Children/WelcomeChild_EN
일본어: Children/WelcomeChild_JP
한국어: Children/WelcomeChild_KR
Mesh 메시 로컬라이제이션을 관리합니다. 언어별로 다른 메쉬를 사용할 수 있습니다. 영어: Meshes/Welcome_EN
일본어: Meshes/Welcome_JP
한국어: Meshes/Welcome_KR
Text Mesh P Font Text Mesh Pro 폰트 로컬라이제이션을 관리합니다. 언어별로 다른 TMP 폰트를 사용할 수 있습니다. 영어: Fonts/TMP_Welcome_EN
일본어: Fonts/TMP_Welcome_JP
한국어: Fonts/TMP_Welcome_KR
Object 일반적인 오브젝트 로컬라이제이션을 관리합니다. 영어: Objects/Welcome_EN
일본어: Objects/Welcome_JP
한국어: Objects/Welcome_KR
Video 비디오 로컬라이제이션을 관리합니다. 언어별로 다른 비디오 파일을 사용할 수 있습니다. 영어: Videos/Welcome_EN.mp4
일본어: Videos/Welcome_JP.mp4
한국어: Videos/Welcome_KR.mp4

 


 

미래를 위해 네이밍을 잘 짓자

 

네이밍의 경우 프로젝트에 사용될 부분과 연관지어 지으시면 됩니다. 예를 들어 MainMenuPanel에 사용할 Exit버튼은 MainMenuPanel-Exit 이라고 네이밍 해주면 나중에 찾기 편할 것 같습니다.

 

I2 Localize

 

번역이 필요한 TextMeshPro 컴포넌트에 I2 Localize 컴포넌트를 붙여줍니다.

그리고 Target, Term을 설정해 주시면 됩니다.

 


드롭다운을 이용하여 언어 선택하기

드롭다운

 

드롭다운 UI를 하나 만든 후 DropDown - TextMeshPro 컴포넌트가 있는 부분에 SetLanaguage Dropdown 컴포넌트를 붙여줍니다. 이때 주의하셔야 할 부분은 DropDown 컴포넌트를 이용하셔야 하며 DropDown - TextMeshPro 컴포넌트를 사용하고 싶으신 경우에는 I2 Localization Asset의 스크립트를 수정해야 하는데 권장드리진 않습니다.

 

 

드롭다운

 

SetLanaguage Dropdown 컴포넌트를 붙이면 자동으로 드롭다운에 번역된 언어들이 추가됩니다.

 


결과

번역 움짤