안녕? 다시 왔어. 




https://gall.dcinside.com/game_dev/177544


어제 올린 아랍어 번역 글에 누가 번역 적용하는 법을 물어보시더라고?


사실 번역 적용이야 방법이 정해져 있는 것도 아니고, 어떻게든 동작만 하면 된다고 생각하는데


그래도 아직 안해본 사람이라면 궁금할수도 있겠다 싶더라.


어쩌면 나도 이번 기회를 통해 더 좋은 방법에 대한 조언을 받을 수도 있고 말이지.


그럼 시작해보자.





01b2d327e9ed69e87eb1d19528d5270374900d54ce3b97



기본적으로 난 번역을 포함한 모든 데이터는 구글 스프레드 시트를 사용하고 있어.


엑셀이랑 사용법은 비슷한데 라이선스도 없고, 웹 베이스라 어떤 컴에서도 할 수 있고 외부 번역가랑 협업하기도 편하거든. 지극히 개인 취향이야.


보면 세로 축이 ID고, 가로는 각 나라 언어별 텍스트가 위치해 있어.




01b2d327e9ed6ae87eb1d19528d52703ae9b32790dc104


그리고 이렇게 작성한 시트를 에셋을 통해 유니티로 가지고 와.


내가 사용중인 에셋은 BGDatabase야. 


유료긴 한데 나처럼 외부에서 데이터 핸들링하는 사람들에겐 돈 값 하는 에셋이라고 봐.


애초에 엄청 유명한 에셋임 ㅇㅇ. 아마 나도 여기서 추천 받았을걸?


text라는 필드를 지원하는데, 엑셀이나 구글 시트에서 입력한 줄 바꿈도 그대로 적용 가능해서 엄청 편했어. 


이따 댓글에 링크 남겨둘게.




01b2d327e9ed6be87eb1d19528d527035e9073606e4c58


그 다음엔 뭐... 구현하는건데


나는 TextManager라는 싱글톤을 하나 만들어서 언어 대응은 전부 거기서 처리하고 있어. 


기능은 되게 심플해.




   01b2d327e9ed6ce87eb1d19528d52703c2cb9efa0c9aaa


 1. 처음 앱 실행 시 핸드폰 언어와 매칭되는 언어 있으면 그걸로 세팅, 없으면 영어로 고정

     혹시 세이브 데이터가 있으면 그 언어 설정 유지.



   01b2d327e9ed6de87eb1d19528d52703b06947290af39b


 2. 시트에 있던 ID를 입력하면 현재 언어로 출력해주기





01b2d327e9ed6ee87eb1d19528d52703f1dcca6d99ce79


마지막으로 게임 내에 언어 입력하는 부분이 있으면 TextManager에 ID 넣어서 호출하면 끝이야. 


스샷의 IsArabic()은 아랍어는 글자 좌우가 반대라서 별도로 처리하느라 그럼 ㅇㅇ





...음. 요청이 있어서 작성하긴 했는데 생각보다 더 별게 없네 ㅋㅋㅋ


혹시나 로컬라이징 앞두고 있는 사람들에게 작게나마 도움이 될 만한 부분이 있을까 싶어서 작성해봤어.


더 좋은 방법 아는 친구들은 댓글로 공유해주라.




그럼 담에 !