
Я создал LocalizedError, как показано ниже:
Код: Выделить всё
enum NewDriverLicenseFormError: LocalizedError, Identifiable {
var id: UUID {
UUID()
}
case firstName
var errorDescription: String? {
switch self {
case .firstName:
return NSLocalizedString("First name cannot be empty.", comment: "")
}
}
Код: Выделить всё
#Preview("NewDriverLicenseScreen Spanish") {
NewDriverLicenseScreen()
.environment(\.locale, Locale(identifier: "es"))
}
Код: Выделить всё
struct NewDriverLicenseScreen: View {
@State private var newDriverLicenseForm = NewDriverLicenseForm()
var body: some View {
Form {
TextField("First name", text: $newDriverLicenseForm.firstName)
Button("Submit") {
if newDriverLicenseForm.validate() {
}
}
ValidationSummaryView(errorMessages: newDriverLicenseForm.errorMessages)
}
}
}
struct ValidationSummaryView: View {
let errorMessages: [NewDriverLicenseFormError]
var body: some View {
ForEach(errorMessages) { errorMessage in
Text(errorMessage.localizedDescription)
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... ed-strings