Update german translation for #935 (#975)

This commit is contained in:
Tom 2024-07-30 22:12:34 +02:00 committed by GitHub
parent 1611d7e0c6
commit 1609273809
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 62 additions and 1 deletions

View File

@ -169,4 +169,65 @@ Die erste Überprüfung verwendet `!` als Operator, was bedingt, dass der Wert n
validations.add("favoriteColor", as: String.self, is: .in("red", "blue", "green"), required: false)
```
Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit einer der Angaben im Beispiel (red, blue, green) übereinstimmen muss. Mit dem Parameter *required:* legen wir fest, dass die Überprüfung nicht fehlschlägt, sollte der Wert in der Anfrage fehlen.
Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit einer der Angaben im Beispiel (red, blue, green) übereinstimmen muss. Mit dem Parameter *required:* legen wir fest, dass die Überprüfung nicht fehlschlägt, sollte der Wert in der Anfrage fehlen.
## Benutzerdefinierte Validatoren
Durch die Erstellung einer eigenen Regelvorlage können wir Vapors bestehendes Regelwerk erweitern. Im folgenden Abschnitt erstellen wir eine neue Vorlage, um eine Postleitzahl zu gegenzuprüfen.
Zunächst erstellen wir einen neuen Typ, um die Ergebnisse der Validierung darzustellen. Diese Struktur ist dafür verantwortlich, zu melden, ob eine bestimmte Zeichenfolge eine gültige Postleitzahl ist.
```swift
extension ValidatorResults {
/// Represents the result of a validator that checks if a string is a valid zip code.
public struct ZipCode {
/// Indicates whether the input is a valid zip code.
public let isValidZipCode: Bool
}
}
```
Als Nächstes wird der neue Typ an `ValidatorResult` angepasst, das das von einem benutzerdefinierten Validator erwartete Verhalten definiert.
```swift
extension ValidatorResults.ZipCode: ValidatorResult {
public var isFailure: Bool {
!self.isValidZipCode
}
public var successDescription: String? {
"is a valid zip code"
}
public var failureDescription: String? {
"is not a valid zip code"
}
}
```
Abschließend wird die Validierungslogik für Postleitzahlen implementiert. Dabei wird ein regulärer Ausdruck verwendet, um zu prüfen, ob die Eingabezeichenfolge dem Format einer US-amerikanischen Postleitzahl entspricht.
```swift
private let zipCodeRegex: String = "^\\d{5}(?:[-\\s]\\d{4})?$"
extension Validator where T == String {
/// Validates whether a `String` is a valid zip code.
public static var zipCode: Validator<T> {
.init { input in
guard let range = input.range(of: zipCodeRegex, options: [.regularExpression]),
range.lowerBound == input.startIndex && range.upperBound == input.endIndex
else {
return ValidatorResults.ZipCode(isValidZipCode: false)
}
return ValidatorResults.ZipCode(isValidZipCode: true)
}
}
}
```
Nachdem die neue Vorlage definiert wurde, kann sie in der Anwendung verwendet werden:
```swift
validations.add("zipCode", as: String.self, is: .zipCode)
```