Unity

Unity 다국어 관련

Dean83 2022. 3. 24. 22:18

** 번역 기능을 넣지 않을 UI에 대해서는 기본 text 값을 공백으로 없애야 문제가 없다.

1. 방식
    1.1. Unity Asset 사용
           - 번역 문자열을 Asset 에 저장 -> 각 UI에 설정 -> 언어설정에 따라 Asset에 저장된 항목을 UI에 자동반영
           - Json 파일로부터 하나씩 Asset 생성 -> 한글과 매칭되는 Asset을 UI에 설정
           - Excel을 Json으로 변경 가능한 사이트가 있음. 
           - Asset 이름 : Asset Localization
           - Excel 양식 : 1번 row가 header 역할을 하므로, a1 : korean, b1 : chinise 입력 후, a2에 이름, b2에 name을 입력하면됨. 
           - MintOption에 기능 추가 되었으며, 지원 언어 변경시, Mintoption 코드를 수정할 부분이 있음. 
           - 참조 : https://mintpot.synology.me:30000/issues/639




<액셀 작성 요령>



<json 변경 결과>


    1.2. 직접 개발
           - cs 코드에 switch 문을 이용하여 직접 한글 <-> 타 언어 간 교환함수 생성
           - 파일 혹은 리스트에서 찾는 방식
    1.3. MintVR 방식
           - Json 파일에 문자열 저장 

2. 장점
     2.1. Unity Asset 사용
            - 이미 구현되어 있는 Asset이라 설정 등이 잘 되어 있음
            - 폰트 변경 등 text가 아닌 항목또한 다국어 지원 가능함
            - 간단한 코드 구현을 통해 동적으로 변경되는 text 대응 가능
            - 별도의 코드구현 없이 언어설정을 바꾸면 바로 선택한 언어로 문자열이 변경됨
     2.2. 직접개발
            - 커스터마이즈를 할 수있음
     2.3. MintVR 방식
            - 이미 구현되어 있으므로 검증되 있음

3. 단점
     3.1. Unity Asset 사용
            - 번역할 단어 하나하나별로 asset을 생성해야함
            - 생성한 asset을 변경할 UI 마다 붙여주는 작업을 해야함
            - 동적 변환을 위한 코드 작성 필요
            - 동적 변환의 경우 문자열이 많아질 경우 느려질 가능성 혹은 비효율적인 가능성이 있음
            - asset 파일이 번역 추가시 마다 늘어나며, apk 용량증가

     3.2. 직접개발
            - 설정 등 모든 항목들을 설계, 개발해야 함.
            - 어느방식으로 적용할지 논의 필요
            - 코드가 지저분해 보일수 있다

     3.3. MintVR 방식
            - 파일 입출력을 거쳐야 함. 
            - json 파일 관리도 해줘야 함. 

4. 결론
    4.1. Asset을 이용하여 변경 (Asset 명칭 : Asset Localization)
   

5. 중국어 폰트 문제
     - unity 2017 + text mesh pro asset 사용시, 중국어 폰트 생성 불가
        - atlas 크기가 너무 커 생성도중 유니티가 강제 종료됨. 
     - unity 2018 + 기본으로 제공되는 text mesh pro 사용시, 중국어 폰트 생성 가능
     - 중국어 표현이 가능한 폰트로 생성해야 함 (첨부파일 참조)
       
     * 문제점 : unity 2017에서 생성한 폰트는 2018에서 사용 할 수 없고, 반대의 경우도 사용 불가함. 
                     - 면접의 신의 text mesh pro 버전업 혹은 unity 버전업이 필요?
                    동일한 단어 (예 : 확인 이라는 한자) 를 연속하여 적으면, (예 : 확인확인) 두 단어가 같은위치에 겹쳐서 표시됨
                     - 글자 사이의 간격 문제 인지 잘 모르겠음.  
     
6. 추가사항
      - DB에 있는 한글도 번역 필요
         - 다시보기 및 이메일에 표시되는 질문내용, 입력사항 등 텍스트 변환
         - 한글 학과명의 경우, DB에는 한글로 두고, 사용처에서 변환해야 할듯. 
      - 중국어 폰트 범위
         0020-007E,02B0-038F,02C0-0320,0550-05C0,2160-217F,2E80-2FDF,3020-31FF,3400-4DBF,4E00-9FEF,AC00-D7AF
         - 참조 : https://forum.unity.com/threads/chinese-traditional-simplified-and-english-text-looks-blurred.593098/
            

'Unity' 카테고리의 다른 글

코드난독화 어셋 사용법  (0) 2022.03.24
StopCoroutine, StartCoroutine 관련  (0) 2022.03.24
Pico VR 기기 컨트롤러 UI 연동  (0) 2022.03.24
Unity에서 AWS 스트리밍 관련  (0) 2022.03.24
Unity 다운로드 이미지 표시방법  (0) 2022.03.24