Skip to content

traduction de class-and-style.md #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jan 13, 2017
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 35 additions & 35 deletions src/v2/guide/class-and-style.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
---
title: Class and Style Bindings
title: Liaisons de Class et Style

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En français : Liaisons de classes et de styles

type: guide
order: 6
---

<p class="tip">**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/vuejs.org).**</p>A common need for data binding is manipulating an element's class list and its inline styles. Since they are both attributes, we can use `v-bind` to handle them: we just need to calculate a final string with our expressions. However, meddling with string concatenation is annoying and error-prone. For this reason, Vue provides special enhancements when `v-bind` is used with `class` and `style`. In addition to strings, the expressions can also evaluate to objects or arrays.
Un besoin classique de la **liaison de données**, est de manipuler la *liste des classes* et le *style* d'un élément. Puisque ce sont tous deux des attributs, il est possible d'utiliser `v-bind` pour les gérer : Il est seulement nécessaire de générer une chaîne de caractère avec notre expression. Cependant, jouer avec des concaténations de chaîne de caractères est ennuyant, et source d'erreur. Pour cette raison, Vue fournit des améliorations spéciales quand `v-bind` est utilisé avec `class` et `style`. En plus des chaînes de caractères, l'expression peut évaluer des objets ou des tableaux.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

propositions:
nous devons simplement de générer une chaîne de caractères au lieu de Il est seulement nécessaire
"fastidieux" à la place "d'ennuyant"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À faire :

  • Pas de gras pour liaison de données
  • Pas d'italique pour liste des classes et style
  • Pas de virgule après liaison de données
  • nos expressions

Discussion :

  • fastidieux pour ennuyant également pour moi.
  • le terme « inline » pour « style en ligne » est passé à la trappe. Je propose de transformer

Un besoin classique de la liaison de données, est de manipuler la liste des classes et le style d'un élément

en

Un besoin classique de la liaison de données est la manipulation de la liste des classes d'un élément ainsi (que les styles de son attribut|ses styles en ligne).

On peut garder « styles en ligne » qui est une traduction de inline styles mais je trouve que ça retranscrit pas le fait que ce soit dans l'attribut. Un expemple plus flagrant plus loin quand on explique que l'objet n'a pas besoin d'être écrite dans l'attribut.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"manipuler la liste des classes et les style en lignes d'un élément" me semble conforme au texte original et compréhensible. En anglais , on dit "inlines style", définit ici "An inline style may be used to apply a unique style for a single element." : http://www.w3schools.com/css/css_howto.asp


## Binding HTML Classes
## Lier l'attribut "class"
Copy link
Member

@MachinisteWeb MachinisteWeb Jan 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

  • Je mettrai « Liaison de Classes HTML ».
    J'ai compris que cette traduction était pour la consistance avec « Inline Style » plus bas, mais on peut faire la consistence à l'envers ce qui donnerai « Liaison de Styles HTML » pour la suite.


### Object Syntax
### Syntaxe Objet

We can pass an object to `v-bind:class` to dynamically toggle classes:
Il est possible de donner un objet à `v-bind:class` pour permuter les classes automatiquement :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passer un objet plutôt que donner (on dit le plus souvent "passer des paramètres" , comme "passer un paramètre dans une url, passer un paramètre à une fonction")


``` html
<div v-bind:class="{ active: isActive }"></div>
```

