Skip to content

Commit e433da2

Browse files
committed
Translate Template element
1 parent 92ce2c1 commit e433da2

File tree

1 file changed

+29
-28
lines changed

1 file changed

+29
-28
lines changed

8-web-components/4-template-element/article.md

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11

2-
# Template element
2+
# L'élément Template
33

4-
A built-in `<template>` element serves as a storage for HTML markup templates. The browser ignores it contents, only checks for syntax validity, but we can access and use it in JavaScript, to create other elements.
4+
L'élément intégré `<template>` sert de stockage pour les modèles de balisage HTML. Le navigateur ignore son contenu et vérifie uniquement la validité de la syntaxe, mais nous pouvons y accéder et l'utiliser dans JavaScript, pour créer d'autres éléments.
55

6-
In theory, we could create any invisible element somewhere in HTML for HTML markup storage purposes. What's special about `<template>`?
6+
En théorie, nous pourrions créer n'importe quel élément invisible quelque part dans le code HTML à des fins de stockage de balises HTML. Quelle est la particularité de `<template>` ?
77

8-
First, its content can be any valid HTML, even if it normally requires a proper enclosing tag.
8+
Tout d'abord, son contenu peut être n'importe quel HTML valide, même s'il nécessite normalement une balise d'entourage appropriée.
9+
10+
Par exemple, nous pouvons y placer une ligne de tableau `<tr>` :
911

10-
For example, we can put there a table row `<tr>`:
1112
```html
1213
<template>
1314
<tr>
@@ -16,9 +17,9 @@ For example, we can put there a table row `<tr>`:
1617
</template>
1718
```
1819

19-
Usually, if we try to put `<tr>` inside, say, a `<div>`, the browser detects the invalid DOM structure and "fixes" it, adds `<table>` around. That's not what we want. On the other hand, `<template>` keeps exactly what we place there.
20+
Habituellement, si nous essayons de mettre `<tr>` à l'intérieur, disons, d'un `<div>`, le navigateur détecte la structure DOM invalide et la "corrige", en ajoutant `<table>` autour. Ce n'est pas ce que nous voulons. D'un autre côté, `<template>` conserve exactement ce que nous y plaçons.
2021

21-
We can put styles and scripts into `<template>` as well:
22+
Nous pouvons également placer des styles et des scripts dans `<template>` :
2223

2324
```html
2425
<template>
@@ -31,17 +32,17 @@ We can put styles and scripts into `<template>` as well:
3132
</template>
3233
```
3334

34-
The browser considers `<template>` content "out of the document": styles are not applied, scripts are not executed, `<video autoplay>` is not run, etc.
35+
Le navigateur considère que le contenu `<template>` est "hors du document" : les styles ne sont pas appliqués, les scripts ne sont pas exécutés, `<video autoplay>` n'est pas lancée, etc.
3536

36-
The content becomes live (styles apply, scripts run etc) when we insert it into the document.
37+
Le contenu devient actif (les styles s'appliquent, les scripts s'exécutent, etc.) lorsque nous l'insérons dans le document.
3738

38-
## Inserting template
39+
## Insertion d'un modèle
3940

40-
The template content is available in its `content` property as a [DocumentFragment](info:modifying-document#document-fragment) -- a special type of DOM node.
41+
Le contenu du modèle est disponible dans sa propriété `content` comme un [DocumentFragment](info:modifying-document#document-fragment) -- un type spécial de noeud DOM.
4142

42-
We can treat it as any other DOM node, except one special property: when we insert it somewhere, its children are inserted instead.
43+
Nous pouvons le traiter comme n'importe quel autre noeud DOM, à l'exception d'une propriété spéciale : lorsque nous l'insérons quelque part, ses enfants sont insérés à la place.
4344

44-
For example:
45+
Par exemple :
4546

4647
```html run
4748
<template id="tmpl">
@@ -55,16 +56,16 @@ For example:
5556
let elem = document.createElement('div');
5657
5758
*!*
58-
// Clone the template content to reuse it multiple times
59+
// Cloner le contenu du modèle pour le réutiliser plusieurs fois
5960
elem.append(tmpl.content.cloneNode(true));
6061
*/!*
6162
6263
document.body.append(elem);
63-
// Now the script from <template> runs
64+
// Maintenant le script de <template> s'exécute
6465
</script>
6566
```
6667

67-
Let's rewrite a Shadow DOM example from the previous chapter using `<template>`:
68+
Réécrivons un exemple de Shadow DOM du chapitre précédent en utilisant `<template>` :
6869

6970
```html run untrusted autorun="no-epub" height=60
7071
<template id="tmpl">
@@ -87,9 +88,9 @@ Let's rewrite a Shadow DOM example from the previous chapter using `<template>`:
8788
</script>
8889
```
8990

90-
In the line `(*)` when we clone and insert `tmpl.content`, as its `DocumentFragment`, its children (`<style>`, `<p>`) are inserted instead.
91+
Dans la ligne `(*)`, lorsque nous clonons et insérons `tmpl.content`, comme son `DocumentFragment`, ses enfants (`<style>`, `<p>`) sont insérés à la place.
9192

92-
They form the shadow DOM:
93+
Ils forment le shadow DOM :
9394

9495
```html
9596
<div id="elem">
@@ -99,18 +100,18 @@ They form the shadow DOM:
99100
</div>
100101
```
101102

102-
## Summary
103+
## Résumé
103104

104-
To summarize:
105+
Pour résumer :
105106

106-
- `<template>` content can be any syntactically correct HTML.
107-
- `<template>` content is considered "out of the document", so it doesn't affect anything.
108-
- We can access `template.content` from JavaScript, clone it to reuse in a new component.
107+
- Le contenu de `<template>` peut être n'importe quel HTML syntaxiquement correct.
108+
- Le contenu de `<template>` est considéré comme "hors du document", donc il n'affecte rien.
109+
- Nous pouvons accéder à `template.content` depuis JavaScript, le cloner pour le réutiliser dans un nouveau composant.
109110

110-
The `<template>` tag is quite unique, because:
111+
La balise `<template>` est assez unique, car :
111112

112-
- The browser checks HTML syntax inside it (as opposed to using a template string inside a script).
113-
- ...But still allows use of any top-level HTML tags, even those that don't make sense without proper wrappers (e.g. `<tr>`).
114-
- The content becomes interactive: scripts run, `<video autoplay>` plays etc, when inserted into the document.
113+
- Le navigateur vérifie la syntaxe HTML à l'intérieur de celle-ci (par opposition à l'utilisation d'une chaîne de modèle à l'intérieur d'un script).
114+
- ...Mais il permet toujours l'utilisation de n'importe quelle balise HTML de niveau supérieur, même celles qui n'ont pas de sens sans les wrappers appropriées (par exemple, `<tr>`).
115+
- Le contenu devient interactif : les scripts s'exécutent, la vidéo se joue en autoplay, etc.
115116

116-
The `<template>` element does not feature any iteration mechanisms, data binding or variable substitutions, but we can implement those on top of it.
117+
L'élément `<template>` ne comporte aucun mécanisme d'itération, de liaison de données ou de substitution de variables, mais nous pouvons les mettre en œuvre par-dessus.

0 commit comments

Comments
 (0)