기본적으로 빌드를 할 경우 각 단어, 문장에 따른 고유 ID가 생성되지만, 조건문이나 String으로 사용하는 경우 ID가 생성되지 않습니다.
이와 같은 경우 String(localized: )기능을 사용하여 사용할 ID를 입력하여 변수를 생성하고, 이를 Text에 넣어 사용하면 됩니다.
struct PostViewFooter: View {
private var findCurrentLocationLocalizingText = String(localized: "현재 위치를 탐색하고 있습니다")
var body: some View {
ZStack {
HStack {
VStack(alignment: .leading) {
Text(viewModel.memoAddressText.isEmpty ? findCurrentLocationLocalizingText : viewModel.memoAddressText)
...
}
}
}
}
}
@Binding 혹은 @State와 같은 프로퍼티 래퍼에 사용되는 경우, 다음과 같이 사용할 수 있습니다.
struct FilterButton: View {
@State var imageName: String = "line.3.horizontal"
@Binding var buttonName: String
var body: some View {
HStack {
Image(systemName: imageName)
Text(LocalizedStringKey(buttonName))
}
}
}
가능하다면 추가해주세요
변경 사항 스크린샷 혹은 화면 녹화
Localizable파일은 다음 경로에 위치합니다.
다음과 같이 번역을 할 수 있답니다. 함께 추가해 보아요
Test 여부
Test 정보
//예시
let testDatas: [TestData] = [.init(...),...]
기타 언급해야 할 사항들
영어로 변환될 경우 기존의 글자수보다 많아지는 경우가 많아 View가 저희가 기대한 화면과 다르게 나오는 경우가 있습니다. 이에 대한 대응이 필요할 것 같습니다.
같은 기능을 가진 Button, Text들의 이름이 다른 경우가 많습니다. (ex - 메모 등록, 메모 작성, 수정, 수정하기 등..) 이와 같은 단어들에 대한 통일이 필요할 것 같습니다.
PR 가이드라인
PR Checklist
PR 날릴 때 체크 리스트
PR Type
어떤 종류의 PR인가요?
연관되는 issue 정보를 알려주세요
Issue Number: #167
PR 설명하기
localize 기능을 추가하였습니다.
어떻게 작동하나요? code 기반으로 설명해주세요
기본적으로 빌드를 할 경우 각 단어, 문장에 따른 고유 ID가 생성되지만, 조건문이나 String으로 사용하는 경우 ID가 생성되지 않습니다. 이와 같은 경우
String(localized: )
기능을 사용하여 사용할 ID를 입력하여 변수를 생성하고, 이를 Text에 넣어 사용하면 됩니다.@Binding
혹은@State
와 같은 프로퍼티 래퍼에 사용되는 경우, 다음과 같이 사용할 수 있습니다.가능하다면 추가해주세요
변경 사항 스크린샷 혹은 화면 녹화
Localizable파일은 다음 경로에 위치합니다.
다음과 같이 번역을 할 수 있답니다. 함께 추가해 보아요
Test 여부
Test 정보
기타 언급해야 할 사항들