Unity
Unity Localization 가이드
leejiwoo21
2023. 10. 17. 23:56
로컬라이제이션
(6) [유니티 TIPS] Unity 로컬라이제이션 패키지로 다국어 시스템 간편하게 구축하기! - YouTube 참조함
1. 패키지 다운로드
Package Manager > UnityRegistry > Localization, Addressables 설치
2. Localization Setting 파일 만들기
edit > ProjectSettings > create
파일을 만들었다면 에디터에서 해당 파일을 찾아 inspector창으로 띄우자
3. Localization Settings
위 사진은 이미 세팅이 조금 되어있는 상태
- Command Line Locale Selector(기본 설정값): 커맨드라인에서 언어를 바꿀 때 사용함
- System Locale Selector(기본 설정값): OS에 설정된 기본 언어
- Specific Locale Selector(변경값): 프로젝트에서 사용할 언어, 추가 가능함, 사용할 Locale은 Locale Generator에서 추가하여 사용한다.
- Project Locale Identifier: 해당 프로젝트에서 기본(default)로 사용할 언어
4. 테이블 만들기, 다국어 관리는 테이블로 관리한다.
Window > AssetManagement > Localization Tables
Type: String Table Collection
이름을 적은 후 create 눌러서 테이블 생성
생성 후 테이블 모습
Add new entity를 누르고, 테이블을 완성한다.
- 메타데이터 아이콘: 클릭하여 comment를 남기거나 플랫폼을 설정할 수 있다. (난 안씀)
5. 텍스트에 적용하기
- edit > preferences > Asset Search Picker와 String Search Picker 체크 해제
- 체크 해제해야 이 후 String Reference에서 제작한 테이블이 보인다.
- Text에 Add Component > Localize String Event를 추가
- String Reference에서 방금 만든 테이블 > 해당 Text를 선택
- Update String(String)에 +를 누르고 Text 컴포넌트를 넣어준다
- funcion은 Text.text로 설정한다.
- 원활한 테스트를 위해 Runtime Only > Editor And Runtime으로 변경
- 테이블에 직접 추가하는 방법 말고도 inspector창에서 Table Collection을 원하는 테이블로 설정하고 Add Table Entry > Entry Name, 언어별 text를 넣어줄 수 있다.
- 더보기를 클릭하고, Localize를 누르면 좀 더 편하게 만들 수 있다.
6. 테스트
- 플레이를 누르면 Game탭에서 언어를 바꿔서 테스트 해볼 수 있다.
- 플레이 상태에서 언어 변경
- 버튼을 만든다. ( 버튼 방식은 자유 )
-
- 버튼의 onclick에 해당 스크립트를 넣는다.
- 버튼마다 사용할 언어에 맞는 index로 바뀌도록 인자를 넣는다.
- 언어별 index는 처음에 만들었던 Localization Settings에서 볼 수 있다.
- 테이블을 만들며 생긴 파일들에 Addressable을 체크하고,
- Addressable과 Locale Id가 제대로 들어있는지 확인한다.
* 다른 사람들과 merge후 conflict이 뜨거나, key를 못 찾거나, table missing이 난다면
table의 이름을 바꾸면 해결된다.
> 여기까지 완료하면 플레이에서 Localization이 잘 작동한다.
** 빠른 번역, 정리를 위한 팁 및 참고사항 **
여러개의 언어를 사용하거나 단순히 문장하나 하나 번역해서 Table에 넣는게 귀찮다면 이에 대한 대안으로 Google 스프레드 시트를 통해 시간을 단축할 수 있는 방법이 있다.
아래 순서에 따라 방법을 소개하고자 한다.
단, 해당 방식을 사용하기 위해서는 위에서 생성하였던 Table에서 기본 언어든 뭐든 최소 하나의 언어를 입력해놔야 하며, Key값도 모두 할당해 놔야 한다.
- Table 파일에서 csv 생성하기
- 먼저 생성한 Localization Table 파일을 찾아 inspector 창을 확인해보면 아래와 같이 나온다.
- 여기서 Inspector창의 Extensions의 추가 버튼을 눌러보면 Google Sheets Extension과 Csv Extension 2가지 선택지가 주어지는데, 전자는 온라인 환경에서 Google Sheet를 가져와 사용할 수 있는 것이고 Csv는 Csv형식의 파일을 가져와 사용하는 방식이다. 이때 문서 형식은 Csv를 저장하여 확인해 볼 수 있다.
- 오른쪽의 경우 한국어만 입력한 이후 Csv로 저장하여 연 모습이다.
- Csv 문서를 구글 스프레드 시트르 옮긴후 구글 번역을 적용하기
- 구글 스프레드 시트를 하나 생성한 이후 [파일 - 가져오기 - 업로드]를 통해 해당 Csv 파일을 가져오면 아래와 같이 들어올 것이다.
- 이후 [=GOOGLETRANSLATE(번역하려는 칸, “번역하는 언어”, “결과로 나올 언어”)] 의 형식으로 적용하면 자동으로 번역이 된다.
- 번역이 완료되었다면 번역된 칸을 포함하여 번역이 필요한 칸 전체를 드래그하고 Ctrl+D를 눌러 전체 적용을 할 수 있다.
- 이후 [파일 - 다운로드 - 쉼표로 구분한 값(.csv)를 통해 해당 문서를 Csv파일로 다시 내보내고 유니티에서 해당 테이블의 Extension에서 open을 통해 불러오면 Table에 일괄적으로 적용되어 있는 것을 확인할 수 있다.
- 해당 파일을 엑셀을 통해서 열면 문자가 깨져있는 것으로 보일 수 있는데 이는 인코딩 방식이 달라서 깨져보이는 것으로, 유니티에서 가져와서 쓸 때는 멀쩡하게 나온다.
- 그럼에도 신경쓰인다면 엑셀에서 데이터 - 데이터 가져오기를 통해 가져오면서 UTF-8 인코딩 방식을 채택하여 가져오도록 한다.