iOS・iPadOS
다음 게시글: 앱에 커스텀 폰트(custom font) 적용하기.
앱(Application)의 이름 localization 적용하기
iPhone 또는 iPad의 언어 설정에 따라 홈 화면에 나타나는 앱의 이름을 다르게 보여주어야 할 필요가 발생할 수 있다. 예를 들어 카카오톡의 경우도 한국어 상태의 단말기에서는 홈 화면에서 앱 이름이 “카카오톡”과 같이 한글로 나타나지만, 영어 상태의 단말기에서는 앱 이름이 “KakaoTalk”과 같이 영문으로 나타난다. 사용자에게 나타나는 앱의 이름은 CFBundleDisplayName
이라는 이름으로 번들(bundle)에 보관되게 된다.
위와 같은 결과를 얻으려면 Xcode에서 다음과 같이 준비한다.
1 단계. 앱이 지원할 수 있는 언어 설정하기
Xcode의 좌측 프로젝트 내비게이터(Project navigator)에서 최상단 항목인 프로젝트를 선택한다. 그 다음 우측 편집 화면에서 프로젝트 이름을 선택한 후 [Info] 탭을 클릭한다.
Localization 항목을 보면 기본으로 영어만 추가되어 있는데, [+] 버튼을 눌러 앱이 지원할 수 있는 언어들을 하나씩 클릭하여 추가시킨다.
언어를 선택할 때마다 프로젝트가 현재 가지고 있는 리소스 파일들의 목록이 나타나며 이러이러한 파일들에 대해 다국어를 지원하겠다는 대화상자가 나타난다. 모두 선택해 주면 좋고, 일부만 선택해서 그것들만 다국어를 지원할 수도 있다. 일단 [Finish]를 눌러본다.
여기에서는 영어, 한국어, 프랑스어, 러시아어 및 일본어의 5개 국어를 지원해 보겠다.
앞서 언급된 CFBundleDisplayName
라는 이름의 변수는 프로젝트의 info.plist
에 정의된다. 그렇다고 info.plist
를 열어서 마치 하드코딩처럼 문자열을 막 수정하는 것은 재미없으므로 유연한 방법으로 접근한다.
2 단계. info.plist에 대한 localization 적용하기
1 단계에서 앱이 지원할 수 있는 언어들을 결정한 후에 [File] 메뉴에서 새 파일을 추가한다.
새로 추가될 파일의 유형은 strings이다.
또한 파일의 이름은 InfoPlist.strings
이므로 대화상자에는 InfoPlist
를 입력한다. 파일 이름은 바꾸거나 할 수 없고, Xcode에서 항상 그렇게만 쓰겠다고 고정시킨 이름이기에 여기에 따른다.
앞서 언급된 CFBundleDisplayName
변수는 이 곳에 놓이게 된다. strings 파일이 추가된 직후에는 대개 영어 모드일 때의 문자열을 지정하게 되므로 다음과 같이 영문 앱 이름을 우선 작성해 본다.
"CFBundleDisplayName"="<영어 앱 이름>";
CFBundleDisplayName
는 대소문자가 정확히 일치해야 하며 줄 끝에는 반드시 세미콜론(;)이 붙어야 한다. 그리고나서 화면 우측 메뉴의 [Localize] 버튼을 클릭한다. 앞서 1 단계에서 앱의 언어를 추가할 때마다 이러이러한 리소스 파일에 대해 localization을 적용하겠다고 대화상자가 뜬 것을 보았을 텐데, 이와 같이 해당 대화상자에서는 나타나지 않았던 info.plist
와 같은 파일이나 나중에 추가된 리소스 파일 같은 것들은 이러한 방식으로 [Localize] 버튼을 클릭하여 localization을 적용할 수 있다.
현재 편집중인 파일은 영어 모드일 때 사용자에게 보여줄 문자열로 간주하고 영어 리소스에 해당하는 폴더로 이동시키겠다는 대화상자이다. 딱히 수정해야할 것은 없어 보이므로 그냥 [Localize] 누른다.
그러면 [Localize] 버튼이 있던 자리에 1 단계에서 설정했던 언어 목록들이 뜬 것을 볼 수 있다. localize할 언어들을 선택해 준다. 여기에서는 모두 다 선택한다.
언어를 체크할 때마다 프로젝트 내비게이터(Project navigator)에서 InfoPlist.string
가 해당 언어 버전으로 분화되는 것을 볼 수 있다. 파일을 하나씩 열어서 그 언어에 맞게 앱 이름을 적어준다. 그러면 단말기의 언어 설정에 따라 앱 이름이 다르게 나타날 것이다.