앱을 사용하는 사용자의 언어 설정에 따라 UI 문자열, 날짜, 통화 등을 자동으로 해당 언어로 보여주는 기능
Localizable.strings
파일 만들기NSLocalizedString
또는 String(localized:)
으로 문자열 사용// 이렇게 생긴 구조가 생김
Localizable.strings (Base)
Localizable.strings (English)
Localizable.strings (Korean)
Localizable.strings (Japanese)
아래처럼 각 파일에 등록
// Localizable.strings (English)
"hello" = "Hello!";
"settings" = "Settings";
// Localizable.strings (Korean)
"hello" = "안녕하세요!";
"settings" = "설정";
// Localizable.strings (Japanese)
"hello" = "こんにちは!";
"settings" = "設定";
let greeting = NSLocalizedString("hello", comment: "인사 메시지")
label.text = greeting // 설정된 언어에 따라 자동 표시
"hello"
은 키 값comment:
는 Xcode에서 번역가가 이해할 수 있도록 돕기 위한 설명(실제 앱에는 노출되지 않음)let greeting = String(localized: "hello")
label.text = greeting
항목 | NSLocalizedString | String(localized:) |
---|---|---|
형태 | 함수 기반 | Swift 초기화 구문 |
지원 버전 | iOS 2.0 이상 | ✅ iOS 15+ |
SwiftUI 친화성 | 보통 | 매우 좋음 |
다국어 테이블 | 지원 | 지원 |
타입 안정성 | 낮음 | 높음 |
💡 날짜, 숫자, 통화 자동 변환 (예: DateFormatter)
let formatter = DateFormatter() formatter.dateStyle = .medium formatter.locale = Locale.current // 현재 사용자의 언어 설정 반영