2018. 8. 27. 17:02ㆍiOS/Swift
안녕하세요 :)
이번 포스트에서는 앱 다국어 처리를 알아보도록 하겠습니다.
우선 프로젝트 - Info - Localizations에서 추가하고 싶은 언어를 추가합니다.
다국어화 할 타겟들을 선택합니다.
그럼 이렇게 스토리보드마다 다국어화 할 파일들이 생성됩니다!
저는 한국어를 사랑하니까 Korean을 추가했어요
이제 여기서 다국어 화 방법은 두가지로 나뉩니다.
1. 스토리 보드에서 다국어 처리하기
스토리보드에서 다국어 처리 하는 방법은 간단합니다.
Label을 생성한 후 Main.strings (Korean)에 들어가면
/* Class = "UILabel"; text = "Label"; ObjectID = "x0m-De-BWp"; */
"x0m-De-BWp.text" = "Label";
이런 코드가 있을 꺼에요
이 코드를
/* Class = "UILabel"; text = "Label"; ObjectID = "x0m-De-BWp"; */
"x0m-De-BWp.text" = "라벨";
이렇게 바꿔주면 다국어화 끝!
+) LaunchScreen은 다국어화 할 수 없습니다...
아마 custom class 가 안되서 그런게 아닐까요..?ㅜㅜ
2. 코드로 다국어 처리하기
New File - String File을 선택하여 다국어 처리를 위한 파일을 하나 생성합니다
이렇게 Localizable.strings라는 파일이 생겼습니다!
파일을 누르고 인스펙터에 에서
Localization - Localize를 클릭!
어떤 언어로 뭐 만들꺼냐 묻는데 뭘 해도 딱히 상관은 없어요
어차피 나중에 수정가능가능
Localize 누르면 저렇게 버튼 대신에 체크리스트들이 나타납니다
저는 체크박스 세개 다 체크해줬음ㅎ
그리고 네비게이션 탭을 보면
Localizable.strings에 체크한 값들과 같은 파일들이 생겼네요!!!
Base는 보통 영어라서 English는 없어도 될듯 해요
// Localizable.strings (Base)
"Hello" = "Hello";
"Bye" = "Bye";
// Localizable.strings (Korean)
"Hello" = "안녕하세요";
"Bye" = "안녕";
이렇게 파일 별로 코드를 작성합니다
**
여기서 주의 사항!
마지막에 세미콜론; 이거 필수입니다!
안하면
이런 에러가 뜨는데 코드가 얼마 없으면 금방 찾을 수 있지만
코드가 길어지면 찾기도 힘들어요ㅜㅜ
잊지말고 꼭꼭 붙여줍시다!
**
다국어 코드를 다 입력했다면 컨트롤러로 가서 다국어화를 진행해 봅시다
lbl.text = "Hello" // 바꾸고 싶은 text
lbl.text = String(format: NSLocalizedString("Hello", comment: ""))
이렇게 하면 바꿔주면 시스템 언어가 한국어라면 "안녕하세요" 라고 표시가 됩니다.
자, 이렇게 다국어화 작업이 끝이 났습니다:)
BUT!
우리는 신속한 Swift를 사용하는 사람들!
저 긴 코드를 귀찮고 바쁜데 일일이 칠 수는 없잖아요?
다음 포스트에서는 저 긴 코드를 단 한 줄로 바꿔봅시다!!
봐주셔서 감사합니다!
다들 즐거운 코딩되세요><
'iOS > Swift' 카테고리의 다른 글
[Swift] mailto와 MFMailComposeViewController (0) | 2020.04.08 |
---|---|
[Swift] 센트리(Sentry)를 사용해보자! (0) | 2020.04.06 |
[Swift] textField / textView 끝의 공백 없애기 (0) | 2019.03.19 |
[Swift] 한글 종성받침 유무에 따라 '을/를' 반환하기 (0) | 2018.12.13 |
[Swift] 다국어(Localize) 처리하기 +a (0) | 2018.08.29 |