옆집 스위프트: localization(현지화)과 InfoPlist localization
기기 사용 허가(GPS 같은거)를 받을때 InfoPlist에 내용을 넣기 마련이다.
설정하지않으면 기본 멘트같은게 있지만 그래도 신경을 써야할때가 온다.
그리고 앱이 글로벌화를 진행중이라면 텍스트 내용을 기기 언어설정을 반영하기위해 스위프트에서 localization 사용한다.
로컬라이제이션(Localization)은 애플리케이션을 여러 언어와 문화권에 맞게 번역하고 조정하는 과정이다. 이를 통해 애플리케이션을 다양한 지역 사용자에게 적합하게 만들 수 있다. iOS 애플리케이션에서 로컬라이제이션을 구현하면 앱이 자동으로 사용자의 기기 설정에 따라 올바른 언어로 표시된다.
로컬라이제이션의 주요 요소는 아래와 같이 사용된다.
1. 텍스트 로컬라이제이션: 앱 내부의 모든 텍스트를 여러 언어로 제공
2. 리소스 로컬라이제이션: 이미지, 비디오, 사운드, 날짜 및 숫자 형식 등과 같은 지역화된 리소스를 제공
3. 문화적 적응: 지역의 문화적 차이를 반영하여 콘텐츠와 기능을 조정
그 중 텍스트 로컬라이제이션에 대해 자세히 알아보겠다.
1. 기본 파일 설정
로컬라이제이션을 설정하려면 프로젝트의 로컬라이제이션 설정이 필요하다.
1.1 프로젝트에서 로컬라이제이션 추가
1. Xcode에서 프로젝트 파일을 클릭하여 Project Navigator로 이동
2. Info 탭에서 Localizations 섹션으로 이동
3. 원하는 언어를 추가
2. 로컬라이제이션 파일 관리
로컬라이제이션 파일은 특정 폴더 구조에 따라 관리된다. 이 구조는 언어 코드를 기반으로 하며, Xcode에서 관리할 수 있다.
2.1 Localizable.strings 파일 생성
1. New File을 선택하고 Strings File 템플릿을 사용하여 Localizable.strings 파일을 생성한다.
2. 파일 이름을 Localizable.strings로 설정한다. (파일명 존중 필수)
3. 생성된 파일을 각 언어별로 로컬라이즈한다.
3. 로컬라이제이션 문자열 추가
각 언어에 대해 Localizable.strings 파일에 텍스트를 추가한다.
한국어 (ko):
"hello_world" = "안녕3개야";
"welcome_message" = "환영한다!";
영어 (en):
"hello_world" = "Hello, World!";
"welcome_message" = "Welcome!";
4. 앱 코드에서 로컬라이제이션 사용
로컬라이즈된 문자열을 앱에서 사용하는 방법은 NSLocalizedString을 이용하는 것이다다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 로컬라이즈된 문자열 사용
let helloWorld = NSLocalizedString("hello_world", comment: "A greeting to the world")
print(helloWorld)
// UILabel에 로컬라이즈된 문자열 설정
let label = UILabel()
label.text = NSLocalizedString("welcome_message", comment: "A welcome message")
view.addSubview(label)
}
}
5. Info.plist 로컬라이제이션
5.1 InfoPlist.strings 파일 생성
1. New File을 선택하고 Strings File 템플릿을 사용하여 InfoPlist.strings 파일을 생성한다.
2. 파일 이름을 InfoPlist.strings로 설정한다. (파일명 존중 필수)
3. 각 언어별로 로컬라이즈한다.
보통 앱 내에서 localization을 진행하면 모두 Localizable.strings 파일에 넣으면 되지만 infoPlist는 InfoPlist.strings 파일에 넣어야 하며 info.plist 아래 infoPlist.strings 파일을 위치해두는 것이 좋다.
한국어 (ko):
"NSLocationWhenInUseUsageDescription" = "\"앱을 사용하는 동안 허용\"을 선택해주세요. ----는 근무지역이 아닌 다른 위치에서 사용할 경우 생기는 부정행위를 방지하기 위해 위치 접근 권한이 필요합니다. 미 허용 시 앱을 사용하실 수 없습니다.";
영어 (en):
"NSLocationWhenInUseUsageDescription" = "Please select \"Allow While Using App\". ---- require location access to prevent fraudulent activities when used outside the designated work area. If location access is not granted, you will be unable to use the app.";
하면 각각 한국어, 영어는 이렇게 보이게 된다.
요약
• 로컬라이제이션 설정: Xcode 프로젝트에서 로컬라이제이션 설정을 추가
• 파일 관리: Localizable.strings 및 InfoPlist.strings 파일을 각 언어별로 생성하여 로컬라이즈된 텍스트를 관리
• 앱 코드: NSLocalizedString을 사용하여 로컬라이즈된 문자열을 불러옴
이 과정들을 통해 iOS 애플리케이션을 다국어로 지원할 수 있으며, 다양한 지역의 사용자에게 더 나은 경험을 제공할 수 있다.
*추가) 참고로 앱 권한 alert에서 버튼과 타이틀은 변경이 불가능하며 중간에 멘트도 미입력시 심사통과가 힘들수도 있다.