Skip to content

Commit 6e26d86

Browse files
committed
Conflicts fixed on "Modules, introduction" page in french language
1 parent 9b32a33 commit 6e26d86

File tree

1 file changed

+34
-102
lines changed

1 file changed

+34
-102
lines changed

1-js/13-modules/01-modules-intro/article.md

Lines changed: 34 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,8 @@ Comme ça:
5757

5858
Le navigateur extrait et évalue automatiquement le module importé (et, le cas échéant, ses importations), puis exécute le script.
5959

60-
<<<<<<< HEAD
61-
```warn header="Les modules fonctionnent uniquement via HTTP(s), pas dans des fichiers locaux"
62-
Si vous essayez d'ouvrir une page Web localement, via le protocole `file: //`, vous verrez que les directives `import / export` ne fonctionnent pas. Utilisez un serveur Web local, tel que [static-server](https://www.npmjs.com/package/static-server#getting-started) ou utilisez la fonctionnalité "live server" de votre éditeur, telle que VS Code [Live Server Extension](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) pour tester les modules.
63-
=======
64-
```warn header="Modules work only via HTTP(s), not locally"
65-
If you try to open a web-page locally, via `file://` protocol, you'll find that `import/export` directives don't work. Use a local web-server, such as [static-server](https://www.npmjs.com/package/static-server#getting-started) or use the "live server" capability of your editor, such as VS Code [Live Server Extension](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) to test modules.
66-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
60+
```warn header="Les modules fonctionnent uniquement via HTTP(s), pas localement"
61+
Si vous essayez d'ouvrir une page Web localement, via le protocole `file://`, vous verrez que les directives `import/export` ne fonctionnent pas. Utilisez un serveur Web local, tel que [static-server](https://www.npmjs.com/package/static-server#getting-started) ou utilisez la fonctionnalité "live server" de votre éditeur, tel que VS Code [Live Server Extension](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) pour tester les modules.
6762
```
6863

6964
## Caractéristiques du module de base
@@ -74,11 +69,7 @@ Il existe des fonctionnalités de base, valables à la fois pour le navigateur e
7469

7570
### Toujours en mode "use strict"
7671

77-
<<<<<<< HEAD
78-
Les modules utilisent `use strict`, par défaut. Par exemple. assigner à une variable non déclarée donnera une erreur.
79-
=======
80-
Modules always work in strict mode. E.g. assigning to an undeclared variable will give an error.
81-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
72+
Les modules fonctionnent toujours en mode strict. Par exemple. l'affectation à une variable non déclarée donnera une erreur.
8273

8374
```html run
8475
<script type="module">
@@ -90,38 +81,24 @@ Modules always work in strict mode. E.g. assigning to an undeclared variable wil
9081

9182
Chaque module a sa propre portée globale. En d'autres termes, les variables et les fonctions globales d'un module ne sont pas visibles dans les autres scripts.
9283

93-
<<<<<<< HEAD
94-
Dans l'exemple ci-dessous, deux scripts sont importés et `hello.js` essaie d'utiliser la variable `user` déclarée dans `user.js` et échoue:
84+
Dans l'exemple ci-dessous, deux scripts sont importés et `hello.js` essaie d'utiliser la variable `user` déclarée dans `user.js`. Il échoue, car il s'agit d'un module distinct (vous verrez l'erreur dans la console) :
9585

9686
[codetabs src="scopes" height="140" current="index.html"]
9787

98-
Les modules sont censés `export` ce qui doit être accessible de l'extérieur et `import` ce dont ils ont besoin.
88+
Les modules doivent `export` ce qu'ils veulent être accessible de l'extérieur et `import` ce dont ils ont besoin.
9989

100-
Nous devons donc importer `user.js` dans `hello.js` et en tirer les fonctionnalités requises au lieu de nous fier à des variables globales.
101-
=======
102-
In the example below, two scripts are imported, and `hello.js` tries to use `user` variable declared in `user.js`. It fails, because it's a separate module (you'll see the error in the console):
90+
- `user.js` devrait exporter la variable `user`.
91+
- `hello.js` devrait l'importer depuis le module `user.js`.
10392

104-
[codetabs src="scopes" height="140" current="index.html"]
105-
106-
Modules should `export` what they want to be accessible from outside and `import` what they need.
107-
108-
- `user.js` should export the `user` variable.
109-
- `hello.js` should import it from `user.js` module.
110-
111-
In other words, with modules we use import/export instead of relying on global variables.
112-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
93+
En d'autres termes, avec les modules, nous utilisons l'import/export au lieu de nous appuyer sur des variables globales.
11394

11495
Ceci est la bonne variante :
11596

11697
[codetabs src="scopes-working" height="140" current="hello.js"]
11798

