Skip to content

Commit aa5a431

Browse files
Relecture de examples/* (#22)
* Partie exemple revue Signed-off-by: Bruno Lesieur <[email protected]> * @rspt review Signed-off-by: Bruno Lesieur <[email protected]> * @forresst review Signed-off-by: Bruno Lesieur <[email protected]>
1 parent e5df56b commit aa5a431

17 files changed

+118
-140
lines changed

en/examples/async-data.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
---
2-
title: Async Data (En)
3-
description: Async Data example with Nuxt.js
2+
title: Données asynchrones
3+
description: Exemple de données asynchrones avec Nuxt.js
44
github: async-data
55
documentation: /guide/async-data
6-
---
7-
8-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
6+
---

en/examples/auth-routes.md

Lines changed: 51 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,47 @@
11
---
2-
title: Auth Routes (En)
3-
description: Authenticated routes example with Nuxt.js
2+
title: Authentification de routes
3+
description: Exemple d'authentification de routes avec Nuxt.js
44
github: auth-routes
55
livedemo: https://nuxt-auth-routes.gomix.me
66
liveedit: https://gomix.com/#!/project/nuxt-auth-routes
77
---
88

99
# Documentation
1010

11-
> Nuxt.js can be used to create authenticated routes easily.
11+
> Nuxt.js peut être utilisé pour créer facilement des routes authentifiées.
1212
13-
## Using Express and Sessions
13+
## Utilisation de Express et des sessions
1414

15-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p><p>To add the sessions feature in our application, we will use `express` and `express-session`, for this, we need to use Nuxt.js programmatically.</p>
15+
Pour ajouter la fonctionnalité de sessions dans notre application, nous utiliserons `express` et `express-session`. Pour cela, nous devons utiliser Nuxt.js de manière programmatique.
16+
17+
Premièrement, nous installons les dépendances :
1618

17-
First, we install the dependencies:
1819
```bash
1920
yarn add express express-session body-parser whatwg-fetch
2021
```
2122

22-
*We will talk about `whatwg-fetch` later.*
23+
*Nous parlerons de `whatwg-fetch` plus loin.*
24+
25+
Puis nous créons notre `server.js` :
2326

24-
Then we create our `server.js`:
2527
```js
2628
const { Nuxt, Builder } = require('nuxt')
2729
const bodyParser = require('body-parser')
2830
const session = require('express-session')
2931
const app = require('express')()
3032

31-
// Body parser, to access req.body
33+
// Analyse du corps de requête pour y accéder via `req.body`
3234
app.use(bodyParser.json())
3335

34-
// Sessions to create req.session
36+
// Mise en place de sessions pour y accéder via `req.session`
3537
app.use(session({
3638
secret: 'super-secret-key',
3739
resave: false,
3840
saveUninitialized: false,
3941
cookie: { maxAge: 60000 }
4042
}))
4143

42-
// POST /api/login to log in the user and add him to the req.session.authUser
44+
// Accès à `/api/login` en POST pour connecter l'utilisateur et l'ajouter à `req.session.authUser`
4345
app.post('/api/login', function (req, res) {
4446
if (req.body.username === 'demo' && req.body.password === 'demo') {
4547
req.session.authUser = { username: 'demo' }
@@ -48,16 +50,16 @@ app.post('/api/login', function (req, res) {
4850
res.status(401).json({ error: 'Bad credentials' })
4951
})
5052

51-
// POST /api/logout to log out the user and remove it from the req.session
53+
// Accès à `/api/logout` en POST pour déconnecter l'utilisateur et le retirer de `req.session`
5254
app.post('/api/logout', function (req, res) {
5355
delete req.session.authUser
5456
res.json({ ok: true })
5557
})
5658

57-
// We instantiate Nuxt.js with the options
59+
// Nous instancions Nuxt.js avec les options
5860
const isProd = process.env.NODE_ENV === 'production'
5961
const nuxt = new Nuxt({ dev: !isProd })
60-
// No build in production
62+
// Pas de build en production
6163
if (!isProd) {
6264
const builder = new Builder(nuxt)
6365
builder.build()
@@ -67,7 +69,8 @@ app.listen(3000)
6769
console.log('Server is listening on http://localhost:3000')
6870
```
6971

70-
And we update our `package.json` scripts:
72+
Et nous modifions nos scripts dans `package.json` :
73+
7174
```json
7275
// ...
7376
"scripts": {
@@ -77,24 +80,25 @@ And we update our `package.json` scripts:
7780
}
7881
// ...
7982
```
80-
Note: You'll need to run `npm install --save-dev cross-env` for the above example to work. If you're *not* developing on Windows you can leave cross-env out of your `start` script and set `NODE_ENV` directly.
8183

82-
## Using the store
84+
Note : vous devrez exécuter `npm install --save-dev cross-env` afin de faire fonctionner l'exemple précédent. Si vous n'êtes pas en train de développer sur Windows, vous pouvez laisser cross-env en dehors de votre script `start` et définir `NODE_ENV` directement.
85+
86+
## Utilisation du store
8387

84-
We need a global state to let our application know if the user is connected **across the pages**.
88+
Nous avons besoin d'un état global pour informer notre application si l'utilisateur reste **connecté entre les pages**.
8589

86-
To let Nuxt.js use Vuex, we create a `store/index.js` file:
90+
Pour laisser Nuxt.js utiliser Vuex, nous créons un fichier `store/index.js`:
8791

8892
```js
8993
import Vue from 'vue'
9094
import Vuex from 'vuex'
9195

9296
Vue.use(Vuex)
9397

94-
// Polyfill for window.fetch()
98+
// Polyfill pour `window.fetch()`
9599
require('whatwg-fetch')
96100

97-
const store = () => new Vuex.Store({
101+
const store = new Vuex.Store({
98102

99103
state: {
100104
authUser: null
@@ -115,16 +119,17 @@ const store = () => new Vuex.Store({
115119
export default store
116120
```
117121

118-
1. We import `Vue` and `Vuex` (included in Nuxt.js) and we tell Vue to use Vuex to let us use `$store` in our components
119-
2. We `require('whatwg-fetch')` to polyfill the `fetch()` method across all browsers (see [fetch repo](https://github.com/github/fetch))
120-
3. We create our `SET_USER` mutation which will set the `state.authUser` to the connected user
121-
4. We export our store instance to Nuxt.js can inject it to our main application
122+
1. Nous importons `Vue` et `Vuex` (inclus dans Nuxt.js) et nous indiquons à Vue d'utiliser Vuex afin de pouvoir utiliser `$store` dans nos composants.
123+
2. Nous utilisons `require('whatwg-fetch')` afin d'obtenir un polyfill pour la méthode `fetch()` pour tous les navigateurs (consultez le [dépôt fetch](https://github.com/github/fetch)).
124+
3. Nous créons notre mutation `SET_USER` qui va instancier `state.authUser` avec l'utilisateur connecté.
125+
4. Nous exportons notre instance du *store* vers Nuxt.js afin qu'il puisse l'injecter dans notre application principale.
122126

123-
### nuxtServerInit() action
127+
### Fonction nuxtServerInit()
124128

125-
Nuxt.js will call a specific action called `nuxtServerInit` with the context in argument, so when the app will be loaded, the store will be already filled with some data we can get from the server.
129+
Nuxt.js appellera une action spécifique nommée `nuxtServerInit` avec le contexte comme argument. Ainsi, lorsque l'application sera chargée, le store sera déjà rempli avec certaines données que nous pouvons obtenir du serveur.
130+
131+
Dans notre `store/index.js`, nous pouvons ajouter l'action `nuxtServerInit` :
126132

127-
In our `store/index.js`, we can add the `nuxtServerInit` action:
128133
```js
129134
nuxtServerInit ({ commit }, { req }) {
130135
if (req.session && req.session.authUser) {
@@ -133,18 +138,19 @@ nuxtServerInit ({ commit }, { req }) {
133138
}
134139
```
135140

136-
To make the data method asynchronous, nuxt.js offers you different ways, choose the one you're the most familiar with:
141+
Pour rendre la méthode de données asynchrone, Nuxt.js vous offre différents moyens, choisissez celui avec lequel vous êtes le plus à l'aise :
142+
143+
1. Retourner une `Promise`, Nuxt.js attendra la résolution de la promesse avant d'afficher le composant.
144+
2. En utilisant [`async` / `await`](https://github.com/lukehoban/ecmascript-asyncawait) ([en savoir plus](https://zeit.co/blog/async-and-await)).
137145

138-
1. returning a `Promise`, nuxt.js will wait for the promise to be resolved before rendering the component.
139-
2. Using the [async/await proposal](https://github.com/lukehoban/ecmascript-asyncawait) ([learn more about it](https://zeit.co/blog/async-and-await))
146+
### L'action login()
140147

141-
### login() action
148+
Nous ajoutons une action `login` qui sera appelée à partir de nos composants de pages pour connecter l'utilisateur :
142149

143-
We add a `login` action which will be called from our pages component to log in the user:
144150
```js
145151
login ({ commit }, { username, password }) {
146152
return fetch('/api/login', {
147-
// Send the client cookies to the server
153+
// Envoie les cookies client au serveur
148154
credentials: 'same-origin',
149155
method: 'POST',
150156
headers: {
@@ -168,12 +174,12 @@ login ({ commit }, { username, password }) {
168174
}
169175
```
170176

171-
### logout() method
177+
### La méthode logout()
172178

173179
```js
174180
logout ({ commit }) {
175181
return fetch('/api/logout', {
176-
// Send the client cookies to the server
182+
// Envoie les cookies au serveur
177183
credentials: 'same-origin',
178184
method: 'POST'
179185
})
@@ -183,24 +189,25 @@ logout ({ commit }) {
183189
}
184190
```
185191

186-
## Pages components
192+
## Composants de pages
193+
194+
Ensuite, nous pouvons utiliser `$store.state.authUser` dans nos composants de pages pour vérifier si l'utilisateur est connecté ou non dans notre application.
187195

188-
Then we can use `$store.state.authUser` in our pages components to check if the user is connected in our application or not.
196+
### Rediriger l'utilisateur s'il n'est pas connecté
189197

190-
### Redirect user if not connected
198+
Ajoutons une route `/secret` dont le contenu ne peut être vu que par un utilisateur connecté :
191199

192-
Let's add a `/secret` route where only the connected user can see its content:
193200
```html
194201
<template>
195202
<div>
196-
<h1>Super secret page</h1>
197-
<router-link to="/">Back to the home page</router-link>
203+
<h1>Page super secrète</h1>
204+
<router-link to="/">Retour à l'accueil</router-link>
198205
</div>
199206
</template>
200207

201208
<script>
202209
export default {
203-
// we use fetch() because we do not need to set data to this component
210+
// Nous utilisons`fetch()` car nous n'avons pas besoin d'associer les données à ce composant
204211
fetch ({ store, redirect }) {
205212
if (!store.state.authUser) {
206213
return redirect('/')
@@ -210,4 +217,4 @@ export default {
210217
</script>
211218
```
212219

213-
We can see in the `fetch` method that we call `redirect('/')` when our user is not connected.
220+
Nous pouvons voir dans la méthode `fetch` que nous appelons `redirect('/')` lorsque notre utilisateur n'est pas connecté.

en/examples/cached-components.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
---
2-
title: Cached Components (En)
3-
description: Cached Components example with Nuxt.js
2+
title: Composants en cache
3+
description: Exemple de composants mis en cache avec Nuxt.js
44
github: cached-components
55
documentation: /api/configuration-cache
66
---
7-
8-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>

en/examples/custom-loading.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
---
2-
title: Custom Loading Component (En)
3-
description: Custom Loading Component example with Nuxt.js
2+
title: Composant de chargement personnalisé
3+
description: Exemple de composant de chargement personnalisé avec Nuxt.js
44
github: custom-loading
55
livedemo: https://custom-loading.nuxtjs.org
66
documentation: /api/configuration-loading
7-
---
8-
9-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
7+
---

en/examples/custom-routes.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
---
2-
title: Custom Routes (En)
3-
description: Custom Routes example with Nuxt.js
2+
title: Routes personnalisées
3+
description: Exemple de routes personnalisées avec Nuxt.js
44
github: custom-routes
55
livedemo: https://custom-routes.nuxtjs.org
6-
documentation: /guide/routing#dynamic-routes
7-
---
8-
9-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
6+
documentation: /guide/routing#routes-dynamiques
7+
---

en/examples/global-css.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
---
2-
title: Global CSS (En)
3-
description: Global CSS example with Nuxt.js
2+
title: CSS global
3+
description: Exemple de CSS global avec Nuxt.js
44
github: global-css
55
livedemo: https://global-css.nuxtjs.org
66
documentation: /api/configuration-css
7-
---
8-
9-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
7+
---

en/examples/hello-world.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
---
2-
title: Hello World (En)
3-
description: Hello World example with Nuxt.js
2+
title: Hello World
3+
description: Exemple de Hello World avec Nuxt.js
44
github: hello-world
55
youtube: https://www.youtube.com/embed/kmf-p-pTi40
66
livedemo: https://hello-world.nuxtjs.org
77
liveedit: https://gomix.com/#!/project/nuxt-hello-world
8-
documentation: /guide/installation#starting-from-scratch
9-
---
10-
11-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
8+
documentation: /guide/installation#commencer-depuis-z-ro
9+
---

en/examples/i18n.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
---
2-
title: Internationalization (i18n) (En)
3-
description: Internationalization (i18n) example with Nuxt.js
2+
title: Internationalisation (i18n)
3+
description: Exemple d'internationalisation (i18n) avec Nuxt.js
44
github: i18n
55
livedemo: https://i18n.nuxtjs.org
66
documentation: /guide/routing#middleware
7-
---
8-
9-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
7+
---

en/examples/layouts.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
---
2-
title: Layouts (En)
3-
description: Layouts example with Nuxt.js
2+
title: Mises en page
3+
description: Exemple de mises en page avec Nuxt.js
44
github: custom-layouts
55
livedemo: https://nuxt-custom-layouts.gomix.me/
66
liveedit: https://gomix.com/#!/project/nuxt-custom-layouts
7-
documentation: /guide/views#layouts
8-
---
9-
10-
<p style="width: 294px;position: fixed; top : 64px; right: 4px;" class="Alert Alert--orange"><strong>⚠Cette page est actuellement en cours de traduction française. Vous pouvez repasser plus tard ou <a href="https://github.com/vuejs-fr/nuxt" target="_blank">participer à la traduction</a> de celle-ci dès maintenant !</strong></p>
7+
documentation: /guide/views#mises-en-page
8+
---

en/examples/menu.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
[
22
{
3-
"title": "Essentiel",
3+
"title": "Essentiels",
44
"links": [
5-
{ "name": "Hello world (En)", "to": "" },
6-
{ "name": "SEO HTML Head (En)", "to": "/seo-html-head" }
5+
{ "name": "Hello World", "to": "" },
6+
{ "name": "Entête HTML SEO", "to": "/seo-html-head" }
77
]
88
},
99
{
1010
"title": "Personnalisation",
1111
"links": [
12-
{ "name": "Cached Components (En)", "to": "/cached-components" },
13-
{ "name": "Custom Loading (En)", "to": "/custom-loading" },
14-
{ "name": "Custom Routes (En)", "to": "/custom-routes" },
15-
{ "name": "Global CSS (En)", "to": "/global-css" },
16-
{ "name": "Layouts (En)", "to": "/layouts" },
17-
{ "name": "Middleware (En)", "to": "/middleware" },
18-
{ "name": "Nested Routes (En)", "to": "/nested-routes" },
19-
{ "name": "Plugins (En)", "to": "/plugins" },
20-
{ "name": "Routes transitions (En)", "to": "/routes-transitions" }
12+
{ "name": "Composants en cache", "to": "/cached-components" },
13+
{ "name": "Composant de chargement personnalisé", "to": "/custom-loading" },
14+
{ "name": "Routes personnalisées", "to": "/custom-routes" },
15+
{ "name": "CSS global", "to": "/global-css" },
16+
{ "name": "Mises en page (layouts)", "to": "/layouts" },
17+
{ "name": "Middleware", "to": "/middleware" },
18+
{ "name": "Routes imbriquées", "to": "/nested-routes" },
19+
{ "name": "Plugins", "to": "/plugins" },
20+
{ "name": "Transitions de routes", "to": "/routes-transitions" }
2121
]
2222
},
2323
{
24-
"title": "Avancées",
24+
"title": "Avancé",
2525
"links": [
26-
{ "name": "Async Data (En)", "to": "/async-data" },
27-
{ "name": "Auth Routes (En)", "to": "/auth-routes" },
28-
{ "name": "Vuex Store (En)", "to": "/vuex-store" },
29-
{ "name": "i18n (En)", "to": "/i18n" },
30-
{ "name": "Testing (En)", "to": "/testing" }
26+
{ "name": "Données asynchrones", "to": "/async-data" },
27+
{ "name": "Authentification de routes", "to": "/auth-routes" },
28+
{ "name": "Store Vuex", "to": "/vuex-store" },
29+
{ "name": "i18n", "to": "/i18n" },
30+
{ "name": "Tests", "to": "/testing" }
3131
]
3232
}
3333
]

0 commit comments

Comments
 (0)