본문 바로가기

Swift

xocde7 localization, 지역화, 현지화 - 1. 환경 설정 및 적용


다음 사이트를 보고 Localization을 진행하고 있다.

참고 사이트: https://lingohub.com/frameworks-file-formats/ios-i18n-xcode7/

https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014


아래 위치에서 Localization 항목에 korean을 추가한다.




그리고 Main.Stroyboard를 선택하고 오른쪽 File Inspector(종이 모양 아이콘, option+command+1)에 가면 Localization에 Base, english, korean을 볼 수 있다. 아래 그림처럼 모두 체크해주자.

그럼 왼쪽 Project Navigator의 Main.Storyboard 아래에 .strings 파일이 체크한만큼 생기는 것을 확인할 수 있다.



아무 String이나 아래 코드처럼 변경해준다. NSLocalizedString 이용.




그리고 터미널을 열고 프로젝트 폴더에서 genstrings *.swift 라고 입력한다.



나중에 알게 된 사실인데 나는 genstrings *.swift 명령때문에 en.lproj 파일 등이 생성된 것인줄 알았는데 파일 생성날짜를 확인해보니 그건 아니었다. 처음에 Inspector의 Localization에서 각 언어들을 체크해주었을 때 생긴 것으로 추정된다. 

그리고 이렇게 생성된 파일들은 자동으로 Project Navigator에 추가되지 않는다. 그래서 수동으로 해당 파일들을 추가해주고 그룹(폴더)도 만들어서 그리로 옮겨주었다.

쩝.. ㅋㅋ

더 웃긴 것은 이 파일들을 수동으로 추가해주고 폴더 안을 보았더니 아까 추가된 파일들이 이 안에 있는게 아닌가? ㅋㅋ 그래서 다시 지워버렸다.


자.. 이렇게 만든 과정은 사실 내가 하려는 과정과 별 상관이 없다는 것을 알았다.

왜냐면 나는 대부분의 UI를 without storyboard로 만들었기 때문이다. 즉 위에 Storyboard 아래로 생긴 파일들은 Storyboard상에서 만드는 UI에 대한 지역화 파일들이기 때문이다.


이제 내가 진짜 필요했던 것을 해보고자 한다.


1. Localizable.strings 파일을 새로이 추가한다. 이름은 꼭 Localizable로 줘야 한다. 다른 이름을 줘봤는데 제대로 작동하지 않았다. 물론 다른 이름을 사용하는 방법은 있겠지만 그건 나중에 찾아볼란다.



2. 만들어진 Project Navigator에서 Localizable.strings를 선택하고 오른쪽의 File Inspector (단축키: option+command+1)에서 Localization 버튼을 눌러 localization을 활성화시킨다.

일단 내가 원하는 언어인 한국어를 체크한다. 다른 것도 체크하면 해당 체크에 대한 Localizable.strings파일이 자동으로 생성된다. 하지만 난 한국어만 선택했으므로 이런 일은 아직 발생하지 않았다.



3. 지역화 하고자 하는 문구를 NSLocalizedString를 이용하여 작성한다.

나는 NavigationBar의 title에 적용해 보았다.

self.title = NSLocalizedString("Intro", comment: "Intro")


4. 다시 Project Navigator에서 Localizable.strings를 선택하면 텍스트 편집 창이 보일 것이다.

아래와 같이 입력해보자.

/* 
  String.strings
  MathAvengers

  Created by SeoDongHee on 2016. 7. 25..
  Copyright © 2016년 SeoDongHee. All rights reserved.
*/

"Intro" = "시작";


그리고 앱을 실행해보면, 짜잔~ Intro라고 표시되던 것이 시작으로 바뀌어 있는 것을 확인할 수 있다.