Skip to content

Commit 51bc9f9

Browse files
maxirozayMachinisteWeb
authored andcommitted
Traduction de client-side-storage (#157)
* translate client-side-storage * use the recommended english translations * @rspt's review * @forresst's review * replace "cookbook" by "tutoriel" * fix vuejs#1793
1 parent 2563d9d commit 51bc9f9

File tree

1 file changed

+38
-38
lines changed

1 file changed

+38
-38
lines changed

src/v2/cookbook/client-side-storage.md

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
---
2-
title: Client-Side Storage (EN)
2+
title: Stockage côté client
33
type: cookbook
44
order: 11
55
---
66

7-
## Base Example
7+
## Exemple de base
88

9-
<p>Cette page est en cours de traduction. Pour nous aider, vous pouvez participer sur <a href="https://github.com/vuejs-fr/vuejs.org" target="_blank">le dépôt GitHub dédié de Vuejs-FR</a>.</p><p>Client-side storage is an excellent way to quickly add performance gains to an application. By storing data on the browser itself, you can skip fetching information from the server every time the user needs it. While especially useful when offline, even online users will benefit from using data locally versus a remote server. Client-side storage can be done with [cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies), [Local Storage](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API) (technically "Web Storage"), [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), and [WebSQL](https://www.w3.org/TR/webdatabase/) (a deprecated method that should not be used in new projects).</p>
9+
Le stockage côté client est un excellent moyen de rapidement ajouter un gain de performance à une application. En stockant les données sur le navigateur, on peut récupérer ces données sans passer par le serveur chaque fois que l'utilisateur en a besoin. Bien que très utile hors-ligne, même en ligne les utilisateurs peuvent bénéficier d'une utilisation locale plutôt que d'utiliser un serveur distant. Le stockage côté client peut être fait avec les [cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies), le [Local Storage](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API) (techniquement "Web Storage"), une [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API), et [WebSQL](https://www.w3.org/TR/webdatabase/) (une méthode périmée qui ne devrait plus être utilisée dans de nouveaux projets).
1010

11-
In this cookbook entry we'll focus on Local Storage, the simplest of the storage mechanisms. Local Storage uses a key/value system for storing data. It is limited to storing only simple values but complex data can be stored if you are willing to encode and decode the values with JSON. In general, Local Storage is appropriate for smaller sets of data you would want to persist, things like user preferences or form data. Larger data with more complex storage needs would be better stored typically in IndexedDB.
11+
Dans ce tutoriel on se concentrera sur le Local Storage, le moyen de stockage le plus simple. Le Local Storage utilise un système de clé/valeur pour stocker les données. Il est limité au stockage de simples valeurs mais des données plus complexes peuvent être stockées si on est prêt à encoder et décoder les valeurs en JSON. En général, le Local Storage est approprié pour des petits groupes de données qu'on voudrait garder en mémoire, comme des préférences ou les informations d'un formulaire. De plus grosses données avec une structure plus complexe feraient mieux d'être stockées sur une IndexedDB.
1212

13-
Let's begin with a simple form based example:
13+
Commençons par un simple exemple basé sur un formulaire :
1414

1515
``` html
1616
<div id="app">
17-
My name is <input v-model="name">
17+
Mon nom est <input v-model="name">
1818
</div>
1919
```
2020

21-
This example has one form field bound to a Vue value called `name`. Here's the JavaScript:
21+
Cet exemple a un champ lié à une valeur Vue appelée `name`. Voici le JavaScript :
2222

2323
``` js
2424
const app = new Vue({
@@ -39,42 +39,42 @@ const app = new Vue({
3939
});
4040
```
4141

42-
Focus on the `mounted` and `watch` parts. We use `mounted` to handle loading the value from localStorage. To handle writing the data base, we watch the `name` value and on change, immediately write it.
42+
Concentrons-nous sur les parties `mounted` et `watch`. On utilise `mounted` pour récupérer la valeur depuis le localStorage. Pour garder les données en mémoire, on observe la valeur `name` et à chaque changement, on l'écrit dans le localStorage.
4343

44-
You can run this yourself here:
44+
Vous pouvez le tester vous-même ici :
4545

46-
<p data-height="265" data-theme-id="0" data-slug-hash="KodaKb" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="testing localstorage" class="codepen">See the Pen <a href="https://codepen.io/cfjedimaster/pen/KodaKb/">testing localstorage</a> by Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) on <a href="https://codepen.io">CodePen</a>.</p>
46+
<p data-height="265" data-theme-id="0" data-slug-hash="KodaKb" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="testing localstorage" class="codepen">Voir le Pen <a href="https://codepen.io/cfjedimaster/pen/KodaKb/">test du localstorage</a> par Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
4747
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
4848

49-
Type something in the form and then reload this page. You'll note that the value you typed previously will show up automatically. Don't forget that your browser provides excellent developer tools for inspecting client-side storage. Here's an example in Firefox:
49+
Écrivez quelque chose dans le formulaire et rechargez la page. Vous remarquerez que la valeur que vous aviez écrite s'affichera automatiquement. N'oubliez pas que votre navigateur a d'excellents outils de développement pour inspecter le stockage côté client. Voici un exemple sur Firefox :
5050

51-
![Storage devtools in Firefox](/images/devtools-storage.png)
51+
![Stockage devtools sur Firefox](/images/devtools-storage.png)
5252

53-
And here it is in Chrome:
53+
Ici sur Chrome :
5454

55-
![Storage devtools in Chrome](/images/devtools-storage-chrome.png)
55+
![Stockage devtools sur Chrome](/images/devtools-storage-chrome.png)
5656

57-
And then finally, an example in Microsoft Edge. Note that you can find application storage values under the Debugger tab.
57+
Finalement, un exemple sur Microsoft Edge. Notez que vous pouvez trouver les valeurs stockées sous l'onglet Debugger.
5858

59-
![Storage devtools in Edge](/images/devtools-storage-edge.png)
59+
![Stockage devtools sur Edge](/images/devtools-storage-edge.png)
6060

61-
<p class="tip">As a quick aside, these dev tools also offer you a way to remove storage values. This can be very useful when testing.</p>
61+
<p class="tip">Ces outils de développement permettent aussi de supprimer les données stockées. Ça peut être très utile pour faire des tests.</p>
6262

63-
Immediately writing the value may not advisable. Let's consider a slightly more advanced example. First, the updated form.
63+
Stocker immédiatement une valeur peut ne pas être recommandé. Considérons un exemple un peu plus avancé. Premièrement, le formulaire mis à jour.
6464

6565
``` html
6666
<div id="app">
6767
<p>
68-
My name is <input v-model="name">
69-
and I am <input v-model="age"> years old.
68+
Mon nom est <input v-model="name">
69+
et j'ai <input v-model="age"> ans.
7070
</p>
7171
<p>
72-
<button @click="persist">Save</button>
72+
<button @click="persist">Sauver</button>
7373
</p>
7474
</div>
7575
```
7676

77-
Now we've got two fields (again, bound to a Vue instance) but now there is the addition of a button that runs a `persist` method. Let's look at the JavaScript.
77+
Maintenant on a deux champs (encore, liés à une instance de Vue) mais maintenant il y a un bouton en plus qui lance une fonction `persist`. Regardons le JavaScript.
7878

7979
``` js
8080
const app = new Vue({
@@ -101,33 +101,33 @@ const app = new Vue({
101101
})
102102
```
103103

104-
As before, `mounted` is used to load persisted data, if it exists. This time, though, data is only persisted when the button is clicked. We could also do any validations or transformations here before storing the value. You could also store a date representing when the values were stored. With that metadata, the `mounted` method could make a logical call on whether or not to store the values again, such as in this version below. You can try this version below.
104+
Comme avant, `mounted` est utilisé pour charger les données, si elles existent. Cette fois, les données sont sauvées seulement si le bouton est cliqué. On pourrait aussi faire des validations ou transformations ici avant de stocker les données. On pourrait aussi stocker une date représentant le moment ou les données ont été sauvées. Avec ces métadonnées, la fonction `mounted` pourrait vérifier si il faut encore stocker les valeurs. Vous pouvez essayer cette version ci-dessous.
105105

106-
<p data-height="265" data-theme-id="0" data-slug-hash="rdOjLN" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="testing localstorage 2" class="codepen">See the Pen <a href="https://codepen.io/cfjedimaster/pen/rdOjLN/">testing localstorage 2</a> by Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) on <a href="https://codepen.io">CodePen</a>.</p>
106+
<p data-height="265" data-theme-id="0" data-slug-hash="rdOjLN" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="testing localstorage 2" class="codepen">Voir le Pen <a href="https://codepen.io/cfjedimaster/pen/rdOjLN/">test du localstorage 2</a> par Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
107107
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
108108