118-
<<<<<<< HEAD
119-
Dans le navigateur, un environnement indépendant existe également pour chaque `<script type ="module">`:
120-
=======
121-
In the browser, if we talk about HTML pages, independent top-level scope also exists for each `<script type="module">`.
99+
Dans le navigateur, si nous parlons de pages HTML, une portée de niveau supérieur indépendante existe également pour chaque `<script type="module">`.
122100

123-
Here are two scripts on the same page, both `type="module"`. They don't see each other's top-level variables:
124-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
101+
Voici deux scripts sur la même page, tous deux `type="module"`. Ils ne voient pas les variables de niveau supérieur de l'autre :
125102

126103
```html run
127104
<script type="module">
@@ -136,31 +113,21 @@ Here are two scripts on the same page, both `type="module"`. They don't see each
136113
</script>
137114
```
138115

139-
<<<<<<< HEAD
140-
Si nous devons réellement créer une variable globale, nous pouvons l’affecter explicitement à `window` et y accéder en tant que `window.user`. Mais c’est une exception qui nécessite une bonne raison.
141-
=======
142116
```smart
143-
In the browser, we can make a variable window-level global by explicitly assigning it to a `window` property, e.g. `window.user = "John"`.
117+
Dans le navigateur, nous pouvons rendre une variable globale au niveau de la fenêtre en l'affectant explicitement à une propriété `window`, par exemple `window.user = "John"`.
144118
145-
Then all scripts will see it, both with `type="module"` and without it.
119+
Ensuite, tous les scripts la verront, à la fois avec `type="module"` et sans.
146120
147-
That said, making such global variables is frowned upon. Please try to avoid them.
121+
Cela dit, faire de telles variables globales est mal vu. Veuillez essayer de les éviter.
148122
```
149-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
150123

151124
### Un code de module est chargé la première fois lorsqu'il est importé
152125

153-
<<<<<<< HEAD
154-
Si le même module est importé dans plusieurs autres emplacements, son code n'est exécuté que la première fois, puis les exportations sont données à tous les importateurs.
126+
Si le même module est importé dans plusieurs autres modules, son code n'est exécuté qu'une seule fois, lors de la première importation. Ensuite, ses exportations sont données à tous les autres importateurs.
155127

156-
Cela a des conséquences importantes. Voyons cela sur des exemples.
157-
=======
158-
If the same module is imported into multiple other modules, its code is executed only once, upon the first import. Then its exports are given to all further importers.
128+
L'évaluation ponctuelle a des conséquences importantes, dont nous devons être conscients.
159129

160-
The one-time evaluation has important consequences, that we should be aware of.
161-
162-
Let's see a couple of examples.
163-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
130+
Voyons quelques exemples.
164131

165132
Premièrement, si exécuter un code de module entraîne des effets secondaires, comme afficher un message, l'importer plusieurs fois ne le déclenchera qu'une seule fois - la première fois:
166133

@@ -179,17 +146,11 @@ import `./alert.js`; // le module est chargé
179146
import `./alert.js`; // (n'affiche rien)
180147
```
181148

182-
<<<<<<< HEAD
183-
En pratique, le code dans l'environnement global du module est principalement utilisé pour l'initialisation, la création de structures de données internes mais, si nous voulons que quelque chose soit réutilisable, exportez-le.
184-
185-
Maintenant, un exemple plus avancé.
186-
=======
187-
The second import shows nothing, because the module has already been evaluated.
149+
La deuxième importation ne montre rien, car le module a déjà été évalué.
188150

189-
There's a rule: top-level module code should be used for initialization, creation of module-specific internal data structures. If we need to make something callable multiple times - we should export it as a function, like we did with `sayHi` above.
151+
Il y a une règle : le code du module de niveau supérieur doit être utilisé pour l'initialisation, la création de structures de données internes spécifiques au module. Si nous devons rendre quelque chose appelable plusieurs fois, nous devons l'exporter en tant que fonction, comme nous l'avons fait avec `sayHi` ci-dessus.
190152

191-
Now, let's consider a deeper example.
192-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
153+
Maintenant, considérons un exemple plus profond.
193154

194155
Disons qu'un module exporte un objet:
195156

@@ -214,38 +175,25 @@ import {admin} from './admin.js';
214175
alert(admin.name); // Pete
215176

216177
*!*
217-
<<<<<<< HEAD
218-
// 1.js et 2.js ont importé le même objet
178+
// 1.js et 2.js font référence au même objet admin
219179
// Les modifications apportées dans 1.js sont visibles dans 2.js
220180
*/!*
221181
```
222182

