기능구현/아웃게임

[UI] - 다국어화(Json) - 1

MuscleDeveloper5683 2025. 3. 31. 16:32
728x90
SMALL

 

게임을 출시하면 여러나라 각국에 출시하게 될 것이다.

 

그 나라에서 플레이 하려면 그 나라에 맞는 언어를 제공해주어야 할 것이다.

 

언어를 변경했을 때 각 나라에 맞는 언어를 보여줄 수 있도록 다국어화를 해보자.

 

 

구글 스프레드 시트에서 각 나라에 언어를 저장한 후 Json데이터로 변환해서 

언어를 변경했을 때 해당 데이터를 받아와서 사용하자.

 

 

동작 흐름

 

  • OptionPopup에서 드롭다운 선택으로 언어 변경.
  • OnLanguageChange()에서 언어 인덱스를 PlayerPrefs에 저장.
  • LanguageManager.LoadLanguage()를 호출하여 JSON 데이터 로딩.
  • currentLanguageData 딕셔너리 생성 및 UI 텍스트 업데이트.

 

 

1. 옵션팝업 생성

 

 

2. OptionPopup.Cs 생성 후 수정

 

 

 

 

 

 

3. 시트 작성

 

아래와 같이 한국어, 영어, 일본어를 작성해 주었다.

 

 

 

확장 프로그램 -> Export Sheet Data -> Open SideBar 선택

 

 

 

설정

 

 

 

해당 설정을 한뒤 Visualize 누르기

 

 

4. Json Data들 복사해서 text_language.json파일에 붙여넣어주기

 

 

 

5. LanguageManager.cs 생성 및 수정

 

 

 

 

 

 

6. LanguageManager 생성 및 할당

 

❗️주의❗️

해당 텍스트들의 이름은 Json의 ID값 으로 설정되어야한다.

 

 

 

7. 시작시에 저장되어있던 언어가 작동할 수 있도록 저장된 언어 불러오기

 

 

 

결과

 

 

 

‼️ 문제점 ‼️

1. GameObject.name을 기준으로 매칭

  • 현재 문제점: UI 텍스트 매칭 기준이 textElement.gameObject.name이기 때문에, 오브젝트 이름 변경 시 언어 데이터 매칭 실패.

2.  LoadLanguage() 호출 시 파일 I/O 성능 저하

  • 현재 문제점: 매번 언어 변경 시마다 JSON 파일을 파일 경로로 직접 읽어오는 방식이라 성능 저하 및 모바일 환경에서 문제 발생 가능.
728x90