The above syntax means the presence of the `active` class will be determined by the [truthiness](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) of the data property `isActive`.
La syntaxe ci-dessus signifie que la présence de la classe `active` sera déterminé par la [véracité](https://developer.mozilla.org/fr/docs/Glossaire/Truthy) de la propriété `isActive`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

  • Ici « truhthiness » signifie « le fait que la valeur soit évalué à true », qu'elle soit « truthy » par opposition à « falsy ». Je pense qu'il faut changer la phrase pour inclure cette dimension. Véracité ça me parle pas vraiment. Genre

La syntaxe ci-dessus signifie que la classe active sera présente si la valeur de la propriété isActive est évaluée à vrai.


You can have multiple classes toggled by having more fields in the object. In addition, the `v-bind:class` directive can also co-exist with the plain `class` attribute. So given the following template:
Vous pouvez permuter plusieurs classes en ayant plus de champs dans l'objet. De plus, la directive `v-bind:class` peut aussi coexister avec l'attribut `class`. Donc, avec le template suivant :

``` html
<div class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }">
</div>
```

And the following data:
Et les données suivantes :

``` js
data: {
Expand All @@ -35,15 +35,15 @@ data: {
}
```

It will render:
Le rendu sera :

``` html
<div class="static active"></div>
```

When `isActive` or `hasError` changes, the class list will be updated accordingly. For example, if `hasError` becomes `true`, the class list will become `"static active text-danger"`.
Quand `isActive` ou `hasError` change, la liste des classes sera mise à jour en conséquence. Par exemple, si `hasError` devient `true`, la liste des classes deviendra `"static active text-danger"`.

The bound object doesn't have to be inline:
L'objet lié n'as pas besoin d'être en ligne :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

  • Si on garde le terme « en ligne » ici, il faut le remettre dans le premier paragraphe de ce document quand on parlait de « styles » plutôt que de « styles en ligne ».

Si on ne conserve pas « styles en ligne » il faudrait plutôt préciser :

L'objet lié n'a pas besoin d'être dans l'attribut :

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A vrai dire,

L'objet lié n'as pas besoin d'être en ligne

Ne me parait pas satisfaisant non plus, je serais plus partisan du :

L'objet lié n'a pas besoin d'être dans l'attribut :

Même en gardant les "styles en ligne" dans le premier paragraphe

Copy link

@yann-yinn yann-yinn Jan 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moi je mettrais "L'objet lié n'a pas besoin d'être déclaré en ligne dans l'attribut class" :-p

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nyl-auster : ça me plait bien, c'est assez complet et explicite, on suit pas la traduction au mots mais bon.

Copy link
Member

@MachinisteWeb MachinisteWeb Jan 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour ma part « en ligne dans l'attribut » n'a pas plus de sens que « dans l'attribut ». C'est comme « conduire sa voiture avec le volant jusqu'à destination » c'est pareil que « conduire sa voiture jusqu'à destination ». Donc je maintiendrais :

L'objet lié n'a pas besoin d'être dans l'attribut :

Simplement.


``` html
<div v-bind:class="classObject"></div>
Expand All @@ -57,7 +57,7 @@ data: {
}
```

This will render the same result. We can also bind to a [computed property](computed.html) that returns an object. This is a common and powerful pattern:
Ceci rendra le même résultat. Il est également possible de lier une [propriétés calculées](computed.html) qui retourne un objet. C'est une méthode commune et puissante :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

je mettrais "courante" à la place de "commune" puisque commun en français est plus souvent utilisé dans le sens "mettre en commun" que "truc qu'on fait souvent"


``` html
<div v-bind:class="classObject"></div>
Expand All @@ -77,9 +77,9 @@ computed: {
}
```

### Array Syntax
### Syntaxe Tableau

We can pass an array to `v-bind:class` to apply a list of classes:
Il est possible de donner un tableau à `v-bind:class` pour appliquer une liste de classe :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On parle plutôt de "passer des paramètres" que de les donner.


``` html
<div v-bind:class="[activeClass, errorClass]">
Expand All @@ -91,69 +91,69 @@ data: {
}
```

Which will render:
Ce qui rendra :

``` html
<div class="active text-danger"></div>
```

If you would like to also toggle a class in the list conditionally, you can do it with a ternary expression:
Si vous voulez permuter une classe de la liste en fonction d'une condition, vous pouvez le faire avec une expression ternaire :

``` html
<div v-bind:class="[isActive ? activeClass : '', errorClass]">
```

This will always apply `errorClass`, but will only apply `activeClass` when `isActive` is `true`.
Ceci appliquera toujours la classe `errorClass`, mais appliquera `activeClass` uniquement quand `isActive` vaut `true`.

However, this can be a bit verbose if you have multiple conditional classes. That's why it's also possible to use the object syntax inside array syntax:
En revanche, ce peut être un peu verbeux si vous avez plusieurs classes conditionnelles. C'est pourquoi il est aussi possible d'utiliser la syntaxe objet dans la syntaxe tableau :

``` html
<div v-bind:class="[{ active: isActive }, errorClass]">
```

### With Components
### Avec des Composants

> This section assumes knowledge of [Vue Components](components.html). Feel free to skip it and come back later.
> Cette section suppose la connaissance de [Vue Composants](components.html). N'hésitez pas à l'ignorer et y revenir plus tard.

When you use the `class` attribute on a custom component, those classes will be added to the component's root element. Existing classes on this element will not be overwritten.
Quand vous utilisez l'attribut `class` sur un composant personnalisé, ces classes seront ajoutées à l'élément à la racine du composant. Les classes présentes sur cet élément ne seront pas réécrites.

For example, if you declare this component:
Par exemple, si vous déclarez ce composant :

``` js
Vue.component('my-component', {
template: '<p class="foo bar">Hi</p>'
})
```

Then add some classes when using it:
​Puis ajoutez quelques classes quand vous l'utilisez :

``` html
<my-component class="baz boo"></my-component>
```

The rendered HTML will be:
Le rendu HTML sera :

``` html
<p class="foo bar baz boo">Hi</p>
```

The same is true for class bindings:
C'est aussi vrai pour la liaison de classe :

``` html
<my-component v-bind:class="{ active: isActive }"></my-component>
```

When `isActive` is truthy, the rendered HTML will be:
Quand `isActive` est vrai, le rendu HTML sera :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

  • Je traduirai true par vrai et truthy par évalué à vrai


``` html
<p class="foo bar active"></p>
```

## Binding Inline Styles
## Lier l'attribut "style"
Copy link
Member

@MachinisteWeb MachinisteWeb Jan 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

  • On pourrait également traduire par

« Liaison de Styles HTML » par concordance avec « Liaison de Classes HTML » pour encore une fois se débarrasser du Inline gênant.


### Object Syntax
### Syntaxe objet

The object syntax for `v-bind:style` is pretty straightforward - it looks almost like CSS, except it's a JavaScript object. You can use either camelCase or kebab-case (use quotes with kebab-case) for the CSS property names:
La syntaxe objet pour `v-bind:style` est assez simple - cela ressemble presque à CSS, sauf que c'est un objet Javascript. Vous pouvez utiliser camelCase ou kebab-case (utilisez des apostrophes avec kebab-case) pour les noms des propriétés CSS :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À faire :

  • JavaScript


``` html
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
Expand All @@ -165,7 +165,7 @@ data: {
}
```

It is often a good idea to bind to a style object directly so that the template is cleaner:
C'est souvent une bonne idée de lier directement à un objet de style, pour que le template soit plus propre :

``` html
<div v-bind:style="styleObject"></div>
Expand All @@ -179,16 +179,16 @@ data: {
}
```

Again, the object syntax is often used in conjunction with computed properties that return objects.
Encore une fois, la syntaxe objet est souvent utilisé en conjonction avec des propriétés calculés retournant des objets.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion :

Retirer le à et ne pas tenir compte de to car en français, avec le à on a tendence à ce demander « lier quoi à ça » ce qui fait que du coup la phrase manque d'un sujet (le contenu de v-bind en l'occurence).