223-
Donc, répétons-le, le module n’est exécuté qu’une fois. Les exportations sont générées, puis partagées entre les importateurs. Par conséquent, si quelque chose change d'objet `admin`, les autres modules le verront.
224-
225-
Un tel comportement permet de configurer des modules lors de la première importation. Nous pouvons configurer ses propriétés une fois, puis dans les importations ultérieures, il est prêt.
226-
227-
Par exemple, le module `admin.js` peut fournir certaines fonctionnalités, mais attendez-vous à ce que les informations d'identification entrent dans l'objet `admin` de l'extérieur:
228-
=======
229-
// Both 1.js and 2.js reference the same admin object
230-
// Changes made in 1.js are visible in 2.js
231-
*/!*
232-
```
233-
234-
As you can see, when `1.js` changes the `name` property in the imported `admin`, then `2.js` can see the new `admin.name`.
183+
Comme vous pouvez le voir, lorsque `1.js` modifie la propriété `name` dans le `admin` importé, alors `2.js` peut voir le nouveau `admin.name`.
235184

236-
That's exactly because the module is executed only once. Exports are generated, and then they are shared between importers, so if something changes the `admin` object, other modules will see that.
185+
C'est précisément parce que le module n'est exécuté qu'une seule fois. Les exportations sont générées, puis partagées entre les importateurs, donc si quelque chose change l'objet `admin`, les autres modules le verront.
237186

238-
**Such behavior is actually very convenient, because it allows us to *configure* modules.**
187+
**Un tel comportement est en fait très pratique, car il nous permet de *configurer* des modules.**
239188

240-
In other words, a module can provide a generic functionality that needs a setup. E.g. authentication needs credentials. Then it can export a configuration object expecting the outer code to assign to it.
189+
En d'autres termes, un module peut fournir une fonctionnalité générique qui nécessite une configuration. Par exemple. l'authentification a besoin d'informations d'identification. Ensuite, il peut exporter un objet de configuration en attendant que le code externe lui soit affecté.
241190

242-
Here's the classical pattern:
243-
1. A module exports some means of configuration, e.g. a configuration object.
244-
2. On the first import we initialize it, write to its properties. The top-level application script may do that.
245-
3. Further imports use the module.
191+
Voici le modèle classique :
192+
1. Un module exporte certains moyens de configuration, par exemple un objet de configuration.
193+
2. Lors de la première importation, nous l'initialisons, écrivons dans ses propriétés. Le script d'application de niveau supérieur peut le faire.
194+
3. D'autres importations utilisent le module.
246195

247-
For instance, the `admin.js` module may provide certain functionality (e.g. authentication), but expect the credentials to come into the `config` object from outside:
248-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
196+
Par exemple, le module `admin.js` peut fournir certaines fonctionnalités (par exemple, l'authentification), mais s'attend à ce que les informations d'identification entrent dans l'objet `config` de l'extérieur :
249197

250198
```js
251199
// 📁 admin.js
@@ -256,25 +204,17 @@ export function sayHi() {
256204
}
257205
```
258206

259-
<<<<<<< HEAD
260-
Dans `init.js`, le premier script de notre application, nous définissons `admin.name`. Ensuite, tout le monde le verra, y compris les appels passés depuis `admin.js` lui-même:
261-
=======
262-
Here, `admin.js` exports the `config` object (initially empty, but may have default properties too).
207+
Ici, `admin.js` exporte l'objet `config` (initialement vide, mais peut également avoir des propriétés par défaut).
263208

264-
Then in `init.js`, the first script of our app, we import `config` from it and set `config.user`:
265-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
209+
Ensuite, dans `init.js`, le premier script de notre application, nous en importons `config` et définissons `config.user` :
266210

267211
```js
268212
// 📁 init.js
269213
import {config} from './admin.js';
270214
config.user = "Pete";
271215
```
272216

273-
<<<<<<< HEAD
274-
Un autre module peut aussi voir `admin.name`:
275-
=======
276-
...Now the module `admin.js` is configured.
277-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
217+
...Maintenant, le module `admin.js` est configuré.
278218

279219
Further importers can call it, and it correctly shows the current user:
280220

@@ -290,20 +230,12 @@ sayHi(); // Prêt à être utilisé, *!*Pete*/!*!
290230

291231
L'objet `import.meta` contient les informations sur le module actuel.
292232

293-
<<<<<<< HEAD
294233
Son contenu dépend de l'environnement. Dans le navigateur, il contient l'URL du script ou une URL de page Web actuelle si elle est en HTML:
295234

296235
```html run height=0
297236
<script type="module">
298-
alert(import.meta.url); // URL du script (URL de la page HTML)
299-
=======
300-
Its content depends on the environment. In the browser, it contains the URL of the script, or a current webpage URL if inside HTML:
301-
302-
```html run height=0
303-
<script type="module">
304-
alert(import.meta.url); // script URL
305-
// for an inline script - the URL of the current HTML-page
306-
>>>>>>> 8558fa8f5cfb16ef62aa537d323e34d9bef6b4de
237+
alert(import.meta.url); // URL du script
238+
// pour un script en ligne - l'URL de la page HTML actuelle
307239
</script>
308240
```
309241

0 commit comments

Comments
 (0)