Skip to content

Traduction de component-edge-cases #130

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

Conversation

sylvainpolletvillard
Copy link
Member

No description provided.

Copy link
Member

@MachinisteWeb MachinisteWeb left a comment

Choose a reason for hiding this comment

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

Génial ! Merci Sylvain !

Quelques broutille. Parfait comme d'hab


```js
this.$refs.usernameInput.focus()
```

When `ref` is used together with `v-for`, the ref you get will be an array containing the child components mirroring the data source.
Quand `ref` est utilisé conjointement avec `v-for`, la ref que vous obtenez sera une `Array` contenant les composants enfants reflétant les données source.
Copy link
Member

Choose a reason for hiding this comment

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

la ref ou la référence

Copy link
Member

Choose a reason for hiding this comment

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

C'est jolie une Array :)

Mais on met un Array pour un tableau. J'ai bien compris que puisque c'est une référence, par abus de langage ont peut dire une référence Array. Mais même dans ce cas c'est étrange car je dirais une référence à un Array :s

Copy link
Member Author

Choose a reason for hiding this comment

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

la question n'a jamais été tranchée puisque les noms anglais n'ont pas de genre. On trouve les deux sur le net, selon ce que les gens ont en tête derrière. Toi c'est un tableau, moi c'est une liste. Mais OK pour uniformiser avec "un" Array


