본문 바로가기

All Categories/iOS & Swift

Swift) Locale 다루기 - 언어 및 지역

반응형

안녕하세요 zhi재희입니다!

지난 시간에는 Localizable.strings 파일을 만들어서 다국어 지원을 해보았는데,

오늘은 Locale 다루는 법에 대해 알아보겠습니다.

아이폰 - 설정 - 일반 - 언어 및 지역

아이폰에서 설정 -> 일반 -> 언어 및 지역 으로 가면

현재 아이폰 언어 및 지역 확인 및 편집이 가능합니다.

 

Apple Development Documentation

Locale

애플 공식 문서에 따르면 Locale 언어, 문화, 기술 규약과 표준에 대한 정보를 압축한다고 합니다.

 

Locale에서 주로 다루게 될 프로퍼티에는 identifier, calendar, regionCode, languageCode 등이 있습니다.

instance property

 

identifier

locale identifier"languageCode-scriptCode_regionCode"로 구성됩니다. scriptCode는 nil일 수 있습니다.

 

React Native i18n Locale Identifiers

React Native i18n Locale Identifiers. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

위 링크에서 identifier 종류에 대해 확인할 수 있습니다.

 

regionCode

regionCode는 지역 정보를 담고 있는 프로퍼티로, identifier가 "zh-Hant-HK"일 때 "HK"를 가지게 됩니다.

regionCode

languageCode

languageCode는 언어 정보를 담고 있는 프로퍼티로, identifier가 "zh-Hant-HK"일 때 "zh"를 가지게 됩니다.

languageCode

 

유저의 지역/언어 정보 다루기

simulator의 언어는 한국어, 지역은 미국으로 설정되어 있습니다.

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

반응형