[Unity] 유니티 앱 이름 다국어 적용하기

Posted by Dev Park
2019. 6. 10. 15:21 Unity

앱 이름 다국어 적용하기는 

유니티에서 개발한 앱을 사용자가 다운받아서 사용할때 사용자가 사용하는 언어에 맞는 언어로 

설치하도록 하는 방법입니다. 

 

예를 들어 사용자의 폰이 영어라면 영어 이름으로 

한글이라면 한글이름으로 일본어라면 일본어 이름으로 설치되도록 하는 방법입니다. 

 

먼저 앱 이름을 여러가지 언어로 설정하려면 Plugins 폴더 안에 res 폴더를 만들어 res 폴더 안에 국가별로 폴더를 만들어야 합니다. 

 

위 그림에 나온것 처럼 Plugins 폴더 안에 res 폴더를 만들고 values 라는 폴더를 만들어 줍니다. 

(사용하는 다른 플러그인에 따라서 res 폴더가 이미 생성되어 있을 수도 있습니다. 이 경우 해당 폴더에 그대로 사용하시면 됩니다. )

 

기본적으로 values 라는 이름으로 되어 있는게 기본 이름으로 영어 버전이라고 생각하면 됩니다. 

그 아래로 values-ja 는 일어 버전, values-ko는 한글 버전입니다. 

 

추가로 다른 언어를 추가하고 싶다면 values-국가코드 형태로 폴더를 추가하면 됩니다. 

해당 국가 폴더 안에는 values.xml 파일을 만들어 줍니다. 

 

values.xml 안에 사용 되는 코드는 아래와 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<resources>
  <string name="app_name">여기에 앱 이름</string>
</resources>

 

여기에 앱 이름 부분에 각 언어에 맞는 이름을 넣어 사용하면 됩니다. 

 

설치를 테스트 해보면 위 스샷에 [테스트 프로젝트] 처럼 각 언어에 맞는 이름으로 설치됩니다. 

 

다음으로 사용자가 앱을 설치 시 앱의 이름 외에 앱 자체의 언어를 자동으로 설정하게 하려면 

아래의 코드를 앱 시작 부분에 넣어 사용하면 됩니다. 

        switch (Application.systemLanguage)
        {
            case SystemLanguage.Korean: m_eLanguage = eLanguage.KR; break;
            case SystemLanguage.English: m_eLanguage = eLanguage.EN; break;
            case SystemLanguage.Japanese: m_eLanguage = eLanguage.JP; break;

            default: m_eLanguage = eLanguage.EN; break;
        }

        if (PlayerPrefs.HasKey("LANGUAGE"))
        {
            m_eLanguage = (eLanguage)PlayerPrefs.GetInt("LANGUAGE");
        }

Application.systemLanguage 를 통해 시스템에서 사용하는 언어를 확인하고 

그에따라 지원하는 언어로 설정해서 사용합니다. 

 

 if (PlayerPrefs.HasKey("LANGUAGE"))
 {
     m_eLanguage = (eLanguage)PlayerPrefs.GetInt("LANGUAGE");
 }

를 통해서 기존에 사용자가 이미 설정해 놓은 언어가 있다면 해당 언어를 사용하도록 합니다.