C'est souvent une bonne idée de lier directement à un objet de style, pour que le template soit plus propre

On peut aussi rajouter le sujet mais ça me plait moins car là on « invente » du texte (même si on garde le sens)

C'est souvent une bonne idée de lier v-bind:style directement à un objet de style, pour que le template soit plus propre

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done ;)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion mineure (tu peux la sauter); je met plutôt "plus lisible" que "plus propre" qui me semble plus précis (propre relève plus pour moi du jugement ou de la qualité de sol de ma salle de bain le dimanche, tandis que lisible indique le fait que le template est plus facile à comprendre et à saisir). Propre n'est l'équivalent exact de "clean" dans le cadre des idées et des concepts. (y'a un peu l'idée de clarté et de pureté dedans également)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'aime pas trop le terme "lisible" pour traduire "clean", même si c'est une partie de ce qui est dit, je trouve que "propre" porte plus la notion de pureté et d'élégance de code que "lisible" ("élégant" pourrais faire une bonne traduction mais je trouve ça un peu pompeux)
Je trouve que "propre" est un bon compromis :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

À faire :

  • souvent utilisée
  • propriétés calculées


### Array Syntax
### Syntaxe tableau

The array syntax for `v-bind:style` allows you to apply multiple style objects to the same element:
La syntaxe tableau pour `v-bind:style` permet d'appliquer plusieurs objets de style à un même élément.

``` html
<div v-bind:style="[baseStyles, overridingStyles]">
```

### Auto-prefixing
### Préfixage automatique

When you use a CSS property that requires vendor prefixes in `v-bind:style`, for example `transform`, Vue will automatically detect and add appropriate prefixes to the applied styles.
Quand vous utilisez une propriété CSS qui nécessite un préfixe vendeur dans `v-bind:style`, par exemple `transform`, Vue le détectera automatiquement, et ajoutera les préfixes appropriés aux styles appliqués.