Skip to content

Commit 6521652

Browse files
Merge pull request #1 from Haeresis/working
Traduction `README.md` / `basic.md`
2 parents bc6af64 + 1576859 commit 6521652

File tree

2 files changed

+57
-57
lines changed

2 files changed

+57
-57
lines changed

en/README.md

+24-24
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
# Guide du rendu côté serveur avec Vue.js (En) <br><br> *Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vue-ssr-docs).*
1+
# Guide du rendu côté serveur avec Vue.js
22

3-
> **Note:** this guide requires the following minimum versions of Vue and supporting libraries:
3+
> **Note :** Ce guide nécessite les versions de Vue et de ses bibliothèques de support suivantes :
44
> - vue & vue-server-renderer >= 2.3.0
55
> - vue-router >= 2.5.0
66
> - vue-loader >= 12.0.0 & vue-style-loader >= 3.0.0
77
8-
> If you have previously used Vue 2.2 with SSR, you will notice that the recommended code structure is now [a bit different](./structure.md) (with the new [runInNewContext](./api.md#runinnewcontext) option set to `false`). Your existing app should continue to work, but it's recommended to migrate to the new recommendations.
8+
> Si vous avez déjà utilisé le rendu côté serveur (SSR pour *Server-Side Rendering*) avec Vue 2.2, vous vous apercevrez que la structure de code recommandée est maintenant [légèrement différente](./structure.md) (avec la nouvelle option [runInNewContext](./api.md#runinnewcontext) mise à `false`). Votre application devrait continuer à fonctionner, mais il est recommandé de migrer vers les nouvelles recommandations.
99
10-
## What is Server-Side Rendering (SSR)?
10+
## Le rendu côté serveur ou SSR, qu'est-ce que c'est ?
1111

12-
Vue.js is a framework for building client-side applications. By default, Vue components produce and manipulate DOM in the browser as output. However, it is also possible to render the same components into HTML strings on the server, send them directly to the browser, and finally "hydrate" the static markup into a fully interactive app on the client.
12+
Vue.js est un framework pour créer des applications côté client. Par défaut, Vue génère en sortie un DOM manipulable dans le navigateur. Il est cependant également possible de faire le rendu des mêmes composants sous forme de chaîne de caractères HTML côté serveur, de les envoyer directement au navigateur et d'« hydrater » les balises statiques fournies en une application cliente pleinement interactive.
1313

14-
A server-rendered Vue.js app can also be considered "isomorphic" or "universal", in the sense that the majority of your app's code runs on both the server **and** the client.
14+
Une application Vue.js rendue du côté serveur peut également être considérée comme « isomorphique » ou « universelle », dans le sens où la majorité du code est exécutable côté serveur **et** coté client.
1515

16-
## Why SSR?
16+
## Pourquoi faire du SSR ?
1717

18-
Compared to a traditional SPA (Single-Page Application), the advantage of SSR primarily lies in:
18+
En comparaison des applications monopages traditionnelles (SPA pour *Single-Page Application*), l'avantage du SSR se manifeste dans :
1919

20-
- Better SEO, as the search engine crawlers will directly see the fully rendered page.
20+
- De meilleures optimisations pour les moteurs de recherche (SEO pour *Search Engine Optimisations*), ainsi les moteurs d'indexation voient directement le rendu complet de la page.
2121

22-
Note that as of now, Google and Bing can index synchronous JavaScript applications just fine. Synchronous being the key word there. If your app starts with a loading spinner, then fetches content via Ajax, the crawler will not wait for you to finish. This means if you have content fetched asynchronously on pages where SEO is important, SSR might be necessary.
22+
À noter qu'à présent, Google et Bing savent parfaitement indexer des applications JavaScript synchrones. Synchrone est le mot important ici. Si votre application débute avec une animation de chargement, puis va chercher le contenu via Ajax, l'indexeur n'attendra pas que cette action soit finie. Cela signifie que si vous avez du contenu asynchrone injecté sur des pages ou la SEO est importante, du SSR serait nécessaire.
2323

24-
- Faster time-to-content, especially on slow internet or slow devices. Server-rendered markup doesn't need to wait until all JavaScript has been downloaded and executed to be displayed, so your user will see a fully-rendered page sooner. This generally results in better user experience, and can be critical for applications where time-to-content is directly associated with conversion rate.
24+
- De meilleurs temps d'accès au contenu, en particulier pour les connexions Internet lentes ou les appareils lents. Le rendu des balises côté serveur n'a pas besoin d'attendre le chargement de tous les fichiers JavaScript pour que le code soit exécuté en vue d'être affiché. Ainsi votre utilisateur verra apparaître une page complètement rendue très tôt. Cela conduit généralement à une meilleure expérience utilisateur, ce qui peut-être critique pour les applications où le temps d'accès au contenu est directement lié au taux de conversion.
2525

26-
There are also some trade-offs to consider when using SSR:
26+
Il y a aussi des contraintes à prendre en considération quand on utilise du SSR :
2727

28-
- Development constraints. Browser-specific code can only be used inside certain lifecycle hooks; some external libraries may need special treatment to be able to run in a server-rendered app.
28+
- Des contraintes de développement. Le code spécifique aux navigateurs ne peut être utilisé que dans certains hooks ; plusieurs bibliothèques nécessites une utilisation particulière pour être capable d'être exécutées dans une application côté serveur.
2929

30-
- More involved build setup and deployment requirements. Unlike a fully static SPA that can be deployed on any static file server, a server-rendered app requires an environment where a Node.js server can run.
30+
- Plus d'étapes de pré-compilation et de déploiement requises. Contrairement à une SPA qui peut être déployée sur un serveur de fichiers statiques, une application rendue côté serveur nécessite un environnement où un serveur Node.js peut tourner.
3131

32-
- More server-side load. Rendering a full app in Node.js is obviously going to be more CPU-intensive than just serving static files, so if you expect high traffic, be prepared for corresponding server load and wisely employ caching strategies.
32+
- Plus de charge côté serveur. Faire le rendu d'une application complète en Node.js est évidemment une tâche demandant plus de ressources CPU que de simplement renvoyer des fichiers statiques. Aussi si vous vous attendez à un fort trafic, préparez-vous un serveur tenant la charge et utilisez astucieusement des stratégies de mise en cache.
3333

34-
Before using SSR for your app, the first question you should ask it whether you actually need it. It mostly depends on how important time-to-content is for your app. For example, if you are building an internal dashboard where an extra few hundred milliseconds on initial load doesn't matter that much, SSR would be an overkill. However, in cases where time-to-content is absolutely critical, SSR can help you achieve the best possible initial load performance.
34+
Avant d'utiliser du SSR pour vos applications, la première question que vous devriez vous poser est si vous en avez réellement besoin. Cela dépendra de l'importance du temps d'accès au contenu pour votre application. Par exemple, si vous créez une interface d'administration avec un chargement initial de quelques secondes, cela n'a pas d'importance ; du SSR n'aurait pas de pertinence dans ce cas. Cependant, dans le cas où l'accès au contenu est une priorité absolue, du SSR peut vous aider à obtenir les meilleures performances de chargement initial.
3535

36-
## SSR vs Prerendering
36+
## Rendu côté serveur vs. pré-rendu
3737

38-
If you're only investigating SSR to improve the SEO of a handful of marketing pages (e.g. `/`, `/about`, `/contact`, etc), then you probably want __prerendering__ instead. Rather than using a web server to compile HTML on-the-fly, prerendering simply generates static HTML files for specific routes at build time. The advantage is setting up prerendering is much simpler and allows you to keep your frontend as a fully static site.
38+
Si vous envisagez d'utiliser du SSR seulement pour améliorer votre SEO sur des pages informatives à valeur ajoutée (par ex. `/`, `/about`, `/contact`, etc), alors vous devriez plutôt utiliser du pré-rendu. Plutôt que d'utiliser un serveur web pour compiler le HTML en temps réel, faites le simple pré-rendu de vos pages statiques en HTML pour des routes bien spécifiques lors d'une phase de pré-compilation. L'avantage est que faire du pré-rendu est plus simple et vous permet de garder un site avec une partie cliente statique.
3939

40-
If you're using webpack, you can easily add prerendering with the [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin). It's been extensively tested with Vue apps - and in fact, [the creator](https://github.com/chrisvfritz) is a member of the Vue core team.
40+
Si vous utilisez webpack, vous pouvez facilement ajouter du pré-rendu avec le plugin [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin). Il a particulièrement bien été testé avec des applications Vue (en fait, [son créateur](https://github.com/chrisvfritz) est lui-même un membre de l'équipe principale de Vue).
4141

42-
## About This Guide
42+
## À propos de ce guide
4343

44-
This guide is focused on server-rendered Single-Page Applications using Node.js as the server. Mixing Vue SSR with other backend setups is a topic of its own and is not covered in this guide.
44+
Ce guide est dédié au rendu côté serveur des applications monopages utilisant Node.js en tant que serveur web. Utiliser le SSR de Vue avec une autre configuration serveur est un sujet qui ne sera pas abordé dans ce guide.
4545

46-
This guide will be very in-depth and assumes you are already familiar with Vue.js itself, and have decent working knowledge of Node.js and webpack. If you prefer a higher-level solution that provides a smooth out-of-the-box experience, you should probably give [Nuxt.js](http://nuxtjs.org/) a try. It's built upon the same Vue stack but abstracts away a lot of the boilerplate, and provides some extra features such as static site generation. However, it may not suit your use case if you need more direct control of your app's structure. Regardless, it would still be beneficial to read through this guide to better understand how things work together.
46+
Ce guide va réellement entrer dans le détail et présuppose que vous êtes déjà familiarisé avec Vue.js et que vous avez un niveau de connaissance correcte concernant Node.js et webpack. Si vous préférez une solution de haut niveau fournissant une expérience de développement prête à l'emploi, vous devriez probablement essayer [Nuxt.js](http://nuxtjs.org/). Il est construit par-dessus l'écosystème de Vue et vous fourni des éléments préconçus ainsi que des fonctionnalités supplémentaires pour générer des sites web statiques. Il ne vous conviendra cependant pas si vous souhaitez avoir un contrôle plus direct sur la structure de votre application. Dans tous les cas, il reste toujours intéressant de parcourir ce guide pour mieux comprendre comment chaque élément fonctionne avec le reste.
4747

48-
As you read along, it would be helpful to refer to the official [HackerNews Demo](https://github.com/vuejs/vue-hackernews-2.0/), which makes use of most of the techniques covered in this guide.
48+
Au fil de votre lecture, il peut être intéressant également de vous référer à la [démo HackerNews](https://github.com/vuejs/vue-hackernews-2.0/) qui utilise bon nombre des techniques expliquées dans ce guide.
4949

50-
Finally, note that the solutions in this guide are not definitive - we've found them to be working well for us, but that doesn't mean they cannot be improved. They might get revised in the future - and feel free to contribute by submitting pull requests!
50+
Pour finir, notez que les solutions de ce guide ne sont pas définitives. Nous avons trouvé que cela fonctionnait bien pour nous, mais cela ne veut pas dire qu'il n'y a pas d'améliorations à faire. Nous pourrons les réviser dans le futur. N'hésitez donc pas à y contribuer en soumettant des pull requests !

en/basic.md

+33-33
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
1-
# Usage basique (En) <br><br> *Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vue-ssr-docs).*
1+
# Utilisation de base
22

33
## Installation
44

55
``` bash
66
npm install vue vue-server-renderer --save
77
```
88

9-
We will be using NPM throughout the guide, but feel free to use [Yarn](https://yarnpkg.com/en/) instead.
9+
Nous allons utiliser NPM tout au long de ce guide, n'hésitez pas à utiliser [Yarn](https://yarnpkg.com/en/) à la place.
1010

1111
#### Notes
1212

13-
- It's recommended to use Node.js version 6+.
14-
- `vue-server-renderer` and `vue` must have matching versions.
15-
- `vue-server-renderer` relies on some Node.js native modules and therefore can only be used in Node.js. We may provide a simpler build that can be run in other JavaScript runtimes in the future.
13+
- Il est recommandé d'utiliser une version 6 ou supérieur de Node.js
14+
- `vue-server-renderer` et `vue` doivent utiliser des numéros de version identiques.
15+
- `vue-server-renderer` utilise plusieurs modules Node.js natifs fournis uniquement par Node.js. Nous fournirons une version exécutable qui pourra tourner sur les autres moteurs JavaScript dans le futur.
1616

17-
## Rendering a Vue Instance
17+
## Faire le rendu d'une instance de Vue
1818

1919
``` js
20-
// Step 1: Create a Vue instance
20+
// Étape 1 : créer une instance de Vue
2121
const Vue = require('vue')
2222
const app = new Vue({
2323
template: `<div>Hello World</div>`
2424
})
2525

26-
// Step 2: Create a renderer
26+
// Étape 2 : créer un moteur de rendu
2727
const renderer = require('vue-server-renderer').createRenderer()
2828

29-
// Step 3: Render the Vue instance to HTML
29+
// Étape 3 : faire le rendu de l'instance en HTML
3030
renderer.renderToString(app, (err, html) => {
3131
if (err) throw err
3232
console.log(html)
3333
// => <div data-server-rendered="true">Hello World</div>
3434
})
3535
```
3636

37-
## Integrating with a Server
37+
## Intégration avec un serveur
3838

39-
It is pretty straightforward when used inside a Node.js server, for example [Express](https://expressjs.com/):
39+
Il est plus simple d'utiliser le code précédent avec un serveur Node.js, comme par exemple [Express](https://expressjs.com/) :
4040

4141
``` bash
4242
npm install express --save
@@ -52,18 +52,18 @@ server.get('*', (req, res) => {
5252
data: {
5353
url: req.url
5454
},
55-
template: `<div>The visited URL is: {{ url }}</div>`
55+
template: `<div>L'URL visitée est : {{ url }}</div>`
5656
})
5757

5858
renderer.renderToString(app, (err, html) => {
5959
if (err) {
60-
res.status(500).end('Internal Server Error')
60+
res.status(500).end('Erreur interne du serveur')
6161
return
6262
}
6363
res.end(`
6464
<!DOCTYPE html>
6565
<html lang="en">
66-
<head><title>Hello</title></head>
66+
<head><title>Bonjour</title></head>
6767
<body>${html}</body>
6868
</html>
6969
`)
@@ -73,39 +73,39 @@ server.get('*', (req, res) => {
7373
server.listen(8080)
7474
```
7575

76-
## Using a Page Template
76+
## Utiliser un modèle de page
7777

78-
When you render a Vue app, the renderer only generates the markup of the app. In the example we had to wrap the output with an extra HTML page shell.
78+
Quand vous faites le rendu d'une application Vue, le moteur de rendu fournit uniquement les balises de votre application. Dans cet exemple, nous allons ajouter de part et d'autre la structure HTML nécessaire à toutes pages.
7979

80-
To simplify this, you can directly provide a page template when creating the renderer. Most of the time we will put the page template in its own file, e.g. `index.template.html`:
80+
Le plus simple est de directement fournir un modèle de page lors de la création du moteur de rendu. La plupart du temps, nous allons mettre le modèle de page dans son propre fichier. Par ex. `index.template.html` :
8181

8282
``` html
8383
<!DOCTYPE html>
8484
<html lang="en">
85-
<head><title>Hello</title></head>
85+
<head><title>Bonjour</title></head>
8686
<body>
8787
<!--vue-ssr-outlet-->
8888
</body>
8989
</html>
9090
```
9191

92-
Notice the `<!--vue-ssr-outlet-->` comment -- this is where your app's markup will be injected.
92+
Notez que le commentaire `<!--vue-ssr-outlet-->` représente la zone où les balises de votre application vont être injectées.
9393

94-
We can then read and pass the file to the Vue renderer:
94+
Nous allons ensuite lire et passer le contenu du fichier au générateur de rendu de Vue :
9595

9696
``` js
9797
const renderer = createRenderer({
9898
template: require('fs').readFileSync('./index.template.html', 'utf-8')
9999
})
100100

101101
renderer.renderToString(app, (err, html) => {
102-
console.log(html) // will be the full page with app content injected.
102+
console.log(html) // sera la page complète avec le contenu de l'application injecté.
103103
})
104104
```
105105

106-
### Template Interpolation
106+
### Interpolation dans le modèle de page
107107

108-
The template also supports simple interpolation. Given the following template:
108+
Le modèle de page supporte également une interpolation simple. Avec le modèle de page suivant :
109109

110110
``` html
111111
<html>
@@ -119,29 +119,29 @@ The template also supports simple interpolation. Given the following template:
119119
</html>
120120
```
121121

122-
We can provide interpolation data by passing a "render context object" as the second argument to `renderToString`:
122+
Nous pouvons fournir les données d'interpolation suivantes à travers un « objet de contexte de rendu » en tant que second argument de `renderToString` :
123123

124124
``` js
125125
const context = {
126-
title: 'hello',
126+
title: 'Bonjour',
127127
meta: `
128128
<meta ...>
129129
<meta ...>
130130
`
131131
}
132132

133133
renderer.renderToString(app, context, (err, html) => {
134-
// page title will be "Hello"
135-
// with meta tags injected
134+
// le titre de la page sera « Bonjour »
135+
// avec les balises <meta> injectées
136136
})
137137
```
138138

139-
The `context` object can also be shared with the Vue app instance, allowing components to dynamically register data for template interpolation.
139+
L'objet `context` peut également être partagé avec l'instance de l'application de Vue, permettant aux composants de dynamiquement fournir des données pour l'interpolation du modèle de page.
140140

141-
In addition, the template supports some advanced features such as:
141+
De plus, le modèle de page supporte des fonctionnalités avancées comme :
142142

143-
- Auto injection of critical CSS when using `*.vue` components;
144-
- Auto injection of asset links and resource hints when using `clientManifest`;
145-
- Auto injection and XSS prevention when embedding Vuex state for client-side hydration.
143+
- l'injection automatique de CSS critique lors de l'utilisation de composants `*.vue`,
144+
- l'injection automatique de balises `<link>` avec l'utilisation de `clientManifest`,
145+
- l'injection automatique de l'état de Vuex pour l'hydratation cliente avec prévention XSS.
146146

147-
We will discuss these when we introduce the associated concepts later in the guide.
147+
Nous discuterons de cela quand nous introduirons ces concepts plus tard dans le guide.

0 commit comments

Comments
 (0)