Earlier, when we described [Accessing the Parent Component Instance](#Accessing-the-Parent-Component-Instance), we showed an example like this:
Précédemment, quand nous avons décrit l'[accès à l'instance de composant parente](#Accessing-the-Parent-Component-Instance), nous avons montré un exemple comme ceci :
Copy link
Member

Choose a reason for hiding this comment

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

#Acceder-a-l’instance-de-composant-parente


<p class="tip">However, there are downsides to dependency injection. It couples components in your application to the way they're currently organized, making refactoring more difficult. Provided properties are also not reactive. This is by design, because using them to create a central data store scales just as poorly as <a href="#Accessing-the-Root-Instance">using <code>$root</code></a> for the same purpose. If the properties you want to share are specific to your app, rather than generic, or if you ever want to update provided data inside ancestors, then that's a good sign that you probably need a real state management solution like <a href="https://github.com/vuejs/vuex">Vuex</a> instead.</p>
<p class="tip">Cependant, il y a des inconvénents à l'injection de dépendances. Cela vient entériner la manière dont les composants sont actuellement organisés dans votre application, rendant plus difficile le remaniement de code. De plus, les propriétés fournies avec `provide` ne sont pas réactives. Cela a été intentionnellement conçu de cette façon, car les utiliser pour créer un espace de stockage global est tout aussi peu évolutif que <a href="#Accessing-the-Root-Instance">d'utiliser <code>$root</code></a> dans le même but. Si les propriétés que vous voulez partager sont spécifiques à votre application et non génériques, ou si jamais vous voulez mettre à jour des données fournies par des ancêtres, alors c'est un signe que vous avez probablement besoin d'une réelle solution de gestion d'état telle que <a href="https://github.com/vuejs/vuex">Vuex</a> à la place.</p>
Copy link
Member

Choose a reason for hiding this comment

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

#Acceder-à-l’instance-de-composant-parente


<p class="tip">Note that Vue's event system is different from the browser's <a href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget">EventTarget API</a>. Though they work similarly, <code>$emit</code>, <code>$on</code>, and <code>$off</code> are <strong>not</strong> aliases for <code>dispatchEvent</code>, <code>addEventListener</code>, and <code>removeEventListener</code>.</p>
<p class="tip">Notez que le système d'événements de Vue est différent de celui de <a href="https://developer.mozilla.org/en-US/docs/Web/API/EventTarget">l'API EventTarget</a> du navigateur. Bien qu'ils fonctionnent de façon similaire, <code>$emit</code>, <code>$on</code>, et <code>$off</code> ne sont <strong>pas</strong> des alias pour <code>dispatchEvent</code>, <code>addEventListener</code>, et <code>removeEventListener</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

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


``` js
name: 'stack-overflow',
template: '<div><stack-overflow></stack-overflow></div>'
```

A component like the above will result in a "max stack size exceeded" error, so make sure recursive invocation is conditional (i.e. uses a `v-if` that will eventually be `false`).
Un composant comme ci-dessus résultera en une erreur « Taille maximale de la pile dépassée », donc assurez-vous de rendre conditionnelle l'invocation récursive (p.ex. avec un `v-if` qui sera `false` à la fin).
Copy link
Member

Choose a reason for hiding this comment

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

habituellement ont met « par ex. » dans les docs de Vue. Sinon cette expression à un esppace : « p. ex. » : https://fr.wiktionary.org/wiki/p._ex. (merci, je ne connaissais pas ce raccourci).


``` js
beforeCreate: function () {
this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue').default
}
```

Or alternatively, you could use Webpack's asynchronous `import` when you register the component locally:
Ou comme alternative, vous pouvez utiliser l'`import` asynchrone de Webpack lorsque vous inscrivez le composant localement :
Copy link
Member

Choose a reason for hiding this comment

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

webpack

Copy link
Member Author

Choose a reason for hiding this comment

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

Non, j'ai vérifié, c'est intentionnel de garder la majuscule : vuejs#1552 (comment)

Copy link
Member

@MachinisteWeb MachinisteWeb Apr 23, 2018

Choose a reason for hiding this comment

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

Oui je sais qu'en version original Webpack garde la majuscule. Pour npm, il souhaite également conserver NPM. Je crois que sa règle c'est le terme qu'il pense le plus utilisé selon des critères trop arbitraires.

vuejs#990

En tout cas en FR, notre règle c'est toujours utilisé la syntaxe de la documentation officielle. Node.js (pas de Node.JS), npm (pas de Npm ou NPM), GitHub (pas de Github), Webpack (pas webpack), SystemJS pas Sytem JS, etc.

Du coup dans toutes nos documentations FR, et tu peux vérifier, tu trouverras webpack et npm. Si tel n'est pas le cas « c'est une erreur ».

Rien de dramatique non plus encore une fois, juste une histoire de consistence.

Du coup ton avis sur ce billet m'intéresserait bien :)
https://www.linkedin.com/pulse/d%C3%A9veloppeurs-marketeurs-respectez-les-noms-des-bruno-lesieur/

Copy link
Member Author

Choose a reason for hiding this comment

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

Je vote pour garder les choix d'origine de l'auteur, ce n'est pas aux traducteurs de prendre ce genre de décisions.

Copy link
Member

@MachinisteWeb MachinisteWeb Apr 23, 2018

Choose a reason for hiding this comment

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

Ton point a été entendu. Je souhaiterais plus d'avis sur la question.

Ma position est inverse. Je pense que c'est le travail des traducteurs de « s'entendre » sur ce genre de décision. Je trouve important et respectueux d'utiliser un terme tel qu'il a été créé. Il n'y a rien de moins non professionnel que de voir le mot « Javascript » ou « Jquery » au lieu de « JavaScript » ou « jQuery » sous prétexte qu'on ne met pas de majuscule dans un mot, ou qu'un mot commence forcément par une majuscule.

Il n'y a aucune raison pertinente de mettre une majuscule à webpack sans en mettre une à jQuery sinon l'autorité de la EN. Eu égard aux heures que nous passons à maintenir une traduction, je pense que ces points sont discutables. C'est d'ailleurs pour cela que nous en avons discuté avec Chris et que nous sommes tombé d'accord sur le compromis de conserver leur façon de faire dans leur documentation, et de choisir la notre dans notre documentation.

Choisir de maintenir les casses de la documentation EN étant un choix possible et non discuté actuellement, je te laisse ouvrir le débat.

En attendant, ce sera webpack (pas pour te faire chier mais parcequ'on l'a écrit comme ça partout (pour le moment donc :D)). Mais si c'est en dehors de tes convictions personnelles, je peux me charger de la modif pour toi.

Copy link
Member Author

Choose a reason for hiding this comment

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

oui je vais pas me battre pour une broutille pareille mais je veux bien que tu fasses ces modifs toi-même, comme ça je ne suis pas associé à cette décision


``` js
components: {
TreeFolderContents: () => import('./tree-folder-contents.vue')
}
```

Problem solved!
Problème résolu !
Copy link
Member

Choose a reason for hiding this comment

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

!!! Top ! C'est plus clair que lors de ma première lecture dans l'original ce passage. Merci !

</div>
</my-component>
```

<p class="tip">However, <code>inline-template</code> makes the scope of your templates harder to reason about. As a best practice, prefer defining templates inside the component using the <code>template</code> option or in a <code>&lt;template&gt;</code> element in a <code>.vue</code> file.</p>
<p class="tip">Cependant, <code>inline-template</code> rend le scope de vos templates plus difficile à appréhender. Une bonne pratique est de préférer la définition de templates à l'intérieur du composant en utilisant l'option <code>template</code> ou dans un élément <code>&lt;template&gt;</code> dans un fichier <code>.vue</code>.</p>
Copy link
Member

Choose a reason for hiding this comment

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

rend la portée de vos


### Cheap Static Components with `v-once`
Cependant, si vous exclu toutes les options précédentes et que vous vous trouvez dans cette situation extrêmement rare où vous avez à forcer manuellement une mise à jour, vous pouvez le faire avec [`$forceUpdate`](../api/#vm-forceUpdate).
Copy link
Member

Choose a reason for hiding this comment

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

si vous excluez

Copy link
Member Author

Choose a reason for hiding this comment

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

oups, je voulais mettre si vous avez exclu

@@ -349,33 +349,33 @@ Vue.component('hello-world', {
})
```

<p class="tip">These can be useful for demos with large templates or in extremely small applications, but should otherwise be avoided, because they separate templates from the rest of the component definition.</p>

Copy link
Member

Choose a reason for hiding this comment

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

Décallage

Copy link
Member Author

Choose a reason for hiding this comment

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

que veux-tu dire ?

Copy link
Member

Choose a reason for hiding this comment

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

Il y a un décallage de ligne près de ce point dans le nombre de ligne, désolé pour la clarté

Copy link
Member Author

Choose a reason for hiding this comment

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

Je ne vois pas de décalage dans le diff, le nombre de lignes est identique

Copy link
Member

Choose a reason for hiding this comment

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

Oui apparemment plus loins ça retombe sur ces pates

@@ -349,33 +349,33 @@ Vue.component('hello-world', {
})
```

<p class="tip">These can be useful for demos with large templates or in extremely small applications, but should otherwise be avoided, because they separate templates from the rest of the component definition.</p>

Copy link
Member

Choose a reason for hiding this comment

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

Oui apparemment plus loins ça retombe sur ces pates


Faire le rendu d'éléments HTML statiques est très rapide dans Vue, mais parfois vous pouvez avoir un composant qui contient **une grande quantité** de contenu statique. Dans ces cas, vous pouvez vous assurer qu'il ne sera évalué qu'une seule fois puis mis en cache en ajoutant la directive `v-once` à l'élément racine, comme ceci :

``` js
Copy link
Member

Choose a reason for hiding this comment

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

À partir d'ici le décallage est réparé. C'est pour ça qu'au nombre de ligne ça ne se voit pas. Mais en regardant sous cette vue https://github.com/vuejs-fr/vuejs.org/pull/130/files, tu peux constater.

Copy link
Member Author

Choose a reason for hiding this comment

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

Je ne vois vraiment pas ce que je peux y faire, tout est à la même ligne mais le diff git s'y perd. Je pense que ça n'a aucune importance


``` js
beforeCreate: function () {
this.$options.components.TreeFolderContents = require('./tree-folder-contents.vue').default
}
```

Or alternatively, you could use Webpack's asynchronous `import` when you register the component locally:
Ou comme alternative, vous pouvez utiliser l'`import` asynchrone de Webpack lorsque vous inscrivez le composant localement :
Copy link
Member

@MachinisteWeb MachinisteWeb Apr 23, 2018

Choose a reason for hiding this comment

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

Oui je sais qu'en version original Webpack garde la majuscule. Pour npm, il souhaite également conserver NPM. Je crois que sa règle c'est le terme qu'il pense le plus utilisé selon des critères trop arbitraires.

vuejs#990

En tout cas en FR, notre règle c'est toujours utilisé la syntaxe de la documentation officielle. Node.js (pas de Node.JS), npm (pas de Npm ou NPM), GitHub (pas de Github), Webpack (pas webpack), SystemJS pas Sytem JS, etc.

Du coup dans toutes nos documentations FR, et tu peux vérifier, tu trouverras webpack et npm. Si tel n'est pas le cas « c'est une erreur ».

Rien de dramatique non plus encore une fois, juste une histoire de consistence.

Du coup ton avis sur ce billet m'intéresserait bien :)
https://www.linkedin.com/pulse/d%C3%A9veloppeurs-marketeurs-respectez-les-noms-des-bruno-lesieur/

@MachinisteWeb
Copy link
Member

Tu as fais tous les changements que tu jugeais nécéssaires @sylvainpolletvillard ? Dit moi quand je pourrais merge.

@sylvainpolletvillard
Copy link
Member Author

Je n'avais pas eu le temps d'y revenir, mais c'est chose faite. Bon pour merge

@MachinisteWeb MachinisteWeb merged commit e8b46f4 into vuejs-fr:master Apr 28, 2018
@MachinisteWeb
Copy link
Member

Top \o/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants