` le nombre de ses descendants. Sautez les feuilles (nœuds sans enfants).
-The result:
+Le resultat :
[iframe border=1 src="solution"]
diff --git a/2-ui/1-document/07-modifying-document/9-calendar-table/solution.md b/2-ui/1-document/07-modifying-document/9-calendar-table/solution.md
index de8be56e9..80ae13cf5 100644
--- a/2-ui/1-document/07-modifying-document/9-calendar-table/solution.md
+++ b/2-ui/1-document/07-modifying-document/9-calendar-table/solution.md
@@ -1,9 +1,9 @@
-We'll create the table as a string: `""`, and then assign it to `innerHTML`.
+Nous allons créer le tableau sous forme de chaîne de caractères : `""`, puis l'affecter à `innerHTML`.
-The algorithm:
+L'algorithme :
-1. Create the table header with `` and weekday names.
-2. Create the date object `d = new Date(year, month-1)`. That's the first day of `month` (taking into account that months in JavaScript start from `0`, not `1`).
-3. First few cells till the first day of the month `d.getDay()` may be empty. Let's fill them in with ` | | `.
-4. Increase the day in `d`: `d.setDate(d.getDate()+1)`. If `d.getMonth()` is not yet the next month, then add the new cell `` to the calendar. If that's a Sunday, then add a newline "</tr><tr>" .
-5. If the month has finished, but the table row is not yet full, add empty ` | ` into it, to make it square.
+1. Créer l'en-tête du tableau avec les noms ` | ` et les jours de la semaine.
+2. Créez l'objet de date `d = new Date(year, month-1)`. C'est le premier jour de `month` (en tenant compte du fait que les mois en JavaScript commencent à `0`, pas à `1`).
+3. Les premières cellules jusqu'au premier jour du mois `d.getDay()` peuvent être vides. Remplissons-les avec ` | | `.
+4. Augmentez le jour en `d`: `d.setDate(d.getDate()+1)`. Si `d.getMonth()` n'est pas encore le mois suivant, alors ajoutez la nouvelle cellule `` au calendrier. Si c'est un dimanche, ajoutez une nouvelle ligne "</tr><tr>" .
+5. Si le mois est terminé, mais que la ligne du tableau n'est pas encore pleine, ajoutez-y un ` | ` vide pour le rendre carré.
diff --git a/2-ui/1-document/07-modifying-document/9-calendar-table/task.md b/2-ui/1-document/07-modifying-document/9-calendar-table/task.md
index 37b1a60d2..2004dd939 100644
--- a/2-ui/1-document/07-modifying-document/9-calendar-table/task.md
+++ b/2-ui/1-document/07-modifying-document/9-calendar-table/task.md
@@ -2,16 +2,16 @@ importance: 4
---
-# Create a calendar
+# Créer un calendrier
-Write a function `createCalendar(elem, year, month)`.
+Écrivez une fonction `createCalendar(elem, year, month)`.
-The call should create a calendar for the given year/month and put it inside `elem`.
+L'appel doit créer un calendrier pour l'année/le mois donné et le mettre dans `elem`.
-The calendar should be a table, where a week is ` | `, and a day is ``. The table top should be ` | ` with weekday names: the first day should be Monday, and so on till Sunday.
+Le calendrier doit être un tableau, où une semaine est un ` |
` et un jour est un ``. Le dessus du tableau doit être un ` | ` avec les noms des jours de la semaine : le premier jour doit être le lundi, et ainsi de suite jusqu'au dimanche.
-For instance, `createCalendar(cal, 2012, 9)` should generate in element `cal` the following calendar:
+Par exemple, `createCalendar(cal, 2012, 9)` devrait générer dans l'élément `cal` le calendrier suivant :
[iframe height=210 src="solution"]
-P.S. For this task it's enough to generate the calendar, should not yet be clickable.
+P.S. Pour cette tâche, il suffit de générer le calendrier, il ne doit pas encore être cliquable.
diff --git a/2-ui/1-document/07-modifying-document/article.md b/2-ui/1-document/07-modifying-document/article.md
index c4796a1d4..f09c98b88 100644
--- a/2-ui/1-document/07-modifying-document/article.md
+++ b/2-ui/1-document/07-modifying-document/article.md
@@ -1,14 +1,14 @@
-# Modifying the document
+# Modification du document
-DOM modification is the key to creating "live" pages.
+La modification DOM est la clé pour créer des pages "live".
-Here we'll see how to create new elements "on the fly" and modify the existing page content.
+Ici, nous verrons comment créer de nouveaux éléments "à la volée" et modifier le contenu de la page existante.
-## Example: show a message
+## Exemple : afficher un message
-Let's demonstrate using an example. We'll add a message on the page that looks nicer than `alert`.
+Démontrons en utilisant un exemple. Nous allons ajouter un message sur la page qui est plus joli que `alert`.
-Here's how it will look:
+Voici à quoi cela ressemblera :
```html autorun height="80"
|