한국어, 영어, 일본어를 Localized한 어플리케이션을 업데이트 하려고 하는데, 로컬 알림(Local Notification)의 경우 정보가 없는 경우가 많아 골머리를 앓았다.
로컬 알림의 경우 코드 상에서만 인식되는 경우가 많은데, 이 경우에는 새로 생긴 String Catalog에 빌드를 해도 자동으로 나타나지 않기 때문이다.
이 글에서는 일반적인 String을 어떻게 String Catalog에 적용하는지 확인해보겠다.
String Catalog에 인식시키는 방법
이 방법은 String()으로 선언하는 방식과, LocalizedStringResource로 2가지가 있다.
String(localized: "String") 사용하기
let content = UNMutableNotificationContent()
content.title = String(localized: "\(memberTitle)시에요!")
content.body = String(localized: "\(dateComponent.hour ?? 0)시 \(dateComponent.minute ?? 0)분입니다.")
content.sound = .default
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
위와 같이 String(localized: )를 사용하고 난 뒤 한번 빌드해주면, 자동으로 String Catalog에 뜨는 것을 확인할 수 있다.
LocalizedStringResource 사용하기
아니면, 아예 선언을 할 때부터 이 String이 Localization이 필요한 문자열임을 알려주는 방법도 있다.
let exampleString: LocalizedStringResource = "안녕하세요"
위와 같이 해당 변수의 타입을 LocalizedStringResource로 선언하면, 자동으로 String Catalog에 적용된다.
LocalizedStringResource의 경우 코드상에서는 일반적인 String과 동등하게 처리되는 듯 하지만, String 타입을 리턴해야하는 메소드 등에서는 오류를 내는 경우가 많으니 화면 구성 또는 알림에만 사용하도록 하자.
'개발' 카테고리의 다른 글
[SSH] 간단하게 SSH 접속하기 (.pem) (0) | 2024.09.23 |
---|---|
[SwiftUI] MapKit으로 Annotation 놓기 (iOS 17+) (0) | 2024.09.23 |
[Swift] Swift에서 Beacon을 사용하는 방법 (1) | 2024.08.01 |
[Swift] String Catalog 사용하기 (1) | 2024.04.23 |
[Swift] 오답노트 - DateComponent Weekday (0) | 2024.04.15 |