From 385bc487a69b209375a950c31016c773c99f15df Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 22:51:51 +0200 Subject: [PATCH 1/9] Translate 790 --- docs/advanced/queues.nl.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/advanced/queues.nl.md b/docs/advanced/queues.nl.md index 96a8e7661..0a5d43450 100644 --- a/docs/advanced/queues.nl.md +++ b/docs/advanced/queues.nl.md @@ -309,6 +309,9 @@ Als u geen wachtrij opgeeft, wordt de taak uitgevoerd op de `standaard` wachtrij Met het pakket Queues kunt u ook taken plannen die op bepaalde tijdstippen moeten worden uitgevoerd. +!!! warning "Waarschuwing" + Geplande taken werken alleen als ze zijn ingesteld voordat de applicatie opstart, zoals in `configure.swift`. Ze werken niet in route handlers. + ### De planner starten De scheduler vereist dat een afzonderlijk workerproces draait, gelijkaardig aan de queue worker. U kunt de worker starten door dit commando uit te voeren: From 31956d953c10194adcc178e746005b59b5102061 Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 22:54:55 +0200 Subject: [PATCH 2/9] translate 768 --- docs/advanced/middleware.nl.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/advanced/middleware.nl.md b/docs/advanced/middleware.nl.md index ee4f9d5f1..3c037efea 100644 --- a/docs/advanced/middleware.nl.md +++ b/docs/advanced/middleware.nl.md @@ -28,7 +28,7 @@ app.middleware.use(MiddlewareA()) app.middleware.use(MiddlewareB()) app.group(MiddlewareC()) { - $0.get("hello") { req in + $0.get("hello") { req in "Hello, middleware." } } @@ -124,6 +124,14 @@ app.middleware.use(file) Zodra `FileMiddleware` is geregistreerd, kan een bestand als `Public/images/logo.png` worden gekoppeld vanuit een Leaf template als ``. +Als je server is opgenomen in een Xcode Project, zoals een iOS app, gebruik dan dit in de plaats: + +```swift +let file = try FileMiddleware(bundle: .main, publicDirectory: "Public") +``` + +Zorg er ook voor dat je Folder References gebruikt in plaats van Groups in Xcode om de mappenstructuur in resources te behouden na het bouwen van de applicatie. + ## CORS Middleware Cross-origin resource sharing (CORS) is een mechanisme waarmee beperkte bronnen op een webpagina kunnen worden opgevraagd vanuit een ander domein buiten het domein van waaruit de eerste bron werd geserveerd. REST API's die in Vapor zijn gebouwd, hebben een CORS-beleid nodig om verzoeken veilig te kunnen terugsturen naar moderne webbrowsers. From 6c8804331cf30e0d2365c0d317f541f2aafeb18b Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 22:57:54 +0200 Subject: [PATCH 3/9] Translate 809 --- docs/advanced/testing.nl.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/advanced/testing.nl.md b/docs/advanced/testing.nl.md index 3e7dd8d46..07e6bc673 100644 --- a/docs/advanced/testing.nl.md +++ b/docs/advanced/testing.nl.md @@ -34,7 +34,7 @@ final class MyTests: XCTestCase { } ``` -Elke functie die begint met `test` zal automatisch worden uitgevoerd wanneer uw app wordt getest. +Elke functie die begint met `test` zal automatisch worden uitgevoerd wanneer uw app wordt getest. ### Tests Uitvoeren @@ -42,7 +42,8 @@ Gebruik `cmd+u` met het `-Package` schema geselecteerd om tests in Xcode uit te ## Testbare Applicatie -Initialiseer een instantie van `Application` met behulp van de `.testing` omgeving. Je moet `app.shutdown()` aanroepen voordat deze applicatie de-initialiseert. +Initialiseer een instantie van `Application` met behulp van de `.testing` omgeving. Je moet `app.shutdown()` aanroepen voordat deze applicatie de-initialiseert. +De shutdown is nodig om de resources die de app heeft geclaimd vrij te geven. In het bijzonder is het belangrijk om de threads vrij te geven die de applicatie aanvraagt bij het opstarten. Als je `shutdown()` niet aanroept op de app na elke unit test, kan je testsuite crashen met een precondition failure bij het toewijzen van threads voor een nieuwe instantie van `Application`. ```swift let app = Application(.testing) @@ -63,7 +64,7 @@ try app.test(.GET, "hello") { res in } ``` -De eerste twee parameters zijn de HTTP methode en URL om op te vragen. De afsluiter achteraan accepteert de HTTP respons die je kunt verifiëren met `XCTAssert` methoden. +De eerste twee parameters zijn de HTTP methode en URL om op te vragen. De afsluiter achteraan accepteert de HTTP respons die je kunt verifiëren met `XCTAssert` methoden. Voor meer complexe verzoeken, kunt u een `beforeRequest` closure toevoegen om headers te wijzigen of inhoud te coderen. Vapor's [Content API](../basics/content.md) is beschikbaar op zowel het test request als het antwoord. @@ -89,7 +90,7 @@ app.testable(method: .inMemory).test(...) app.testable(method: .running).test(...) ``` -De `inMemory` optie wordt standaard gebruikt. +De `inMemory` optie wordt standaard gebruikt. De `running` optie ondersteunt het doorgeven van een specifieke poort om te gebruiken. Standaard wordt `8080` gebruikt. From bebe159a5dc9b2ce7f518a0cbc0e4a388486a262 Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 23:01:41 +0200 Subject: [PATCH 4/9] Translate 806 --- docs/getting-started/hello-world.nl.md | 5 ++++- docs/leaf/overview.nl.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/getting-started/hello-world.nl.md b/docs/getting-started/hello-world.nl.md index 6c15785c7..36b87ee67 100644 --- a/docs/getting-started/hello-world.nl.md +++ b/docs/getting-started/hello-world.nl.md @@ -18,6 +18,9 @@ vapor new hello -n !!! tip De `-n` vlag geeft je een kaal sjabloon door automatisch nee te antwoorden op alle vragen. +!!! tip + Je kan ook de laatste template van Github halen zonder de Vapor Toolbox te installeren door de [template repository](https://github.com/vapor/template-bare) te clonen. + !!! tip Vapor en het sjabloon gebruiken nu standaard `async`/`await`. Als je niet kunt updaten naar macOS 12 en/of `EventLoopFuture` wilt blijven gebruiken, gebruik dan de vlag `--branch macos10-15`. @@ -25,7 +28,7 @@ Eens het commando voltooid is, navigeer naar de nieuw aangemaakt map: ```sh cd hello -``` +``` ## Bouwen en uitvoeren diff --git a/docs/leaf/overview.nl.md b/docs/leaf/overview.nl.md index 1b6a84b38..ad6abb511 100644 --- a/docs/leaf/overview.nl.md +++ b/docs/leaf/overview.nl.md @@ -17,7 +17,7 @@ Leaf tags bestaan uit vier elementen:: - Token `#`: Dit geeft de leaf parser het signaal om te beginnen zoeken naar een tag. - Naam `count`: die de tag identificeert. - Parameter Lijst `(users)`: Kan nul of meer argumenten aanvaarden. -- Body: Een optionele body kan aan sommige tags worden toegevoegd met behulp van een puntkomma en een afsluitende tag +- Body: Een optionele body kan aan sommige tags worden toegevoegd met behulp van een dubbelpunt en een afsluitende tag Er kunnen veel verschillende toepassingen zijn voor deze vier elementen, afhankelijk van de implementatie van de tag. Laten we eens kijken naar een paar voorbeelden van hoe de ingebouwde tags van Leaf gebruikt kunnen worden: From 9aceb02ffe49d95328f4096e475ac5e35c31bd57 Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 23:06:44 +0200 Subject: [PATCH 5/9] Translate 815 --- docs/fluent/relations.nl.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/fluent/relations.nl.md b/docs/fluent/relations.nl.md index 2e19735d1..56978d6e1 100644 --- a/docs/fluent/relations.nl.md +++ b/docs/fluent/relations.nl.md @@ -135,6 +135,8 @@ De `@Siblings` eigenschap creëert een veel-op-veel relatie tussen twee modellen Laten we eens kijken naar een voorbeeld van een veel-op-veel relatie tussen een `Planet` en een `Tag`. ```swift +enum PlanetTagStatus: String, Codable { case accepted, pending } + // Voorbeeld van een pivot model. final class PlanetTag: Model { static let schema = "planet+tag" @@ -148,17 +150,25 @@ final class PlanetTag: Model { @Parent(key: "tag_id") var tag: Tag + @OptionalField(key: "comments") + var comments: String? + + @OptionalEnum(key: "status") + var status: PlanetTagStatus? + init() { } - init(id: UUID? = nil, planet: Planet, tag: Tag) throws { + init(id: UUID? = nil, planet: Planet, tag: Tag, comments: String?, status: PlanetTagStatus?) throws { self.id = id self.$planet.id = try planet.requireID() self.$tag.id = try tag.requireID() + self.comments = comments + self.status = status } } ``` -Pivots zijn normale modellen die twee `@Parent` relaties bevatten. Één voor elk van de modellen die gerelateerd moeten worden. Extra eigenschappen kunnen worden opgeslagen op de pivot indien gewenst. +Elk model dat tenminste twee `@Parent` relaties bevat, één voor elk model dat gerelateerd moet worden, kan gebruikt worden als pivot. Het model kan aanvullende eigenschappen bevatten, zoals zijn ID, en kan zelfs andere `@Parent` relaties bevatten. Het toevoegen van een [unieke](schema.md#unique) constraint aan het pivot model kan helpen om overbodige entries te voorkomen. Zie [schema](schema.md) voor meer informatie. @@ -197,13 +207,24 @@ final class Tag: Model { De `@Siblings` eigenschap heeft methoden voor het toevoegen en verwijderen van modellen uit de relatie. -Gebruik de `attach` methode om een model aan de relatie toe te voegen. Hierdoor wordt het pivot model automatisch aangemaakt en opgeslagen. +Gebruik de `attach()` methode om een enkel model of een array van modellen toe te voegen aan de relatie. Pivot modellen worden indien nodig automatisch aangemaakt en opgeslagen. Er kan een callback closure worden gespecificeerd om aanvullende eigenschappen van elke gecreëerde pivot in te vullen: ```swift let earth: Planet = ... let inhabited: Tag = ... // Voegt het model toe aan de relatie. try await earth.$tags.attach(inhabited, on: database) +// Vul de pivot attributen in bij het maken van de relatie. +try await earth.$tags.attach(inhabited, on: database) { pivot in + pivot.comments = "This is a life-bearing planet." + pivot.status = .accepted +} +// Voeg meerdere modellen met attributen toe aan de relatie. +let volcanic: Tag = ..., oceanic: Tag = ... +try await earth.$tags.attach([volcanic, oceanic], on: database) { pivot in + pivot.comments = "This planet has a tag named \(pivot.$tag.name)." + pivot.status = .pending +} ``` Bij het koppelen van een enkel model, kunt u de `method` parameter gebruiken om te kiezen of de relatie wel of niet gecontroleerd moet worden voor het opslaan. From 1b20ddff22aa96fb799077eb0bd717d482b75b1d Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 23:13:50 +0200 Subject: [PATCH 6/9] Translate 835 --- docs/deploy/heroku.nl.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/deploy/heroku.nl.md b/docs/deploy/heroku.nl.md index b145c484f..aa2f38e74 100644 --- a/docs/deploy/heroku.nl.md +++ b/docs/deploy/heroku.nl.md @@ -13,7 +13,7 @@ Zorg ervoor dat je de heroku cli tool hebt geïnstalleerd. ### HomeBrew ```bash -brew install heroku/brew/heroku +brew tap heroku/brew && brew install heroku ``` ### Andere Installatiemogelijkheden @@ -52,7 +52,7 @@ git init #### Master/Main -Standaard deponeert Heroku de **master/main** branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat u gaat pushen. +Best verkies je één branch voor te deployen en daar hou je je aan, zoals de **main** of **master** branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat je gaat pushen. Controleer uw huidige branch met @@ -63,7 +63,7 @@ git branch De asterisk geeft de huidige branch aan. ```bash -* master +* main commander other-branches ``` @@ -71,10 +71,10 @@ De asterisk geeft de huidige branch aan. !!! note "Opmerking" Als je geen uitvoer ziet en je hebt net `git init` uitgevoerd. Je moet eerst je code committen, daarna krijg je uitvoer te zien van het `git branch` commando. -Als u momenteel _niet_ op **master/main** bent, schakel daar dan over door in te voeren: +Als u momenteel _niet_ op de juiste branch bent, schakel daar dan naar over door in te voeren in de terminal (voor branch **main**): ```bash -git checkout master +git checkout main ``` #### Veranderingen Vastleggen @@ -110,10 +110,10 @@ heroku buildpacks:set vapor/vapor ### Swift versie bestand -Het buildpack dat we hebben toegevoegd zoekt naar een **.swift-version** bestand om te weten welke versie van swift gebruikt moet worden. (vervang 5.2.1 door de versie die uw project nodig heeft). +Het buildpack dat we hebben toegevoegd zoekt naar een **.swift-version** bestand om te weten welke versie van swift gebruikt moet worden. (vervang 5.8.1 door de versie die uw project nodig heeft). ```bash -echo "5.2.1" > .swift-version +echo "5.8.1" > .swift-version ``` Dit creëert **.swift-version** met `5.2.1` als inhoud. @@ -150,12 +150,12 @@ git commit -m "adding heroku build files" Je bent klaar om uit te rollen, voer dit uit vanaf de terminal. Het kan een tijdje duren om te bouwen, dit is normaal. ```none -git push heroku master +git push heroku main ``` ### Scale Up -Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen, één web is gratis en je kunt het krijgen met het volgende: +Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen. Prijzen starten vanaf $5/maand voor het Eco plan (zie [prijzen](https://www.heroku.com/pricing#containers)). Maak zeker dat je betaalgegevens geconfigureerd zijn op Heroku. Dan, voor een enkele web worker: ```bash heroku ps:scale web=1 @@ -163,7 +163,7 @@ heroku ps:scale web=1 ### Continued Deployment -Elke keer dat je wil updaten, zet je gewoon de laatste veranderingen in master en push je naar heroku en het zal opnieuw deployen +Elke keer dat je wil updaten, zet je gewoon de laatste veranderingen in main en push je naar heroku en het zal opnieuw deployen ## Postgres @@ -171,9 +171,9 @@ Elke keer dat je wil updaten, zet je gewoon de laatste veranderingen in master e Bezoek uw applicatie op dashboard.heroku.com en ga naar de **Add-ons** sectie. -Voer hier `postgress` in en u zult een optie zien voor `Heroku Postgres`. Selecteer deze. +Voer hier `postgres` in en u zult een optie zien voor `Heroku Postgres`. Selecteer deze. -Kies het hobby dev free plan, en provision. Heroku zal de rest doen. +Kies het Eco plan voor $5/maand (zie [prijzen](https://www.heroku.com/pricing#data-services)), en provision. Heroku zal de rest doen. Zodra je klaar bent, zie je de database verschijnen onder de **Resources** tab. From e888d8311f1fe2c27fca608fa9e49e5cc1794a73 Mon Sep 17 00:00:00 2001 From: De Bock Benny Date: Sun, 23 Jul 2023 23:16:19 +0200 Subject: [PATCH 7/9] Translate 858 --- docs/leaf/getting-started.nl.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/leaf/getting-started.nl.md b/docs/leaf/getting-started.nl.md index 3c76ecaf9..0022f4524 100644 --- a/docs/leaf/getting-started.nl.md +++ b/docs/leaf/getting-started.nl.md @@ -74,6 +74,9 @@ Nu Leaf is geconfigureerd, laten we je eerste template renderen. Maak in de map Hello, #(name)! ``` +!!! tip + Als je VSCode als code editor gebruikt, raden we aan de Leaf extensie te installeren om syntax highlighting mogelijk te maken: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf). + Registreer dan een route (meestal gedaan in `routes.swift` of een controller) om de view te renderen. ```swift From 24e555148c3d67993ee52f3f9ec6c126e0c7a923 Mon Sep 17 00:00:00 2001 From: BennyDB <74614235+BennyDeBock@users.noreply.github.com> Date: Sun, 23 Jul 2023 23:45:14 +0200 Subject: [PATCH 8/9] Commit feedback from Joannis Flemish bad :p Co-authored-by: Joannis Orlandos --- docs/deploy/heroku.nl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/deploy/heroku.nl.md b/docs/deploy/heroku.nl.md index aa2f38e74..44e812904 100644 --- a/docs/deploy/heroku.nl.md +++ b/docs/deploy/heroku.nl.md @@ -52,7 +52,7 @@ git init #### Master/Main -Best verkies je één branch voor te deployen en daar hou je je aan, zoals de **main** of **master** branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat je gaat pushen. +Je kunt het beste één branch behouden voor deployments naar Heroku, zoals de **main** of **master** branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat je gaat pushen. Controleer uw huidige branch met From 6db59020e40190c3b359c7c6cdc744c4f5193501 Mon Sep 17 00:00:00 2001 From: BennyDB <74614235+BennyDeBock@users.noreply.github.com> Date: Sun, 23 Jul 2023 23:46:24 +0200 Subject: [PATCH 9/9] Commit feedback from Joannis #2 Co-authored-by: Joannis Orlandos --- docs/deploy/heroku.nl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/deploy/heroku.nl.md b/docs/deploy/heroku.nl.md index 44e812904..151f11bad 100644 --- a/docs/deploy/heroku.nl.md +++ b/docs/deploy/heroku.nl.md @@ -155,7 +155,7 @@ git push heroku main ### Scale Up -Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen. Prijzen starten vanaf $5/maand voor het Eco plan (zie [prijzen](https://www.heroku.com/pricing#containers)). Maak zeker dat je betaalgegevens geconfigureerd zijn op Heroku. Dan, voor een enkele web worker: +Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen. Prijzen starten vanaf $5/maand voor het Eco plan (zie [prijzen](https://www.heroku.com/pricing#containers)). Zorg ervoor dat jouw betaalgegevens geconfigureerd zijn op Heroku. Dan, voor een enkele web worker: ```bash heroku ps:scale web=1