티스토리 뷰

iOS/자료정리

[iOS]Localizations, 다국어 지원하기.

감성개발자 썩소천사 2014. 1. 8. 11:09
반응형

xCode5에서 다국어를 지원하기 위해서 설정을 해 보았다.


PROJECT - Info - Localizations



현제는 3개국어 추가 및 테스트를 하기위해 InfoPlist.strings 파일을 임의로 복사하여 L_KO 등과 같은 파일을 만들어 강제로 언어셋을 가져다 쓸 수 있게 설정해 보려고 하였지만. 설정에서 설정된 기본 언어 외에는 지원이 되지 않았다.



왼쪽 로그는 설정에서 언어셋이 한국어로 되어있을때 결과화면이고 오른쪽은 영어로 되어있을경우에 화면이다.

해당 언어에 맞는 테이블("L_EN","L_KO..)을 호출하였을 경우에만 데이터를 가져올 수 있었다.

info.plist의 "Localization native development region" 속성에서 기본 언어로 된 값은 설정의 언어셋과 무관하게 호출할 수 있었다.

결론은 설정의 언어셋에 맞춰 지원을 할 경우에만 NSLocalizedStringFromTable을 사용할 수 있었다.


해서 내린 결론은 강제로 언어셋을 바꾸기 위해서는 기본으로 제공되는 하나의 InfoPlist파일에 전체 언어를 등록하고,

호출 시 해당 키값에 ("키"+"언어셋") 을 붙여서 호출하는 식으로 사용할 수 밖에 없겠다는 결론을 내리게 되었다.

"TEST_EN"="ENGLISH";

"TEST_JA"="JAPAN";

외와 같이 InfoPlist 에 String을 등록 한 후 호출할 때 키값을 호출하면 함수에서 키값에 기본 언어설정 String 도 붙여서 호출 하면되겠다.

기본 언어설정 값이 "_EN"일 경우라고 가정하고,

NSLocalizedStringFromTable([self languageSet:@"TEST"], @"InfoPlist", nil);     //결과 값 @"ENGLISH"

[self languageSet:@"TEST"]   호출 시 결과 값 @"TEST_EN"


위와 같은 방법 이에외는 딱히 좋은 방법이 있는지 모르겠다.

참고로 xCode5에서 "Use Base Internationalization"속성을 해제할 경우 Storyboard 파일도 지워져 버리니 유의 하기 바란다.

설정에 따른 언어셋을 지원하고 싶을 경우에도 2번째 이미지처럼 전체를 체크할 필요는 없으며 InfoPlist파일(2개 en, ko)만 체크하면 된다. 스토리 보드 선택 시 스토리보드에 하위 언어셋 리스트가 설정되는데 구지 필요하지는 않아 보인다.

마지막으로 언어셋을 설정하기 전에 프로젝트 압축을 필히 해야한다. 한번 날라가면 되돌리기가 힘들다...



반응형
댓글
댓글쓰기 폼
공지사항