Programming/iOS

[iOS/Swift3.0] 디바이스언어와 languageCode가 다를 때

devssun 2018. 4. 12. 15:00
728x90
반응형

Swift Language


내가 만든 앱 중 디바이스에 설정된 언어코드를 가져와 로그인 시 서버로 언어 코드를 넘기는 기능이 있었다. 

그런데 사용자 중 iPhone X에서 앱 기능 중 일부가 영어로만 뜨는 문제가 발생해 급하게 패치를 하였다.


확인결과 iOS10에서는 해당 오류가 발생하지않았는데, iOS11부터 발생한 것으로 보여지는 것 같다. 

그런데 다른 앱에서는 잘되는데.. 왜 이 앱에서 그러는지는 아직 이해를 잘 못하겠다.


가장 큰 문제는 디바이스언어가 ko, jp 등의 언어를 설정했음에도 Locale.current.languageCode로 가져오면 en만 뜨는 문제가 있었다.

Locale.current.regionCode를 하면 현재 있는 곳이 한국이기에 ko_KR이었던가 en_KR로 떴던 것 같다. 아무튼 디바이스 언어를 제대로 가져오지않는 문제가 있어 아래와 같이 해결하였다.

let localeID = Locale.preferredLanguages.first
let deviceLocale = (Locale(identifier: localeID!).languageCode)!


반응형