안녕하세요 zhi재희입니다!
지난 시간에는 Localizable.strings 파일을 만들어서 다국어 지원을 해보았는데,
오늘은 Locale 다루는 법에 대해 알아보겠습니다.
아이폰에서 설정 -> 일반 -> 언어 및 지역 으로 가면
현재 아이폰 언어 및 지역 확인 및 편집이 가능합니다.
Apple Development Documentation
애플 공식 문서에 따르면 Locale은 언어, 문화, 기술 규약과 표준에 대한 정보를 압축한다고 합니다.
Locale에서 주로 다루게 될 프로퍼티에는 identifier, calendar, regionCode, languageCode 등이 있습니다.
identifier
locale identifier는 "languageCode-scriptCode_regionCode"로 구성됩니다. scriptCode는 nil일 수 있습니다.
위 링크에서 identifier 종류에 대해 확인할 수 있습니다.
regionCode
regionCode는 지역 정보를 담고 있는 프로퍼티로, identifier가 "zh-Hant-HK"일 때 "HK"를 가지게 됩니다.
languageCode
languageCode는 언어 정보를 담고 있는 프로퍼티로, identifier가 "zh-Hant-HK"일 때 "zh"를 가지게 됩니다.
유저의 지역/언어 정보 다루기
simulator의 언어는 한국어, 지역은 미국으로 설정되어 있습니다.
Locale.current."프로퍼티"로 접근할 수 있습니다.
let identifier = Locale.current.identifier
guard let regionCode = Locale.current.regionCode else { return }
guard let languageCode = Locale.current.languageCode else { return }
print("identifier: \(identifier), regionCode: \(regionCode), languageCode: \(languageCode)")
출력 결과는
identifier: ko-Kore_US, regionCode: US, languageCode: ko
다음과 같이 출력되는 것을 볼 수 있습니다.
현재 개발하는 앱에서 언어에 따라 폰트, UI 등을 다르게 표현해야 했는데,
그 때 접근해야 하는 값이 languageCode인지, regionCode인지,
각각의 프로퍼티는 어떤 값을 담고 있는지 알고 싶어서 이 글을 쓰게 되었습니다~!
감사합니다 :D
'All Categories > iOS & Swift' 카테고리의 다른 글
iOS) UIViewController 살펴보기, lifecycle (0) | 2022.02.24 |
---|---|
iOS) 앱의 생명주기 관리 (0) | 2022.02.19 |
iOS) localization(지역화) - 앱에서 다국어 지원하는 방법 (0) | 2022.01.27 |
iOS 13+) Storyboard 없이 프로젝트 생성하기 (2) | 2021.02.15 |
왜 프로토콜 변수 선언땐 let이 안될까? / weak와 unowned 의 차이 (0) | 2021.01.27 |