게임내 다국어 지원 설정 기능 추가하기..

2013. 8. 13. 16:19프로그래밍/Android

728x90
반응형

게임을 만들다 보면 해외 퍼블리셔 또는 서비스를 직접하게됩니다.

기본적으로 한글,영어 그리고 스페인어 일본어 중국어(간체와 번체)등 다양하게 지원하게 됩니다.

게임의 환경설정에서 사용자가 직접 지정하게 하지 않는다면 나중에 관리하기가 생각보다 어렶게됩니다. 자바에서는 어떻게 하면 다국어를 지원할수 있는지 알아보겠습니다.


res디렉토리 아래 다음과 같이 디렉토리를 만들어주시면 됩니다. 그럼 사용자의 단말기의 언어설정에 따라서 자동으로 변경 및 적용됩니다. 


res/values             // 기타 언어

res/values-en        // 영어

res/values-ja         // 일본어

res/values-ko        // 한글 

res/values-zh-rcn  //중국어 간체로 중국 본터에서 사용됩니다.

res/values-zh-rtw  //중국어 번체로 대만지역에서 사용되고 있습니다.


위와 같이 각 디렉토리아래 string.xml을 만들어서 각 해당언어로 번역해 주시면 됩니다.


하지만 게임내 환경설정에서 언어를 설택할 경우 다음과 같이 설정을 해주시면 됩니다.

Locale locale2 = new Locale("en");

if(NativeGetUserLanguage() == LanguageCode.KOREAN.ordinal())

{

locale2 = new Locale("ko");

}

else if(NativeGetUserLanguage() == LanguageCode.JAPANISH.ordinal())

{

locale2 = Locale.JAPANESE;

}    

else if(NativeGetUserLanguage() == LanguageCode.CHINESE_TW.ordinal())

{

locale2 = Locale.TRADITIONAL_CHINESE;

}       

else if(NativeGetUserLanguage() == LanguageCode.CHINESE_CN.ordinal())

{

locale2 = Locale.SIMPLIFIED_CHINESE;

}    

else

{

locale2 = new Locale("en");

}

Configuration config2 = new Configuration();

config2.locale = locale2;

getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());    

위와 같이 사용자의 언어선택에 따라서 설정해주시면 됩니다. 중국어 번체와 간체를 구분하는 것이 어렵지만 전통(번체)과 단순(간체)으로 설정해 주시면 됩니다.


생각보다 쉽게 처리할수 있습니다.

해외진출을 고려하시는 많은 개발자분들에게 조금이나마 도움이 되었으면 합니다.

감사합니다.






728x90
반응형