Skip to content

Commit 5acc1e4

Browse files
LinusBorgposva
authored andcommitted
[DOCS] Improve german translation (#1157)
* Batman! Summary needed some love. * Chapter: Essentials / Getting Started * Chapter: Essentials / dynamic route matching * Chapter: Essentials / nested routes * Chapter: Essentials / programmatic navigation * Chapter: Essentials / names routes * Chapter: Essentials / named views * Chapter: Essentials / installation * Chapter: Essentials / redirect and alias * Chapter: Essentials / history mode * Chapter: Advanced / *everything at once!* * small corrections on summary. * Vokabular angepasst „components“ -> „Komponenten“ * Tippfehler * API Section * fix typo
1 parent ce38dbb commit 5acc1e4

22 files changed

+237
-206
lines changed

docs/de/SUMMARY.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
- [Programmatische Navigation](essentials/navigation.md)
1515
- [Benannte Routes](essentials/named-routes.md)
1616
- [Benannte Views](essentials/named-views.md)
17-
- [Umleitung und Alias](essentials/redirect-and-alias.md)
17+
- [Redirect und Alias](essentials/redirect-and-alias.md)
1818
- [HTML5-Verlaufsmodus](essentials/history-mode.md)
1919
- Fortgeschritten
20-
- [Navigationsschutz](advanced/navigation-guards.md)
21-
- [Route-Metafelder](advanced/meta.md)
22-
- [Übergänge](advanced/transitions.md)
23-
- [Datenbeschaffung](advanced/data-fetching.md)
20+
- [Navigations-Guards](advanced/navigation-guards.md)
21+
- [Route Meta-Felder](advanced/meta.md)
22+
- [Transitions (Übergänge)](advanced/transitions.md)
23+
- [Daten laden](advanced/data-fetching.md)
2424
- [Scroll-Verhalten](advanced/scroll-behavior.md)
2525
- [Lazy Loading](advanced/lazy-loading.md)
2626
- API-Referenz
@@ -29,4 +29,4 @@
2929
- [Das Route-Objekt](api/route-object.md)
3030
- [Router-Option](api/options.md)
3131
- [Router-Instanz](api/router-instance.md)
32-
- [Injektion von Komponenten](api/component-injections.md)
32+
- [Injection von Komponenten](api/component-injections.md)

docs/de/advanced/data-fetching.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# Datenbeschaffung
1+
# Daten laden
22

3-
Manchmal müssen Daten von einem Server geladen werden, sobald eine Route aktiviert wird. Zum Beispiel müssen die Inhalte des Nutzers vom Server übertragen werden, bevor ein Nutzerprofil angezeigt werden kann. Dies wird auf zwei Arten erledigt:
3+
Oftmals Müssen wir Daten von einem Server laden, sobald eine Route aktiviert wird. Zum Beispiel müssen die Daten des Users vom Server geladen werden, bevor das Userprofil angezeigt werden kann. Dies kann auf zwei Arten erreicht werden:
44

5-
- **Laden nach Navigation**: Navigiere zuerst und lade die Daten anschließend in der neuen Komponente. Während der Übertragung kann ein Ladebalken oder ähnliches angezeigt werden.
5+
- **Laden nach der Navigation**: Der Router schließt zuerst die Navigation ab und wir laden die Daten anschließend in der neuen Komponente. Während der Übertragung kann ein Ladebalken oder ähnliches angezeigt in der Komponente werden.
66

7-
- **Laden vor Navigation**: Lade Daten bevor die Navigation der Route durchgeführt wird und navigiere nachdem die Daten geladen wurden.
7+
- **Laden der Navigation**: Wir laden Daten bevor die Navigation der Route durchgeführt wird und navigieren danach erst zur neuen Route.
88

9-
Technisch sind beide Optionen möglich - letztendlich hängt es davon ab, welche Benutzererfahrung man erreichen möchte.
9+
Technisch gesehen sind beide Optionen gleich "gut" - letztendlich hängt es davon ab, welche Benutzererfahrung man erreichen möchte.
1010

11-
## Laden nach Navigation
11+
## Laden nach der Navigation
1212

13-
In diesem Fall navigieren und rendern wir die neue Komponente direkt und laden die Daten in der `created`-Funktion der Komponente. Dies ermöglicht es uns den Nutzer zu informieren, dass Daten übertragen werden, während die Inhalte über das Netzwerk nachgereicht werden. Außerdem können wir die Übertragung in jeder Komponente individuell einrichten und sind nicht an ein System gebunden.
13+
In diesem Fall navigieren und rendern wir die neue Komponente direkt und laden die Daten im `created`-Hook der Komponente. Das ermöglicht es uns dem Nutzer in der neuen Komponente einen Ladebalken oder ähnliches anzuzeigen während der Content vom Server geladen wird. Außerdem können wir so den Ladevorgang in jeder Komponente individuell gestalten.
1414

1515
Im folgenden Beispiel haben wir eine `Post`-Komponente, welche Daten für einen Blog-Post basierend auf `$route.params.id` einholt:
1616

@@ -44,7 +44,7 @@ export default {
4444
},
4545
created () {
4646
// Lade die Daten, wenn die Komponente erstellt wurde und die
47-
// Daten bereits überwacht werden.
47+
// Daten bereits observed ("beobachtet") werden.
4848
this.fetchData()
4949
},
5050
watch: {
@@ -55,7 +55,7 @@ export default {
5555
fetchData () {
5656
this.error = this.post = null
5757
this.loading = true
58-
// Ersetze 'getPost' mit einer beliebigen AJAX-API (zB. fetch, $.ajax).
58+
// Ersetze 'getPost' mit einem beliebigen AJAX-tool / API-Wrapper
5959
getPost(this.$route.params.id, (err, post) => {
6060
this.loading = false
6161
if (err) {
@@ -69,9 +69,9 @@ export default {
6969
}
7070
```
7171

72-
## Laden vor Navigation
72+
## Laden vor der Navigation
7373

74-
In diesem Fall werden die Daten geladen, bevor wir in die neue Route navigieren. Die Inhalte werden in dem `beforeRouteEnter`-Schutz der neuen Komponente eingefügt. Die `next`-Funktion wird erst aufgerufen, wenn alles komplett geladen wurde:
74+
In diesem Fall werden die Daten geladen, bevor wir in die neue Route navigieren. Die Inhalte werden in dem `beforeRouteEnter`-Guard der neuen Komponente geladen. Die `next`-Funktion wird erst aufgerufen, wenn der Vorgang abgeschlossen ist:
7575

7676
``` js
7777
export default {
@@ -110,4 +110,4 @@ export default {
110110
}
111111
```
112112

113-
Der Nutzer bleibt im aktuellen View, bis die Daten des neuen geladen wurden. Daher ist es empfehlenswert einen Ladebalken oder ähnliches anzuzeigen. Falls die Inhalte nicht komplett beschafft werden können, ist es außerdem von Vorteil, eine Fehlermeldung auszugeben.
113+
Der Nutzer bleibt im aktuellen View, während die Daten für den neuen View geladen werden. Daher ist es empfehlenswert, derwiel anderswo in der App einen Ladebalken oder ähnliches anzuzeigen. Wenn der Ladevorgang fehlschlägt, ist es außerdem wichtig, eine Fehlermeldung auszugeben.

docs/de/advanced/lazy-loading.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
# Lazy Loading
22

3-
Wenn Apps mit einem Bundler zusammengefügt werden, kann die Datei recht groß werden und so die Seitenladezeit beeinträchtigen. Es wäre effizienter, wenn man das Bundle in mehrere Router-Komponenten aufteilen könnte und sie nur dann lädt, wenn die Route besucht wird.
3+
Wenn Apps mit einem Bundler erstellt werden, kann das erzeugte "Bundle" recht groß werden und so die Seitenladezeit beeinträchtigen. Es wäre effizienter, wenn man das Bundle in die einzelnen Router-Komponenten aufteilen könnte und sie nur dann lädt, wenn die Route besucht wird.
44

5-
Mit der Kombination von Vues [asynchronischem Komponenten-Feature](http://vuejs.org/guide/components.html#Async-Components) und Webpacks Feature zur [Code-Aufteilung (englisch)](https://webpack.github.io/docs/code-splitting.html) ist es einfach Lazy Loading von Route-Komponenten zu erreichen.
5+
Mit der Kombination von Vue's Feature für [asynchrone Komponenten](http://vuejs.org/guide/components.html#Async-Components) und Webpack's Feature ["Code-Splitting"](https://webpack.js.org/guides/code-splitting-require/) (engl. _to split_: _teilen_) ist es einfach, dieses "Lazy Loading" genannte Verhalten für Route-Komponenten zu erreichen.
66

7-
Alles was benötigt wird, ist die Definition der Route-Komponenten als asynchrone Komponenten:
7+
Dazu müssen wir nur unsere Route-Komponenten als asynchrone Komponente definieren:
88

99
``` js
1010
const Foo = resolve => {
11-
// require.ensure ist Webpacks speziale Syntax für Code-Aufteilung.
11+
// require.ensure ist Webpacks speziale Syntax für Code-Splitting.
1212
require.ensure(['./Foo.vue'], () => {
1313
resolve(require('./Foo.vue'))
1414
})
1515
}
1616
```
1717

18-
Es gibt auch eine alternative Code-Teilungssyntax mit `require` im AMD-Stil:
18+
Es gibt auch eine alternative Code-Splitting Syntax mit `require` im AMD-Stil, mit der das ganze Folgendermaßen vereinfacht werden kann:
1919

2020
``` js
2121
const Foo = resolve => require(['./Foo.vue'], resolve)
2222
```
2323

24-
Nichts muss geändert werden in der Route-Konfiguration - nutze `Foo` wie gewohnt:
24+
In der Route-Konfiguration muss nichts genändert werden - wir nutzen `Foo` wie gewohnt:
2525

2626
``` js
2727
const router = new VueRouter({
@@ -33,12 +33,12 @@ const router = new VueRouter({
3333

3434
### Gruppierung von Komponenten im selben Chunk
3535

36-
Manchmal ist es gewollt, alle Komponenten unter der selben Route in den selben ansynchronen Chunk zu gruppieren. Um das zu erreichen, werden [benannte Chunks (englisch)](https://webpack.github.io/docs/code-splitting.html#named-chunks) genutzt. Hierbei wird ein Chunk-Name als drittes Argument für `require.ensure` hinzugefügt.
36+
Manchmal wollen wir alle Komponenten unter der selben Route in den selben ansynchronen Chunk gruppieren. Dafür benutzern wir das ["named Chunks" (englisch)](https://webpack.js.org/guides/code-splitting-require/#chunkname) Feature, indem wir einen Chunk-Namen als drittes Argument für `require.ensure` hinzugefügen.
3737

3838
``` js
3939
const Foo = r => require.ensure([], () => r(require('./Foo.vue')), 'group-foo')
4040
const Bar = r => require.ensure([], () => r(require('./Bar.vue')), 'group-foo')
4141
const Baz = r => require.ensure([], () => r(require('./Baz.vue')), 'group-foo')
4242
```
4343

44-
Webpack packt alle asynchronen Module mit dem gleichen Chunk-Namen in den selben asynchronen Chunk. Das bedeutet auch, dass keine Abhängigkeiten mehr für `require.ensure` explizit aufgelistet werden müssen - daher der leere Array als Argument.
44+
Webpack bündelt alle asynchronen Module mit dem gleichen Chunk-Namen in denselben asynchronen Chunk. Das bedeutet auch, dass keine Dependencies mehr für `require.ensure` explizit aufgelistet werden müssen - daher der leere Array als Argument.

docs/de/advanced/meta.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Route-Metafelder
1+
# Route Meta-Felder
22

3-
Man kann ein Metafeld einfügen, wenn die Route definiert wird:
3+
In der Route-Definition kann man ein Meta-Feld definieren:
44

55
``` js
66
const router = new VueRouter({
@@ -21,22 +21,22 @@ const router = new VueRouter({
2121
})
2222
```
2323

24-
Wie greift man auf das `meta`-Feld zu?
24+
Und wie greifen wir auf das `meta`-Feld zu?
2525

26-
Zunächst einmal wird jedes Route-Objekt in der `routes`-Konfiguration **Route-Eintrag** genannt. Route-Einträge können verschachtelt sein. Deswegen kann eine Route zu mehreren Einträgen passen, wenn sie besucht wird.
26+
Zunächst einmal: Wir nennen jedes Route-Objekt in der `routes`-Konfiguration **Route-Record**. Route-Records können verschachtelt sein, weshalb eine URL potentiell zu mehreren Route-Records passen kann.
2727

28-
Zum Beispiel werden mit der obigen Konfiguration und der URL `/foo/bar` beide - Parent-Eintrag und Child-Eintrag - angesprochen.
28+
Zum Beispiel werden mit der obigen Konfiguration und der URL `/foo/bar` beide - Parent-Record und Child-Record - gematched.
2929

30-
Alle Route-Einträge, die auf eine Route zutreffen, sind im `$route`-Objekt und in Route-Objekten im Navigationschutz als `$route.matched`-Array vorzufinden. Deswegen muss eine Schleife auf `$route.matched` angewandt werden, um alle Metafelder im Route-Eintrag zu erhalten.
30+
Alle Route-Records, die auf eine URL zutreffen, sind im `$route`-Objekt und in den Route-Objekten in Navigation-Guards im `$route.matched`-Array zu finden. Deswegen müssen wir mit einer Schleife das `$route.matched` Array durchlaufen, um alle Route-Records auf Metafelder zu prüfen.
3131

32-
Ein Beispiel ist die Prüfung nach einem Metafeld im globalen Navigationsschutz:
32+
Ein Anwendungsfall ist die Prüfung nach einem Metafeld im globalen Before-Guard:
3333

3434
``` js
3535
router.beforeEach((to, from, next) => {
3636
if (to.matched.some(record => record.meta.requiresAuth)) {
3737
// Diese Route benötigt Authentifizierung und prüft,
3838
// ob man eingeloggt ist.
39-
// Wenn nicht, Umleitung zur Login-Seite.
39+
// Wenn nicht, Redirect zur Login-Seite.
4040
if (!auth.loggedIn()) {
4141
next({
4242
path: '/login',

docs/de/advanced/navigation-guards.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Navigationsschutz
1+
# Navigation Guards ("Navigations-Wächter")
22

3-
Der Navigationsschutz bereit gestellt vom `vue-router` wird primär genutzt, um Navigationen vor Umleitung oder Unterbrechung zu schützen. Es gibt eine Vielzahl an Wege: global, per-route oder in der Komponente.
3+
Wie der Name schon andeutet, werden "navigation guards" `vue-router` primär genutzt, um Navigationen zu "bewachen", indem diese bei Bedarf redirected oder abebrochen werden. Es gibt dabei verschiedene Möglichkeiten, sich in den Navigationsprozess einzuklinken: global, in der Route Definition oder direkt in der Komponente.
44

5-
Merke, dass Parameter oder Query-Abfragen den Navigationsschutz nicht auslosen. Beobachte einfach [das `$route`-Objekt](../essentials/dynamic-matching.md#reacting-to-params-changes), um auf Änderungen zu reagieren.
5+
Hinweis: Guards werden nicht ausgelöst, wenn du Params oder Querys änderst. Beobachte in diesen Fällen einfach [das `$route`-Objekt](../essentials/dynamic-matching.md#reacting-to-params-changes), um auf Änderungen zu reagieren.
66

7-
### Globaler Schutz
7+
### Globale Guards
88

9-
Man kann globalen Schutz für die Zeit direkt vor einer Navigation (globaler Vor-Schutz) mit `router.beforeEach` anwenden:
9+
Man kann globale Before-Guards ("davor-guards") mit `router.beforeEach` registrieren:
1010

1111
``` js
1212
const router = new VueRouter({ ... })
@@ -16,35 +16,35 @@ router.beforeEach((to, from, next) => {
1616
})
1717
```
1818

19-
Globale Vor-Schutze werden in Kreierungsreihenfolge aufgerufen, wenn eine Navigation ausgelöst wird. Der Schutz darf auch asynchron angewandt werden, sodass die Navigation als **unerledigt** da steht, bis alle bearbeitet wurden.
19+
Globale Before-Guards werden in der Reihenfolge aufgerufen, in der du sie registriert hast, wann immer eine Navigation ausgelöst wird. Der guard lann auch auch asynchron beendet werden, und die Navigation ist solange im Status **pending**, bis alle bearbeitet wurden.
2020

21-
Jede Schutzfunktion erhält drei Argumente:
21+
Jede Guard Funktion erhält drei Argumente:
2222

2323
- **`to: Route`**: das [Route-Objekt](../api/route-object.md), zu dem navigiert wird
2424

2525
- **`from: Route`**: die aktuelle Route, von der wegnavigiert wird
2626

27-
- **`next: Function`**: Diese Funktion muss aufgerufen werden, um den Hook aufzulösen. Die Aktion hängt von den Argumenten in `next` ab:
27+
- **`next: Function`**: Diese Funktion muss aufgerufen werden, um den guard zu beenden. Die daraus resultierende Aktion hängt von den Argumenten in `next` ab:
2828

29-
- **`next()`**: Gehe zum nächsten Hook in der Leitung. Wenn keiner vorhanden ist, ist die Navigation **bestätigt**.
29+
- **`next()`**: Gehe zum nächsten guard in der Riehe. Wenn keine mehr vorhanden sind, ist die Navigation **bestätigt**.
3030

31-
- **`next(false)`**: Brich die aktuelle Navigation ab. Wurde die URL geändert (entweder manuell durch den Nutzer oder via Zurück-Button), wird es zurückgesetzt zu dem, was die `from`-Route wiedergab.
31+
- **`next(false)`**: Brich die aktuelle Navigation ab. Wurde die URL geändert (entweder manuell durch den Nutzer oder über den Zurück-Button), wird sie zurückgesetzt auf die der `from`-Route.
3232

33-
- **`next('/')` or `next({ path: '/' })`**: Umleitung zu einem anderen Ort. Die aktuelle Navigation wird abgebrochen und eine neue gestartet.
33+
- **`next('/')` or `next({ path: '/' })`**: Umleitung zu einer anderen Route. Die aktuelle Navigation wird abgebrochen und eine neue gestartet.
3434

35-
**Die `next`-Funktion muss immer aufgerufen werden, sonst kann der Hook nicht aufgelöst werden.**
35+
**Die `next`-Funktion muss immer aufgerufen werden, sonst kann der Guard nicht aufgelöst werden.**
3636

37-
Man kann auch globale Nach-Hooks registrieren, allerdings erhalten diese keine `next`-Funktion wie der Navigationsschutz und beeinflussen nicht die Navigation selbst:
37+
Man kann auch globale After-Guards ("Danach-Guards") registrieren, allerdings erhalten diese keine `next`-Funktion wie der Navigationsschutz und beeinflussen nicht die Navigation selbst:
3838

3939
``` js
4040
router.afterEach((to, from) => {
4141
// ...
4242
})
4343
```
4444

45-
### Per-Route-Schutz
45+
### Guards in der Route
4646

47-
Man kann den `beforeEnter`-Schutz direkt in der Router-Konfiguration definieren:
47+
Man kann den `beforeEnter`-Guard direkt in der Router-Konfiguration definieren:
4848

4949
``` js
5050
const router = new VueRouter({
@@ -60,30 +60,30 @@ const router = new VueRouter({
6060
})
6161
```
6262

63-
Diese Schutze haben die exakt gleiche Signature als globale Vor-Schutze.
63+
Diese Guards haben die exakt gleiche Signatur wie globale Before-Guards.
6464

65-
### Schutz in Komponenten
65+
### Guards in Komponenten
6666

67-
Letztendlich kann man auch Navigationsschutz in den Route-Komponenten (die, die der Router-Konfiguration hinzugefügt werden) mit `beforeRouteEnter` und `beforeRouteLeave` definieren:
67+
Zu guter Letzt kann man Guards auch direkt in den Route-Komponenten (die, die der Router-Konfiguration hinzugefügt werden) mit `beforeRouteEnter` und `beforeRouteLeave` definieren:
6868

6969
``` js
7070
const Foo = {
7171
template: `...`,
7272
beforeRouteEnter (to, from, next) {
73-
// Aufgerufen bevor die Route bestätigt wird, die die Komponenten rendert.
74-
// Hat keinen Zugang zum `this`-Kontext der Komponenteninstanz,
75-
// da es noch nicht erstellt wurde, wenn der Schutz aufgerufen wird.
73+
// Wird aufgerufen bevor die Route bestätigt wird, die diese Komponenten rendert.
74+
// Hat keinen Zugriff auf den `this`-Kontext der Komponenteninstanz,
75+
// da diese noch nicht erstellt wurde, wenn die Guard-Funktion aufgerufen wird.
7676
},
7777
beforeRouteLeave (to, from, next) {
78-
// Aufgerufen, wenn von der Route, die die Komponente rendert, wegnavigiert wird.
78+
// Wird aufgerufen, wenn von der Route, die diese Komponente rendert, wegnavigiert wird.
7979
// Hat Zugriff zum `this`-Kontext.
8080
}
8181
}
8282
```
8383

84-
Der `beforeRouteEnter`-Schutz hat keinen Zugriff zum `this`-Kontext, weil der Schutz aufgerufen wird, bevor die Navigation bestätigt wurde, demnach wurde die Komponente noch gar nicht kreiert.
84+
Der `beforeRouteEnter`-Guard hat keinen Zugriff auf den `this`-Kontext, weil der Guard aufgerufen wird, bevor die Navigation bestätigt wurde, weshalb die Komponente noch gar nicht erzeugt wurde.
8585

86-
Allerdings hat man Zugriff auf die Instanz, indem man einen Callback an `next` anfügt. Dieser wird aufgerufen, wenn die Navigation bestätigt wurde. Die Komponente wird im Callback als Argument hinzugefügt:
86+
Allerdings bekommt man Zugriff auf die Instanz, indem man einen Callback an `next` übergibt. Der Callback wird ausgeführt wenn die Navigation bestätigt wurde. Die Komponente wird im Callback als Argument übergeben:
8787

8888
``` js
8989
beforeRouteEnter (to, from, next) {
@@ -93,4 +93,4 @@ beforeRouteEnter (to, from, next) {
9393
}
9494
```
9595

96-
Man kann den `this`-Kontext in `beforeRouteLeave` aufrufen. Der Abgangsschutz wird normalerweise genutzt, um versehentliches Verlassen der Route mit ungesicherten Arbeiten zu verhindern. Die Navigation kann mit `next(false)` abgebrochen werden.
96+
In `beforeRouteLeave`-Guards kann man den `this`-Kontext aufrufen. Dieser Guard wird normalerweise verwendet, zu verhindern dass ein Benutzer die Route versehentlich verlässt, ohne ungesicherten Arbeit zu speichern. Die Navigation kann mit `next(false)` abgebrochen werden.

0 commit comments

Comments
 (0)