Skip to content

Commit a1c82b8

Browse files
committed
traduction du SVG cookbook
1 parent ac9a5ad commit a1c82b8

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

src/v2/cookbook/editable-svg-icons.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
---
2-
title: Editable SVG Icon Systems (EN)
2+
title: Système d'Icônes SVG Éditable (FR)
33
type: cookbook
44
order: 4
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>There are many ways to create an SVG Icon System, but one method that takes advantage of Vue's capabilities is to create editable inline icons as components. Some of the advantages of this way of working is:</p>
9+
<p>Il existe plusieurs façons de construire un système d'icônes SVG. Une, en particulier, permet d'utiliser toute la puissance de Vue. Cette méthode consiste a créer des composants icônes modifiable. Voici quelques-uns des avantages</p>
1010

11-
* They are easy to edit on the fly
12-
* They are animatable
13-
* You can use standard props and defaults to keep them to a typical size or alter them if you need to
14-
* They are inline, so no HTTP requests are necessary
15-
* They can be made accessible dynamically
11+
* Les icônes sont faciles à éditer à la volée
12+
* On peut les animer
13+
* On peut utiliser des `props` et des `defaults` pour les dimensionner ou les modifier.
14+
* Tout est dans le html, aucune requête http supplémentaire
15+
* Elles peuvent facilement être rendue accessible dynamiquement
1616

17-
First, we'll create a folder for all of the icons, and name them in a standardized fashion for easy retrieval:
17+
Créons d'abord un dossier pour stocker nos icônes. Donnons a nos icônes leurs des noms normalisés. Cela facilitera leurs appels plus tard.
1818

