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탭에서 언어를 바꿔서 테스트 해볼 수 있다.




  1. 플레이 상태에서 언어 변경

 

  • 버튼을 만든다. ( 버튼 방식은 자유 )
  •  
  • 버튼의 onclick에 해당 스크립트를 넣는다.
  • 버튼마다 사용할 언어에 맞는 index로 바뀌도록 인자를 넣는다.
  • 언어별 index는 처음에 만들었던 Localization Settings에서 볼 수 있다.
  • 테이블을 만들며 생긴 파일들에 Addressable을 체크하고, 
  • Addressable과 Locale Id가 제대로 들어있는지 확인한다. 



* 다른 사람들과 merge후 conflict이 뜨거나, key를 못 찾거나, table missing이 난다면

table의 이름을 바꾸면 해결된다.

 

> 여기까지 완료하면 플레이에서 Localization이 잘 작동한다.

 

** 빠른 번역, 정리를 위한 팁 및 참고사항 **

 

여러개의 언어를 사용하거나 단순히 문장하나 하나 번역해서 Table에 넣는게 귀찮다면 이에 대한 대안으로 Google 스프레드 시트를 통해 시간을 단축할 수 있는 방법이 있다.

아래 순서에 따라 방법을 소개하고자 한다.

 

단, 해당 방식을 사용하기 위해서는 위에서 생성하였던 Table에서 기본 언어든 뭐든 최소 하나의 언어를 입력해놔야 하며, Key값도 모두 할당해 놔야 한다.

 

  1. Table 파일에서 csv 생성하기
  • 먼저 생성한 Localization Table 파일을 찾아 inspector 창을 확인해보면 아래와 같이 나온다.
  • 여기서 Inspector창의 Extensions의 추가 버튼을 눌러보면 Google Sheets Extension과 Csv Extension 2가지 선택지가 주어지는데, 전자는 온라인 환경에서 Google Sheet를 가져와 사용할 수 있는 것이고 Csv는 Csv형식의 파일을 가져와 사용하는 방식이다. 이때 문서 형식은 Csv를 저장하여 확인해 볼 수 있다.
  • 오른쪽의 경우 한국어만 입력한 이후 Csv로 저장하여 연 모습이다.













  1. Csv 문서를 구글 스프레드 시트르 옮긴후 구글 번역을 적용하기
  • 구글 스프레드 시트를 하나 생성한 이후 [파일 - 가져오기 - 업로드]를 통해 해당 Csv 파일을 가져오면 아래와 같이 들어올 것이다.

 

  • 이후 [=GOOGLETRANSLATE(번역하려는 칸, “번역하는 언어”, “결과로 나올 언어”)] 의 형식으로 적용하면 자동으로 번역이 된다.

 

  • 번역이 완료되었다면 번역된 칸을 포함하여 번역이 필요한 칸 전체를 드래그하고 Ctrl+D를 눌러 전체 적용을 할 수 있다.

 

 

  • 이후 [파일 - 다운로드 - 쉼표로 구분한 값(.csv)를 통해 해당 문서를 Csv파일로 다시 내보내고 유니티에서 해당 테이블의 Extension에서 open을 통해 불러오면 Table에 일괄적으로 적용되어 있는 것을 확인할 수 있다.



  • 해당 파일을 엑셀을 통해서 열면 문자가 깨져있는 것으로 보일 수 있는데 이는 인코딩 방식이 달라서 깨져보이는 것으로, 유니티에서 가져와서 쓸 때는 멀쩡하게 나온다.
  • 그럼에도 신경쓰인다면 엑셀에서 데이터 - 데이터 가져오기를 통해 가져오면서 UTF-8 인코딩 방식을 채택하여 가져오도록 한다.