티스토리 뷰

LocalizedStringKey

 

Swift UI에서 Localization을 위한, 새로운 struct가 나왔다. !!!! 바로 LocalizedStringKey!!!

let goal: LocalizedStringKey = "goal"
let text = Text(goal)

짜잔.

 

이게 무슨 의미가 있냐면.....

 

 

기존에 LocalizedString을 쓰려면 이렇게 했어야 했다. 

UILabel(string: NSLocalizedString(key: "abcd"))

저렇게 NSLocalizedString( 을 모든 뷰에서 쓰는게 싫어서, extension String으로 따로 처리하곤 했었다. 

 

 

이제는 굳이 저렇게 안해줘도 된다는 점이 큰 의의이다. 

 

 

요약: String을 받던 UILabel과 달리, Text는 LocalizedKeyString을 받는다. 

 

 

Localize 하는 방법

1. Localizable.strings 파일을 만든다

 

File > New File > Strings File

이름을 Localizable.strings로 안해주면 에러가 난다!!

 

 

 

2. 파일을 선택하고, 우측 패널에서 Localize...버튼을 눌러준다. 

 

 

3. 프로젝트 세팅에서, 

Localization에서 Base, English  두개가 디폴트로 있는데,  + 버튼을 눌러서 자신이 원하는 언어를 추가해준다. 

 

 

그럼 이렇게, Localizible.strings안에 영어랑, 한국어가 생긴다. 

 

언어별로 세팅해주면 된다. 

 

 

SwiftUI 프리뷰에서 보고 싶으면, 설정을 이런식으로 해주면 된다. 

    Group {
      CallToStaffScene()
        .environment(\.locale, .init(identifier: "en"))
      CallToStaffScene()
        .environment(\.locale, .init(identifier: "ko"))
    }

 

String 중간에 변수를 써야 한다면

let value = 40

struct ContentView: View {
    var body: some View {
        Text("bookings: \(value)")
            .fontWeight(.bold)
    }
}

 

이런식으로, Text 중간에 Variable을 써야 할 수 있다. 그런 상황에서는

 

"bookings: %lld" = "Buchungen: %lld";

처럼 써줘야 한다. 

String : %@

Integer: %lld

 

 

 

참고 링크

https://swiftwithmajid.com/2019/10/16/localization-in-swiftui/

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함