1919
> components/icons/IconBox.vue
2020
> components/icons/IconCalendar.vue
2121
> components/icons/IconEnvelope.vue
2222
23-
Here's an example repo to get you going, where you can see the entire setup: [https://github.com/sdras/vue-sample-svg-icons/](https://github.com/sdras/vue-sample-svg-icons/)
23+
Voici un exemple du système une fois terminé. [https://github.com/sdras/vue-sample-svg-icons/](https://github.com/sdras/vue-sample-svg-icons/)
2424

2525
![Documentation site](https://s3-us-west-2.amazonaws.com/s.cdpn.io/28963/screendocs.jpg 'Docs demo')
2626

27-
We'll create a base icon (`IconBase.vue`) component that uses a slot.
27+
Commençons par créer un composant icône de base (`IconBase.vue`) disposant d'un `slot`.
2828

2929
```html
3030
<template>
@@ -43,9 +43,9 @@ We'll create a base icon (`IconBase.vue`) component that uses a slot.
4343
</template>
4444
```
4545

46-
You can use this base icon as is- the only thing you might need to update is the `viewBox` depending on the `viewBox` of your icons. In the base, we're making the `width`, `height`, `iconColor`, and name of the icon props so that it can be dynamically updated with props. The name will be used for both the `<title>` content and its `id` for accessibility.
46+
Ce composant peut être utilisé tel quel - le seul paramètre à vérifier sera le `viewBox` qui dépendra de celui de vos icônes. Dans l'icône de base, les paramètres `width`, `height`, `iconColor` et `iconName` sont des props pour pouvoir les piloter selon les besoins. La prop `iconName` sera utilisée comme le contenu de la balise `<titre>` et de l'attribut `id` de notre icône SVG pour assurer l'accessibilité.
4747

48-
Our script will look like this, we'll have some defaults so that our icon will be rendered consistently unless we state otherwise:
48+
Le `<script>` du composant icône de base ressemble a ça. Remarquons les valeurs par défaut. Notre icône sera toujours affichée avec les mêmes hauteur/largeur partout sauf si on les force à changer.
4949

5050
```js
5151
export default {
@@ -70,32 +70,32 @@ export default {
7070
}
7171
```
7272

73-
The `currentColor` property that's the default on the fill will make the icon inherit the color of whatever text surrounds it. We could also pass in a different color as a prop if we wish.
73+
La valeur `currentColor` de la prop `iconColor` donne aux icônes la couleur - `fill` - du texte qui l'encadre. On peut modifier cette couleur simplement en passant une prop au composant.
7474

75-
We can use it like so, with the only contents of `IconWrite.vue` containing the paths inside the icon:
75+
Voici un exemple d'utilisation, avec le contenu de `IconWrite.vue` comme path du SVG:
7676

7777
```html
7878
<icon-base icon-name="write"><icon-write /></icon-base>
7979
```
8080

81-
Now, if we'd like to make many sizes for the icon, we can do so very easily:
81+
Et si on souhaite afficher l'icône dans d'autres tailles:
8282

8383
```html
8484
<p>
85-
<!-- you can pass in a smaller `width` and `height` as props -->
85+
<!-- on peut lui passer une `width` et une `height` plus petite grace aux props -->
8686
<icon-base width="12" height="12" icon-name="write"><icon-write /></icon-base>
87-
<!-- or you can use the default, which is 18 -->
87+
<!-- ou ne rien passer du tout et utiliser la width par défaut: 18 -->
8888
<icon-base icon-name="write"><icon-write /></icon-base>
89-
<!-- or make it a little bigger too :) -->
89+
<!-- ou même l'agrandir :) -->
9090
<icon-base width="30" height="30" icon-name="write"><icon-write /></icon-base>
9191
</p>
9292
```
9393

9494
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/28963/Screen%20Shot%202018-01-01%20at%204.51.40%20PM.png" width="450" />
9595

96-
## Animatable Icons
96+
## Icônes Animables
9797

98-
Keeping icons in components comes in very handy when you'd like to animate them, especially on an interaction. Inline SVGs have the highest support for interaction of any method. Here's a very basic example of an icon that's animated on click:
98+
Mettre des icônes SVG dans des composants devient clé dès que l'on souhaite les animer. D'autant plus quand cette animation se passe lors d'une interaction. Les SVG `inline` sont la forme de SVG la mieux supportée. Voici comment animer une icône lors d'un click:
9999

100100
```html
101101
<template>
@@ -104,10 +104,10 @@ Keeping icons in components comes in very handy when you'd like to animate them,
104104
viewBox="0 0 100 100"
105105
width="100"
106106
height="100"
107-
aria-labelledby="scissors"
107+
aria-labelledby="ciseaux"
108108
role="presentation"
109109
>
110-
<title id="scissors" lang="en">Scissors Animated Icon</title>
110+
<title id="scissors" lang="fr">Icône de ciseaux animée</title>
111111
<path id="bk" fill="#fff" d="M0 0h100v100H0z"/>
112112
<g ref="leftscissor">
113113
<path d="M..."/>
@@ -143,27 +143,27 @@ export default {
143143
}
144144
```
145145

146-
We're applying `refs` to the groups of paths we need to move, and as both sides of the scissors have to move in tandem, we'll create a function we can reuse where we'll pass in the `refs`. The use of GreenSock helps resolve animation support and `transform-origin` issues across browser.
146+
Nous avons ajouté des attributs `ref` aux groupes de paths pour pouvoir les animer. Comme les deux cotés des ciseaux s'anime en même temps, nous allons écrire une fonction réutilisable a qui nous allons passer des `ref`. Nous pouvons compter sur GreenSock pour gérer la compatibilité de l'animation entre navigateurs notamment le problème de `transform-origin`.
147147

148-
<p data-height="300" data-theme-id="0" data-slug-hash="dJRpgY" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Editable SVG Icon System: Animated icon" class="codepen">See the Pen <a href="https://codepen.io/team/Vue/pen/dJRpgY/">Editable SVG Icon System: Animated icon</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p><script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>
148+
<p data-height="300" data-theme-id="0" data-slug-hash="dJRpgY" data-default-tab="result" data-user="Vue" data-embed-version="2" data-pen-title="Système d'icônes SVG Éditables: Animation" class="codepen">Voir le Pen <a href="https://codepen.io/team/Vue/pen/dJRpgY/">Système d'icones SVG Editables: Animation</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) on <a href="https://codepen.io">CodePen</a>.</p><script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>
149149

150-
<p style="margin-top:-30px">Pretty easily accomplished! And easy to update on the fly.</p>
150+
<p style="margin-top:-30px">Pas trop dur! Et en plus, super facile a modifier à la volée!!</p>
151151

152-
You can see more animated examples in the repo [here](https://github.com/sdras/vue-sample-svg-icons/)
152+
D'autres exemples d'animations sont disponibles dans le dépôt [ici](https://github.com/sdras/vue-sample-svg-icons/)
153153

154-
## Additional Notes
154+
## Remarques Additionelles
155155

156-
Designers may change their minds. Product requirements change. Keeping the logic for the entire icon system in one base component means you can quickly update all of your icons and have it propagate through the whole system. Even with the use of an icon loader, some situations require you to recreate or edit every SVG to make global changes. This method can save you that time and pain.
156+
Les designers changent d'avis. Les besoins produit aussi. Conserver la logique pour l'ensemble des icons dans un seul composant de base nous permettra de mettre a jour toutes les icônes en modifiant un seul fichier. Même en utilisant un icon loader, il existe des situations où recréer ou éditer chaque SVG devient nécessaire si on souhaite la même modification sur chaque icône. Grace à cette méthode, on s'évitera des souffrances et beaucoup de temps perdu.
157157

158-
## When To Avoid This Pattern
158+
## Quand eviter ce pattern
159159

160-
This type of SVG icon system is really useful when you have a number of icons that are used in different ways throughout your site. If you're repeating the same icon many times on one page (e.g. a giant table a delete icon in each row), it might make more sense to have all of the sprites compiled into a sprite sheet and use `<use>` tags to load them.
160+
Ce système d'icônes est particulièrement utile quand la plupart des icônes du site sont différentes ou utilisées différemment. Si la même icône est répétée de nombreuses fois sur la même page, il peut être plus malin de définir un sprite SVG contenant des `<symbol/>` entre des balises `<defs>` et de les référencer dans des balises `<use>`.
161161

162-
## Alternative Patterns
162+
## Alternative possibles
163163

164-
Other tooling to help manage SVG icons includes:
164+
Quelques outils annexes qui pourront vous aider:
165165

166166
* [svg-sprite-loader](https://github.com/kisenka/svg-sprite-loader)
167167
* [svgo-loader](https://github.com/rpominov/svgo-loader)
168168

169-
These tools bundle SVGs at compile time, but make them a little harder to edit during runtime, because `<use>` tags can have strange cross-browser issues when doing anything more complex. They also leave you with two nested `viewBox` properties and thus two coordinate systems. This makes the implementation a little more complex.
169+
Ces outils compilent les SVG en même temps que le bundle webpack, mais rendent la modification des icônes plus compliquée à chaud. En effet, la balise `<use>` réagit bizarrement sous certains navigateurs avec les dessins complexes. De plus, deux `viewBox` l'un dans l'autre, sont spécifies, donc deux systèmes de coordonnées relatives. Cela peut rendre l'implémentation plus ardue.

0 commit comments

Comments
 (0)