109-
## Working with Complex Values
109+
## Travailler avec des valeurs complexes
110110

111-
As mentioned above, Local Storage only works with simple values. To store more complex values, like objects or arrays, you must serialize and deserialize the values with JSON. Here is a more advanced example that persists an array of cats (the best kind of array possible).
111+
Comme mentionné plus haut, le Local Storage marche seulement avec de simples valeurs. Pour stocker des valeurs plus complexes, comme un objet ou une liste, on doit sérialiser et désérialiser les valeurs avec JSON. Voici un exemple plus avancé qui sauvegarde une liste de chats (le meilleur type de liste possible).
112112

113113
``` html
114114
<div id="app">
115-
<h2>Cats</h2>
115+
<h2>Chats</h2>
116116
<div v-for="(cat, n) in cats">
117117
<p>
118118
<span class="cat">{{ cat }}</span>
119-
<button @click="removeCat(n)">Remove</button>
119+
<button @click="removeCat(n)">Enlever</button>
120120
</p>
121121
</div>
122122

123123
<p>
124124
<input v-model="newCat">
125-
<button @click="addCat">Add Cat</button>
125+
<button @click="addCat">Ajouter un chat</button>
126126
</p>
127127
</div>
128128
```
129129

130-
This "app" consists of a simple list on top (with a button to remove a cat) and a small form at the bottom to add a new cat. Now let's look at the JavaScript.
130+
Cette "app" contient une simple liste (avec un bouton pour enlever un chat) et un petit formulaire pour ajouter un nouveau chat. Maintenant regardons le JavaScript.
131131

