I2Localization에 대해서 모르시는 분은 아래 포스팅을 참고해 주세요.
I2Localization 번역을 사용하기 위해서는 이전 작업을 하고 오셔야 합니다.
아래 포스팅을 참고해 주세요.
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탭에 가면 처음에는 아무것도 없지만 테스트를 위해 미리 만들어 두었기에 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 이라고 네이밍 해주면 나중에 찾기 편할 것 같습니다.
번역이 필요한 TextMeshPro 컴포넌트에 I2 Localize 컴포넌트를 붙여줍니다.
그리고 Target, Term을 설정해 주시면 됩니다.
드롭다운을 이용하여 언어 선택하기
드롭다운 UI를 하나 만든 후 DropDown - TextMeshPro 컴포넌트가 있는 부분에 SetLanaguage Dropdown 컴포넌트를 붙여줍니다. 이때 주의하셔야 할 부분은 DropDown 컴포넌트를 이용하셔야 하며 DropDown - TextMeshPro 컴포넌트를 사용하고 싶으신 경우에는 I2 Localization Asset의 스크립트를 수정해야 하는데 권장드리진 않습니다.
SetLanaguage Dropdown 컴포넌트를 붙이면 자동으로 드롭다운에 번역된 언어들이 추가됩니다.
결과