swift로 다국어를 사용하는 방법.


1. 아래의 화면처럼 프로젝트를 선택하고 Info 탭 안의 localizations 부분에 언어를 추가한다.

(English 가 기본으로 되어있어 korean을 추가하였다.)

한국어를 추가하고 나면 기본적으로 만들어진 Main.storyboard 파일 하위에 Main.strings(Korean) 이라는 파일이 만들어지며

파일 안에는


/* Class = "UIButton"; normalTitle = "Button"; ObjectID = "95Z-0t-cRz"; */

"95Z-0t-cRz.normalTitle" = "button";


/* Class = "UILabel"; text = "Label"; ObjectID = "zw3-Ke-qxS"; */

"zw3-Ke-qxS.text" = "label";

위와 같은 코드가 자동으로 작성되는데 이는 기존에 만들어진 label과 button 등의 UI 컴포넌트들의 Object ID 값에 매핑되는 이름들이다.

위의 button, label 텍스트를 원하는 한국어로 바꾸어 작성하면 된다.

스토리보드 파일에 UI컴포넌트들이 하나도 없다면 이 파일은 빈 파일로 생성될 것이다.

또한 Main.storyboard 파일을 클릭하고 file inspector 를 보면 Localization 이라는 메뉴가 있는데 여기서 언어를 추가하거나 지울 수 있다.




2. 위 사진의 프로젝트 네비게이터에 보이는 것 처럼 InfoPlist.strings 파일과 Localizable.strings 파일을 만든다. (파일 이름 틀리지 않게 주의)

파일을 생성하고나면 file inspector 탭에서 localization 을 활성화하고 해당 언어를 클릭하면 InfoPlist.strings 와 Localizable.strings 파일의 하위 카테고리에 언어별로 파일들이 나누어 만들어진다.


InfoPlist.strings 파일에는 아래와 같이 작성하면 언어 설정에 따라 앱의 이름이 다르게 표시된다.


(english 파일)

CFBundleDisplayName = "my app";


(korean 파일)

CFBundleDisplayName = "나의 어플";


위와같은 방법으로 localizable.strings 파일도 언어 파일별로 코드를 작성한다.

"text code" = "테스트 코드";

"result code" = "한국어 입니다.";


컨트롤러 파일에서 해당 코드들을 넣을땐


resultLabel.text = NSLocalizedString("result code", comment: "result code...")


위와같은 방법으로 코드를 넣으면 언어가 한국어일때 result code 에 매핑되어있는 "한국어 입니다." 텍스트가 표시된다.



+ Recent posts