khstar

iOS - 다국어 적용 본문

개발/iOS&iPhone&iPad

iOS - 다국어 적용

khstar 2020. 3. 17. 00:39
반응형

오랜만의 포스팅입니다.

iOS에서 다국어 적용 및 관리를 위한 방법을 기록하기 위해 작성합니다.

전체적인 내용은 Zedd0202님의 글을 직접 적용하면서 개인 기록을 위해 작성합니다.

 

기본 프로젝트를 하나 생성합니다.

프로젝트 폴더에서 New File...을 선택해서 Strings File을 선택하고 Localizable.strings을 파일을 만듭니다.

생성된 Localizable.strings 을 선택하고 Inspector에서 Localize...를 선택합니다.

그럼 Localization부분이 다음과 같이 변경됩니다.

Navigator에서 프로젝트를 선택하고 PROJECT를 선택하면 English - Development Language 의 Resouces에 1File Localized가 되어 있는 것을 확인할 수 있습니다.

확인 하고 아래의 + 버튼을 선택합니다.

언어 선택화면이 나오면 추가하고자 하는 언어를 선택합니다. 전 물론 한글을 선택합니다.

다음으로 어떤 파일을 Localize할지 선택합니다.

Localizable.strings만 다국어 처리를 할 것이기 때문에 Main.storyboard와 LaunchScreen.storyboard는 선택을 해제 합니다.

- Main.storyboard와 LaunchScreen.storyboard의 다국어 처리는 해본적이 없습니다. ㅋ ㅑㅋ ㅑ ㅜㅜ

Localizable.strings (Korean) 파일이 생성되고 Localizations에도 Korean이 추가되었습니다.

왼쪽은 English이고 오른쪽은 Korean입니다. 영어와 한글을 입력하시면됩니다.

내용을 추가하실 때는 키 = 값(문자열) 입니다. 값이 화면에 표시될 문자열입니다.

문자열을 불러올때는 NSLocalizedString("Hello", comment: "") 으로 불러옵니다.

이제 다국어 처리는 끝났습니다. 

앱을 실행시켜보면 iPhone 언어 설정에 따라 Label의 언어가 변경되는 것을 확인할 수 있습니다.

왼쪽은 한글 오른쪽은 영어로 설정했을때 화면입니다.

언어 설정은 설정 - 일반 - 언어 및 지역 에서 iPhone 언어를 변경하시면 됩니다.

기본적으론 여기까지 하면 다국어 설정은 완료되었습니다.

하지만 문자열을 불러올때마다 NSLocalizedString을 사용하면 번거롭습니다. 매번 key 와 commet를 넣어줘야 하니까요.

 

간단하게 사용하는 몇가지 방법이 있는데요.. 

 

전 그 동안 다음과 같이 문자열 상수를 만들어서 사용했습니다.

그런데 Zedd0202님 블로그를 참고하다 보니 더 간단한 방법이 있었습니다. 

역시 머리나 나쁘면 손발이 고생이에요.

 

String을 Extension하는 방법입니다.

훨씬 심플하고 간편하죠. 

 

하지만 장단점은 있는것 같습니다.

String을 Extension하는 것은 사용이 확실히 간편하고 보기에도 좋습니다.

하지만 comment을 추가하지 못하는 문제와 어떤 문자열을 다국어화 하는데 오타가 발생할 수 있습니다.

 

문자열 상수화 하는 것은 모든 다국어를 정의해 두어야 한다는 귀차니즘이 있지만 

만들어 두면 StringConstants 로 다국어화 되어 있는 문자열을 정확하게 불러오기가 쉽고 Comment도 작성할 수 있습니다.

 

어디까지나 개인 생각이었습니다.

이상입니다.

 

다시 반성을 하자면 전 왜 글을 작성하면 정갈하지 못할까요..

ㅜㅜ 마음이 급해서 그런지 아니면 그냥 글을 못쓰는건지 모르겠지만 그냥 참고한다 생각하고 봐주세요.

 

그럼 이만..

 

참고 : https://zeddios.tistory.com/368

반응형
Comments