Skip to content

Commit f8614aa

Browse files
authored
Merge pull request #272 from HachemiH/master
Conflicts fixed after sync with upstream @ 13da056
2 parents 3d10e79 + 9659c12 commit f8614aa

File tree

49 files changed

+154
-952
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+154
-952
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,19 +109,11 @@ Les outils modernes rendent la [transpilation](https://fr.wiktionary.org/wiki/tr
109109

110110
Les exemples de ce genre de langages :
111111

112-
<<<<<<< HEAD
113112
- [CoffeeScript](http://coffeescript.org/) est un "sucre syntaxique" pour JavaScript, il introduit une syntaxe plus courte, permettant d’écrire du code plus précis et plus clair. Habituellement, les développeurs Ruby l'aiment bien.
114113
- [TypeScript](http://www.typescriptlang.org/) se concentre sur l'ajout de "typage strict des données" pour simplifier le développement et la prise en charge de systèmes complexes. Il est développé par Microsoft.
115114
- [Flow](http://flow.org/) ajoute également la saisie de données, mais de manière différente. Développé par Facebook.
116-
- [Dart](https://www.dartlang.org/) est un langage autonome doté de son propre moteur qui s'exécute dans des environnements autres que les navigateurs (comme les applications mobiles). Développé par Google.
115+
- [Dart](https://www.dartlang.org/) est un langage autonome doté de son propre moteur qui s'exécute dans des environnements autres que les navigateurs (comme les applications mobiles), mais peut aussi être transpilé en JavaScript. Développé par Google.
117116
- [Brython](https://brython.info/) est un transpilateur Python vers JavaScript qui permet d'écrire des applications en Python pur sans JavaScript.
118-
=======
119-
- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
120-
- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
121-
- [Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
122-
- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
123-
- [Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
124-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
125117

126118
Il en existe évidemment bien plus, cela dit, même si nous utilisons un de ces langages, nous devrions également connaître le langage JavaScript, pour bien comprendre ce que nous faisons.
127119

1-js/02-first-steps/04-variables/2-declare-variables/solution.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ C’est simple :
66
let notrePlanete = "Terre";
77
```
88

9-
<<<<<<< HEAD
109
Notez que nous pourrions utiliser un nom `planète` plus court, mais la planète à laquelle il fait référence pourrait ne pas être évidente. C’est bien d’être plus verbeux. Au moins jusqu'à ce que la variable n'estPasTropLongue.
11-
=======
12-
Note, we could use a shorter name `planet`, but it might not be obvious what planet it refers to. It's nice to be more verbose. At least until the variable isNotTooLong.
13-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
1410

1511
## le nom du visiteur actuel
1612

1-js/02-first-steps/08-operators/article.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,20 +105,15 @@ Cependant, notez que les opérations se déroulent de gauche à droite. S'il y a
105105
alert(2 + 2 + '1' ); // "41" et non "221"
106106
```
107107

108-
<<<<<<< HEAD
109-
Ici, les opérateurs travaillent les uns après les autres. Le premier `+` additionne deux nombres, donc il renvoie `4`, puis le `+` suivant ajoute la chaîne `1`, donc c'est comme `4 + '1' = 41`.
110-
=======
111-
Here, operators work one after another. The first `+` sums two numbers, so it returns `4`, then the next `+` adds the string `1` to it, so it's like `4 + '1' = 41`.
108+
Ici, les opérateurs travaillent les uns après les autres. Le premier `+` additionne deux nombres, donc il renvoie `4`, puis le `+` suivant ajoute la chaîne de caractères `1`, donc c'est comme `4 + '1' = 41`.
112109
113110
```js run
114111
alert('1' + 2 + 2); // "122" and not "14"
115112
```
116-
Here, the first operand is a string, the compiler treats the other two operands as strings too. The `2` gets concatenated to `'1'`, so it's like `'1' + 2 = "12"` and `"12" + 2 = "122"`.
113+
Ici, le premier opérande est une chaîne de caractères, le compilateur traite également les deux autres opérandes comme des chaînes de caractères. Le `2` est concaténé à `'1'`, donc c'est comme `'1'+ 2 = "12"` et `"12" + 2 = "122"`.
117114

118-
The binary `+` is the only operator that supports strings in such a way. Other arithmetic operators work only with numbers and always convert their operands to numbers.
119-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
120115

121-
Le binaire `+` est le seul opérateur qui prend en charge les chaînes de cette manière. D'autres opérateurs arithmétiques ne fonctionnent qu'avec des nombres et convertissent toujours leurs opérandes en nombres.
116+
Le binaire `+` est le seul opérateur qui prend en charge les chaînes de caractères de cette manière. D'autres opérateurs arithmétiques ne fonctionnent qu'avec des nombres et convertissent toujours leurs opérandes en nombres.
122117

123118
Voici l'exemple pour la soustraction et la division:
124119
```js run

1-js/02-first-steps/10-ifelse/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,7 @@ if (cond) {
6868

6969
## La clause "else"
7070

71-
<<<<<<< HEAD
72-
L'instruction `if` peut contenir un bloc optionnel `else`. Il s'exécute lorsque la condition est incorrecte.
73-
=======
74-
The `if` statement may contain an optional "else" block. It executes when the condition is falsy.
75-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
71+
L'instruction `if` peut contenir un bloc optionnel "else". Il s'exécute lorsque la condition est fausse.
7672

7773
Par exemple :
7874
```js run

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 38 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -11,128 +11,82 @@ Une bonne page pour voir l’état actuel de la prise en charge des fonctionnali
1111

1212
As programmers, we'd like to use most recent features. The more good stuff - the better!
1313

14-
<<<<<<< HEAD
15-
Lorsque nous utilisons des fonctionnalités modernes du langage, certains moteurs peuvent ne pas supporter un tel code. Comme indiqué, toutes les fonctionnalités ne sont pas implémentées partout.
14+
D'un autre côté, comment faire fonctionner le code moderne sur des moteurs plus anciens qui ne comprennent pas encore les fonctionnalités récentes ?
1615

17-
C'est là que Babel vient à la rescousse.
16+
Il existe deux outils pour cela :
1817

19-
[Babel](https://babeljs.io) est un [transpileur](https://fr.wikipedia.org/wiki/Compilateur_source_%C3%A0_source). Il réécrit le code JavaScript moderne dans le standard précédent.
18+
1. Les transpilers.
19+
2. Les polyfills.
2020

21-
Actuellement, Babel comporte deux parties :
21+
Ici, dans ce chapitre, notre objectif est de comprendre l'essentiel de leur fonctionnement et de leur place dans le développement Web.
2222

23-
1. Tout d’abord, le programme transpileur, qui réécrit le code. Le développeur l'exécute sur son propre ordinateur. Il réécrit le code dans l'ancien standard. Et ensuite, le code est transmis au site Web pour les utilisateurs. Des systèmes de construction de projet moderne comme [webpack](http://webpack.github.io/) qui permet de fournir des moyens d’exécuter automatiquement un transpileur à chaque changement de code, de sorte que cela devient très facile à intégrer dans le processus de développement.
23+
## Les transpilers
2424

25-
2. Ensuite, le polyfill.
25+
Un [transpiler](https://en.wikipedia.org/wiki/Source-to-source_compiler) est un logiciel spécial qui peut analyser ("lire et comprendre") le code moderne et le réécrire en utilisant des constructions de syntaxe plus anciennes, de sorte que le résultat soit le même.
2626

27-
Les nouvelles fonctionnalités du langage peuvent inclure de nouvelles fonctions intégrées et de nouvelles constructions de syntaxe.
28-
Le transpiler réécrit le code en transformant les nouvelles constructions de syntaxe en anciennes. Mais en ce qui concerne les nouvelles fonctions intégrées, nous devons les implémenter. JavaScript est un langage très dynamique, les scripts peuvent ajouter / modifier n’importe quelle fonction, afin qu’ils se comportent conformément au standard moderne.
27+
Par exemple, JavaScript avant l'année 2020 n'avait pas "l'opérateur de coalescence des nuls" `??`. Ainsi, si un visiteur utilise un navigateur obsolète, il peut ne pas comprendre le code tel que `height = height ?? 100`.
2928

30-
Un script qui met à jour / ajoute de nouvelles fonctions s'appelle "polyfill". Il "comble" le vide et ajoute les implémentations manquantes.
31-
32-
Deux polyfill intéressants sont :
33-
- [core js](https://github.com/zloirock/core-js) qui prend beaucoup en charge, permet d’inclure uniquement les fonctionnalités nécessaires.
34-
- [polyfill.io](http://polyfill.io) service qui fournit un script avec des polyfill, en fonction des fonctionnalités et du navigateur de l'utilisateur.
35-
36-
Nous devons donc configurer le transpileur et ajouter le polyfill pour les anciens moteurs afin de prendre en charge les fonctionnalités modernes.
37-
38-
Donc, si nous allons utiliser les fonctionnalités du langage moderne, un transpiler et un polyfill sont nécessaires.
39-
40-
## Exemples dans le tutoriel
41-
=======
42-
From the other hand, how to make out modern code work on older engines that don't understand recent features yet?
43-
44-
There are two tools for that:
45-
46-
1. Transpilers.
47-
2. Polyfills.
48-
49-
Here, in this chapter, our purpose is to get the gist of how they work, and their place in web development.
50-
51-
## Transpilers
52-
53-
A [transpiler](https://en.wikipedia.org/wiki/Source-to-source_compiler) is a special piece of software that can parse ("read and understand") modern code, and rewrite it using older syntax constructs, so that the result would be the same.
54-
55-
E.g. JavaScript before year 2020 didn't have the "nullish coalescing operator" `??`. So, if a visitor uses an outdated browser, it may fail to understand the code like `height = height ?? 100`.
56-
57-
A transpiler would analyze our code and rewrite `height ?? 100` into `(height !== undefined && height !== null) ? height : 100`.
29+
Un transpiler analyserait notre code et réécrirait `height ?? 100` en `(height !== undefined && height !== null) ? height : 100`.
5830

5931
```js
60-
// before running the transpiler
32+
// avant d'exécuter le transpiler
6133
height = height ?? 100;
6234

63-
// after running the transpiler
35+
// après avoir exécuté le transpiler
6436
height = (height !== undefined && height !== null) ? height : 100;
6537
```
6638
67-
Now the rewritten code is suitable for older JavaScript engines.
68-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
69-
70-
Usually, a developer runs the transpiler on their own computer, and then deploys the transpiled code to the server.
39+
Désormais, le code réécrit convient aux anciens moteurs JavaScript.
7140
72-
<<<<<<< HEAD
73-
````online
74-
La plupart des exemples sont exécutables sur place, comme ceci :
75-
=======
76-
Speaking of names, [Babel](https://babeljs.io) is one of the most prominent transpilers out there.
77-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
41+
Habituellement, un développeur exécute le transpiler sur son propre ordinateur, puis déploie le code transpilé sur le serveur.
7842
79-
Modern project build systems, such as [webpack](http://webpack.github.io/), provide means to run transpiler automatically on every code change, so it's very easy to integrate into development process.
43+
En parlant de noms, [Babel](https://babeljs.io) est l'un des transpileurs les plus connus.
8044
81-
## Polyfills
45+
Les systèmes de construction de projets modernes, tels que [webpack](http://webpack.github.io/), fournissent des moyens pour exécuter un transpiler automatiquement à chaque changement de code, il est donc très facile à intégrer dans le processus de développement.
8246
83-
New language features may include not only syntax constructs and operators, but also built-in functions.
47+
## Les polyfills
8448
85-
For example, `Math.trunc(n)` is a function that "cuts off" the decimal part of a number, e.g `Math.trunc(1.23) = 1`.
86-
87-
<<<<<<< HEAD
88-
Les exemples qui utilisent le JS moderne ne fonctionneront que si votre navigateur le prend en charge.
89-
````
90-
91-
```offline
92-
Pendant que vous lisez la version hors connexion, les exemples ne sont pas exécutables. Dans EPUB, certains peuvent fonctionner.
93-
```
49+
Les nouvelles fonctionnalités du langage peuvent inclure non seulement des constructions de syntaxe et des opérateurs, mais également des fonctions intégrées.
9450
95-
Google Chrome est généralement la version la plus récente des fonctionnalités du langage, il accepte de lancer des démos ultra-sophistiquées sans transpilers, mais les autres navigateurs modernes fonctionnent également très bien.
51+
Par exemple, `Math.trunc(n)` est une fonction qui "coupe" la partie décimale d'un nombre, par exemple `Math.trunc(1.23) = 1`.
9652
97-
=======
98-
In some (very outdated) JavaScript engines, there's no `Math.trunc`, so such code will fail.
53+
Dans certains moteurs JavaScript (très obsolètes), il n'y a pas de `Math.trunc`, donc un tel code échouera.
9954
100-
As we're talking about new functions, not syntax changes, there's no need to transpile anything here. We just need to declare the missing function.
55+
Comme nous parlons de nouvelles fonctions, pas de changements de syntaxe, il n'est pas nécessaire de transpiler quoi que ce soit ici. Nous avons juste besoin de déclarer la fonction manquante.
10156
102-
A script that updates/adds new functions is called "polyfill". It "fills in" the gap and adds missing implementations.
57+
Un script qui met à jour/ajoute de nouvelles fonctions est appelé "polyfill". Il "comble" le vide et ajoute les implémentations manquantes.
10358
104-
For this particular case, the polyfill for `Math.trunc` is a script that implements it, like this:
59+
Pour ce cas particulier, le polyfill pour `Math.trunc` est un script qui l'implémente, comme ceci :
10560
10661
```js
107-
if (!Math.trunc) { // if no such function
108-
// implement it
62+
if (!Math.trunc) { // si une telle fonction n'existe pas
63+
// l'implémenter
10964
Math.trunc = function(number) {
110-
// Math.ceil and Math.floor exist even in ancient JavaScript engines
111-
// they are covered later in the tutorial
65+
// Math.ceil et Math.floor existe même dans les anciens moteurs JavaScript
66+
// ils sont traités plus tard dans le tutoriel
11267
return number < 0 ? Math.ceil(number) : Math.floor(number);
11368
};
11469
}
11570
```
11671
117-
JavaScript is a highly dynamic language, scripts may add/modify any functions, even including built-in ones.
72+
JavaScript est un langage très dynamique, les scripts peuvent ajouter/modifier toutes les fonctions, y compris celles intégrées.
11873
119-
Two interesting libraries of polyfills are:
120-
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
121-
- [polyfill.io](http://polyfill.io) service that provides a script with polyfills, depending on the features and user's browser.
74+
Deux librairies intéressantes de polyfills sont :
75+
- [core js](https://github.com/zloirock/core-js) qui prend en charge beaucoup, permet d'inclure uniquement les fonctionnalités nécessaires.
76+
- [polyfill.io](http://polyfill.io) est un service qui fournit un script avec des polyfills, en fonction des fonctionnalités et du navigateur de l'utilisateur.
12277
12378
124-
## Summary
79+
## Résumé
12580
126-
In this chapter we'd like to motivate you to study modern and even "bleeding-edge" language features, even if they aren't yet well-supported by JavaScript engines.
81+
Dans ce chapitre, nous aimerions vous motiver à étudier les fonctionnalités du langage modernes et même "de pointe", même si elles ne sont pas encore bien prises en charge par les moteurs JavaScript.
12782
128-
Just don't forget to use transpiler (if using modern syntax or operators) and polyfills (to add functions that may be missing). And they'll ensure that the code works.
83+
N'oubliez pas d'utiliser un transpiler (si vous utilisez une syntaxe ou des opérateurs modernes) et des polyfills (pour ajouter des fonctions qui peuvent manquer). Et ils veilleront à ce que le code fonctionne.
12984
130-
For example, later when you're familiar with JavaScript, you can setup a code build system based on [webpack](http://webpack.github.io/) with [babel-loader](https://github.com/babel/babel-loader) plugin.
85+
Par exemple, plus tard, lorsque vous serez familiarisé avec JavaScript, vous pourrez configurer un système de création de code basé sur [webpack](http://webpack.github.io/) avec le plugin [babel-loader](https://github.com/babel/babel-loader).
13186
132-
Good resources that show the current state of support for various features:
133-
- <https://kangax.github.io/compat-table/es6/> - for pure JavaScript.
134-
- <https://caniuse.com/> - for browser-related functions.
87+
De bonnes ressources qui montrent l'état actuel de la prise en charge de diverses fonctionnalités :
88+
- <https://kangax.github.io/compat-table/es6/> - pour du pur JavaScript.
89+
- <https://caniuse.com/> - pour les fonctions liées au navigateur.
13590
136-
P.S. Google Chrome is usually the most up-to-date with language features, try it if a tutorial demo fails. Most tutorial demos work with any modern browser though.
137-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
91+
P.S. Google Chrome est généralement le plus à jour avec les fonctionnalités du langage, essayez-le si une démonstration d'un tutoriel échoue. La plupart des démos de didacticiels fonctionnent avec n'importe quel navigateur moderne.
13892

0 commit comments

Comments
 (0)