132132
``` js
133133
const app = new Vue({
@@ -147,7 +147,7 @@ const app = new Vue({
147147
},
148148
methods: {
149149
addCat() {
150-
// ensure they actually typed something
150+
// s'assurer que l'utilisateur a entré quelque chose
151151
if (!this.newCat) {
152152
return;
153153
}
@@ -168,21 +168,21 @@ const app = new Vue({
168168
})
169169
```
170170

171-
In this application, we've switched to use the Local Storage APIs versus "direct" access. Both work but the API method is generally preferred. `mounted` now has to grab the value and parse the JSON value. If anything goes wrong here we assume the data is corrupt and delete it. (Remember, any time your web application uses client-side storage, the user has access to it and can modify it at will.)
171+
Dans cette application, on a utilisé l'API Local Storage à la place d'un accès "direct". Les deux marchent mais utiliser l'API est généralement la méthode préférée. `mounted` doit récupérer et parser la valeur en JSON. S'il y a un problème, on peut assumer que les données sont corrompues et les supprimer. (N'oubliez pas, quand votre application utilise le stockage côté client, l'utilisateur y a accès et peut les modifier à volonté.)
172172

173-
We have three methods now to handle working with cat. Both `addCat` and `removeCat` handle updating the "live" Vue data stored in `this.cats`. They then run `saveCats` which handles serializing and persisting the data. You can play with this version below:
173+
Nous avons trois méthodes pour s'occuper de nos chats. `addCat` et `removeCat` s'occupent de mettre à jour les données de Vue stockées dans `this.cats`. Ensuite elles appellent `saveCats` qui s'occupe de sérialiser et sauver les données. Vous pouvez vous amuser avec la version ci-dessous :
174174

175-
<p data-height="265" data-theme-id="0" data-slug-hash="qoYbyW" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="localstorage, complex" class="codepen">See the Pen <a href="https://codepen.io/cfjedimaster/pen/qoYbyW/">localstorage, complex</a> by Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) on <a href="https://codepen.io">CodePen</a>.</p>
175+
<p data-height="265" data-theme-id="0" data-slug-hash="qoYbyW" data-default-tab="js,result" data-user="cfjedimaster" data-embed-version="2" data-pen-title="localstorage, complex" class="codepen">Voir le Pen <a href="https://codepen.io/cfjedimaster/pen/qoYbyW/">localstorage, complexe</a> par Raymond Camden (<a href="https://codepen.io/cfjedimaster">@cfjedimaster</a>) sur <a href="https://codepen.io">CodePen</a>.</p>
176176
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>
177177

178-
## Alternative Patterns
178+
## Modèles alternatifs
179179

180-
While the Local Storage API is relatively simple, it is missing some basic features that would be useful in many applications. The following plugins wrap Local Storage access and make it easier to use, while also adding functionality like default values.
180+
Bien que l'API Local Storage est relativement simple, il manque quelques fonctions basiques qui seraient utiles dans beaucoup d'applications. Les plugins suivants utilisent le Local Storage et facilitent son utilisation, tout en ajoutant quelques fonctionnalités comme les valeurs par défaut.
181181

182182
* [vue-local-storage](https://github.com/pinguinjkeke/vue-local-storage)
183183
* [vue-reactive-storage](https://github.com/ropbla9/vue-reactive-storage)
184184
* [vue2-storage](https://github.com/yarkovaleksei/vue2-storage)
185185

186-
## Wrapping Up
186+
## Conclusion
187187

188-
While the browser will never replace a server persistence system, having multiple ways to cache data locally can be a huge performance boost for your application, and working with it in Vue.js makes it even more powerful.
188+
Bien que le navigateur ne remplacera jamais un système de stockage de données sur serveur, avoir plusieurs possibilités de sauver ces données localement peut être un énorme boost de performance pour votre application. Travailler avec dans Vue.js le rend encore plus puissant.

0 commit comments

Comments
 (0)