From 72d08273f62bc5230ff6a1e48a8964d5c331623a Mon Sep 17 00:00:00 2001 From: Vitor Date: Wed, 19 Jan 2022 12:36:09 +0000 Subject: [PATCH 01/58] fix typos (#576) Fix typos in English translation. --- 4-typing-game/typing-game/README.md | 2 +- 5-browser-extension/2-forms-browsers-local-storage/README.md | 4 ++-- .../3-background-tasks-and-performance/README.md | 2 +- 6-space-game/6-end-condition/README.md | 2 +- 7-bank-project/2-forms/README.md | 4 ++-- 7-bank-project/3-data/README.md | 2 +- 7-bank-project/4-state-management/assignment.md | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/4-typing-game/typing-game/README.md b/4-typing-game/typing-game/README.md index 2524fc94..e72c4ae2 100644 --- a/4-typing-game/typing-game/README.md +++ b/4-typing-game/typing-game/README.md @@ -103,7 +103,7 @@ It's always best to develop iteratively to see how things look. Let's launch our - Install [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) by following the link and clicking **Install** - You will be prompted by the browser to open Visual Studio Code, and then by Visual Studio Code to perform the installation - Restart Visual Studio Code if prompted -- Once installed, in Visual Studio Code, click Ctrl-Shift-P (or Cmd-Shift-P) to open the command pallate +- Once installed, in Visual Studio Code, click Ctrl-Shift-P (or Cmd-Shift-P) to open the command palette - Type **Live Server: Open with Live Server** - Live Server will start hosting your application - Open a browser and navigate to **https://localhost:5500** diff --git a/5-browser-extension/2-forms-browsers-local-storage/README.md b/5-browser-extension/2-forms-browsers-local-storage/README.md index ef375ca7..b973b588 100644 --- a/5-browser-extension/2-forms-browsers-local-storage/README.md +++ b/5-browser-extension/2-forms-browsers-local-storage/README.md @@ -195,12 +195,12 @@ async function displayCarbonUsage(apiKey, region) { This is a big function. What's going on here? -- following best practices, you use an `async` keyword to make this function behave asyncronously. The function contains a `try/catch` block as it will return a promise when the API returns data. Because you don't have control over the speed that the API will respond (it may not respond at all!), you need to handle this uncertainty by call it asyncronously. +- following best practices, you use an `async` keyword to make this function behave asynchronously. The function contains a `try/catch` block as it will return a promise when the API returns data. Because you don't have control over the speed that the API will respond (it may not respond at all!), you need to handle this uncertainty by call it asynchronously. - you're querying the co2signal API to get your region's data, using your API Key. To use that key, you have to use a type of authentication in your header parameters. - once the API responds, you assign various elements of its response data to the parts of your screen you set up to show this data. - if there's an error, or if there is no result, you show an error message. -✅ Using asyncronous programming patterns is another very useful tool in your toolbox. Read [about the various ways](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function) you can configure this type of code. +✅ Using asynchronous programming patterns is another very useful tool in your toolbox. Read [about the various ways](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function) you can configure this type of code. Congratulations! If you build your extension (`npm run build`) and refresh it in your extensions pane, you have a working extension! The only thing that isn't working is the icon, and you'll fix that in the next lesson. diff --git a/5-browser-extension/3-background-tasks-and-performance/README.md b/5-browser-extension/3-background-tasks-and-performance/README.md index fcc34436..1bcfb82d 100644 --- a/5-browser-extension/3-background-tasks-and-performance/README.md +++ b/5-browser-extension/3-background-tasks-and-performance/README.md @@ -6,7 +6,7 @@ ### Introduction -In the last two lessons of this module, you learned how to build a form and display area for data fetched from an API. It's a very standard way of creating web presences on the web. You even learned how to handle fetching data asyncronously. Your browser extension is very nearly complete. +In the last two lessons of this module, you learned how to build a form and display area for data fetched from an API. It's a very standard way of creating web presences on the web. You even learned how to handle fetching data asynchronously. Your browser extension is very nearly complete. It remains to manage some background tasks, including refreshing the color of the extension's icon, so this is a great time to talk about how the browser manages this kind of task. Let's think about these browser tasks in the context of the performance of your web assets as you build them. diff --git a/6-space-game/6-end-condition/README.md b/6-space-game/6-end-condition/README.md index d08e270c..e4476f01 100644 --- a/6-space-game/6-end-condition/README.md +++ b/6-space-game/6-end-condition/README.md @@ -52,7 +52,7 @@ The above will start a HTTP Server on address `http://localhost:5000`. Open up a ### Add code -1. **Track end condition**. Add code that keeps track of the number of enemies, or if the hero ship has been destroyedby adding these two functions: +1. **Track end condition**. Add code that keeps track of the number of enemies, or if the hero ship has been destroyed by adding these two functions: ```javascript function isHeroDead() { diff --git a/7-bank-project/2-forms/README.md b/7-bank-project/2-forms/README.md index fdc6107e..ebd2bf72 100644 --- a/7-bank-project/2-forms/README.md +++ b/7-bank-project/2-forms/README.md @@ -136,7 +136,7 @@ If everything goes well, the server should answer your request with a [JSON](htt ## Submitting data without reloading the page -As you probably noticed, there's a slight issue with the approach we just used: when submitting the form, we get out of our app and the browser redirects to the server URL. We're trying to avoid all page reloads with our web app, as we're makng a [Single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application). +As you probably noticed, there's a slight issue with the approach we just used: when submitting the form, we get out of our app and the browser redirects to the server URL. We're trying to avoid all page reloads with our web app, as we're making a [Single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application). To send the form data to the server without forcing a page reload, we have to use JavaScript code. Instead of putting an URL in the `action` property of a `
` element, you can use any JavaScript code prepended by the `javascript:` string to perform a custom action. Using this also means that you'll have to implement some tasks that were previously done automatically by the browser: @@ -274,7 +274,7 @@ Now if you press the *Register* button and a field does not respect a validation ![Screenshot showing the validation error when trying to submit the form](./images/validation-error.png) -Validation like this performed *before* sending any data to the server is called **client-side** validation. But note that's it's not always possible to peform all checks without sending the data. For example, we cannot check here if an account already exists with the same username without sending a request to the server. Additional validation performed on the server is called **server-side** validation. +Validation like this performed *before* sending any data to the server is called **client-side** validation. But note that's it's not always possible to perform all checks without sending the data. For example, we cannot check here if an account already exists with the same username without sending a request to the server. Additional validation performed on the server is called **server-side** validation. Usually both need to be implemented, and while using client-side validation improves the user experience by providing instant feedback to the user, server-side validation is crucial to make sure the user data you manipulate is sound and safe. diff --git a/7-bank-project/3-data/README.md b/7-bank-project/3-data/README.md index 8264f975..95465f40 100644 --- a/7-bank-project/3-data/README.md +++ b/7-bank-project/3-data/README.md @@ -225,7 +225,7 @@ First, we check that we have the account data we need before going further. Then > To make the balance display prettier, we use the method [`toFixed(2)`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) to force displaying the value with 2 digits after the decimal point. -Now we need to call our `updateDashboard()` function everytime the dashboard is loaded. If you already finished the [lesson 1 assignment](../1-template-route/assignment.md) this should be straighforward, otherwise you can use the following implementation. +Now we need to call our `updateDashboard()` function everytime the dashboard is loaded. If you already finished the [lesson 1 assignment](../1-template-route/assignment.md) this should be straightforward, otherwise you can use the following implementation. Add this code to the end of the `updateRoute()` function: diff --git a/7-bank-project/4-state-management/assignment.md b/7-bank-project/4-state-management/assignment.md index 6aeed403..4df1f86e 100644 --- a/7-bank-project/4-state-management/assignment.md +++ b/7-bank-project/4-state-management/assignment.md @@ -16,7 +16,7 @@ Look at the [server API specifications](../api/README.md) to see which API you n Here's an example result after completing the assignment: -![Screenshot showing an example "Add transation" dialog](./images/dialog.png) +![Screenshot showing an example "Add transaction" dialog](./images/dialog.png) ## Rubric From 469ee5327480840b7f31a09b588e78cd539ceeae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jan 2022 17:07:56 -0500 Subject: [PATCH 02/58] Bump follow-redirects from 1.13.1 to 1.14.7 in /quiz-app (#574) Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.13.1 to 1.14.7. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.13.1...v1.14.7) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- quiz-app/package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/quiz-app/package-lock.json b/quiz-app/package-lock.json index 07122c59..a5e449db 100644 --- a/quiz-app/package-lock.json +++ b/quiz-app/package-lock.json @@ -5374,9 +5374,9 @@ } }, "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", "dev": true }, "for-in": { @@ -10954,9 +10954,9 @@ } }, "vue-loader-v16": { - "version": "npm:vue-loader@16.8.1", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.1.tgz", - "integrity": "sha512-V53TJbHmzjBhCG5OYI2JWy/aYDspz4oVHKxS43Iy212GjGIG1T3EsB3+GWXFm/1z5VwjdjLmdZUFYM70y77vtQ==", + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -11005,9 +11005,9 @@ "dev": true }, "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, "requires": { "big.js": "^5.2.2", From feed68cecd6d4914b01403481a86c9ea06dd6772 Mon Sep 17 00:00:00 2001 From: lvfangren Date: Fri, 21 Jan 2022 23:53:34 +0800 Subject: [PATCH 03/58] fix: style miss&&small content (#578) --- 2-js-basics/3-making-decisions/README.md | 2 +- 2-js-basics/3-making-decisions/translations/README.zh-cn.md | 2 +- 3-terrarium/1-intro-to-html/translations/README.zh-cn.md | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/2-js-basics/3-making-decisions/README.md b/2-js-basics/3-making-decisions/README.md index e4ac8d3c..7230408d 100644 --- a/2-js-basics/3-making-decisions/README.md +++ b/2-js-basics/3-making-decisions/README.md @@ -61,7 +61,7 @@ if (currentMoney >= laptopPrice){ } ``` -## IF..Else Statement +## If..Else Statement The `else` statement will run the code in between its blocks when the condition is false. It's optional with an `if` statement. diff --git a/2-js-basics/3-making-decisions/translations/README.zh-cn.md b/2-js-basics/3-making-decisions/translations/README.zh-cn.md index 4ba46aab..9d000ed2 100644 --- a/2-js-basics/3-making-decisions/translations/README.zh-cn.md +++ b/2-js-basics/3-making-decisions/translations/README.zh-cn.md @@ -62,7 +62,7 @@ if (currentMoney >= laptopPrice){ ## If..Else 语句 -`else` 语句会在条件为假的情况下运行它块中的代码。它后面可以跟上一个 `if` 语句。 +`else` 语句会在条件为假的情况下运行它块中的代码。它可以跟在一个 `if` 语句后面。 ```javascript let currentMoney; diff --git a/3-terrarium/1-intro-to-html/translations/README.zh-cn.md b/3-terrarium/1-intro-to-html/translations/README.zh-cn.md index 3e7904e9..cf3b2cb8 100644 --- a/3-terrarium/1-intro-to-html/translations/README.zh-cn.md +++ b/3-terrarium/1-intro-to-html/translations/README.zh-cn.md @@ -187,6 +187,8 @@ HTML 文档中的 'head' 包含的区域有很多关于页面的重要信息, ✅ 看看屏幕阅读器是[如何去处理的一个网页的](https://www.youtube.com/watch?v=OUDV1gqs9GA)。你看到了非语义化标签对他们造成的障碍了吗? +--- + ## 花艺瓶 这个界面的最后一部分涉及创建标记,这些标记后面将被装饰成一个花艺瓶。 @@ -217,7 +219,7 @@ HTML 中还有一些狂野的'旧'标签,玩起来仍然很有趣。虽然[这 ## 课后测试 -[课后测试](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/16?loc=zh_ch) +[课后测试](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/16?loc=zh_cn) ## 复习 & 预习 From e2c5934c0a57af70f43cab3a95d8e99e22ddd693 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Thu, 27 Jan 2022 16:33:57 +0000 Subject: [PATCH 04/58] fix small typo (#581) fix small typo --- 6-space-game/2-drawing-to-canvas/translations/README.fr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/6-space-game/2-drawing-to-canvas/translations/README.fr.md b/6-space-game/2-drawing-to-canvas/translations/README.fr.md index c1401102..888c3488 100644 --- a/6-space-game/2-drawing-to-canvas/translations/README.fr.md +++ b/6-space-game/2-drawing-to-canvas/translations/README.fr.md @@ -117,7 +117,7 @@ async function run() { ## Il est maintenant temps de commencer à créer votre jeu -### Que construire +### Quoi construire Vous allez créer une page Web avec un élément Canvas. Il devrait rendre un écran noir `1024*768`. Nous vous avons fourni deux images: @@ -165,7 +165,7 @@ Ajoutez le code nécessaire à `your-work/app.js` pour résoudre le problème ci > astuce : ajoutez les images du joueur et de l'ennemi en utilisant `await loadTexture` et en passant le chemin de l'image. Vous ne les verrez pas encore à l'écran! 3. **Dessinez** le héros au centre de l'écran dans la moitié inférieure > astuce : utilisez l'API `drawImage` pour dessiner heroImg à l'écran, en définissant `canvas.width / 2 - 45` et `canvas.height - canvas.height / 4)`; -4. **Dessinez**les monstres 5*5 +4. **Dessinez** les monstres 5*5 > astuce : vous pouvez maintenant décommenter le code pour dessiner les ennemis à l'écran. Ensuite, allez à la fonction `createEnemies` et compilez la. Tout d'abord, configurez quelques constantes: @@ -213,4 +213,4 @@ En savoir plus sur l'API Canvas en [lisant à ce sujet](https://developer.mozill ## Affectation -[Jouer avec l'API Canvas](assignment.fr.md) \ No newline at end of file +[Jouer avec l'API Canvas](assignment.fr.md) From a2a5ea701109c2aea490a08f47e6266b9c41a1b3 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Fri, 28 Jan 2022 16:24:40 +0000 Subject: [PATCH 05/58] [fr] french translation for 6-3-readme.md file (#582) * Fix small typo, links and reference fr assignment Fix small typo, links and reference french assignment * Fix: Add loc param and reference fr assignment Add localization parameter on quizzes links and reference fr assignment * fix localization param fix localization param * Fix image links and reference fr assignment * Translate in french except commentary till line 142 * add french translation file for 6-3-readme * Fix small typo --- .../translations/README.fr.md | 388 ++++++++++++++++++ 1 file changed, 388 insertions(+) create mode 100644 6-space-game/3-moving-elements-around/translations/README.fr.md diff --git a/6-space-game/3-moving-elements-around/translations/README.fr.md b/6-space-game/3-moving-elements-around/translations/README.fr.md new file mode 100644 index 00000000..f8088bfd --- /dev/null +++ b/6-space-game/3-moving-elements-around/translations/README.fr.md @@ -0,0 +1,388 @@ +# Construisez un jeu spatial, partie 3: Ajout de mouvement + +## Quiz préalable + +[Quiz préalable](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/33?loc=fr) + +Les jeux ne sont pas très amusants tant que vous n'avez pas des extraterrestres qui courent à l'écran! Dans ce jeu, nous utiliserons deux types de mouvements: + +- **Mouvement clavier/souris**: lorsque l'utilisateur interagit avec le clavier ou la souris pour déplacer un objet à l'écran. +- **Mouvement induit par le jeu**: lorsque le jeu déplace un objet avec un certain intervalle de temps. + +Alors, comment déplacer les choses sur un écran? Tout est question de coordonnées cartésiennes: nous changeons l'emplacement (x,y) de l'objet puis redessinons l'écran. + +Généralement, vous devez suivre les étapes suivantes pour accomplir un *mouvement* sur un écran: + +1. **Définir un nouvel emplacement** pour un objet; cela est nécessaire pour percevoir l'objet comme ayant bougé. +2. **Effacer l'écran**, l'écran doit être dégagé entre les tirages. Nous pouvons l'effacer en dessinant un rectangle que nous remplissons avec une couleur de fond. +3. **Redessiner l'objet** au nouvel emplacement. En faisant cela, nous accomplissons finalement le déplacement de l'objet d'un endroit à l'autre. + + Voici à quoi cela peut ressembler dans le code: + +```javascript +//définir l'emplacement du héros +hero.x += 5; +// effacer le rectangle qui accueille le héros +ctx.clearRect(0, 0, canvas.width, canvas.height); +// redessiner le fond du jeu et le héros +ctx.fillRect(0, 0, canvas.width, canvas.height) +ctx.fillStyle = "black"; +ctx.drawImage(heroImg, hero.x, hero.y); +``` + +✅ Pouvez-vous penser à une raison pour laquelle redessiner votre héros plusieurs images par seconde pourrait entraîner des coûts de performance? Apprenez en plus sur les [alternatives à ce modèle](https://www.html5rocks.com/en/tutorials/canvas/performance/). + +## Gérer les événements du clavier + +Vous gérez les événements en attachant des événements spécifiques au code. Les événements de clavier sont déclenchés sur toute la fenêtre tandis que les événements de souris comme un `clic` peuvent être liés au clic sur un élément spécifique. Nous utiliserons des événements de clavier tout au long de ce projet. + +Pour gérer un événement, vous devez utiliser la méthode `addEventListener()` de la fenêtre et lui fournir deux paramètres d'entrée. Le premier paramètre est le nom de l'événement, par exemple `keyup`. Le deuxième paramètre est la fonction qui doit être invoquée à la suite de l'événement en cours. + +Voici un exemple: + +```javascript +window.addEventListener('keyup', (evt) => { + // `evt.key` = représentation sous forme de chaîne de la clé + if (evt.key === 'ArrowUp') { + // faire quelque chose + } +}) +``` + +Pour les événements clés, il existe deux propriétés sur l'événement que vous pouvez utiliser pour voir quelle touche a été pressée: + +- `key`, il s'agit d'une représentation sous forme de chaîne de la touche enfoncée, par exemple `ArrowUp` +- `keyCode`, c'est une représentation numérique, par exemple `37`, correspond à `ArrowLeft`. + +✅ La manipulation des événements clés est utile en dehors du développement de jeux. A quelles autres utilisations pensez-vous pour cette technique? + +### Touches spéciales: une mise en garde + +Il y a des touches *spéciales* qui affectent la fenêtre. Cela signifie que si vous écoutez un événement `keyup` et que vous utilisez ces touches spéciales pour déplacer votre héros, il effectuera également un défilement horizontal. Pour cette raison, vous voudrez peut-être *désactiver* ce comportement de navigateur intégré lorsque vous créez votre jeu. Vous avez besoin d'un code comme celui-ci: + +```javascript +let onKeyDown = function (e) { + console.log(e.keyCode); + switch (e.keyCode) { + case 37: + case 39: + case 38: + case 40: // Touches directionnelles + case 32: + e.preventDefault(); + break; // Espace + default: + break; // ne pas bloquer d'autres clés + } +}; + +window.addEventListener('keydown', onKeyDown); +``` + +Le code ci-dessus garantira que les touches fléchées et la touche espace ont leur comportement *par défaut* désactivé. Le mécanisme *shut-off* se produit lorsque nous appelons `e.preventDefault()`. + +## Mouvement induit par le jeu + +Nous pouvons faire bouger les choses d'elles-mêmes en utilisant des minuteries telles que la fonction `setTimeout()` ou `setInterval()` qui met à jour l'emplacement de l'objet à chaque tick ou intervalle de temps. Voici à quoi cela peut ressembler: + +```javascript +let id = setInterval(() => { + //déplacer l'ennemi sur l'axe y + enemy.y += 10; +}) +``` + +## La boucle du jeu + +La boucle de jeu est un concept qui est essentiellement une fonction invoquée à intervalles réguliers. C'est ce qu'on appelle la boucle de jeu car tout ce qui doit être visible pour l'utilisateur est attiré dans la boucle. La boucle de jeu utilise tous les objets de jeu qui font partie du jeu, les dessinant tous à moins que, pour une raison quelconque, ils ne fassent plus partie du jeu. Par exemple, si un objet est un ennemi qui a été touché par un laser et qui explose, il ne fait plus partie de la boucle de jeu en cours (vous en apprendrez plus à ce sujet dans les leçons suivantes). + +Voici à quoi ressemble généralement une boucle de jeu, exprimée en code: + +```javascript +let gameLoopId = setInterval(() => + function gameLoop() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = "black"; + ctx.fillRect(0, 0, canvas.width, canvas.height); + drawHero(); + drawEnemies(); + drawStaticObjects(); +}, 200); +``` + +La boucle ci-dessus est invoquée toutes les `200` millisecondes pour redessiner le canevas. Vous avez la possibilité de choisir le meilleur intervalle qui a du sens pour votre jeu. + +## Continuer le jeu spatial + +Vous allez prendre le code existant et l'étendre. Soit commencez par le code que vous avez complété au cours de la partie I, soit utilisez le code de la [Partie II - starter](../your-work). + +- **Déplacer le héros**: vous ajouterez du code pour vous assurer de pouvoir déplacer le héros à l'aide des touches fléchées. +- **Déplacer les ennemis**: vous devrez également ajouter du code pour vous assurer que les ennemis se déplacent de haut en bas à un rythme donné. + +## Étapes recommandées + +Localisez les fichiers qui ont été créés pour vous dans le sous-dossier `your-work`. Il doit contenir les éléments suivants: + +```bash +-| assets + -| enemyShip.png + -| player.png +-| index.html +-| app.js +-| package.json +``` + +Vous démarrez votre projet dans le dossier `your_work` en tapant: + +```bash +cd your-work +npm start +``` + +Ce qui précède démarrera un serveur HTTP à l'adresse `http://localhost:5000`. Ouvrez un navigateur et entrez cette adresse, pour le moment, cela devrait rendre le héros et tous les ennemis; rien ne bouge - pour l'instant! + +### Ajouter un code + +1. **Ajouter des objets dédiés** pour `hero` et `enemy` et `game object`, ils doivent avoir les propriétés `x` et `y`. (Rappelez-vous la partie sur l'[héritage ou la composition](../../translations/README.fr.md)). + + *CONSEIL* `game object` (l'objet de jeu) doit être celui avec `x` et `y` et la possibilité de se dessiner sur un canevas. + + >astuce: commencez par ajouter une nouvelle classe GameObject avec son constructeur délimité comme ci-dessous, puis dessinez-la sur le canevas: + + ```javascript + + class GameObject { + constructor(x, y) { + this.x = x; + this.y = y; + this.dead = false; + this.type = ""; + this.width = 0; + this.height = 0; + this.img = undefined; + } + + draw(ctx) { + ctx.drawImage(this.img, this.x, this.y, this.width, this.height); + } + } + ``` + + Maintenant, étendez ce GameObject pour créer le héros et l'ennemi. + + ```javascript + class Hero extends GameObject { + constructor(x, y) { + ...it needs an x, y, type, and speed + } + } + ``` + + ```javascript + class Enemy extends GameObject { + constructor(x, y) { + super(x, y); + (this.width = 98), (this.height = 50); + this.type = "Enemy"; + let id = setInterval(() => { + if (this.y < canvas.height - this.height) { + this.y += 5; + } else { + console.log('Stopped at', this.y) + clearInterval(id); + } + }, 300) + } + } + ``` + +2. **Ajoutez des gestionnaires d'événements de touche** pour gérer la navigation des touches (déplacez le héros vers le haut/bas vers la gauche/la droite) + + *RAPPELEZ-VOUS* que c'est un système cartésien, le haut à gauche est `0,0`. N'oubliez pas également d'ajouter du code pour arrêter *le comportement par défaut* + + >astuce: créez votre fonction onKeyDown et attachez-la à la fenêtre: + + ```javascript + let onKeyDown = function (e) { + console.log(e.keyCode); + ...add the code from the lesson above to stop default behavior + } + }; + + window.addEventListener("keydown", onKeyDown); + ``` + + Vérifiez la console de votre navigateur à ce stade et regardez les frappes enregistrées. + +3. **Implémentez** le [modèle Pub Sub](../../translations/README.fr.md), cela gardera votre code propre pendant que vous suivez les parties restantes. + + Pour faire cette dernière partie, vous pouvez: + + 1. **Ajouter un écouteur d'événement** sur la fenêtre: + + ```javascript + window.addEventListener("keyup", (evt) => { + if (evt.key === "ArrowUp") { + eventEmitter.emit(Messages.KEY_EVENT_UP); + } else if (evt.key === "ArrowDown") { + eventEmitter.emit(Messages.KEY_EVENT_DOWN); + } else if (evt.key === "ArrowLeft") { + eventEmitter.emit(Messages.KEY_EVENT_LEFT); + } else if (evt.key === "ArrowRight") { + eventEmitter.emit(Messages.KEY_EVENT_RIGHT); + } + }); + ``` + + 1. **Créez une classe EventEmitter** pour publier et vous abonner aux messages: + + ```javascript + class EventEmitter { + constructor() { + this.listeners = {}; + } + + on(message, listener) { + if (!this.listeners[message]) { + this.listeners[message] = []; + } + this.listeners[message].push(listener); + } + + emit(message, payload = null) { + if (this.listeners[message]) { + this.listeners[message].forEach((l) => l(message, payload)); + } + } + } + ``` + + 1. **Ajoutez des constantes** et configurez l'EventEmitter: + + ```javascript + const Messages = { + KEY_EVENT_UP: "KEY_EVENT_UP", + KEY_EVENT_DOWN: "KEY_EVENT_DOWN", + KEY_EVENT_LEFT: "KEY_EVENT_LEFT", + KEY_EVENT_RIGHT: "KEY_EVENT_RIGHT", + }; + + let heroImg, + enemyImg, + laserImg, + canvas, ctx, + gameObjects = [], + hero, + eventEmitter = new EventEmitter(); + ``` + + 1. **Initialiser le jeu** + + ```javascript + function initGame() { + gameObjects = []; + createEnemies(); + createHero(); + + eventEmitter.on(Messages.KEY_EVENT_UP, () => { + hero.y -= 5; + }) + + eventEmitter.on(Messages.KEY_EVENT_DOWN, () => { + hero.y += 5; + }); + + eventEmitter.on(Messages.KEY_EVENT_LEFT, () => { + hero.x -= 5; + }); + + eventEmitter.on(Messages.KEY_EVENT_RIGHT, () => { + hero.x += 5; + }); + } + ``` + +1. **Configurer la boucle de jeu** + + Refactorisez la fonction window.onload pour initialiser le jeu et mettre en place une boucle de jeu sur un bon intervalle. Vous ajouterez également un faisceau laser: + + ```javascript + window.onload = async () => { + canvas = document.getElementById("canvas"); + ctx = canvas.getContext("2d"); + heroImg = await loadTexture("assets/player.png"); + enemyImg = await loadTexture("assets/enemyShip.png"); + laserImg = await loadTexture("assets/laserRed.png"); + + initGame(); + let gameLoopId = setInterval(() => { + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = "black"; + ctx.fillRect(0, 0, canvas.width, canvas.height); + drawGameObjects(ctx); + }, 100) + + }; + ``` + +5. **Ajoutez du code** pour déplacer les ennemis à un certain intervalle + + Refactoriser la fonction `createEnemies()` pour créer les ennemis et les pousser dans la nouvelle classe gameObjects: + + ```javascript + function createEnemies() { + const MONSTER_TOTAL = 5; + const MONSTER_WIDTH = MONSTER_TOTAL * 98; + const START_X = (canvas.width - MONSTER_WIDTH) / 2; + const STOP_X = START_X + MONSTER_WIDTH; + + for (let x = START_X; x < STOP_X; x += 98) { + for (let y = 0; y < 50 * 5; y += 50) { + const enemy = new Enemy(x, y); + enemy.img = enemyImg; + gameObjects.push(enemy); + } + } + } + ``` + + et ajoutez une fonction `createHero()` pour faire un processus similaire pour le héros. + + ```javascript + function createHero() { + hero = new Hero( + canvas.width / 2 - 45, + canvas.height - canvas.height / 4 + ); + hero.img = heroImg; + gameObjects.push(hero); + } + ``` + + et enfin, ajoutez une fonction `drawGameObjects()` pour démarrer le dessin: + + ```javascript + function drawGameObjects(ctx) { + gameObjects.forEach(go => go.draw(ctx)); + } + ``` + + Vos ennemis devraient commencer à avancer sur votre vaisseau spatial héros! + +--- + +## 🚀 Challenge + +Comme vous pouvez le constater, votre code peut se transformer en 'code spaghetti' lorsque vous commencez à ajouter des fonctions, des variables et des classes. Comment pouvez-vous mieux organiser votre code pour qu'il soit plus lisible? Esquissez un système pour organiser votre code, même s'il réside toujours dans un seul fichier. + +## Quiz de validation des connaissances + +[Quiz de validation des connaissances](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/34?loc=fr) + +## Révision et étude personnelle + +Pendant que nous écrivons notre jeu sans utiliser de frameworks, il existe de nombreux frameworks de canevas basés sur JavaScript pour le développement de jeux. Prenez le temps de faire quelques [lectures à ce sujet](https://github.com/collections/javascript-game-engines). + +## Affectation + +[Commentez votre code](assignment.fr.md) From 85f2878f31bd7b59a592df0dd53fbc7a048d9617 Mon Sep 17 00:00:00 2001 From: rikapo Date: Thu, 3 Feb 2022 12:45:31 +0900 Subject: [PATCH 06/58] Fix project links in README.md (#587) --- README.md | 30 +++++++++++++-------------- translations/README.bn.md | 30 +++++++++++++-------------- translations/README.el.md | 30 +++++++++++++-------------- translations/README.fil.md | 30 +++++++++++++-------------- translations/README.fr.md | 36 ++++++++++++++++---------------- translations/README.hi.md | 30 +++++++++++++-------------- translations/README.ja.md | 30 +++++++++++++-------------- translations/README.ml.md | 40 ++++++++++++++++++------------------ translations/README.pt-BR.md | 30 +++++++++++++-------------- translations/README.te.md | 30 +++++++++++++-------------- 10 files changed, 158 insertions(+), 158 deletions(-) diff --git a/README.md b/README.md index 09beaad7..afa8089c 100644 --- a/README.md +++ b/README.md @@ -70,21 +70,21 @@ While we have purposefully avoided introducing JavaScript frameworks so as to co | 07 | JS Basics | Arrays and Loops | Work with data using arrays and loops in JavaScript | [Arrays and Loops](/2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML in Practice | Build the HTML to create an online terrarium, focusing on building a layout | [Introduction to HTML](/3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS in Practice | Build the CSS to style the online terrarium, focusing on the basics of CSS including making the page responsive | [Introduction to CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Green Browser Extension](/5-browser-extension/solution) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Green Browser Extension](/5-browser-extension/solution) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in local storage | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Green Browser Extension](/5-browser-extension/solution) | Background processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Space Game](/6-space-game/solution) | More Advanced Game Development with JavaScript | Learn about Inheritance using both Classes and Composition and the Pub/Sub pattern, in preparation for building a game | [Introduction to Advanced Game Development](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Space Game](/6-space-game/solution) | Drawing to canvas | Learn about the Canvas API, used to draw elements to a screen | [Drawing to Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Space Game](/6-space-game/solution) | Moving elements around the screen | Discover how elements can gain motion using the cartesian coordinates and the Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Space Game](/6-space-game/solution) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Space Game](/6-space-game/solution) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Space Game](/6-space-game/solution) | Ending and restarting the game | Learn about ending and restarting the game, including cleaning up assets and resetting variable values | [The Ending Condition](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Banking App](/7-bank-project/solution) | HTML Templates and Routes in a Web App | Learn how to create the scaffold of a multipage website's architecture using routing and HTML templates | [HTML Templates and Routes](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Banking App](/7-bank-project/solution) | Build a Login and Registration Form | Learn about building forms and handing validation routines | [Forms](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Banking App](/7-bank-project/solution) | Methods of Fetching and Using Data | How data flows in and out of your app, how to fetch it, store it, and dispose of it | [Data](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Banking App](/7-bank-project/solution) | Concepts of State Management | Learn how your app retains state and how to manage it programmatically | [State Management](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [Terrarium](/3-terrarium/solution/README.md) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/README.md) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in local storage | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Background processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Space Game](/6-space-game/solution/README.md) | More Advanced Game Development with JavaScript | Learn about Inheritance using both Classes and Composition and the Pub/Sub pattern, in preparation for building a game | [Introduction to Advanced Game Development](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [Space Game](/6-space-game/solution/README.md) | Drawing to canvas | Learn about the Canvas API, used to draw elements to a screen | [Drawing to Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Space Game](/6-space-game/solution/README.md) | Moving elements around the screen | Discover how elements can gain motion using the cartesian coordinates and the Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Space Game](/6-space-game/solution/README.md) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Space Game](/6-space-game/solution/README.md) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Space Game](/6-space-game/solution/README.md) | Ending and restarting the game | Learn about ending and restarting the game, including cleaning up assets and resetting variable values | [The Ending Condition](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Banking App](/7-bank-project/solution/README.md) | HTML Templates and Routes in a Web App | Learn how to create the scaffold of a multipage website's architecture using routing and HTML templates | [HTML Templates and Routes](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Banking App](/7-bank-project/solution/README.md) | Build a Login and Registration Form | Learn about building forms and handing validation routines | [Forms](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Banking App](/7-bank-project/solution/README.md) | Methods of Fetching and Using Data | How data flows in and out of your app, how to fetch it, store it, and dispose of it | [Data](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [Banking App](/7-bank-project/solution/README.md) | Concepts of State Management | Learn how your app retains state and how to manage it programmatically | [State Management](/7-bank-project/4-state-management/README.md) | Yohan | ## Offline access diff --git a/translations/README.bn.md b/translations/README.bn.md index 808a725a..7e8d2fba 100644 --- a/translations/README.bn.md +++ b/translations/README.bn.md @@ -70,21 +70,21 @@ | ০৭ | জেএস বেসিক | অ্যারে এবং লুপ | জাভাস্ক্রিপ্টে অ্যারে এবং লুপ ব্যবহার করে ডেটা নিয়ে কাজ করুন | [অ্যারে এবং লুপ](/2-js-basics/4-arrays-loops/README.md) | জেসমিন | | ০৮ | [টেরারিয়াম](/3-terrarium/solution/README.md) | অনুশীলনে এইচটিএমএল | একটি লেআউট তৈরিতে ফোকাস করে একটি অনলাইন টেরারিয়াম তৈরি করতে এইছটিএমেল তৈরি করুন | [এইছটিএমেল এর ভূমিকা](/3-terrarium/1-intro-to-html/README.md) | জেন | | ০৯ | [টেরারিয়াম](/3-terrarium/solution/README.md) | অনুশীলনে সিএসএস | অনলাইন টেরারিয়াম স্টাইল করার জন্য সিএসেস তৈরি করুন, পৃষ্ঠাটিকে প্রতিক্রিয়াশীল করা সহ সিএসেস এর মৌলিক বিষয়গুলিতে ফোকাস করুন | [সিএসেস এর ভূমিকা](/3-terrarium/2-intro-to-css/README.md) | জেন | -| ১০ | [টেরারিয়াম](/3-terrarium/solution) | জাভাস্ক্রিপ্ট বন্ধ, ডম ম্যানিপুলেশন | ক্লোজার এবং ডম ম্যানিপুলেশনের উপর ফোকাস করে টেরারিয়ামকে ড্র্যাগ/ড্রপ ইন্টারফেস হিসাবে কাজ করতে জাভাস্ক্রিপ্ট তৈরি করুন | [জাভাস্ক্রিপ্ট বন্ধ, ডম ম্যানিপুলেশন](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | জেন | -| ১১ | [টাইপিং খেলা](/4-typing-game/solution) | একটি টাইপিং গেম তৈরি করুন | আপনার জাভাস্ক্রিপ্ট অ্যাপের লজিক চালাতে কীবোর্ড ইভেন্টগুলি কীভাবে ব্যবহার করবেন তা শিখুন | [ইভেন্ট-চালিত প্রোগ্রামিং](/4-typing-game/typing-game/README.md) | ক্রিসটফার | -| ১২ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution) | ব্রাউজার নিয়ে কাজ করা | ব্রাউজারগুলি কীভাবে কাজ করে, তাদের ইতিহাস এবং ব্রাউজার এক্সটেনশনের প্রথম উপাদানগুলি কীভাবে ভারা হয় তা জানুন | [ব্রাউজার সম্পর্কে](/5-browser-extension/1-about-browsers/README.md) | জেন | -| ১৩ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution) | একটি ফর্ম তৈরি করা, একটি এপিয়াই কল করা এবং স্থানীয় স্টোরেজে ভেরিয়েবল সংরক্ষণ করা | স্থানীয় স্টোরেজে সঞ্চিত ভেরিয়েবল ব্যবহার করে একটি এপিয়াই কল করতে আপনার ব্রাউজার এক্সটেনশনের জাভাস্ক্রিপ্ট উপাদানগুলি তৈরি করুন | [এপিয়াই, ফর্ম, এবং স্থানীয় সঞ্চয়স্থান](/5-browser-extension/2-forms-browsers-local-storage/README.md) | জেন | -| ১৪ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution) | ব্রাউজারে ব্যাকগ্রাউন্ড প্রসেস, ওয়েব পারফরম্যান্স | এক্সটেনশনের আইকন পরিচালনা করতে ব্রাউজারের পটভূমি প্রক্রিয়াগুলি ব্যবহার করুন; ওয়েব পারফরম্যান্স এবং কিছু অপ্টিমাইজেশান সম্পর্কে জানুন | [পটভূমি কাজ এবং কর্মক্ষমতা](/5-browser-extension/3-background-tasks-and-performance/README.md) | জেন | -| ১৫ | [স্পেস গেম](/6-space-game/solution) | জাভাস্ক্রিপ্ট সহ আরও উন্নত গেম ডেভেলপমেন্ট | একটি গেম তৈরির প্রস্তুতির জন্য ক্লাস এবং কম্পোজিশন এবং পাব/সাব প্যাটার্ন উভয় ব্যবহার করে উত্তরাধিকার সম্পর্কে জানুন | [অ্যাডভান্সড গেম ডেভেলপমেন্টের ভূমিকা](/6-space-game/1-introduction/README.md) | ক্রিস | -| ১৬ | [স্পেস গেম](/6-space-game/solution) | ক্যানভাসে আঁকা | ক্যানভাস এপিয়াই সম্পর্কে জানুন, একটি স্ক্রিনে উপাদানগুলি আঁকতে ব্যবহৃত হয় | [ক্যানভাসে আঁকা](/6-space-game/2-drawing-to-canvas/README.md) | ক্রিস | -| ১৭ | [স্পেস গেম](/6-space-game/solution) | স্ক্রিনের চারপাশে উপাদান চলন্ত | কার্টেসিয়ান স্থানাঙ্ক এবং ক্যানভাস এপিয়াই ব্যবহার করে উপাদানগুলি কীভাবে গতি অর্জন করতে পারে তা আবিষ্কার করুন | [চলন্ত উপাদান চারপাশে](/6-space-game/3-moving-elements-around/README.md) | ক্রিস | -| ১৮ | [স্পেস গেম](/6-space-game/solution) | সংঘর্ষ সনাক্তকরণ | কীপ্রেস ব্যবহার করে উপাদানগুলিকে সংঘর্ষ এবং একে অপরের সাথে প্রতিক্রিয়া তৈরি করুন এবং গেমের কার্যক্ষমতা নিশ্চিত করতে একটি কুলডাউন ফাংশন প্রদান করুন | [সংঘর্ষ সনাক্তকরণ](/6-space-game/4-collision-detection/README.md) | ক্রিস | -| ১৯ | [স্পেস গেম](/6-space-game/solution) | স্কোর রাখা | গেমের স্থিতি এবং পারফরম্যান্সের উপর ভিত্তি করে গণিত গণনা করুন | [স্কোর রাখা](/6-space-game/5-keeping-score/README.md) | ক্রিস | -| ২০ | [স্পেস গেম](/6-space-game/solution) | খেলা শেষ এবং পুনরায় আরম্ভ | সম্পদ পরিষ্কার করা এবং পরিবর্তনশীল মান পুনরায় সেট করা সহ গেমটি শেষ এবং পুনরায় চালু করার বিষয়ে জানুন | [শেষ অবস্থা](/6-space-game/6-end-condition/README.md) | ক্রিস | -| ২১ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution) | একটি ওয়েব অ্যাপে HTML টেমপ্লেট এবং রুট | রাউটিং এবং এইচটিএমএল টেমপ্লেট ব্যবহার করে মাল্টিপেজ ওয়েবসাইটের আর্কিটেকচারের স্ক্যাফোল্ড তৈরি করতে শিখুন | [এইচটিএমএল টেমপ্লেট এবং রুট](/7-bank-project/1-template-route/README.md) | য়োহান | -| ২২ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution) | একটি লগইন এবং রেজিস্ট্রেশন ফর্ম তৈরি করুন | বিল্ডিং ফর্ম এবং হস্তান্তর বৈধতা রুটিন সম্পর্কে জানুন | [ফর্ম](/7-bank-project/2-forms/README.md) | য়োহান | -| ২৩ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution) | ডেটা আনা এবং ব্যবহার করার পদ্ধতি | আপনার অ্যাপের মধ্যে কীভাবে ডেটা প্রবাহিত হয়, কীভাবে এটি আনতে হয়, সংরক্ষণ করতে হয় এবং এটি নিষ্পত্তি করতে হয় | [ডেটা](/7-bank-project/3-data/README.md) | য়োহান | -| ২৪ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution) | রাষ্ট্র পরিচালনার ধারণা | আপনার অ্যাপ কীভাবে স্থিতি বজায় রাখে এবং কীভাবে এটি প্রোগ্রাম্যাটিকভাবে পরিচালনা করতে হয় তা জানুন | [রাজ্য ব্যবস্থাপনা](/7-bank-project/4-state-management/README.md) | য়োহান | +| ১০ | [টেরারিয়াম](/3-terrarium/solution/README.md) | জাভাস্ক্রিপ্ট বন্ধ, ডম ম্যানিপুলেশন | ক্লোজার এবং ডম ম্যানিপুলেশনের উপর ফোকাস করে টেরারিয়ামকে ড্র্যাগ/ড্রপ ইন্টারফেস হিসাবে কাজ করতে জাভাস্ক্রিপ্ট তৈরি করুন | [জাভাস্ক্রিপ্ট বন্ধ, ডম ম্যানিপুলেশন](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | জেন | +| ১১ | [টাইপিং খেলা](/4-typing-game/solution/README.md) | একটি টাইপিং গেম তৈরি করুন | আপনার জাভাস্ক্রিপ্ট অ্যাপের লজিক চালাতে কীবোর্ড ইভেন্টগুলি কীভাবে ব্যবহার করবেন তা শিখুন | [ইভেন্ট-চালিত প্রোগ্রামিং](/4-typing-game/typing-game/README.md) | ক্রিসটফার | +| ১২ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution/README.md) | ব্রাউজার নিয়ে কাজ করা | ব্রাউজারগুলি কীভাবে কাজ করে, তাদের ইতিহাস এবং ব্রাউজার এক্সটেনশনের প্রথম উপাদানগুলি কীভাবে ভারা হয় তা জানুন | [ব্রাউজার সম্পর্কে](/5-browser-extension/1-about-browsers/README.md) | জেন | +| ১৩ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution/README.md) | একটি ফর্ম তৈরি করা, একটি এপিয়াই কল করা এবং স্থানীয় স্টোরেজে ভেরিয়েবল সংরক্ষণ করা | স্থানীয় স্টোরেজে সঞ্চিত ভেরিয়েবল ব্যবহার করে একটি এপিয়াই কল করতে আপনার ব্রাউজার এক্সটেনশনের জাভাস্ক্রিপ্ট উপাদানগুলি তৈরি করুন | [এপিয়াই, ফর্ম, এবং স্থানীয় সঞ্চয়স্থান](/5-browser-extension/2-forms-browsers-local-storage/README.md) | জেন | +| ১৪ | [সবুজ ব্রাউজার এক্সটেনশন](/5-browser-extension/solution/README.md) | ব্রাউজারে ব্যাকগ্রাউন্ড প্রসেস, ওয়েব পারফরম্যান্স | এক্সটেনশনের আইকন পরিচালনা করতে ব্রাউজারের পটভূমি প্রক্রিয়াগুলি ব্যবহার করুন; ওয়েব পারফরম্যান্স এবং কিছু অপ্টিমাইজেশান সম্পর্কে জানুন | [পটভূমি কাজ এবং কর্মক্ষমতা](/5-browser-extension/3-background-tasks-and-performance/README.md) | জেন | +| ১৫ | [স্পেস গেম](/6-space-game/solution/README.md) | জাভাস্ক্রিপ্ট সহ আরও উন্নত গেম ডেভেলপমেন্ট | একটি গেম তৈরির প্রস্তুতির জন্য ক্লাস এবং কম্পোজিশন এবং পাব/সাব প্যাটার্ন উভয় ব্যবহার করে উত্তরাধিকার সম্পর্কে জানুন | [অ্যাডভান্সড গেম ডেভেলপমেন্টের ভূমিকা](/6-space-game/1-introduction/README.md) | ক্রিস | +| ১৬ | [স্পেস গেম](/6-space-game/solution/README.md) | ক্যানভাসে আঁকা | ক্যানভাস এপিয়াই সম্পর্কে জানুন, একটি স্ক্রিনে উপাদানগুলি আঁকতে ব্যবহৃত হয় | [ক্যানভাসে আঁকা](/6-space-game/2-drawing-to-canvas/README.md) | ক্রিস | +| ১৭ | [স্পেস গেম](/6-space-game/solution/README.md) | স্ক্রিনের চারপাশে উপাদান চলন্ত | কার্টেসিয়ান স্থানাঙ্ক এবং ক্যানভাস এপিয়াই ব্যবহার করে উপাদানগুলি কীভাবে গতি অর্জন করতে পারে তা আবিষ্কার করুন | [চলন্ত উপাদান চারপাশে](/6-space-game/3-moving-elements-around/README.md) | ক্রিস | +| ১৮ | [স্পেস গেম](/6-space-game/solution/README.md) | সংঘর্ষ সনাক্তকরণ | কীপ্রেস ব্যবহার করে উপাদানগুলিকে সংঘর্ষ এবং একে অপরের সাথে প্রতিক্রিয়া তৈরি করুন এবং গেমের কার্যক্ষমতা নিশ্চিত করতে একটি কুলডাউন ফাংশন প্রদান করুন | [সংঘর্ষ সনাক্তকরণ](/6-space-game/4-collision-detection/README.md) | ক্রিস | +| ১৯ | [স্পেস গেম](/6-space-game/solution/README.md) | স্কোর রাখা | গেমের স্থিতি এবং পারফরম্যান্সের উপর ভিত্তি করে গণিত গণনা করুন | [স্কোর রাখা](/6-space-game/5-keeping-score/README.md) | ক্রিস | +| ২০ | [স্পেস গেম](/6-space-game/solution/README.md) | খেলা শেষ এবং পুনরায় আরম্ভ | সম্পদ পরিষ্কার করা এবং পরিবর্তনশীল মান পুনরায় সেট করা সহ গেমটি শেষ এবং পুনরায় চালু করার বিষয়ে জানুন | [শেষ অবস্থা](/6-space-game/6-end-condition/README.md) | ক্রিস | +| ২১ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution/README.md) | একটি ওয়েব অ্যাপে HTML টেমপ্লেট এবং রুট | রাউটিং এবং এইচটিএমএল টেমপ্লেট ব্যবহার করে মাল্টিপেজ ওয়েবসাইটের আর্কিটেকচারের স্ক্যাফোল্ড তৈরি করতে শিখুন | [এইচটিএমএল টেমপ্লেট এবং রুট](/7-bank-project/1-template-route/README.md) | য়োহান | +| ২২ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution/README.md) | একটি লগইন এবং রেজিস্ট্রেশন ফর্ম তৈরি করুন | বিল্ডিং ফর্ম এবং হস্তান্তর বৈধতা রুটিন সম্পর্কে জানুন | [ফর্ম](/7-bank-project/2-forms/README.md) | য়োহান | +| ২৩ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution/README.md) | ডেটা আনা এবং ব্যবহার করার পদ্ধতি | আপনার অ্যাপের মধ্যে কীভাবে ডেটা প্রবাহিত হয়, কীভাবে এটি আনতে হয়, সংরক্ষণ করতে হয় এবং এটি নিষ্পত্তি করতে হয় | [ডেটা](/7-bank-project/3-data/README.md) | য়োহান | +| ২৪ | [ব্যাংকিং অ্যাপ](/7-bank-project/solution/README.md) | রাষ্ট্র পরিচালনার ধারণা | আপনার অ্যাপ কীভাবে স্থিতি বজায় রাখে এবং কীভাবে এটি প্রোগ্রাম্যাটিকভাবে পরিচালনা করতে হয় তা জানুন | [রাজ্য ব্যবস্থাপনা](/7-bank-project/4-state-management/README.md) | য়োহান | ## অফলাইন অ্যাক্সেস diff --git a/translations/README.el.md b/translations/README.el.md index 6a6fba56..f2088c2c 100644 --- a/translations/README.el.md +++ b/translations/README.el.md @@ -66,21 +66,21 @@ | 07 | JS Basics | Πίνακες και επαναλήψεις | Εξάσκηση με δεδομένα χρησιμοποιώντας πίνακες και επαναλήψεις στη JavaScript | [Arrays and Loops](/2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML στη πράξη | Δημιουργήστε το HTML για ένα online terrarium, εστιάζοντας στην κατασκευή της διάταξης | [Introduction to HTML](/3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS στη πράξη | Δημιουργήστε το CSS για να διαμορφώσετε το online terrarium, εστιάζοντας στα βασικά του CSS, συμπεριλαμβανομένης της απόκρισης της σελίδας (responsiveness) | [Introduction to CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution) | JavaScript Closures, DOM manipulation | Δημιουργήστε το JavaScript για να λειτουργήσει το terrarium ως διεπαφή drag/drop, εστιάζοντας στα closures και τον χειρισμό DOM | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution) | Δημιουργία παιχνιδιού πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε συμβάντα πληκτρολογίου για να τα συμπεριλάβετε στη λογική της εφαρμογής σας. | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Green Browser Extension](/5-browser-extension/solution) | Δουλεύοντας με προγράμματα περιήγησης | Μάθετε πώς λειτουργούν τα προγράμματα περιήγησης, το ιστορικό τους και πώς ξεκινάμε μια επέκταση | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Green Browser Extension](/5-browser-extension/solution) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών στον τοπικό χώρο αποθήκευσης | Δημιουργήστε τον κώδικα JavaScript της επέκτασης του προγράμματος περιήγησής σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές που είναι αποθηκευμένες στον τοπικό χώρο αποθήκευσης | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Green Browser Extension](/5-browser-extension/solution) | Διαδικασίες παρασκηνίου στο πρόγραμμα περιήγησης, απόδοση Ιστού | Χρήση των διαδικασιών πρασκηνίου του περιηγητή, για τη διαχείρηση του εικονιδίου της επέκτασης. Μάθετε για την απόδοση του ιστού και μερικες βελτιστοποιήσεις που πρέπει να κάνετε | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Space Game](/6-space-game/solution) | Προηγμένη ανάπτυξη παιχνιδιών με JavaScript | Μάθετε σχετικά με την κληρονομικότητα, χρησιμοποιώντας τις κλάσεις και τη σύνθεση και το μοτίβο Pub/Sub, για τη προετοιμασία δημιουργίας ενός παιχνιδιού | [Introduction to Advanced Game Development](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Space Game](/6-space-game/solution) | Ζωγραφίζοντας στο canvas | Μάθετε περισσότερα για το Canvas API, που χρησιμοποιείται για την σχεδίαση στοιχείων στην οθόνη | [Drawing to Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Space Game](/6-space-game/solution) | Μετακίνηση στοιχείων στην οθόνη | Ανακαλύψτε πως τα στοιχεία μπορύν να αποκτήσουν κίνηση χρησιμοποιώντας τις καρτεσιανές συντεταγμένες και το Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Space Game](/6-space-game/solution) | Ανίχνευση σύγκρουσης | Καντε τα στοιχεία να συγκρούονται και να αντιδρούν μεταξύ τους χρησιμοποιώντας τα πατήματα πλήκτρων όπως επίσης και η λειτουργία cooldown γιατην εξασφαλίση της απόδοσης του παιχνιδιού | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Space Game](/6-space-game/solution) | Διατήρηση βαθμολογίας | Εκτελέστε μαθηματικούς υπολογισμούς με βάση την κατάσταση και την απόδοση του παιχνιδιού | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Space Game](/6-space-game/solution) | Τερματισμός και επανεκκίνηση του παιχνιδιού | Μάθετε σχετικά με τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού στοιχείων και της επαναφοράς των τιμών των μεταβλητών | [The Ending Condition](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Banking App](/7-bank-project/solution) | HTML Templates και Routes σε μια Web εφαρμογή | Μάθετε πώς μπορείτε να δημιουργήσετε τα θεμέλια της αρχιτεκτονικής ενος ιστοτόπου πολλαπλών σελίδων, χρησιμοποιώντας HTML templates και routing | [HTML Templates and Routes](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Banking App](/7-bank-project/solution) | Δημιουργήστε μια φόρμα σύνδεσης και εγγραφής | Μάθετε σχετικά με τη δημιουργία φορμών και τη διαχείρηση επικύρωσης των στοιχείων | [Forms](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Banking App](/7-bank-project/solution) | Μέθοδοι λήψης και χρήσης δεδομένων | Μάθετε για τη ροή των δεδομένων και πως να τα ανακτήσετε, να τα αποθηκεύσετε και να τα απορρίψετε | [Data](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Banking App](/7-bank-project/solution) | Έννοιες του State Management | Μάθετε πως η εφαρμογή σας διατηρεί μια κατάσταση και πως να τη διαχειρίζεστε προγραμματιστικά | [State Management](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [Terrarium](/3-terrarium/solution/README.md) | JavaScript Closures, DOM manipulation | Δημιουργήστε το JavaScript για να λειτουργήσει το terrarium ως διεπαφή drag/drop, εστιάζοντας στα closures και τον χειρισμό DOM | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/README.md) | Δημιουργία παιχνιδιού πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε συμβάντα πληκτρολογίου για να τα συμπεριλάβετε στη λογική της εφαρμογής σας. | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Δουλεύοντας με προγράμματα περιήγησης | Μάθετε πώς λειτουργούν τα προγράμματα περιήγησης, το ιστορικό τους και πώς ξεκινάμε μια επέκταση | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών στον τοπικό χώρο αποθήκευσης | Δημιουργήστε τον κώδικα JavaScript της επέκτασης του προγράμματος περιήγησής σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές που είναι αποθηκευμένες στον τοπικό χώρο αποθήκευσης | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Διαδικασίες παρασκηνίου στο πρόγραμμα περιήγησης, απόδοση Ιστού | Χρήση των διαδικασιών πρασκηνίου του περιηγητή, για τη διαχείρηση του εικονιδίου της επέκτασης. Μάθετε για την απόδοση του ιστού και μερικες βελτιστοποιήσεις που πρέπει να κάνετε | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Space Game](/6-space-game/solution/README.md) | Προηγμένη ανάπτυξη παιχνιδιών με JavaScript | Μάθετε σχετικά με την κληρονομικότητα, χρησιμοποιώντας τις κλάσεις και τη σύνθεση και το μοτίβο Pub/Sub, για τη προετοιμασία δημιουργίας ενός παιχνιδιού | [Introduction to Advanced Game Development](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [Space Game](/6-space-game/solution/README.md) | Ζωγραφίζοντας στο canvas | Μάθετε περισσότερα για το Canvas API, που χρησιμοποιείται για την σχεδίαση στοιχείων στην οθόνη | [Drawing to Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Space Game](/6-space-game/solution/README.md) | Μετακίνηση στοιχείων στην οθόνη | Ανακαλύψτε πως τα στοιχεία μπορύν να αποκτήσουν κίνηση χρησιμοποιώντας τις καρτεσιανές συντεταγμένες και το Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Space Game](/6-space-game/solution/README.md) | Ανίχνευση σύγκρουσης | Καντε τα στοιχεία να συγκρούονται και να αντιδρούν μεταξύ τους χρησιμοποιώντας τα πατήματα πλήκτρων όπως επίσης και η λειτουργία cooldown γιατην εξασφαλίση της απόδοσης του παιχνιδιού | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Space Game](/6-space-game/solution/README.md) | Διατήρηση βαθμολογίας | Εκτελέστε μαθηματικούς υπολογισμούς με βάση την κατάσταση και την απόδοση του παιχνιδιού | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Space Game](/6-space-game/solution/README.md) | Τερματισμός και επανεκκίνηση του παιχνιδιού | Μάθετε σχετικά με τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού στοιχείων και της επαναφοράς των τιμών των μεταβλητών | [The Ending Condition](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Banking App](/7-bank-project/solution/README.md) | HTML Templates και Routes σε μια Web εφαρμογή | Μάθετε πώς μπορείτε να δημιουργήσετε τα θεμέλια της αρχιτεκτονικής ενος ιστοτόπου πολλαπλών σελίδων, χρησιμοποιώντας HTML templates και routing | [HTML Templates and Routes](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Banking App](/7-bank-project/solution/README.md) | Δημιουργήστε μια φόρμα σύνδεσης και εγγραφής | Μάθετε σχετικά με τη δημιουργία φορμών και τη διαχείρηση επικύρωσης των στοιχείων | [Forms](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Banking App](/7-bank-project/solution/README.md) | Μέθοδοι λήψης και χρήσης δεδομένων | Μάθετε για τη ροή των δεδομένων και πως να τα ανακτήσετε, να τα αποθηκεύσετε και να τα απορρίψετε | [Data](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [Banking App](/7-bank-project/solution/README.md) | Έννοιες του State Management | Μάθετε πως η εφαρμογή σας διατηρεί μια κατάσταση και πως να τη διαχειρίζεστε προγραμματιστικά | [State Management](/7-bank-project/4-state-management/README.md) | Yohan | ## Πρόσβαση εκτός σύνδεσης diff --git a/translations/README.fil.md b/translations/README.fil.md index c6e25e0c..cb1a0bc5 100644 --- a/translations/README.fil.md +++ b/translations/README.fil.md @@ -67,21 +67,21 @@ Bagama't sinadya naming iwasan ang pagpapakilala ng mga balangkas ng JavaScript | 07 | JS Basics | Mga Array at Loop | Makipagtulungan sa data gamit ang mga arrays at loops in JavaScript | [Mga Array at Loop](/2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML sa Practice | Buuin ang HTML upang lumikha ng isang online na terrarium, na nakatuon sa pagbuo ng isang layout | [Panimula sa HTML](/3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS sa Practice | Buuin ang CSS upang mai-istilo ang online na terrarium, na tumutuon sa mga pangunahing kaalaman ng CSS kabilang ang paggawa ng page na tumutugon | [Panimula sa CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution) | Mga Pagsasara ng JavaScript, pagmamanipula ng DOM | Buuin ang JavaScript upang gawing function ang terrarium bilang isang drag/drop interface, na tumutuon sa mga pagsasara at pagmamanipula ng DOM | [Mga Pagsasara ng JavaScript, pagmamanipula ng DOM](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution) | Build a Typing Game | Matutunan kung paano gumamit ng mga kaganapan sa keyboard upang himukin ang lohika ng iyong JavaScript app | [Programming na Batay sa Kaganapan](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Green Browser Extension](/5-browser-extension/solution) | Nagtatrabaho sa Mga Browser | Matutunan kung paano gumagana ang mga browser, ang kanilang kasaysayan, at kung paano scaffold ang mga unang elemento ng isang extension ng browser | [Tungkol sa Mga Browser](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Green Browser Extension](/5-browser-extension/solution) | Pagbuo ng form, pagtawag ng API at pag-iimbak ng mga variable sa lokal na storage | Buuin ang mga elemento ng JavaScript ng iyong extension ng browser upang tumawag sa isang API gamit ang mga variable na nakaimbak sa lokal na storage | [APIs, Forms, at Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Green Browser Extension](/5-browser-extension/solution) | Mga proseso sa background sa browser, pagganap ng web | Gamitin ang mga proseso sa background ng browser upang pamahalaan ang icon ng extension; alamin ang tungkol sa pagganap ng web at ilang mga pag-optimize na gagawin | [Mga Gawain sa Background at Pagganap](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Space Game](/6-space-game/solution) | Higit pang Advanced na Pagbuo ng Laro gamit ang JavaScript | Alamin ang tungkol sa Inheritance gamit ang parehong Mga Klase at Komposisyon at ang pattern ng Pub/Sub, bilang paghahanda sa pagbuo ng isang laro | [Panimula sa Advanced na Pagbuo ng Laro](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Space Game](/6-space-game/solution) | Pagguhit sa canvas | Matuto tungkol sa Canvas API, na ginagamit upang gumuhit ng mga elemento sa isang screen | [Pagguhit sa Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Space Game](/6-space-game/solution) | Paglipat ng mga elemento sa paligid ng screen | Tuklasin kung paano makakakuha ng paggalaw ang mga elemento gamit ang mga cartesian coordinates at ang Canvas API | [Paglipat ng mga Elemento](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Space Game](/6-space-game/solution) | Pagtuklas ng banggaan | Gawing magbanggaan at mag-react ang mga elemento sa isa't isa gamit ang mga keypress at magbigay ng cooldown function para matiyak ang performance ng laro | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Space Game](/6-space-game/solution) | Pagpapanatiling Kalidad | Magsagawa ng mga kalkulasyon sa matematika batay sa katayuan at pagganap ng laro | [Pagpapanatiling Kalidad](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Space Game](/6-space-game/solution) | Pagtapos at i-restart ang laro | Matuto tungkol sa pagtatapos at pag-restart ng laro, kabilang ang paglilinis ng mga asset at pag-reset ng mga variable na value | [Ang Katapusang Kondisyon](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Banking App](/7-bank-project/solution) | Mga Template at Ruta ng HTML sa isang Web App | Matutunan kung paano gumawa ng scaffold ng arkitektura ng isang multipage na website gamit ang pagruruta at mga HTML na template | [Mga Template at Ruta ng HTML](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Banking App](/7-bank-project/solution) | Bumuo ng isang Login at Registration Form | Matuto tungkol sa pagbuo ng mga form at pagbibigay ng mga gawain sa pagpapatunay | [Forms](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Banking App](/7-bank-project/solution) | Paraan ng Pagkuha at Paggamit ng Data | Paano dumadaloy ang data sa loob at labas ng iyong app, kung paano ito kunin, iimbak, at itapon ito | [Data](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Banking App](/7-bank-project/solution) | Mga Konsepto ng Pamamahala ng Estado | Alamin kung paano napapanatili ng iyong app ang estado at kung paano ito pamahalaan sa pamamagitan ng program | [Estadong Pamamahala](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [Terrarium](/3-terrarium/solution/README.md) | Mga Pagsasara ng JavaScript, pagmamanipula ng DOM | Buuin ang JavaScript upang gawing function ang terrarium bilang isang drag/drop interface, na tumutuon sa mga pagsasara at pagmamanipula ng DOM | [Mga Pagsasara ng JavaScript, pagmamanipula ng DOM](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/README.md) | Build a Typing Game | Matutunan kung paano gumamit ng mga kaganapan sa keyboard upang himukin ang lohika ng iyong JavaScript app | [Programming na Batay sa Kaganapan](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Nagtatrabaho sa Mga Browser | Matutunan kung paano gumagana ang mga browser, ang kanilang kasaysayan, at kung paano scaffold ang mga unang elemento ng isang extension ng browser | [Tungkol sa Mga Browser](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Pagbuo ng form, pagtawag ng API at pag-iimbak ng mga variable sa lokal na storage | Buuin ang mga elemento ng JavaScript ng iyong extension ng browser upang tumawag sa isang API gamit ang mga variable na nakaimbak sa lokal na storage | [APIs, Forms, at Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Mga proseso sa background sa browser, pagganap ng web | Gamitin ang mga proseso sa background ng browser upang pamahalaan ang icon ng extension; alamin ang tungkol sa pagganap ng web at ilang mga pag-optimize na gagawin | [Mga Gawain sa Background at Pagganap](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Space Game](/6-space-game/solution/README.md) | Higit pang Advanced na Pagbuo ng Laro gamit ang JavaScript | Alamin ang tungkol sa Inheritance gamit ang parehong Mga Klase at Komposisyon at ang pattern ng Pub/Sub, bilang paghahanda sa pagbuo ng isang laro | [Panimula sa Advanced na Pagbuo ng Laro](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [Space Game](/6-space-game/solution/README.md) | Pagguhit sa canvas | Matuto tungkol sa Canvas API, na ginagamit upang gumuhit ng mga elemento sa isang screen | [Pagguhit sa Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Space Game](/6-space-game/solution/README.md) | Paglipat ng mga elemento sa paligid ng screen | Tuklasin kung paano makakakuha ng paggalaw ang mga elemento gamit ang mga cartesian coordinates at ang Canvas API | [Paglipat ng mga Elemento](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Space Game](/6-space-game/solution/README.md) | Pagtuklas ng banggaan | Gawing magbanggaan at mag-react ang mga elemento sa isa't isa gamit ang mga keypress at magbigay ng cooldown function para matiyak ang performance ng laro | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Space Game](/6-space-game/solution/README.md) | Pagpapanatiling Kalidad | Magsagawa ng mga kalkulasyon sa matematika batay sa katayuan at pagganap ng laro | [Pagpapanatiling Kalidad](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Space Game](/6-space-game/solution/README.md) | Pagtapos at i-restart ang laro | Matuto tungkol sa pagtatapos at pag-restart ng laro, kabilang ang paglilinis ng mga asset at pag-reset ng mga variable na value | [Ang Katapusang Kondisyon](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Banking App](/7-bank-project/solution/README.md) | Mga Template at Ruta ng HTML sa isang Web App | Matutunan kung paano gumawa ng scaffold ng arkitektura ng isang multipage na website gamit ang pagruruta at mga HTML na template | [Mga Template at Ruta ng HTML](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Banking App](/7-bank-project/solution/README.md) | Bumuo ng isang Login at Registration Form | Matuto tungkol sa pagbuo ng mga form at pagbibigay ng mga gawain sa pagpapatunay | [Forms](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Banking App](/7-bank-project/solution/README.md) | Paraan ng Pagkuha at Paggamit ng Data | Paano dumadaloy ang data sa loob at labas ng iyong app, kung paano ito kunin, iimbak, at itapon ito | [Data](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [Banking App](/7-bank-project/solution/README.md) | Mga Konsepto ng Pamamahala ng Estado | Alamin kung paano napapanatili ng iyong app ang estado at kung paano ito pamahalaan sa pamamagitan ng program | [Estadong Pamamahala](/7-bank-project/4-state-management/README.md) | Yohan | ## Offline access diff --git a/translations/README.fr.md b/translations/README.fr.md index 7e17ba17..b74e950b 100644 --- a/translations/README.fr.md +++ b/translations/README.fr.md @@ -13,7 +13,7 @@ Azure Cloud Advocates de Microsoft sont heureux de vous offrir un cours de 24 leçons portant sur les bases du HTML, CSS et JavaScript. Chaque leçon comporte des instructions, des projets et des quizs. -Grâce à la pédagogie basée sur la pratique, vous pouvez apprendre tout en créant des interfaces. +Grâce à la pédagogie basée sur la pratique, vous pouvez apprendre tout en créant des interfaces. Ce qui représente une méthode qui consiste à acquérir des compétances et s'en rappelant !. **Un très grand merci à Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, et Tomomi Imura!** @@ -34,7 +34,7 @@ Vous trouverez autres sujets complétants ce cours sur [Microsoft Learn](https:/ ## Pedagogie On a choisi deux pédagogies pour créer ce cours. -En premier lieu, on a veillé à ce qu'il soit basé sur un projet et en réalité, vous auriez à la fin de ce cours codé un jeu de typing, une extension web, une application bancaire et d'autres intéressants projets. +En premier lieu, on a veillé à ce qu'il soit basé sur un projet et en réalité, vous auriez à la fin de ce cours codé un jeu de typing, une extension web, une application bancaire et d'autres intéressants projets. En dernier lieu, on a mis à votre disposition des quizs pour vous évaluez vous-même. Et à la fin, vous auriez appris beaucoup de choses à propos du HTML, CSS et Javascript. Et vous voilà, un développeur web 🎓 ! @@ -59,7 +59,7 @@ Vos retours sont vivement acceptés. - Un sketchnote - Une vidéo supplémentaire -- Quiz des dernières compétences acquises +- Quiz des dernières compétences acquises - Les traces écrites - Un challenge - Une explication **très détaillée** pour réussir le challenge @@ -83,21 +83,21 @@ Ils sont accessible via le dossier `quiz-app`. | 07 | JS Basics | Arrays and Loops | Work with data using arrays and loops in JavaScript | [Arrays and Loops](/2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML in Practice | Build the HTML to create an online terrarium, focusing on building a layout | [Introduction to HTML](/3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS in Practice | Build the CSS to style the online terrarium, focusing on the basics of CSS including making the page responsive | [Introduction to CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Green Browser Extension](/5-browser-extension/solution) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Green Browser Extension](/5-browser-extension/solution) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in local storage | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Green Browser Extension](/5-browser-extension/solution) | Background processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Jeu de l'espace](/6-space-game/solution) | Développement avancé d'un jeu en Javascript | Savoir les bases de l'**Inheritance** avec les **Classes and Composition et les Pub/Sub pattern**, afin de créer un jeu | [Introduction au développement avancé d'un jeu en Javascript](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Jeu de l'espace](/6-space-game/solution) | Les Canvas | Savoir à propos du Canvas API, utilisé pour dessiner des éléments | [Dessiner des Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Jeu de l'espace](/6-space-game/solution) | Déplacer les éléments | En utilisant les données cartésiennes et le Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Jeu de l'espace](/6-space-game/solution) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Jeu de l'espace](/6-space-game/solution) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Jeu de l'espace](/6-space-game/solution) | Commencer et finir un jeu | Savoir manipuler les variables, démarrer un jeu et mettre fin. | [Fin Condition](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Application bancaire](/7-bank-project/solution) | HTML Templates et Routes dans une application web | Savoir l'utilité des Templates et Routes dans la gestion d'un site web multi-pages. | [HTML Templates et Routes](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Application bancaire](/7-bank-project/solution) | Créer un formulaire de connexion | Apprendre le fonctionnement d'un formulaire et la vérification des données saisies | [Formulaires](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Application bancaire](/7-bank-project/solution) | Fetch et utilisation des données | Savoir comment une application manipule les données | [Données](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Application bancaire](/7-bank-project/solution) | Concepts de la gestion des states | En savoir comment une application gère les states | [Gestion des states](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [Terrarium](/3-terrarium/solution/README.md) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/README.md) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in local storage | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Background processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Jeu de l'espace](/6-space-game/solution/README.md) | Développement avancé d'un jeu en Javascript | Savoir les bases de l'**Inheritance** avec les **Classes and Composition et les Pub/Sub pattern**, afin de créer un jeu | [Introduction au développement avancé d'un jeu en Javascript](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [Jeu de l'espace](/6-space-game/solution/README.md) | Les Canvas | Savoir à propos du Canvas API, utilisé pour dessiner des éléments | [Dessiner des Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Jeu de l'espace](/6-space-game/solution/README.md) | Déplacer les éléments | En utilisant les données cartésiennes et le Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Jeu de l'espace](/6-space-game/solution/README.md) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Jeu de l'espace](/6-space-game/solution/README.md) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Jeu de l'espace](/6-space-game/solution/README.md) | Commencer et finir un jeu | Savoir manipuler les variables, démarrer un jeu et mettre fin. | [Fin Condition](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Application bancaire](/7-bank-project/solution/README.md) | HTML Templates et Routes dans une application web | Savoir l'utilité des Templates et Routes dans la gestion d'un site web multi-pages. | [HTML Templates et Routes](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Application bancaire](/7-bank-project/solution/README.md) | Créer un formulaire de connexion | Apprendre le fonctionnement d'un formulaire et la vérification des données saisies | [Formulaires](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Application bancaire](/7-bank-project/solution/README.md) | Fetch et utilisation des données | Savoir comment une application manipule les données | [Données](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [Application bancaire](/7-bank-project/solution/README.md) | Concepts de la gestion des states | En savoir comment une application gère les states | [Gestion des states](/7-bank-project/4-state-management/README.md) | Yohan | ## Accéder au cours hors connexion diff --git a/translations/README.hi.md b/translations/README.hi.md index cb6ef228..bd544bbf 100644 --- a/translations/README.hi.md +++ b/translations/README.hi.md @@ -63,21 +63,21 @@ Microsoft के Azure Cloud Advocates को 12-सप्ताह, 24-पा | 07 | जेएस की मूलबाते | अररेस और लूपस | जावास्क्रिप्ट में अररेस और लूपस का उपयोग कर डेटा के साथ काम करें | [अररेस और लूपस](/2-js-basics/4-arrays-loops/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | जैस्मिन | | 08 | [टेरारियम](/3-terrarium/solution/translations/README.hi.md) | एचटीएमएल प्रैक्टिस में | लेआउट बनाने पर ध्यान केंद्रित करते हुए, एक ऑनलाइन टेरारियम बनाने के लिए HTML बनाएँ | [एचटीएमएल का परिचय](/3-terrarium/1-intro-to-html/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | | 09 | [टेरारियम](/3-terrarium/solution/translations/README.hi.md) | सीएसएस | पृष्ठ को उत्तरदायी बनाने सहित सीएसएस की मूल बातों पर ध्यान केंद्रित करते हुए, ऑनलाइन टेरेरियम को स्टाइल करने के लिए सीएसएस का निर्माण करें | [सीएसएसका परिचय](/3-terrarium/2-intro-to-css/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | -| 10 | [टेरारियम](/3-terrarium/solution) | जावास्क्रिप्ट क्लोजर, डोम मनिप्यलैशन | एक टेरारियम फंगक्शन को ड्रैग/ड्रॉप इंटरफेस के रूप में बनाने के लिए जावास्क्रिप्ट का निर्माण करें ,क्लोजर और डोम मनिप्यलैशन पर ध्यान केंद्रित करके | [जावास्क्रिप्ट क्लोजर और डोम मनिप्यलैशन](/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | -| 11 | [टायपिंग गेम](/4-typing-game/solution) | एक टायपिंग गेम बनाए | अपने जावास्क्रिप्ट ऐप के तर्क को चलाने के लिए कीबोर्ड घटनाओं का उपयोग करना सीखें | [ईवेंट-संचालित प्रोग्रामिंग](/4-typing-game/typing-game/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | क्रिस्टोफर | -| 12 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution) | ब्राउज़रों के साथ काम करना | जानें कि ब्राउज़र कैसे काम करते हैं, उनका इतिहास और ब्राउज़र एक्सटेंशन के पहले एलिमेंट्स को कैसे मचानते हैं | [ब्राउज़रों के बारे में](/5-browser-extension/1-about-browsers/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | -| 13 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution) | एक फॉर्म का निर्माण, एक एपीआई को कॉल करना और लोकल स्टॉरिज में चर को संग्रहीत करना | लोकल स्टॉरिज में संग्रहीत चर का उपयोग करके एपीआई को कॉल करने के लिए अपने ब्राउज़र एक्सटेंशन के जावास्क्रिप्ट एलिमेंट्स का निर्माण करें | [एपीआईज, फॉर्म्स, और लोकल स्टॉरिज](/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | जेन | -| 14 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution) | ब्राउज़र में पृष्ठभूमि प्रक्रियाएं, वेब प्रदर्शन | एक्सटेंशन के आइकन को प्रबंधित करने के लिए ब्राउज़र की पृष्ठभूमि प्रक्रियाओं का उपयोग करें; वेब प्रदर्शन और बनाने के लिए कुछ अनुकूलन के बारे में जानें | [पृष्ठभूमि कार्य और प्रदर्शन](/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | जेन | -| 15 | [स्पेस गेम](/6-space-game/solution) | जावास्क्रिप्ट के साथ और अधिक उन्नत खेल विकास | एक खेल के निर्माण की तैयारी में क्लाससेस और काम्पज़िशन और पब/सब पैटर्न दोनों का उपयोग करके इन्हेरीटेन्स के बारे में जानें | [उन्नत खेल विकास का परिचय](/6-space-game/1-introduction/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 16 | [स्पेस गेम](/6-space-game/solution) | कैनवास पर ड्रॉ करना | कैनवास एपीआई के बारे में जानें, जिसका उपयोग एलिमेंट्स को स्क्रीन पर खींचने के लिए किया जाता है | [कैनवास पर ड्रॉ करना](/6-space-game/2-drawing-to-canvas/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 17 | [स्पेस गेम](/6-space-game/solution) | स्क्रीन के चारों ओर बढ़ते एलिमेंट्स | पता करे कि कार्टेशियन निर्देशांक और कैनवस एपीआई का उपयोग करके तत्व कैसे गति प्राप्त कर सकते हैं | [चारों ओर बढ़ते एलिमेंट्स](/6-space-game/3-moving-elements-around/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 18 | [स्पेस गेम](/6-space-game/solution) | कॉलिजन डिटेक्शन | एलिमेंट्स को आपस में टकराएं और कीपरेसेस का उपयोग करते हुए एक दूसरे से प्रतिक्रिया करें और खेल के प्रदर्शन को सुनिश्चित करने के लिए एक कुलडाउन फ़ंक्शन प्रदान करें | [कॉलिजन डिटेक्शन](/6-space-game/4-collision-detection/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 19 | [स्पेस गेम](/6-space-game/solution) | स्कोर रखना | खेल की स्थिति और प्रदर्शन के आधार पर गणित की गणना करें | [स्कोर रखना](/6-space-game/5-keeping-score/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 20 | [स्पेस गेम](/6-space-game/solution) | खेल को समाप्त करना और पुनः आरंभ करना | खेल को समाप्त करने और पुनः आरंभ करने के बारे में जानें,असेट्स को साफ करने और चरकी वैल्यू को रीसेट करने सहित | [अंत की स्थिति](/6-space-game/6-end-condition/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | -| 21 | [बैंकिंग एप](/7-bank-project/solution) | एचटीएमएल टेम्पलेट्स और वेब ऐप में रूट | राउटिंग और एचटीएमएल टेम्प्लेट का उपयोग करके एक मल्टीफ़ेज वेबसाइट की वास्तुकला का मचान बनाना सीखें | [एचटीएमएल टेम्पलेट और रूट](/7-bank-project/1-template-route/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | -| 22 | [बैंकिंग एप](/7-bank-project/solution) | एक लॉगिन और पंजीकरण फॉर्म बनाएँ | फॉर्म के निर्माण और सत्यापन रूटीन सौंपने के बारे में जानें | [फॉर्म्स](/7-bank-project/2-forms/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | -| 23 | [बैंकिंग एप](/7-bank-project/solution) | डेटा लाने और उपयोग करने के तरीके | डेटा आपके ऐप से कैसे और कैसे बहता है, इसे कैसे लाया जाए, इसे स्टोर करें और इसका दिसपोस करें | [डाटा](/7-bank-project/3-data/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | -| 24 | [बैंकिंग एप](/7-bank-project/solution) | स्टेट प्रबंधन की अवधारणाएँ | जानें कि आपका ऐप किस तरह से स्थिति को बनाए रखता है और इसे कैसे व्यवस्थित रूप से प्रबंधित करता है | [स्टेट प्रबंधन](/7-bank-project/4-state-management/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | | योहन | +| 10 | [टेरारियम](/3-terrarium/solution/README.md) | जावास्क्रिप्ट क्लोजर, डोम मनिप्यलैशन | एक टेरारियम फंगक्शन को ड्रैग/ड्रॉप इंटरफेस के रूप में बनाने के लिए जावास्क्रिप्ट का निर्माण करें ,क्लोजर और डोम मनिप्यलैशन पर ध्यान केंद्रित करके | [जावास्क्रिप्ट क्लोजर और डोम मनिप्यलैशन](/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | +| 11 | [टायपिंग गेम](/4-typing-game/solution/README.md) | एक टायपिंग गेम बनाए | अपने जावास्क्रिप्ट ऐप के तर्क को चलाने के लिए कीबोर्ड घटनाओं का उपयोग करना सीखें | [ईवेंट-संचालित प्रोग्रामिंग](/4-typing-game/typing-game/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | क्रिस्टोफर | +| 12 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution/README.md) | ब्राउज़रों के साथ काम करना | जानें कि ब्राउज़र कैसे काम करते हैं, उनका इतिहास और ब्राउज़र एक्सटेंशन के पहले एलिमेंट्स को कैसे मचानते हैं | [ब्राउज़रों के बारे में](/5-browser-extension/1-about-browsers/translations/README.hi.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | जेन | +| 13 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution/README.md) | एक फॉर्म का निर्माण, एक एपीआई को कॉल करना और लोकल स्टॉरिज में चर को संग्रहीत करना | लोकल स्टॉरिज में संग्रहीत चर का उपयोग करके एपीआई को कॉल करने के लिए अपने ब्राउज़र एक्सटेंशन के जावास्क्रिप्ट एलिमेंट्स का निर्माण करें | [एपीआईज, फॉर्म्स, और लोकल स्टॉरिज](/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | जेन | +| 14 | [ग्रीन ब्राउजर इक्स्टेन्शन](/5-browser-extension/solution/README.md) | ब्राउज़र में पृष्ठभूमि प्रक्रियाएं, वेब प्रदर्शन | एक्सटेंशन के आइकन को प्रबंधित करने के लिए ब्राउज़र की पृष्ठभूमि प्रक्रियाओं का उपयोग करें; वेब प्रदर्शन और बनाने के लिए कुछ अनुकूलन के बारे में जानें | [पृष्ठभूमि कार्य और प्रदर्शन](/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | जेन | +| 15 | [स्पेस गेम](/6-space-game/solution/README.md) | जावास्क्रिप्ट के साथ और अधिक उन्नत खेल विकास | एक खेल के निर्माण की तैयारी में क्लाससेस और काम्पज़िशन और पब/सब पैटर्न दोनों का उपयोग करके इन्हेरीटेन्स के बारे में जानें | [उन्नत खेल विकास का परिचय](/6-space-game/1-introduction/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 16 | [स्पेस गेम](/6-space-game/solution/README.md) | कैनवास पर ड्रॉ करना | कैनवास एपीआई के बारे में जानें, जिसका उपयोग एलिमेंट्स को स्क्रीन पर खींचने के लिए किया जाता है | [कैनवास पर ड्रॉ करना](/6-space-game/2-drawing-to-canvas/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 17 | [स्पेस गेम](/6-space-game/solution/README.md) | स्क्रीन के चारों ओर बढ़ते एलिमेंट्स | पता करे कि कार्टेशियन निर्देशांक और कैनवस एपीआई का उपयोग करके तत्व कैसे गति प्राप्त कर सकते हैं | [चारों ओर बढ़ते एलिमेंट्स](/6-space-game/3-moving-elements-around/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 18 | [स्पेस गेम](/6-space-game/solution/README.md) | कॉलिजन डिटेक्शन | एलिमेंट्स को आपस में टकराएं और कीपरेसेस का उपयोग करते हुए एक दूसरे से प्रतिक्रिया करें और खेल के प्रदर्शन को सुनिश्चित करने के लिए एक कुलडाउन फ़ंक्शन प्रदान करें | [कॉलिजन डिटेक्शन](/6-space-game/4-collision-detection/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 19 | [स्पेस गेम](/6-space-game/solution/README.md) | स्कोर रखना | खेल की स्थिति और प्रदर्शन के आधार पर गणित की गणना करें | [स्कोर रखना](/6-space-game/5-keeping-score/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 20 | [स्पेस गेम](/6-space-game/solution/README.md) | खेल को समाप्त करना और पुनः आरंभ करना | खेल को समाप्त करने और पुनः आरंभ करने के बारे में जानें,असेट्स को साफ करने और चरकी वैल्यू को रीसेट करने सहित | [अंत की स्थिति](/6-space-game/6-end-condition/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | क्रिस | +| 21 | [बैंकिंग एप](/7-bank-project/solution/README.md) | एचटीएमएल टेम्पलेट्स और वेब ऐप में रूट | राउटिंग और एचटीएमएल टेम्प्लेट का उपयोग करके एक मल्टीफ़ेज वेबसाइट की वास्तुकला का मचान बनाना सीखें | [एचटीएमएल टेम्पलेट और रूट](/7-bank-project/1-template-route/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | +| 22 | [बैंकिंग एप](/7-bank-project/solution/README.md) | एक लॉगिन और पंजीकरण फॉर्म बनाएँ | फॉर्म के निर्माण और सत्यापन रूटीन सौंपने के बारे में जानें | [फॉर्म्स](/7-bank-project/2-forms/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | +| 23 | [बैंकिंग एप](/7-bank-project/solution/README.md) | डेटा लाने और उपयोग करने के तरीके | डेटा आपके ऐप से कैसे और कैसे बहता है, इसे कैसे लाया जाए, इसे स्टोर करें और इसका दिसपोस करें | [डाटा](/7-bank-project/3-data/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | योहन | +| 24 | [बैंकिंग एप](/7-bank-project/solution/README.md) | स्टेट प्रबंधन की अवधारणाएँ | जानें कि आपका ऐप किस तरह से स्थिति को बनाए रखता है और इसे कैसे व्यवस्थित रूप से प्रबंधित करता है | [स्टेट प्रबंधन](/7-bank-project/4-state-management/translations/README.hi.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | | योहन | ## ऑफ़लाइन एक्सेस diff --git a/translations/README.ja.md b/translations/README.ja.md index db1a236e..7dc2ec91 100644 --- a/translations/README.ja.md +++ b/translations/README.ja.md @@ -50,21 +50,21 @@ | 07 | JS の基礎 | 配列とループ | JavaScript で配列やループを使ってデータを扱う | [配列とループ](/2-js-basics/4-arrays-loops/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Jasmine | | 08 | [テラリウム](/3-terrarium/solution/translations/README.ja.md) | HTML の実践 | レイアウトの構築を中心に、オンラインテラリウムを作成するための HTML を構築する | [HTML 入門](/3-terrarium/1-intro-to-html/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | | 09 | [テラリウム](/3-terrarium/solution/translations/README.ja.md) | CSS の実践 | レスポンシブ対応など CSS の基本を中心に、オンラインテラリウムのスタイルを整える CSS を構築します。 | [CSS 入門](/3-terrarium/2-intro-to-css/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | -| 10 | [テラリウム](/3-terrarium/solution) | JavaScript のクロージャ、DOM の操作 | テラリウムをドラッグ&ドロップのインターフェイスとして機能させるための JavaScript を構築します。 | [JavaScript のクロージャ、DOM の操作](/3-terrarium/3-intro-to-DOM-and-closures/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | -| 11 | [タイピングゲーム](/4-typing-game/solution) | タイピングゲームを構築 | キーボードイベントを使用して JavaScript アプリのロジックを駆動する方法を学びます。 | [イベント駆動型プログラミング](/4-typing-game/typing-game/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Christopher | -| 12 | [グリーンブラウザ拡張機能](/5-browser-extension/solution) | ブラウザとの連携 | ブラウザの仕組み、歴史、ブラウザ拡張機能の最初の要素の足場の作り方を学ぶ | [ブラウザについて](/5-browser-extension/1-about-browsers/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | -| 13 | [グリーンブラウザ拡張機能](/5-browser-extension/solution) | フォームの構築、API の呼び出し、ローカルストレージへの変数の格納 | ローカルストレージに格納された変数を使用して API を呼び出すためのブラウザ拡張機能の JavaScript 要素を構築します。 | [API、フォーム、およびローカルストレージ](/5-browser-extension/2-forms-browsers-local-storage/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Jen | -| 14 | [グリーンブラウザ拡張機能](/5-browser-extension/solution) | ブラウザのバックグラウンドプロセス、Web パフォーマンス | ブラウザのバックグラウンドプロセスを使用して拡張機能のアイコンを管理します。Web のパフォーマンスと最適化について学びます。 | [バックグラウンドタスクとパフォーマンス](/5-browser-extension/3-background-tasks-and-performance/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Jen | -| 15 | [スペースゲーム](/6-space-game/solution) | JavaScript を使ったより高度なゲーム開発 | ゲーム構築に備えて、クラスとコンポジションの両方を使った継承と Pub/Sub パターンを学ぶ | [高度なゲーム開発入門](/6-space-game/1-introduction/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 16 | [スペースゲーム](/6-space-game/solution) | キャンバスへの描画 | 画面に要素を描画するために使用される Canvas API について説明します。 | [キャンバスへの描画](/6-space-game/2-drawing-to-canvas/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 17 | [スペースゲーム](/6-space-game/solution) | 画面の周りの要素の移動 | 直交座標と Canvas API を使用して、要素がどのように動きを得ることができるかをご覧ください。 | [要素の移動](/6-space-game/3-moving-elements-around/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 18 | [スペースゲーム](/6-space-game/solution) | 衝突の検出 | 要素を衝突させ、キープレスでお互いに反応させ、ゲームのパフォーマンスを確保するためのクールダウン機能を提供します。 | [衝突の検出](/6-space-game/4-collision-detection/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 19 | [スペースゲーム](/6-space-game/solution) | スコアの保持 | ゲームのステータスや成績に応じて計算を行う | [スコアの保持](/6-space-game/5-keeping-score/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 20 | [スペースゲーム](/6-space-game/solution) | ゲームの終了と再開 | アセットのクリーンアップや変数値のリセットなど、ゲームの終了と再開について学ぶことができます。 | [終了条件](/6-space-game/6-end-condition/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | -| 21 | [バンキングアプリケーション](/7-bank-project/solution) | Web アプリの HTML テンプレートとルート | ルーティングと HTML テンプレートを使ったマルチページサイトのアーキテクチャの足場の作り方を学ぶ | [HTML テンプレートとルート](/7-bank-project/1-template-route/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | -| 22 | [バンキングアプリケーション](/7-bank-project/solution) | ログインと登録フォームの構築 | フォームの構築と検証ルーチンの渡し方について学ぶ | [フォーム](/7-bank-project/2-forms/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | -| 23 | [バンキングアプリケーション](/7-bank-project/solution) | データの取得と利用方法 | アプリのデータの出入り、データの取得方法、保存方法、廃棄方法 | [データ](/7-bank-project/3-data/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | -| 24 | [バンキングアプリケーション](/7-bank-project/solution) | 状態管理の概念 | アプリの状態を保持する方法とプログラムで管理する方法を学ぶ | [状態管理](/7-bank-project/4-state-management/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | | Yohan | +| 10 | [テラリウム](/3-terrarium/solution/README.md) | JavaScript のクロージャ、DOM の操作 | テラリウムをドラッグ&ドロップのインターフェイスとして機能させるための JavaScript を構築します。 | [JavaScript のクロージャ、DOM の操作](/3-terrarium/3-intro-to-DOM-and-closures/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | +| 11 | [タイピングゲーム](/4-typing-game/solution/README.md) | タイピングゲームを構築 | キーボードイベントを使用して JavaScript アプリのロジックを駆動する方法を学びます。 | [イベント駆動型プログラミング](/4-typing-game/typing-game/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Christopher | +| 12 | [グリーンブラウザ拡張機能](/5-browser-extension/solution/README.md) | ブラウザとの連携 | ブラウザの仕組み、歴史、ブラウザ拡張機能の最初の要素の足場の作り方を学ぶ | [ブラウザについて](/5-browser-extension/1-about-browsers/translations/README.ja.md) | ✅ | ✅ | ✅ | ✅ | ✅ | 🛑 | Jen | +| 13 | [グリーンブラウザ拡張機能](/5-browser-extension/solution/README.md) | フォームの構築、API の呼び出し、ローカルストレージへの変数の格納 | ローカルストレージに格納された変数を使用して API を呼び出すためのブラウザ拡張機能の JavaScript 要素を構築します。 | [API、フォーム、およびローカルストレージ](/5-browser-extension/2-forms-browsers-local-storage/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Jen | +| 14 | [グリーンブラウザ拡張機能](/5-browser-extension/solution/README.md) | ブラウザのバックグラウンドプロセス、Web パフォーマンス | ブラウザのバックグラウンドプロセスを使用して拡張機能のアイコンを管理します。Web のパフォーマンスと最適化について学びます。 | [バックグラウンドタスクとパフォーマンス](/5-browser-extension/3-background-tasks-and-performance/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Jen | +| 15 | [スペースゲーム](/6-space-game/solution/README.md) | JavaScript を使ったより高度なゲーム開発 | ゲーム構築に備えて、クラスとコンポジションの両方を使った継承と Pub/Sub パターンを学ぶ | [高度なゲーム開発入門](/6-space-game/1-introduction/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 16 | [スペースゲーム](/6-space-game/solution/README.md) | キャンバスへの描画 | 画面に要素を描画するために使用される Canvas API について説明します。 | [キャンバスへの描画](/6-space-game/2-drawing-to-canvas/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 17 | [スペースゲーム](/6-space-game/solution/README.md) | 画面の周りの要素の移動 | 直交座標と Canvas API を使用して、要素がどのように動きを得ることができるかをご覧ください。 | [要素の移動](/6-space-game/3-moving-elements-around/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 18 | [スペースゲーム](/6-space-game/solution/README.md) | 衝突の検出 | 要素を衝突させ、キープレスでお互いに反応させ、ゲームのパフォーマンスを確保するためのクールダウン機能を提供します。 | [衝突の検出](/6-space-game/4-collision-detection/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 19 | [スペースゲーム](/6-space-game/solution/README.md) | スコアの保持 | ゲームのステータスや成績に応じて計算を行う | [スコアの保持](/6-space-game/5-keeping-score/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 20 | [スペースゲーム](/6-space-game/solution/README.md) | ゲームの終了と再開 | アセットのクリーンアップや変数値のリセットなど、ゲームの終了と再開について学ぶことができます。 | [終了条件](/6-space-game/6-end-condition/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | 🛑 | Chris | +| 21 | [バンキングアプリケーション](/7-bank-project/solution/README.md) | Web アプリの HTML テンプレートとルート | ルーティングと HTML テンプレートを使ったマルチページサイトのアーキテクチャの足場の作り方を学ぶ | [HTML テンプレートとルート](/7-bank-project/1-template-route/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | +| 22 | [バンキングアプリケーション](/7-bank-project/solution/README.md) | ログインと登録フォームの構築 | フォームの構築と検証ルーチンの渡し方について学ぶ | [フォーム](/7-bank-project/2-forms/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | +| 23 | [バンキングアプリケーション](/7-bank-project/solution/README.md) | データの取得と利用方法 | アプリのデータの出入り、データの取得方法、保存方法、廃棄方法 | [データ](/7-bank-project/3-data/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | ✅ | Yohan | +| 24 | [バンキングアプリケーション](/7-bank-project/solution/README.md) | 状態管理の概念 | アプリの状態を保持する方法とプログラムで管理する方法を学ぶ | [状態管理](/7-bank-project/4-state-management/translations/README.ja.md) | ✅ | 🛑 | ✅ | ✅ | ✅ | | Yohan | ## オフラインアクセス diff --git a/translations/README.ml.md b/translations/README.ml.md index 20b42ceb..b5f7bef4 100644 --- a/translations/README.ml.md +++ b/translations/README.ml.md @@ -13,7 +13,7 @@ # തുടക്കക്കാർക്കുള്ള വെബ് വികസനം - ഒരു പാഠ്യപദ്ധതി -മൈക്രോസോഫ്റ്റിലെ അസുർ ക്ലൗഡ് അഡ്വക്കേറ്റ്സ് ജാവാസ്ക്രിപ്റ്റ്, സിഎസ്എസ്, എച്ച്ടിഎംഎൽ അടിസ്ഥാനകാര്യങ്ങൾ എന്നിവയെക്കുറിച്ച് 12-ആഴ്ച, 24-പാഠ പാഠ്യപദ്ധതി വാഗ്ദാനം ചെയ്യുന്നതിൽ സന്തോഷമുണ്ട്. ഓരോ പാഠത്തിലും പാഠത്തിന് മുമ്പും ശേഷവുമുള്ള ക്വിസുകൾ, പാഠം പൂർത്തിയാക്കാനുള്ള രേഖാമൂലമുള്ള നിർദ്ദേശങ്ങൾ, ഒരു പരിഹാരം, ഒരു അസൈൻമെന്റ് എന്നിവയും അതിലേറെയും ഉൾപ്പെടുന്നു. ഞങ്ങളുടെ പ്രോജക്റ്റ് അധിഷ്‌ഠിത അദ്ധ്യാപനം പുതിയ കഴിവുകൾ സ്വായത്തമാക്കൻ നിങ്ങളെ അനുവദിക്കുന്നു. +മൈക്രോസോഫ്റ്റിലെ അസുർ ക്ലൗഡ് അഡ്വക്കേറ്റ്സ് ജാവാസ്ക്രിപ്റ്റ്, സിഎസ്എസ്, എച്ച്ടിഎംഎൽ അടിസ്ഥാനകാര്യങ്ങൾ എന്നിവയെക്കുറിച്ച് 12-ആഴ്ച, 24-പാഠ പാഠ്യപദ്ധതി വാഗ്ദാനം ചെയ്യുന്നതിൽ സന്തോഷമുണ്ട്. ഓരോ പാഠത്തിലും പാഠത്തിന് മുമ്പും ശേഷവുമുള്ള ക്വിസുകൾ, പാഠം പൂർത്തിയാക്കാനുള്ള രേഖാമൂലമുള്ള നിർദ്ദേശങ്ങൾ, ഒരു പരിഹാരം, ഒരു അസൈൻമെന്റ് എന്നിവയും അതിലേറെയും ഉൾപ്പെടുന്നു. ഞങ്ങളുടെ പ്രോജക്റ്റ് അധിഷ്‌ഠിത അദ്ധ്യാപനം പുതിയ കഴിവുകൾ സ്വായത്തമാക്കൻ നിങ്ങളെ അനുവദിക്കുന്നു. **ഞങ്ങളുടെ രചയിതാക്കളായ ജെൻ ലൂപ്പർ, ക്രിസ് നോറിംഗ്, ക്രിസ്റ്റഫർ ഹാരിസൺ, ജാസ്മിൻ ഗ്രീൻവേ, യോഹാൻ ലസോർസ, ഫ്ലോർ ഡ്രീസ്, സ്കെച്ച്നോട്ട് ആർട്ടിസ്റ്റ് ടോമിമി ഇമുറ എന്നിവർക്ക് ഹൃദയം നിറഞ്ഞ നന്ദി!** @@ -29,7 +29,7 @@ ## അദ്ധ്യാപനo -ഈ പാഠ്യപദ്ധതി നിർമ്മിക്കുമ്പോൾ ഞങ്ങൾ രണ്ട് പെഡഗോഗിക്കൽ സിദ്ധാന്തങ്ങൾ തിരഞ്ഞെടുത്തു: ഇത് പ്രോജക്റ്റ് അടിസ്ഥാനമാക്കിയുള്ളതാണെന്നും അതിൽ പതിവ് ക്വിസുകൾ ഉൾപ്പെടുന്നുവെന്നും ഉറപ്പാക്കുന്നു. ഈ പരമ്പരയുടെ അവസാനത്തോടെ, വിദ്യാർത്ഥികൾ ഒരു ടൈപ്പിംഗ് ഗെയിം, ഒരു വെർച്വൽ ടെറേറിയം, ഒരു 'ഗ്രീൻ' ബ്രൗസർ എക്സ്റ്റൻഷൻ, ഒരു 'സ്പെയ്സ് ഇൻവേഡേഴ്സ്' ടൈപ്പ് ഗെയിം, ഒരു ബിസിനസ്-ടൈപ്പ് ബാങ്കിംഗ് ആപ്പ് എന്നിവ നിർമ്മിക്കുകയും ജാവാസ്ക്രിപ്റ്റിന്റെ അടിസ്ഥാനകാര്യങ്ങൾ പഠിക്കുകയും ചെയ്യും , ഇന്നത്തെ വെബ് ഡെവലപ്പറിന്റെ ആധുനിക ടൂൾചെയിനിനൊപ്പം HTML, CSS എന്നിവയും. +ഈ പാഠ്യപദ്ധതി നിർമ്മിക്കുമ്പോൾ ഞങ്ങൾ രണ്ട് പെഡഗോഗിക്കൽ സിദ്ധാന്തങ്ങൾ തിരഞ്ഞെടുത്തു: ഇത് പ്രോജക്റ്റ് അടിസ്ഥാനമാക്കിയുള്ളതാണെന്നും അതിൽ പതിവ് ക്വിസുകൾ ഉൾപ്പെടുന്നുവെന്നും ഉറപ്പാക്കുന്നു. ഈ പരമ്പരയുടെ അവസാനത്തോടെ, വിദ്യാർത്ഥികൾ ഒരു ടൈപ്പിംഗ് ഗെയിം, ഒരു വെർച്വൽ ടെറേറിയം, ഒരു 'ഗ്രീൻ' ബ്രൗസർ എക്സ്റ്റൻഷൻ, ഒരു 'സ്പെയ്സ് ഇൻവേഡേഴ്സ്' ടൈപ്പ് ഗെയിം, ഒരു ബിസിനസ്-ടൈപ്പ് ബാങ്കിംഗ് ആപ്പ് എന്നിവ നിർമ്മിക്കുകയും ജാവാസ്ക്രിപ്റ്റിന്റെ അടിസ്ഥാനകാര്യങ്ങൾ പഠിക്കുകയും ചെയ്യും , ഇന്നത്തെ വെബ് ഡെവലപ്പറിന്റെ ആധുനിക ടൂൾചെയിനിനൊപ്പം HTML, CSS എന്നിവയും. > 🎓 ഈ പാഠ്യപദ്ധതിയിലെ ആദ്യ കുറച്ച് പാഠങ്ങൾ നിങ്ങൾക്ക് മൈക്രോസോഫ്റ്റ് ലേൺ നെ കുറിച്ചുള്ള ഒരു[പഠന പാത](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) ആയി എടുക്കാം. @@ -45,12 +45,12 @@ - ഓപ്ഷണൽ സ്കെച്ച്നോട്ട് - ഓപ്ഷണൽ അനുബന്ധ വീഡിയോ - പാഠത്തിനു മുമ്പുള്ള വാംഅപ്പ് ക്വിസ് -- എഴുതിയ പാഠഭാഗം +- എഴുതിയ പാഠഭാഗം - പ്രോജക്റ്റ് അധിഷ്‌ഠിത പാഠങ്ങൾക്കായി, പ്രോജക്റ്റ് എങ്ങനെ നിർമ്മിക്കാം എന്നതിനെക്കുറിച്ചുള്ള ഘട്ടം ഘട്ടമായുള്ള ഗൈഡുകൾ - വിജ്ഞാന പരിശോധനകൾ - ഒരു വെല്ലുവിളി - അനുബന്ധ വായന -- അസ്സൈൻമെന്റ് +- അസ്സൈൻമെന്റ് - പാഠാനന്തര ക്വിസ് > **ക്വിസുകളെക്കുറിച്ചുള്ള ഒരു കുറിപ്പ്**: എല്ലാ ക്വിസുകളും [ഈ ആപ്പിൽ](https://happy-mud-02d95f10f.azurestaticapps.net/) അടങ്ങിയിരിക്കുന്നു, മൂന്ന് ചോദ്യങ്ങൾ വീതമടങ്ങിയ മൊത്തം 48 ക്വിസുകൾ. അവ പാഠങ്ങൾക്കുള്ളിൽ നിന്ന് ബന്ധിപ്പിച്ചിരിക്കുന്നു, പക്ഷേ ക്വിസ് ആപ്പ് പ്രാദേശികമായി പ്രവർത്തിപ്പിക്കാൻ കഴിയും; 'ക്വിസ്-ആപ്പ്' ഫോൾഡറിലെ നിർദ്ദേശം പാലിക്കുക. അവ ക്രമേണ പ്രാദേശികവൽക്കരിക്കപ്പെടുന്നു. @@ -69,27 +69,27 @@ | 07 | JS അടിസ്ഥാനങ്ങൾ | അറേകളും ലൂപ്പുകളും | ജാവാസ്ക്രിപ്റ്റിലെ അറേകളും ലൂപ്പുകളും ഉപയോഗിച്ച് ഡാറ്റഉപയോഗിച്ച് പ്രവർത്തിക്കുക | [അറേകളും ലൂപ്പുകളും](/2-js-basics/4-arrays-loops/README.md) | ജാസ്മിൻ | | 08 | [ടെറേറിയം](/3-terrarium/solution/README.md) | HTML ൽ പരിശീലിക്കുക | ഒരു ലേഔട്ട് നിർമ്മിക്കുന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിച്ച് ഒരു ഓൺലൈൻ ടെറേറിയം സൃഷ്ടിക്കുന്നതിന് HTML നിർമ്മിക്കുക | [HTML ന്റെ ആമുഖം](/3-terrarium/1-intro-to-html/README.md) | ജെൻ | | 09 | [ടെറേറിയം](/3-terrarium/solution/README.md) | CSS ൽ പരിശീലിക്കുക | പേജ് പ്രതികരണാത്മകമാക്കുന്നതുൾപ്പെടെ CSS-ന്റെ അടിസ്ഥാനകാര്യങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിച്ചുകൊണ്ട് ഓൺലൈൻ ടെറേറിയം സ്റ്റൈൽ ചെയ്യുന്നതിന് സിഎസ്എസ് നിർമ്മിക്കുക | [CSS ന്റെ ആമുഖം](/3-terrarium/2-intro-to-css/README.md) | ജെൻ | -| 10 | [ടെറേറിയം](/3-terrarium/solution) | ജാവാസ്ക്രിപ്റ്റ് ക്ലോസ്രെസ്, ഡോം കൃത്രിമം | ക്ലോസ്രെസ്ന്റെയും ഡോം കൃത്രിമം ഉപയോഗിച്ചുകൊണ്ട് ടെറേറിയം ഒരു ഡ്രാഗ്/ഡ്രോപ്പ് ഇന്റർഫേസായി പ്രവർത്തനമുണ്ടാക്കാൻ ജാവാസ്ക്രിപ്റ്റ് നിർമ്മിക്കുക | [ജാവാസ്ക്രിപ്റ്റ് ക്ലോസ്രെസ്, ഡോം കൃത്രിമം](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | ജെൻ | -| 11 | [ടൈപ്പിംഗ് ഗെയിം](/4-typing-game/solution) | ടൈപ്പിംഗ് ഗെയിം നിർമ്മിക്കുക | നിങ്ങളുടെ ജാവാസ്ക്രിപ്റ്റ് ആപ്പിന്റെ ലോജിക് ഡ്രൈവ് ചെയ്യുന്നതിന് കീബോർഡ് ഇവന്റുകൾ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് മനസിലാക്കുക | [ഇവന്റ്-ഡ്രൈവിംഗ് പ്രോഗ്രാമിംഗ്](/4-typing-game/typing-game/README.md) | ക്രിസ്റ്റഫർ | -| 12 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution) | ബ്രൗസറുകളുമായി പ്രവർത്തിക്കുന്നു | ബ്രൗസറുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു, അവയുടെ ചരിത്രം, ബ്രൗസർ എക്സ്റ്റെൻഷന്റെ ആദ്യ ഘടകങ്ങൾ എങ്ങനെ സ്കഫോൾഡ് ആാമെന്ന് മനസിലാക്കുക | [ബ്രൗസറുകളെ കുറിച്ച്](/5-browser-extension/1-about-browsers/README.md) | ജെൻ | -| 13 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution) | ഒരു ഫോം നിർമ്മിക്കുക, ഒരു എപിഐ വിളിക്കുക, പ്രാദേശിക സംഭരണത്തിൽ വേരിയബിളുകൾ സംഭരിക്കുക | പ്രാദേശിക സംഭരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന വേരിയബിളുകൾ ഉപയോഗിച്ച് ഒരു API വിളിക്കുന്നതിനായി നിങ്ങളുടെ ബ്രൗസർ എക്സ്റ്റെൻഷന്റെ ജാവാസ്ക്രിപ്റ്റ് ഘടകങ്ങൾ നിർമ്മിക്കുക | [APIs, ഫോമുകളും ലോക്കൽ സ്റ്റോറേജും](/5-browser-extension/2-forms-browsers-local-storage/README.md) | ജെൻ | -| 14 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution) | ബ്രൗസറിലെ പശ്ചാത്തല പ്രക്രിയകൾ, വെബ് പ്രകടനം | എക്സ്റ്റെൻഷന്റെ ഐക്കൺ കൈകാര്യം ചെയ്യുന്നതിന് ബ്രൗസറിന്റെ പശ്ചാത്തല പ്രക്രിയകൾ ഉപയോഗിക്കുക; വെബ് പ്രകടനത്തെക്കുറിച്ചും നിർമ്മിക്കുന്നതിനുള്ള ചില ഒപ്റ്റിമൈസേഷനുകളെ കുറിച്ചും അറിയുക | [പശ്ചാത്തല ജോലികളും പ്രകടനവും](/5-browser-extension/3-background-tasks-and-performance/README.md) | ജെൻ | -| 15 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് കൂടുതൽ അഡ്വാൻസ്ഡ് ഗെയിം ഡെവലപ്പ് മെന്റ് | ഒരു ഗെയിം നിർമ്മിക്കുന്നതിനുള്ള തയ്യാറെടുപ്പിൽ ക്ലാസുകളും കോമ്പോസിഷൻ, പബ്/സബ് പാറ്റേൺ എന്നിവ ഉപയോഗിച്ച് അനന്തരാവകാശത്തെക്കുറിച്ച് അറിയുക | [അഡ്വാൻസ്ഡ് ഗെയിം ഡെവലപ്പ്മെന്റിന്റെ ആമുഖം](/6-space-game/1-introduction/README.md) | ക്രിസ് | -| 16 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | ക്യാൻവാസിലേക്ക് വരയ്ക്കുന്നു | ഒരു സ്ക്രീനിലേക്ക് ഘടകങ്ങൾ വരയ്ക്കാൻ ഉപയോഗിക്കുന്ന കാൻവാസ് API കുറിച്ച് അറിയുക | [ക്യാൻവാസിലേക്ക് വരയ്ക്കുക ](/6-space-game/2-drawing-to-canvas/README.md) | ക്രിസ് | -| 17 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | സ്ക്രീനിന് ചുറ്റും എലമെൻറ് ചലിപ്പിക്കുന്നു | കാർട്ടീഷ്യൻ നിർദ്ദേശാങ്കങ്ങളും കാൻവാസ് API ഉപയോഗിച്ച് മൂലകങ്ങൾക്ക് എങ്ങനെ ചലനം നേടാൻ കഴിയുമെന്ന് കണ്ടെത്തുക | [ചുറ്റും എലമെൻറ് ചലിപ്പിക്കുന്നു](/6-space-game/3-moving-elements-around/README.md) | ക്രിസ് | -| 18 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | കോളിഷൻ കണ്ടെത്തൽ | കീപ്രസ്സുകൾ ഉപയോഗിച്ച് ഘടകങ്ങൾ കൂട്ടിമുട്ടുകയും പരസ്പരം പ്രതികരിക്കുകയും ഗെയിമിന്റെ പ്രകടനം ഉറപ്പാക്കുന്നതിന് ഒരു കൂൾഡൗൺ ഫംഗ്ഷൻ നൽകുകയും ചെയ്യുക | [കൂട്ടിയിടി കണ്ടെത്തൽ](/6-space-game/4-collision-detection/README.md) | ക്രിസ് | -| 19 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | സ്കോർ നിലനിർത്തൽ | ഗെയിമിന്റെ നിലയെയും പ്രകടനത്തെയും അടിസ്ഥാനമാക്കി ഗണിത കണക്കുകൂട്ടലുകൾ നിർവഹിക്കുക | [സ്കോർ നിലനിർത്തൽ](/6-space-game/5-keeping-score/README.md) | ക്രിസ് | -| 20 | [സ്പേസ് ഗെയിം](/6-space-game/solution) | ഗെയിം അവസാനിപ്പിക്കുകയും പുനരാരംഭിക്കുകയും ചെയ്യുന്നു | ആസ്തികൾ വൃത്തിയാക്കുന്നതും വേരിയബിൾ മൂല്യങ്ങൾ പുനക്രമീകരിക്കുന്നതും ഉൾപ്പെടെ ഗെയിം അവസാനിപ്പിക്കുന്നതിനെകുറിച്ചും പുനരാരംഭിക്കുന്നതിനെ കുറിച്ചും അറിയുക | [അവസാനങ്ങളുടെ നിബന്ധനകൾ ](/6-space-game/6-end-condition/README.md) | ക്രിസ് | -| 21 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution) | HTML ഒരു വെബ് ആപ്പിലെ ടെംപ്ലേറ്റുകളും റൂട്ടുകളും | റൂട്ടിംഗും എച്ച്ടിഎംഎൽ ടെംപ്ലേറ്റുകളും ഉപയോഗിച്ച് ഒരു മൾട്ടിപേജ് വെബ് സൈറ്റിന്റെ ആർക്കിടെക്ചറിന്റെ സ്കഫോൾഡ് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് മനസിലാക്കുക | [HTML ടെംപ്ലേറ്റുകളും റൂട്ടുകളും](/7-bank-project/1-template-route/README.md) | യോഹാൻ | -| 22 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution) | ലോഗിൻ, രജിസ്ട്രേഷൻ ഫോം നിർമ്മിക്കുക | ഫോമുകൾ നിർമ്മിക്കുന്നതിനെ കുറിച്ചും വാലിഡേഷൻ റുട്ടീൻ കൈമാറുന്നതിനെ കുറിച്ചും അറിയുക | [ഫോമുകൾ](/7-bank-project/2-forms/README.md) | യോഹാൻ | -| 23 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution) | ഡാറ്റ കൊണ്ടുവരുന്നതും ഉപയോഗിക്കുന്നതുമായ രീതികൾ | ഡാറ്റ നിങ്ങളുടെ ആപ്പിലേക്ക് എങ്ങനെ ഒഴുകുന്നു, അത് എങ്ങനെ കൊണ്ടുവരാം, സംഭരിക്കാം, ഉപേക്ഷിക്കാം | [ഡാറ്റ](/7-bank-project/3-data/README.md) | യോഹാൻ | -| 24 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution) | സ്റ്റേറ്റ് മാനേജ്മെന്റിന്റെ ആശയങ്ങൾ | നിങ്ങളുടെ ആപ്പ് എങ്ങനെ സ്റ്റേറ്റ്നിലനിർത്തുന്നു, പ്രോഗ്രാമായി എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് അറിയുക | [സ്റ്റേറ്റ് മാനേജ്മെന്റ്](/7-bank-project/4-state-management/README.md) | യോഹാൻ | +| 10 | [ടെറേറിയം](/3-terrarium/solution/README.md) | ജാവാസ്ക്രിപ്റ്റ് ക്ലോസ്രെസ്, ഡോം കൃത്രിമം | ക്ലോസ്രെസ്ന്റെയും ഡോം കൃത്രിമം ഉപയോഗിച്ചുകൊണ്ട് ടെറേറിയം ഒരു ഡ്രാഗ്/ഡ്രോപ്പ് ഇന്റർഫേസായി പ്രവർത്തനമുണ്ടാക്കാൻ ജാവാസ്ക്രിപ്റ്റ് നിർമ്മിക്കുക | [ജാവാസ്ക്രിപ്റ്റ് ക്ലോസ്രെസ്, ഡോം കൃത്രിമം](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | ജെൻ | +| 11 | [ടൈപ്പിംഗ് ഗെയിം](/4-typing-game/solution/README.md) | ടൈപ്പിംഗ് ഗെയിം നിർമ്മിക്കുക | നിങ്ങളുടെ ജാവാസ്ക്രിപ്റ്റ് ആപ്പിന്റെ ലോജിക് ഡ്രൈവ് ചെയ്യുന്നതിന് കീബോർഡ് ഇവന്റുകൾ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് മനസിലാക്കുക | [ഇവന്റ്-ഡ്രൈവിംഗ് പ്രോഗ്രാമിംഗ്](/4-typing-game/typing-game/README.md) | ക്രിസ്റ്റഫർ | +| 12 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution/README.md) | ബ്രൗസറുകളുമായി പ്രവർത്തിക്കുന്നു | ബ്രൗസറുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു, അവയുടെ ചരിത്രം, ബ്രൗസർ എക്സ്റ്റെൻഷന്റെ ആദ്യ ഘടകങ്ങൾ എങ്ങനെ സ്കഫോൾഡ് ആാമെന്ന് മനസിലാക്കുക | [ബ്രൗസറുകളെ കുറിച്ച്](/5-browser-extension/1-about-browsers/README.md) | ജെൻ | +| 13 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution/README.md) | ഒരു ഫോം നിർമ്മിക്കുക, ഒരു എപിഐ വിളിക്കുക, പ്രാദേശിക സംഭരണത്തിൽ വേരിയബിളുകൾ സംഭരിക്കുക | പ്രാദേശിക സംഭരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന വേരിയബിളുകൾ ഉപയോഗിച്ച് ഒരു API വിളിക്കുന്നതിനായി നിങ്ങളുടെ ബ്രൗസർ എക്സ്റ്റെൻഷന്റെ ജാവാസ്ക്രിപ്റ്റ് ഘടകങ്ങൾ നിർമ്മിക്കുക | [APIs, ഫോമുകളും ലോക്കൽ സ്റ്റോറേജും](/5-browser-extension/2-forms-browsers-local-storage/README.md) | ജെൻ | +| 14 | [ഗ്രീൻ ബ്രൗസർ എക്സ്റ്റെൻഷൻ](/5-browser-extension/solution/README.md) | ബ്രൗസറിലെ പശ്ചാത്തല പ്രക്രിയകൾ, വെബ് പ്രകടനം | എക്സ്റ്റെൻഷന്റെ ഐക്കൺ കൈകാര്യം ചെയ്യുന്നതിന് ബ്രൗസറിന്റെ പശ്ചാത്തല പ്രക്രിയകൾ ഉപയോഗിക്കുക; വെബ് പ്രകടനത്തെക്കുറിച്ചും നിർമ്മിക്കുന്നതിനുള്ള ചില ഒപ്റ്റിമൈസേഷനുകളെ കുറിച്ചും അറിയുക | [പശ്ചാത്തല ജോലികളും പ്രകടനവും](/5-browser-extension/3-background-tasks-and-performance/README.md) | ജെൻ | +| 15 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് കൂടുതൽ അഡ്വാൻസ്ഡ് ഗെയിം ഡെവലപ്പ് മെന്റ് | ഒരു ഗെയിം നിർമ്മിക്കുന്നതിനുള്ള തയ്യാറെടുപ്പിൽ ക്ലാസുകളും കോമ്പോസിഷൻ, പബ്/സബ് പാറ്റേൺ എന്നിവ ഉപയോഗിച്ച് അനന്തരാവകാശത്തെക്കുറിച്ച് അറിയുക | [അഡ്വാൻസ്ഡ് ഗെയിം ഡെവലപ്പ്മെന്റിന്റെ ആമുഖം](/6-space-game/1-introduction/README.md) | ക്രിസ് | +| 16 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | ക്യാൻവാസിലേക്ക് വരയ്ക്കുന്നു | ഒരു സ്ക്രീനിലേക്ക് ഘടകങ്ങൾ വരയ്ക്കാൻ ഉപയോഗിക്കുന്ന കാൻവാസ് API കുറിച്ച് അറിയുക | [ക്യാൻവാസിലേക്ക് വരയ്ക്കുക ](/6-space-game/2-drawing-to-canvas/README.md) | ക്രിസ് | +| 17 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | സ്ക്രീനിന് ചുറ്റും എലമെൻറ് ചലിപ്പിക്കുന്നു | കാർട്ടീഷ്യൻ നിർദ്ദേശാങ്കങ്ങളും കാൻവാസ് API ഉപയോഗിച്ച് മൂലകങ്ങൾക്ക് എങ്ങനെ ചലനം നേടാൻ കഴിയുമെന്ന് കണ്ടെത്തുക | [ചുറ്റും എലമെൻറ് ചലിപ്പിക്കുന്നു](/6-space-game/3-moving-elements-around/README.md) | ക്രിസ് | +| 18 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | കോളിഷൻ കണ്ടെത്തൽ | കീപ്രസ്സുകൾ ഉപയോഗിച്ച് ഘടകങ്ങൾ കൂട്ടിമുട്ടുകയും പരസ്പരം പ്രതികരിക്കുകയും ഗെയിമിന്റെ പ്രകടനം ഉറപ്പാക്കുന്നതിന് ഒരു കൂൾഡൗൺ ഫംഗ്ഷൻ നൽകുകയും ചെയ്യുക | [കൂട്ടിയിടി കണ്ടെത്തൽ](/6-space-game/4-collision-detection/README.md) | ക്രിസ് | +| 19 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | സ്കോർ നിലനിർത്തൽ | ഗെയിമിന്റെ നിലയെയും പ്രകടനത്തെയും അടിസ്ഥാനമാക്കി ഗണിത കണക്കുകൂട്ടലുകൾ നിർവഹിക്കുക | [സ്കോർ നിലനിർത്തൽ](/6-space-game/5-keeping-score/README.md) | ക്രിസ് | +| 20 | [സ്പേസ് ഗെയിം](/6-space-game/solution/README.md) | ഗെയിം അവസാനിപ്പിക്കുകയും പുനരാരംഭിക്കുകയും ചെയ്യുന്നു | ആസ്തികൾ വൃത്തിയാക്കുന്നതും വേരിയബിൾ മൂല്യങ്ങൾ പുനക്രമീകരിക്കുന്നതും ഉൾപ്പെടെ ഗെയിം അവസാനിപ്പിക്കുന്നതിനെകുറിച്ചും പുനരാരംഭിക്കുന്നതിനെ കുറിച്ചും അറിയുക | [അവസാനങ്ങളുടെ നിബന്ധനകൾ ](/6-space-game/6-end-condition/README.md) | ക്രിസ് | +| 21 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution/README.md) | HTML ഒരു വെബ് ആപ്പിലെ ടെംപ്ലേറ്റുകളും റൂട്ടുകളും | റൂട്ടിംഗും എച്ച്ടിഎംഎൽ ടെംപ്ലേറ്റുകളും ഉപയോഗിച്ച് ഒരു മൾട്ടിപേജ് വെബ് സൈറ്റിന്റെ ആർക്കിടെക്ചറിന്റെ സ്കഫോൾഡ് എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് മനസിലാക്കുക | [HTML ടെംപ്ലേറ്റുകളും റൂട്ടുകളും](/7-bank-project/1-template-route/README.md) | യോഹാൻ | +| 22 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution/README.md) | ലോഗിൻ, രജിസ്ട്രേഷൻ ഫോം നിർമ്മിക്കുക | ഫോമുകൾ നിർമ്മിക്കുന്നതിനെ കുറിച്ചും വാലിഡേഷൻ റുട്ടീൻ കൈമാറുന്നതിനെ കുറിച്ചും അറിയുക | [ഫോമുകൾ](/7-bank-project/2-forms/README.md) | യോഹാൻ | +| 23 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution/README.md) | ഡാറ്റ കൊണ്ടുവരുന്നതും ഉപയോഗിക്കുന്നതുമായ രീതികൾ | ഡാറ്റ നിങ്ങളുടെ ആപ്പിലേക്ക് എങ്ങനെ ഒഴുകുന്നു, അത് എങ്ങനെ കൊണ്ടുവരാം, സംഭരിക്കാം, ഉപേക്ഷിക്കാം | [ഡാറ്റ](/7-bank-project/3-data/README.md) | യോഹാൻ | +| 24 | [ബാങ്കിംഗ് ആപ്പ്](/7-bank-project/solution/README.md) | സ്റ്റേറ്റ് മാനേജ്മെന്റിന്റെ ആശയങ്ങൾ | നിങ്ങളുടെ ആപ്പ് എങ്ങനെ സ്റ്റേറ്റ്നിലനിർത്തുന്നു, പ്രോഗ്രാമായി എങ്ങനെ കൈകാര്യം ചെയ്യണമെന്ന് അറിയുക | [സ്റ്റേറ്റ് മാനേജ്മെന്റ്](/7-bank-project/4-state-management/README.md) | യോഹാൻ | ## ഓഫ്‌ലൈൻ ആക്‌സസ്സ് നിങ്ങൾക്ക് ഈ ഡോക്യുമെന്റേഷൻ [Docsify](https://docsify.js.org/#/) ഉപയോഗിച്ച് ഓഫ്‌ലൈനിൽ പ്രവർത്തിപ്പിക്കാനാകും. ഈ റിപ്പോ ഫോർക്ക് ചെയ്യുക, [Docsify ഇന്സ്റ്റോള് ചെയ്യുക](https://docsify.js.org/#/quickstart) നിങ്ങളുടെ പ്രാദേശിക മെഷീനിൽ,തുടർന്ന് ഈ റിപ്പോയുടെ റൂട്ട് ഫോൾഡറിൽ `docsify serve` ടൈപ്പ് ചെയ്യുക. നിങ്ങളുടെ ലോക്കൽഹോസ്റ്റിൽ പോർട്ട് 3000 ൽ വെബ്സൈറ്റ് കാണാം : `localhost:3000`. -## പിഡിഫ് +## പിഡിഫ് എല്ലാ പാഠങ്ങളുടെയും ഒരു PDF കാണാം [ഇവിടെ](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) diff --git a/translations/README.pt-BR.md b/translations/README.pt-BR.md index 17b855b6..906bd227 100644 --- a/translations/README.pt-BR.md +++ b/translations/README.pt-BR.md @@ -77,21 +77,21 @@ Também podem ser acessados localmente pela pasta `quiz-app`. | 07 | Básico de JS | Arrays e Loops | Trabalhe com dados usando arrays e loops em JavaScript | [Arrays e Loops](/2-js-basics/4-arrays-loops/translations/README.pt.md) | Jasmine | | 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML na Prática | Construa o HTML para criar um terrário online, focando em construir um layout | [Introdução a HTML](/3-terrarium/1-intro-to-html/translations/README.pt-BR.md) | Jen | | 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS na Prática | Construa o CSS para estilizar o terrário online, focando no básico de inclusão CSS fazendo a página responsiva | [Introdução a CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution) | JavaScript closures, DOM manipulation | Construa o JavaScript para fazer o terrário funcionar como uma interface de arrastar / soltar, focando em fechamentos e manipulação de DOM | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution) | Construa um jogo de digitação | Aprenda a usar eventos de teclado para conduzir a lógica de seu aplicativo JavaScript | [Programação Orientada a Eventos](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Extensão de navegador verde](/5-browser-extension/solution) | Trabalhando com navegadores | Aprenda como os navegadores funcionam, seu histórico e como organizar os primeiros elementos de uma extensão do navegador | [Sobre navegadores](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Extensão de navegador verde](/5-browser-extension/solution) | Construindo um formulário, chamando uma API e armazenando variáveis ​​no armazenamento local | Construa os elementos JavaScript da extensão do seu navegador para chamar uma API usando variáveis ​​armazenadas no armazenamento local | [APIs, Formulários e Armazenamento Local](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Extensão de navegador verde](/5-browser-extension/solution) | Processos em segundo plano no navegador, desempenho da web | Use os processos de segundo plano do navegador para gerenciar o ícone da extensão; aprender sobre o desempenho da web e algumas otimizações para fazer | [Tarefas e desempenho em segundo plano](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Jogo Espacial](/6-space-game/solution) | Desenvolvimento de jogos mais avançado com JavaScript | Saiba mais sobre herança usando classes e composição e o padrão Pub / Sub, na preparação para a construção de um jogo | [Introdução ao desenvolvimento avançado de um jogo em Javascript](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Jogo Espacial](/6-space-game/solution) | Desenhar na tela | Saiba mais sobre a API Canvas, usada para desenhar elementos em uma tela | [Desenhando na Tela](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Jogo Espacial](/6-space-game/solution) | Movendo elementos pela tela | Descubra como os elementos podem ganhar movimento usando as coordenadas cartesianas e a API Canvas | [Movendo elementos pela Tela](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Jogo Espacial](/6-space-game/solution) | Detecção de Colisão | Faça os elementos colidirem e reagirem uns com os outros usando o pressionamento de teclas e fornecer uma função de resfriamento para garantir o desempenho do jogo | [Detecção de Colisão](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Jogo Espacial](/6-space-game/solution) | Mantendo a pontuação | Faça cálculos matemáticos com base no status e no desempenho do jogo | [Mantendo a pontuação](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Jogo Espacial](/6-space-game/solution) | Terminando e reiniciando o jogo | Saiba mais sobre como encerrar e reiniciar o jogo, incluindo limpeza de ativos e redefinição de valores de variáveis | [A condição de encerramento](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Banking App](/7-bank-project/solution) | Templates HTML e rotas em um aplicativo da web | Aprenda a criar o andaime da arquitetura de um site de várias páginas usando modelos de roteamento e HTML | [HTML Templates e Rotas](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Banking App](/7-bank-project/solution) | Criar um formulário de Login e Cadastro | Aprenda sobre a construção de formulários e rotinas de validação | [Formulários](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Banking App](/7-bank-project/solution) | Métodos de busca e uso de dados | Como os dados fluem para dentro e para fora do seu aplicativo, como buscá-los, armazená-los e descartá-los | [Dados](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Banking App](/7-bank-project/solution) | Conceitos de Gestão do Estado | Saiba como seu aplicativo mantém o estado e como gerenciá-lo de maneira programática | [Gestão de estados](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [Terrarium](/3-terrarium/solution/README.md) | JavaScript closures, DOM manipulation | Construa o JavaScript para fazer o terrário funcionar como uma interface de arrastar / soltar, focando em fechamentos e manipulação de DOM | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/README.md) | Construa um jogo de digitação | Aprenda a usar eventos de teclado para conduzir a lógica de seu aplicativo JavaScript | [Programação Orientada a Eventos](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [Extensão de navegador verde](/5-browser-extension/solution/README.md) | Trabalhando com navegadores | Aprenda como os navegadores funcionam, seu histórico e como organizar os primeiros elementos de uma extensão do navegador | [Sobre navegadores](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [Extensão de navegador verde](/5-browser-extension/solution/README.md) | Construindo um formulário, chamando uma API e armazenando variáveis ​​no armazenamento local | Construa os elementos JavaScript da extensão do seu navegador para chamar uma API usando variáveis ​​armazenadas no armazenamento local | [APIs, Formulários e Armazenamento Local](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [Extensão de navegador verde](/5-browser-extension/solution/README.md) | Processos em segundo plano no navegador, desempenho da web | Use os processos de segundo plano do navegador para gerenciar o ícone da extensão; aprender sobre o desempenho da web e algumas otimizações para fazer | [Tarefas e desempenho em segundo plano](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Jogo Espacial](/6-space-game/solution/README.md) | Desenvolvimento de jogos mais avançado com JavaScript | Saiba mais sobre herança usando classes e composição e o padrão Pub / Sub, na preparação para a construção de um jogo | [Introdução ao desenvolvimento avançado de um jogo em Javascript](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [Jogo Espacial](/6-space-game/solution/README.md) | Desenhar na tela | Saiba mais sobre a API Canvas, usada para desenhar elementos em uma tela | [Desenhando na Tela](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Jogo Espacial](/6-space-game/solution/README.md) | Movendo elementos pela tela | Descubra como os elementos podem ganhar movimento usando as coordenadas cartesianas e a API Canvas | [Movendo elementos pela Tela](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Jogo Espacial](/6-space-game/solution/README.md) | Detecção de Colisão | Faça os elementos colidirem e reagirem uns com os outros usando o pressionamento de teclas e fornecer uma função de resfriamento para garantir o desempenho do jogo | [Detecção de Colisão](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Jogo Espacial](/6-space-game/solution/README.md) | Mantendo a pontuação | Faça cálculos matemáticos com base no status e no desempenho do jogo | [Mantendo a pontuação](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Jogo Espacial](/6-space-game/solution/README.md) | Terminando e reiniciando o jogo | Saiba mais sobre como encerrar e reiniciar o jogo, incluindo limpeza de ativos e redefinição de valores de variáveis | [A condição de encerramento](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Banking App](/7-bank-project/solution/README.md) | Templates HTML e rotas em um aplicativo da web | Aprenda a criar o andaime da arquitetura de um site de várias páginas usando modelos de roteamento e HTML | [HTML Templates e Rotas](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Banking App](/7-bank-project/solution/README.md) | Criar um formulário de Login e Cadastro | Aprenda sobre a construção de formulários e rotinas de validação | [Formulários](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Banking App](/7-bank-project/solution/README.md) | Métodos de busca e uso de dados | Como os dados fluem para dentro e para fora do seu aplicativo, como buscá-los, armazená-los e descartá-los | [Dados](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [Banking App](/7-bank-project/solution/README.md) | Conceitos de Gestão do Estado | Saiba como seu aplicativo mantém o estado e como gerenciá-lo de maneira programática | [Gestão de estados](/7-bank-project/4-state-management/README.md) | Yohan | ## Acesso offline diff --git a/translations/README.te.md b/translations/README.te.md index ad667ccd..69ee4c1a 100644 --- a/translations/README.te.md +++ b/translations/README.te.md @@ -70,21 +70,21 @@ | 07 | జెఎస్ బేసిక్స్ | ఎరాయ్ లు మరియు లూప్ లు | జావాస్క్రిప్ట్ లో ఎరాయ్ లు మరియు లూప్ లను ఉపయోగించి డేటాతో పనిచేయండి. | [ఎరాయ్ లు మరియు లూప్ లు](/2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [టెర్రిరియం](/3-terrarium/solution/README.md) | ప్రాక్టీస్ లో హెచ్ టిఎమ్ ఎల్ | లేఅవుట్ నిర్మించడంపై దృష్టి సారించి, ఆన్ లైన్ టెర్రిరియం సృష్టించడం కొరకు హెచ్ టిఎమ్ ఎల్ ని రూపొందించండి. | [హెచ్ టిఎమ్ ఎల్ పరిచయం](/3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [టెర్రిరియం](/3-terrarium/solution/README.md) | ఆచరణలో సిఎస్ఎస్ | పేజీని ప్రతిస్పందించేలా చేయడం సహా సిఎస్ఎస్ యొక్క ప్రాథమికాంశాలపై దృష్టి సారించి, ఆన్ లైన్ టెర్రరియంస్టైల్ చేయడానికి సిఎస్ఎస్ ని నిర్మించండి. | [సిఎస్ఎస్ పరిచయం](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [టెర్రిరియం](/3-terrarium/solution) | జావాస్క్రిప్ట్ మూసివేతలు, డి.ఒ.ఎం మానిప్యులేషన్ | క్లోజర్లు మరియు డివోఎమ్ మానిప్యులేషన్ పై దృష్టి సారించి, డ్రాగ్/డ్రాప్ ఇంటర్ ఫేస్ వలే టెర్రిరియం పనిచేయడానికి జావాస్క్రిప్ట్ ని రూపొందించండి. | [జావాస్క్రిప్ట్ మూసివేతలు, డి.ఒ.ఎం మానిప్యులేషన్](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [టైపింగ్ గేమ్](/4-typing-game/solution) | టైపింగ్ గేమ్ నిర్మించండి | మీ జావాస్క్రిప్ట్ యాప్ యొక్క లాజిక్ డ్రైవ్ చేయడం కొరకు కీబోర్డ్ ఈవెంట్ లను ఎలా ఉపయోగించాలో తెలుసుకోండి. | [ఈవెంట్ ఆధారిత ప్రోగ్రామింగ్](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution) | బ్రౌజర్ లతో పనిచేయడం | బ్రౌజర్ లు ఏవిధంగా పనిచేస్తాయి, వాటి చరిత్ర మరియు బ్రౌజర్ పొడిగింపు యొక్క మొదటి ఎలిమెంట్ లను ఎలా పరంజా చేయాలో తెలుసుకోండి. | [బ్రౌజర్ల గురించి](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution) | ఒక ఫారాన్ని నిర్మించడం, APఐని పిలవడం మరియు స్థానిక స్టోరేజీలో వేరియబుల్స్ నిల్వ చేయడం | స్థానిక స్టోరేజీలో నిల్వ చేయబడ్డ వేరియబుల్స్ ఉపయోగించి APఐకి కాల్ చేయడం కొరకు మీ బ్రౌజర్ పొడిగింపు యొక్క జావాస్క్రిప్ట్ ఎలిమెంట్ లను రూపొందించండి. | [APఐలు, ఫారాలు మరియు స్థానిక స్టోరేజీ](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution) | బ్రౌజర్ లో నేపథ్య ప్రక్రియలు, వెబ్ పనితీరు | ఎక్స్ టెన్షన్ యొక్క ఐకాన్ ని నిర్వహించడం కొరకు బ్రౌజర్ యొక్క బ్యాక్ గ్రౌండ్ ప్రాసెస్ లను ఉపయోగించండి. వెబ్ పనితీరు మరియు కొన్ని ఆప్టిమైజేషన్ ల గురించి తెలుసుకోండి | [బ్యాక్ గ్రౌండ్ టాస్క్ లు మరియు పనితీరు](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [స్పేస్ గేమ్](/6-space-game/solution) | జావాస్క్రిప్ట్ తో మరింత అధునాతన గేమ్ డెవలప్ మెంట్ | ఒక గేమ్ ని రూపొందించడం కొరకు సిద్ధం చేయడం కొరకు క్లాసులు మరియు కంపోజిషన్ మరియు పబ్/సబ్ ప్యాట్రన్ రెండింటిని ఉపయోగించి ఇన్హెరిటెన్స్ గురించి తెలుసుకోండి. | [అధునాతన గేమ్ డెవలప్ మెంట్ పరిచయం](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [స్పేస్ గేమ్](/6-space-game/solution) | కాన్వాస్ కు డ్రాయింగ్ | స్క్రీన్ కు ఎలిమెంట్ లను గీయడం కొరకు ఉపయోగించే కాన్వాస్ APఐ గురించి తెలుసుకోండి. | [కాన్వాస్ కు డ్రాయింగ్](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [స్పేస్ గేమ్](/6-space-game/solution) | స్క్రీన్ చుట్టూ మూలకాలను కదిలించడం | కార్టేసియన్ కోఆర్డినేట్ లు మరియు కాన్వాస్ ఎపిఐఉపయోగించి ఎలిమెంట్ లు చలనాన్ని ఎలా పొందగలవో కనుగొనండి. | [చుట్టూ మూలకాలను తరలించడం](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [స్పేస్ గేమ్](/6-space-game/solution) | తాడన గుర్తింపు | కీప్రెస్ లను ఉపయోగించి ఎలిమెంట్ లు ఒకదానికొకటి ఢీకొనడం మరియు ప్రతిస్పందించేలా చేయడం మరియు గేమ్ యొక్క పనితీరును ధృవీకరించడం కొరకు కూల్ డౌన్ ఫంక్షన్ ని అందించడం | [తాడన గుర్తింపు](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [స్పేస్ గేమ్](/6-space-game/solution) | స్కోరును ఉంచడం | ఆట యొక్క స్థితి మరియు పనితీరు ఆధారంగా గణిత గణనలు నిర్వహించండి | [కీపింగ్ స్కోరు](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [స్పేస్ గేమ్](/6-space-game/solution) | ఆటను ముగించడం మరియు తిరిగి ప్రారంభించడం | ఆస్తులను శుభ్రం చేయడం మరియు వేరియబుల్ విలువలను రీసెట్ చేయడం సహా గేమ్ ని ముగించడం మరియు తిరిగి ప్రారంభించడం గురించి తెలుసుకోండి. | [ముగింపు పరిస్థితి](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution) | వెబ్ యాప్ లో హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లు మరియు రూట్ లు | రూటింగ్ మరియు హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లను ఉపయోగించి మల్టీపేజీ వెబ్ సైట్ యొక్క ఆర్కిటెక్చర్ యొక్క పరంజాను ఎలా సృష్టించాలో తెలుసుకోండి. | [హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లు మరియు రూట్ లు](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution) | లాగిన్ మరియు రిజిస్ట్రేషన్ ఫారాన్ని రూపొందించండి | బిల్డింగ్ ఫారాలు మరియు ధ్రువీకరణ రొటీన్ ల హ్యాండింగ్ గురించి తెలుసుకోండి | [రూపాలు](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution) | డేటాను పొందడం మరియు ఉపయోగించే విధానాలు | డేటా మీ యాప్ లో మరియు బయటకు ఎలా ప్రవహిస్తుంది, దానిని ఎలా తీసుకురావాలి, నిల్వ చేయాలి మరియు పారవేయాలి | [రూపాలు](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution) | స్టేట్ మేనేజ్ మెంట్ యొక్క భావనలు | మీ యాప్ స్థితిని ఎలా నిలుపుకుందో మరియు దానిని ప్రోగ్రామ్ గా ఎలా నిర్వహించాలో తెలుసుకోండి. | [రాష్ట్ర నిర్వహణ](/7-bank-project/4-state-management/README.md) | Yohan | +| 10 | [టెర్రిరియం](/3-terrarium/solution/README.md) | జావాస్క్రిప్ట్ మూసివేతలు, డి.ఒ.ఎం మానిప్యులేషన్ | క్లోజర్లు మరియు డివోఎమ్ మానిప్యులేషన్ పై దృష్టి సారించి, డ్రాగ్/డ్రాప్ ఇంటర్ ఫేస్ వలే టెర్రిరియం పనిచేయడానికి జావాస్క్రిప్ట్ ని రూపొందించండి. | [జావాస్క్రిప్ట్ మూసివేతలు, డి.ఒ.ఎం మానిప్యులేషన్](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | [టైపింగ్ గేమ్](/4-typing-game/solution/README.md) | టైపింగ్ గేమ్ నిర్మించండి | మీ జావాస్క్రిప్ట్ యాప్ యొక్క లాజిక్ డ్రైవ్ చేయడం కొరకు కీబోర్డ్ ఈవెంట్ లను ఎలా ఉపయోగించాలో తెలుసుకోండి. | [ఈవెంట్ ఆధారిత ప్రోగ్రామింగ్](/4-typing-game/typing-game/README.md) | Christopher | +| 12 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution/README.md) | బ్రౌజర్ లతో పనిచేయడం | బ్రౌజర్ లు ఏవిధంగా పనిచేస్తాయి, వాటి చరిత్ర మరియు బ్రౌజర్ పొడిగింపు యొక్క మొదటి ఎలిమెంట్ లను ఎలా పరంజా చేయాలో తెలుసుకోండి. | [బ్రౌజర్ల గురించి](/5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution/README.md) | ఒక ఫారాన్ని నిర్మించడం, APఐని పిలవడం మరియు స్థానిక స్టోరేజీలో వేరియబుల్స్ నిల్వ చేయడం | స్థానిక స్టోరేజీలో నిల్వ చేయబడ్డ వేరియబుల్స్ ఉపయోగించి APఐకి కాల్ చేయడం కొరకు మీ బ్రౌజర్ పొడిగింపు యొక్క జావాస్క్రిప్ట్ ఎలిమెంట్ లను రూపొందించండి. | [APఐలు, ఫారాలు మరియు స్థానిక స్టోరేజీ](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | [గ్రీన్ బ్రౌజర్ పొడిగింపు](/5-browser-extension/solution/README.md) | బ్రౌజర్ లో నేపథ్య ప్రక్రియలు, వెబ్ పనితీరు | ఎక్స్ టెన్షన్ యొక్క ఐకాన్ ని నిర్వహించడం కొరకు బ్రౌజర్ యొక్క బ్యాక్ గ్రౌండ్ ప్రాసెస్ లను ఉపయోగించండి. వెబ్ పనితీరు మరియు కొన్ని ఆప్టిమైజేషన్ ల గురించి తెలుసుకోండి | [బ్యాక్ గ్రౌండ్ టాస్క్ లు మరియు పనితీరు](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | జావాస్క్రిప్ట్ తో మరింత అధునాతన గేమ్ డెవలప్ మెంట్ | ఒక గేమ్ ని రూపొందించడం కొరకు సిద్ధం చేయడం కొరకు క్లాసులు మరియు కంపోజిషన్ మరియు పబ్/సబ్ ప్యాట్రన్ రెండింటిని ఉపయోగించి ఇన్హెరిటెన్స్ గురించి తెలుసుకోండి. | [అధునాతన గేమ్ డెవలప్ మెంట్ పరిచయం](/6-space-game/1-introduction/README.md) | Chris | +| 16 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | కాన్వాస్ కు డ్రాయింగ్ | స్క్రీన్ కు ఎలిమెంట్ లను గీయడం కొరకు ఉపయోగించే కాన్వాస్ APఐ గురించి తెలుసుకోండి. | [కాన్వాస్ కు డ్రాయింగ్](/6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | స్క్రీన్ చుట్టూ మూలకాలను కదిలించడం | కార్టేసియన్ కోఆర్డినేట్ లు మరియు కాన్వాస్ ఎపిఐఉపయోగించి ఎలిమెంట్ లు చలనాన్ని ఎలా పొందగలవో కనుగొనండి. | [చుట్టూ మూలకాలను తరలించడం](/6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | తాడన గుర్తింపు | కీప్రెస్ లను ఉపయోగించి ఎలిమెంట్ లు ఒకదానికొకటి ఢీకొనడం మరియు ప్రతిస్పందించేలా చేయడం మరియు గేమ్ యొక్క పనితీరును ధృవీకరించడం కొరకు కూల్ డౌన్ ఫంక్షన్ ని అందించడం | [తాడన గుర్తింపు](/6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | స్కోరును ఉంచడం | ఆట యొక్క స్థితి మరియు పనితీరు ఆధారంగా గణిత గణనలు నిర్వహించండి | [కీపింగ్ స్కోరు](/6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [స్పేస్ గేమ్](/6-space-game/solution/README.md) | ఆటను ముగించడం మరియు తిరిగి ప్రారంభించడం | ఆస్తులను శుభ్రం చేయడం మరియు వేరియబుల్ విలువలను రీసెట్ చేయడం సహా గేమ్ ని ముగించడం మరియు తిరిగి ప్రారంభించడం గురించి తెలుసుకోండి. | [ముగింపు పరిస్థితి](/6-space-game/6-end-condition/README.md) | Chris | +| 21 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution/README.md) | వెబ్ యాప్ లో హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లు మరియు రూట్ లు | రూటింగ్ మరియు హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లను ఉపయోగించి మల్టీపేజీ వెబ్ సైట్ యొక్క ఆర్కిటెక్చర్ యొక్క పరంజాను ఎలా సృష్టించాలో తెలుసుకోండి. | [హెచ్ టిఎమ్ ఎల్ టెంప్లెట్ లు మరియు రూట్ లు](/7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution/README.md) | లాగిన్ మరియు రిజిస్ట్రేషన్ ఫారాన్ని రూపొందించండి | బిల్డింగ్ ఫారాలు మరియు ధ్రువీకరణ రొటీన్ ల హ్యాండింగ్ గురించి తెలుసుకోండి | [రూపాలు](/7-bank-project/2-forms/README.md) | Yohan | +| 23 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution/README.md) | డేటాను పొందడం మరియు ఉపయోగించే విధానాలు | డేటా మీ యాప్ లో మరియు బయటకు ఎలా ప్రవహిస్తుంది, దానిని ఎలా తీసుకురావాలి, నిల్వ చేయాలి మరియు పారవేయాలి | [రూపాలు](/7-bank-project/3-data/README.md) | Yohan | +| 24 | [బ్యాంకింగ్ యాప్](/7-bank-project/solution/README.md) | స్టేట్ మేనేజ్ మెంట్ యొక్క భావనలు | మీ యాప్ స్థితిని ఎలా నిలుపుకుందో మరియు దానిని ప్రోగ్రామ్ గా ఎలా నిర్వహించాలో తెలుసుకోండి. | [రాష్ట్ర నిర్వహణ](/7-bank-project/4-state-management/README.md) | Yohan | ## ఆఫ్ లైన్ యాక్సెస్ From a8972d25d7ed02ed9a8a6a3db6bdcd0515accdce Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Thu, 3 Feb 2022 03:47:51 +0000 Subject: [PATCH 07/58] Fix small typo (#585) --- .../5-keeping-score/translations/README.fr.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/6-space-game/5-keeping-score/translations/README.fr.md b/6-space-game/5-keeping-score/translations/README.fr.md index 448db363..ad4de212 100644 --- a/6-space-game/5-keeping-score/translations/README.fr.md +++ b/6-space-game/5-keeping-score/translations/README.fr.md @@ -1,4 +1,4 @@ -# Construire un jeu de l'espace - Partie 5 : scores et vies +# Construire un jeu de l'espace - Partie 5: scores et vies ## Quiz de pré-lecture @@ -17,7 +17,7 @@ ctx.textAlign = "right"; ctx.fillText("show this on the screen", 0, 0); ``` -✅ En savoir plus sur [comment ajouter du texte à un canvas ](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text), et n'hésitez pas à rendre le vôtre plus sophistiqué ! +✅ En savoir plus sur [comment ajouter du texte à un canvas ](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text), et n'hésitez pas à rendre le vôtre plus sophistiqué! ## La vie, comme concept de jeu @@ -25,14 +25,14 @@ Le concept d'avoir une vie dans un jeu n'est qu'un nombre. Dans le contexte d'un ## Ce qu'il faut construire -Ajoutons les éléments suivants à votre jeu : +Ajoutons les éléments suivants à votre jeu: -- **Score de jeu** : Pour chaque navire ennemi détruit, le héros devrait recevoir quelques points, nous suggérons 100 points par navire. Le score du jeu devrait être affiché en bas à gauche. -- **Vie** : Votre navire a trois vies. Vous perdez une vie chaque fois qu'un navire ennemi entre en collision avec vous. Un score de vie devrait être affiché en bas à droite et être composé du graphique suivant [image de vie](solution/assets/life.png). +- **Score de jeu**: Pour chaque navire ennemi détruit, le héros devrait recevoir quelques points, nous suggérons 100 points par navire. Le score du jeu devrait être affiché en bas à gauche. +- **Vie**: Votre navire a trois vies. Vous perdez une vie chaque fois qu'un navire ennemi entre en collision avec vous. Un score de vie devrait être affiché en bas à droite et être composé du graphique suivant ![image de vie](../solution/assets/life.png). ## Étapes recommandées -Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire `your-work`. Il devrait contenir les éléments suivants : +Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire `your-work`. Il devrait contenir les éléments suivants: ```bash -| assets @@ -44,7 +44,7 @@ Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire -| package.json ``` -Vous démarrez votre projet dans le dossier `your_work` en tapant : +Vous démarrez votre projet dans le dossier `your_work` en tapant: ```bash cd your-work @@ -55,13 +55,13 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 ### Ajouter du code -1. **Copiez les éléments nécessaires** du dossier `solution/assets/` dans le dossier `your-work` ; vous allez ajouter un élément `life.png`. Ajoutez l'image lifeImg à la fonction window.onload : +1. **Copiez les éléments nécessaires** du dossier `solution/assets/` dans le dossier `your-work` ; vous allez ajouter un élément `life.png`. Ajoutez l'image lifeImg à la fonction window.onload: ```javascript lifeImg = await loadTexture("assets/life.png"); ``` -1. Ajoutez le `lifeImg` à la liste des éléments : +1. Ajoutez le `lifeImg` à la liste des éléments: ```javascript let heroImg, @@ -73,7 +73,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 2. **Ajoutez des variables**. Ajoutez le code qui représente votre score total (0) et les vies restantes (3), affichez ces scores sur un écran. -3. **Étendre la fonction `updateGameObjects()`**. Étendre la fonction `updateGameObjects()` pour gérer les collisions avec les ennemis : +3. **Étendre la fonction `updateGameObjects()`**. Étendre la fonction `updateGameObjects()` pour gérer les collisions avec les ennemis: ```javascript enemies.forEach(enemy => { @@ -85,14 +85,14 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 ``` 4. **Ajouter `life` et `points`**. - 1. **Initialiser les variables**. Sous `this.cooldown = 0` dans la classe `Hero` , définissez la vie et les points : + 1. **Initialiser les variables**. Sous `this.cooldown = 0` dans la classe `Hero` , définissez la vie et les points: ```javascript this.life = 3; this.points = 0; ``` - 1. **Dessinez les variables à l'écran**. Dessinez ces valeurs à l'écran : + 1. **Dessinez les variables à l'écran**. Dessinez ces valeurs à l'écran: ```javascript function drawLife() { @@ -126,7 +126,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 drawLife(); ``` -1. **Mettre en œuvre les règles du jeu**. Mettez en œuvre les règles du jeu suivantes : +1. **Mettre en œuvre les règles du jeu**. Mettez en œuvre les règles du jeu suivantes: 1. **Pour chaque collision entre héros et ennemis**, retirez une vie. @@ -143,7 +143,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 2. **Pour chaque laser qui touche un ennemi**, augmentez le score du jeu de 100 points. - Étendez la classe Hero pour faire cet ajout : + Étendez la classe Hero pour faire cet ajout: ```javascript incrementPoints() { @@ -151,7 +151,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 } ``` - Ajoutez ces fonctions à vos émetteurs d'événements de collision : + Ajoutez ces fonctions à vos émetteurs d'événements de collision: ```javascript eventEmitter.on(Messages.COLLISION_ENEMY_LASER, (_, { first, second }) => { @@ -166,15 +166,15 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 }); ``` -✅ Faites une petite recherche pour découvrir d'autres jeux créés à l'aide de JavaScript/Canvas. Quels sont leurs points communs ? +✅ Faites une petite recherche pour découvrir d'autres jeux créés à l'aide de JavaScript/Canvas. Quels sont leurs points communs? -À la fin de ce travail, vous devriez voir les petits vaisseaux de "vie" en bas à droite, les points en bas à gauche, et vous devriez voir votre compte de vie diminuer lorsque vous entrez en collision avec des ennemis et vos points augmenter lorsque vous tirez sur des ennemis. Bien joué ! Votre jeu est presque terminé. +À la fin de ce travail, vous devriez voir les petits vaisseaux de "vie" en bas à droite, les points en bas à gauche, et vous devriez voir votre compte de vie diminuer lorsque vous entrez en collision avec des ennemis et vos points augmenter lorsque vous tirez sur des ennemis. Bien joué! Votre jeu est presque terminé. --- ## 🚀 Challenge -Votre code est presque complet. Pouvez-vous envisager vos prochaines étapes ? +Votre code est presque complet. Pouvez-vous envisager vos prochaines étapes? ## Quiz post-lecture @@ -182,7 +182,7 @@ Votre code est presque complet. Pouvez-vous envisager vos prochaines étapes ? ## Révision et autoformation -Recherchez des moyens d'incrémenter et de décrémenter les scores et les vies. Il existe des moteurs de jeu intéressants comme [PlayFab](https://playfab.com). Comment l'utilisation de l'un d'eux pourrait-elle améliorer votre jeu ? +Recherchez des moyens d'incrémenter et de décrémenter les scores et les vies. Il existe des moteurs de jeu intéressants comme [PlayFab](https://playfab.com). Comment l'utilisation de l'un d'eux pourrait-elle améliorer votre jeu? ## Travail à faire From 972c40d10304267b926c9fff163693650ac334fe Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Thu, 3 Feb 2022 03:48:22 +0000 Subject: [PATCH 08/58] Suggest more accurate translation (#584) --- .../6-end-condition/translations/README.fr.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/6-space-game/6-end-condition/translations/README.fr.md b/6-space-game/6-end-condition/translations/README.fr.md index cd729f37..8b85f072 100644 --- a/6-space-game/6-end-condition/translations/README.fr.md +++ b/6-space-game/6-end-condition/translations/README.fr.md @@ -1,15 +1,15 @@ -# Construire un jeu de l'espace Partie 6 : Fin et redémarrage +# Construire un jeu de l'espace Partie 6: Fin et redémarrage ## Quiz de prélecture [Quiz de prélecture](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/39?loc=fr) -Il existe différentes façons d'exprimer une "condition de fin" dans un jeu. C'est à vous, en tant que créateur du jeu, de dire pourquoi le jeu est terminé. Voici quelques raisons, si nous supposons que nous parlons du jeu spatial que vous avez construit jusqu'à présent : +Il existe différentes façons d'exprimer et de terminer une condition dans un jeu. C'est à vous, en tant que créateur du jeu, de dire pourquoi le jeu est terminé. Voici quelques raisons, si nous supposons que nous parlons du jeu spatial que vous avez construit jusqu'à présent: -- **`N`Les navires ennemis ont été détruits** : Si vous divisez un jeu en plusieurs niveaux, il est assez fréquent que vous deviez détruire `N` vaisseaux ennemis pour terminer un niveau. -- **Votre navire a été détruit** : Il y a certainement des jeux où vous perdez la partie si votre vaisseau est détruit. Une autre approche commune est que vous avez le concept de vies. Chaque fois que votre vaisseau est détruit, une vie est déduite. Une fois que toutes les vies ont été perdues, vous perdez la partie. -- **Vous avez collecté `N` points** : Une autre condition de fin commune est que vous accumuliez des points. La façon dont vous obtenez des points dépend de vous, mais il est assez courant d'attribuer des points à diverses activités comme la destruction d'un navire ennemi ou la collecte d'objets que les objets *laissent tomber* lorsqu'ils sont détruits. -- Compléter un niveau** : Cela peut impliquer plusieurs conditions telles que `X` navires ennemis détruits, `Y` points collectés ou peut-être qu'un objet spécifique a été collecté. +- **`N`Les navires ennemis ont été détruits**: Si vous divisez un jeu en plusieurs niveaux, il est assez fréquent que vous deviez détruire `N` vaisseaux ennemis pour terminer un niveau. +- **Votre navire a été détruit**: Il y a certainement des jeux où vous perdez la partie si votre vaisseau est détruit. Une autre approche commune est que vous avez le concept de vies. Chaque fois que votre vaisseau est détruit, une vie est déduite. Une fois que toutes les vies ont été perdues, vous perdez la partie. +- **Vous avez collecté `N` points**: Une autre condition de fin commune est que vous accumuliez des points. La façon dont vous obtenez des points dépend de vous, mais il est assez courant d'attribuer des points à diverses activités comme la destruction d'un navire ennemi ou la collecte d'objets que les objets *laissent tomber* lorsqu'ils sont détruits. +- **Compléter un niveau**: Cela peut impliquer plusieurs conditions telles que `X` navires ennemis détruits, `Y` points collectés ou peut-être qu'un objet spécifique a été collecté. ## Redémarrage @@ -20,14 +20,14 @@ Si les gens apprécient votre jeu, ils auront probablement envie d'y rejouer. Lo ## Ce qu'il faut construire -Vous allez ajouter ces règles à votre jeu : +Vous allez ajouter ces règles à votre jeu: 1. **Gagner la partie**. Une fois que tous les navires ennemis ont été détruits, vous gagnez la partie. Affichez en outre une sorte de message de victoire. -1. **Démarrer**. Une fois que toutes les vies sont perdues ou que la partie est gagnée, vous devez proposer un moyen de redémarrer la partie. N'oubliez pas ! Vous devrez réinitialiser le jeu et l'état précédent du jeu devra être effacé. +1. **Démarrer**. Une fois que toutes les vies sont perdues ou que la partie est gagnée, vous devez proposer un moyen de redémarrer la partie. N'oubliez pas! Vous devrez réinitialiser le jeu et l'état précédent du jeu devra être effacé. ## Mesures recommandées -Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire `your-work`. Il devrait contenir les éléments suivants : +Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire `your-work`. Il devrait contenir les éléments suivants: ```bash -| assets @@ -40,7 +40,7 @@ Localisez les fichiers qui ont été créés pour vous dans le sous-répertoire -| package.json ``` -Vous démarrez votre projet dans le dossier `your_work` en tapant : +Vous démarrez votre projet dans le dossier `your_work` en tapant: ```bash cd your-work @@ -49,11 +49,11 @@ npm start Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:5000`. Ouvrez un navigateur et entrez cette adresse. Votre jeu devrait être dans un état jouable. -> astuce : pour éviter les avertissements dans Visual Studio Code, modifiez la fonction `window.onload` pour appeler `gameLoopId` tel quel (sans `let`), et déclarez le gameLoopId en haut du fichier, indépendamment : `let gameLoopId;` +> astuce: pour éviter les avertissements dans Visual Studio Code, modifiez la fonction `window.onload` pour appeler `gameLoopId` tel quel (sans `let`), et déclarez le gameLoopId en haut du fichier, indépendamment: `let gameLoopId;` ### Ajouter du code -1. **Condition de fin de parcours**. Ajoutez du code qui garde la trace du nombre d'ennemis, ou si le vaisseau du héros a été détruit en ajoutant ces deux fonctions : +1. **Condition de fin de parcours**. Ajoutez du code qui garde la trace du nombre d'ennemis, ou si le vaisseau du héros a été détruit en ajoutant ces deux fonctions: ```javascript function isHeroDead() { @@ -66,7 +66,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 } ``` -1. **Ajouter de la logique aux gestionnaires de messages**. Modifiez le `eventEmitter` pour gérer ces conditions : +1. **Ajouter de la logique aux gestionnaires de messages**. Modifiez le `eventEmitter` pour gérer ces conditions: ```javascript eventEmitter.on(Messages.COLLISION_ENEMY_LASER, (_, { first, second }) => { @@ -100,7 +100,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 }); ``` -1. **Ajouter de nouveaux types de messages**. Ajoutez ces messages à l'objet constantes : +1. **Ajouter de nouveaux types de messages**. Ajoutez ces messages à l'objet constants: ```javascript GAME_END_LOSS: "GAME_END_LOSS", @@ -109,7 +109,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 1. **Ajouter le code de redémarrage** code qui redémarre le jeu à la pression d'un bouton sélectionné. - 1. **Écouter la touche pressée `Enter`**. Modifiez l'eventListener de votre fenêtre pour écouter cette pression : + 1. **Écouter la touche pressée `Enter`**. Modifiez l'eventListener de votre fenêtre pour écouter cette pression: ```javascript else if(evt.key === "Enter") { @@ -117,17 +117,17 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 } ``` - 1. **Ajouter un message de redémarrage**. Ajoutez ce message à votre constante de messages : + 1. **Ajouter un message de redémarrage**. Ajoutez ce message à votre constante Messages: ```javascript KEY_EVENT_ENTER: "KEY_EVENT_ENTER", ``` -1. **Mettre en œuvre les règles du jeu**. Mettez en œuvre les règles du jeu suivantes : +1. **Mettre en œuvre les règles du jeu**. Mettez en œuvre les règles du jeu suivantes: 1. **Condition de victoire du joueur**. Lorsque tous les navires ennemis sont détruits, affichez un message de victoire. - 1. Tout d'abord, créez une fonction `displayMessage()` : + 1. Tout d'abord, créez une fonction `displayMessage()`: ```javascript function displayMessage(message, color = "red") { @@ -138,7 +138,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 } ``` - 1. Créez une fonction `endGame()` : + 1. Créez une fonction `endGame()`: ```javascript function endGame(win) { @@ -165,7 +165,7 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 1. **Logique de redémarrage**. Lorsque toutes les vies sont perdues ou que le joueur a gagné la partie, affichez que le jeu peut être redémarré. En outre, redémarrez le jeu lorsque la touche *redémarrage* est enfoncée (vous pouvez décider quelle touche doit être affectée au redémarrage). - 1. Créez la fonction `resetGame()` : + 1. Créez la fonction `resetGame()`: ```javascript function resetGame() { @@ -202,13 +202,13 @@ Ce qui précède va démarrer un serveur HTTP sur l'adresse `http://localhost:50 } ``` -👽 💥 🚀 Félicitations, capitaine ! Ton jeu est terminé ! Bien joué ! 🚀 💥 👽 +👽 💥 🚀 Félicitations, capitaine! Ton jeu est terminé! Bien joué! 🚀 💥 👽 --- ## 🚀 Défi -Ajoutez un son ! Pouvez-vous ajouter un son pour améliorer votre jeu, par exemple lorsqu'un laser est touché, ou lorsque le héros meurt ou gagne ? Jetez un coup d'œil à ce [bac à sable](https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_audio_play) pour apprendre à jouer un son en utilisant JavaScript. +Ajoutez un son! Pouvez-vous ajouter un son pour améliorer votre jeu, par exemple lorsqu'un laser est touché, ou lorsque le héros meurt ou gagne? Jetez un coup d'œil à ce [bac à sable](https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_audio_play) pour apprendre à jouer un son en utilisant JavaScript. ## Quiz post-lecture From 23cc7987b3a0b5aae96ec0d8ebfe3ffdb01bfa87 Mon Sep 17 00:00:00 2001 From: Varghese Jose <71702982+varghesejose2020@users.noreply.github.com> Date: Sat, 5 Feb 2022 21:48:39 +0530 Subject: [PATCH 09/58] Update README.ml.md (#589) --- translations/README.ml.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/README.ml.md b/translations/README.ml.md index b5f7bef4..e41e071e 100644 --- a/translations/README.ml.md +++ b/translations/README.ml.md @@ -13,7 +13,7 @@ # തുടക്കക്കാർക്കുള്ള വെബ് വികസനം - ഒരു പാഠ്യപദ്ധതി -മൈക്രോസോഫ്റ്റിലെ അസുർ ക്ലൗഡ് അഡ്വക്കേറ്റ്സ് ജാവാസ്ക്രിപ്റ്റ്, സിഎസ്എസ്, എച്ച്ടിഎംഎൽ അടിസ്ഥാനകാര്യങ്ങൾ എന്നിവയെക്കുറിച്ച് 12-ആഴ്ച, 24-പാഠ പാഠ്യപദ്ധതി വാഗ്ദാനം ചെയ്യുന്നതിൽ സന്തോഷമുണ്ട്. ഓരോ പാഠത്തിലും പാഠത്തിന് മുമ്പും ശേഷവുമുള്ള ക്വിസുകൾ, പാഠം പൂർത്തിയാക്കാനുള്ള രേഖാമൂലമുള്ള നിർദ്ദേശങ്ങൾ, ഒരു പരിഹാരം, ഒരു അസൈൻമെന്റ് എന്നിവയും അതിലേറെയും ഉൾപ്പെടുന്നു. ഞങ്ങളുടെ പ്രോജക്റ്റ് അധിഷ്‌ഠിത അദ്ധ്യാപനം പുതിയ കഴിവുകൾ സ്വായത്തമാക്കൻ നിങ്ങളെ അനുവദിക്കുന്നു. +മൈക്രോസോഫ്റ്റിലെ അസുർ ക്ലൗഡ് അഡ്വക്കേറ്റ്സ് ജാവാസ്ക്രിപ്റ്റ്, സിഎസ്എസ്, എച്ച്ടിഎംഎൽ അടിസ്ഥാനകാര്യങ്ങൾ എന്നിവയെക്കുറിച്ച് 12-ആഴ്ച, 24-പാഠ പാഠ്യപദ്ധതി വാഗ്ദാനം ചെയ്യുന്നതിൽ സന്തോഷമുണ്ട്. ഓരോ പാഠത്തിലും പാഠത്തിന് മുമ്പും ശേഷവുമുള്ള ക്വിസുകൾ, പാഠം പൂർത്തിയാക്കാനുള്ള രേഖാമൂലമുള്ള നിർദ്ദേശങ്ങൾ, ഒരു പരിഹാരം, ഒരു അസൈൻമെന്റ് എന്നിവയും അതിലേറെയും ഉൾപ്പെടുന്നു. ഞങ്ങളുടെ പ്രോജക്റ്റ് അധിഷ്‌ഠിത അദ്ധ്യാപനം പുതിയ കഴിവുകൾ സ്വായത്തമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. **ഞങ്ങളുടെ രചയിതാക്കളായ ജെൻ ലൂപ്പർ, ക്രിസ് നോറിംഗ്, ക്രിസ്റ്റഫർ ഹാരിസൺ, ജാസ്മിൻ ഗ്രീൻവേ, യോഹാൻ ലസോർസ, ഫ്ലോർ ഡ്രീസ്, സ്കെച്ച്നോട്ട് ആർട്ടിസ്റ്റ് ടോമിമി ഇമുറ എന്നിവർക്ക് ഹൃദയം നിറഞ്ഞ നന്ദി!** From bb265184e8e03c6576ae30d644e105f6efac07de Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Mon, 7 Feb 2022 02:21:06 +0000 Subject: [PATCH 10/58] [fr] french translation for 6-4-readme.md file (#590) * Fix small typo, links and reference fr assignment Fix small typo, links and reference french assignment * Fix: Add loc param and reference fr assignment Add localization parameter on quizzes links and reference fr assignment * fix localization param fix localization param * Fix image links and reference fr assignment * add 6-4-readme.fr.md file * completing 6-4-readme file translation in french --- .../translations/README.fr.md | 297 ++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 6-space-game/4-collision-detection/translations/README.fr.md diff --git a/6-space-game/4-collision-detection/translations/README.fr.md b/6-space-game/4-collision-detection/translations/README.fr.md new file mode 100644 index 00000000..473389c3 --- /dev/null +++ b/6-space-game/4-collision-detection/translations/README.fr.md @@ -0,0 +1,297 @@ +# Construire un jeu spatial Partie 4: Ajouter un laser et détecter les collisions + +## Quiz préalable + +[Quiz préalable](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/35?loc=fr) + +Dans cette leçon, vous apprendrez à tirer des lasers avec JavaScript! Nous ajouterons deux choses à notre jeu: + +- **Un laser**: ce laser est tiré depuis le vaisseau de vos héros et verticalement vers le haut +- **La détection de collision**, dans le cadre de la mise en œuvre de la possibilité de *tirer*, nous ajouterons également quelques règles de jeu intéressantes: + - **Le laser frappe l'ennemi**: L'ennemi meurt s'il est touché par un laser + - **Le laser touche l'écran supérieur**: un laser est détruit s'il touche la partie supérieure de l'écran + - **Collision entre ennemis et héros**: Un ennemi et le héros sont détruits s'ils se frappent + - **L'ennemi touche le bas de l'écran**: Un ennemi et un héros sont détruits si l'ennemi touche le bas de l'écran + +En bref, vous -- *le héros* -- devez frapper tous les ennemis avec un laser avant qu'ils ne parviennent à se déplacer vers le bas de l'écran. + +✅ Faites une petite recherche sur le tout premier jeu vidéo jamais écrit. Quelle était sa fonctionnalité? + +Soyons héroïques ensemble! + +## La détection de collision + +Comment fait-on la détection de collision? Nous devons penser à nos objets de jeu comme des rectangles se déplaçant. Pourquoi vous pourriez vous demander? Eh bien, l'image utilisée pour dessiner un objet de jeu est un rectangle: il a un `x`, `y`, `width` et `height`. + +Si deux rectangles, c'est-à-dire un héros et un ennemi *se croisent*, vous avez une collision. Ce qui devrait arriver alors dépend des règles du jeu. Pour implémenter la détection de collision, vous avez donc besoin des éléments suivants: + +1. Un moyen d'obtenir une représentation rectangulaire d'un objet de jeu, quelque chose comme ça: + + ```javascript + rectFromGameObject() { + return { + top: this.y, + left: this.x, + bottom: this.y + this.height, + right: this.x + this.width + } + } + ``` + +2. Une fonction de comparaison, cette fonction peut ressembler à ceci: + + ```javascript + function intersectRect(r1, r2) { + return !(r2.left > r1.right || + r2.right < r1.left || + r2.top > r1.bottom || + r2.bottom < r1.top); + } + ``` + +## Comment détruire les objets + +Pour détruire des objets dans un jeu, vous devez faire savoir au jeu qu'il ne doit plus afficher cet objet dans la boucle de jeu qui se déclenche à un certain intervalle. Une façon de faire est de marquer un objet de jeu comme *mort* quand quelque chose se passe, comme ceci: + +```javascript +// la collision s'est produite +enemy.dead = true +``` + +Ensuite, vous procédez au tri des objets *morts* avant de repeindre l'écran, comme ceci: + +```javascript +gameObjects = gameObject.filter(go => !go.dead); +``` + +## Comment tirons-nous un laser + +Tirer un laser se traduit par répondre à un événement clé et créer un objet qui se déplace dans une certaine direction. Nous devons donc effectuer les étapes suivantes: + +1. **Créez un objet laser**: du haut du vaisseau de notre héros, celui-ci commence à se déplacer vers le haut de l'écran lors de sa création. +2. **Attacher un code à un événement clé**: nous devons choisir une touche du clavier qui représente le joueur tirant le laser. +3. **Créez un objet de jeu qui ressemble à un laser** lorsque la touche est enfoncée. + +## Cooldown sur notre laser + +Le laser doit se déclencher à chaque fois que vous appuyez sur une touche, comme *espace* par exemple. Pour éviter que le jeu ne produise trop de lasers en peu de temps, nous devons résoudre ce problème. La solution consiste à implémenter un soi-disant *cooldown*(temps de recharge), une minuterie, qui garantit qu'un laser ne peut être tiré aussi souvent. Vous pouvez implémenter cela de la manière suivante: + +```javascript +class Cooldown { + constructor(time) { + this.cool = false; + setTimeout(() => { + this.cool = true; + }, time) + } +} + +class Weapon { + constructor { + } + fire() { + if (!this.cooldown || this.cooldown.cool) { + // produire un laser + this.cooldown = new Cooldown(500); + } else { + // ne rien faire - il n'a pas encore refroidi. + } + } +} +``` + +✅ Reportez-vous à la leçon 1 de la série de jeux spatiaux pour vous rappeler des *temps de recharge* + +## Que construire + +Vous allez prendre le code existant (que vous avez dû nettoyer et refactoriser) de la leçon précédente et l'étendre. Commencez par le code de la partie II ou utilisez le code de la [partie III - démarreur](../../your-work). + +> astuce: le laser avec lequel vous allez travailler est déjà dans votre dossier assets et référencé par votre code + +- **Ajoutez la détection de collision**, lorsqu'un laser entre en collision avec quelque chose, les règles suivantes doivent s'appliquer: + 1. **Le laser touche l'ennemi**: l'ennemi meurt s'il est touché par un laser + 2. **Le laser touche l'écran supérieur**: un laser est détruit s'il touche la partie supérieure de notre écran + 3. **Collision ennemi et héros**: un ennemi et le héros sont détruits s'ils se frappent + 4. **L'ennemi touche le bas de l'écran**: un ennemi et un héros sont détruits si l'ennemi touche le bas de l'écran + +## Étapes recommandées + +Localisez les fichiers qui ont été créés pour vous dans le sous-dossier `your-work`. Il doit contenir les éléments suivants: + +```bash +-| assets + -| enemyShip.png + -| player.png + -| laserRed.png +-| index.html +-| app.js +-| package.json +``` + +Vous démarrez votre projet dans le dossier `your_work` en tapant: + +```bash +cd your-work +npm start +``` + +Ce qui précède démarrera un serveur HTTP à l'adresse `http://localhost:5000`. Ouvrez un navigateur et saisissez cette adresse, pour le moment, cela devrait rendre le héros et tous les ennemis, rien ne bouge - pour le moment :). + +### Ajouter un code + +1. **Configurez une représentation rectangulaire de votre objet de jeu, pour gérer les collisions** Le code ci-dessous vous permet d'obtenir une représentation rectangulaire d'un `GameObject`. Modifiez votre classe GameObject pour l'étendre: + + ```javascript + rectFromGameObject() { + return { + top: this.y, + left: this.x, + bottom: this.y + this.height, + right: this.x + this.width, + }; + } + ``` + +2. **Ajouter du code qui vérifie la collision** Il s'agira d'une nouvelle fonction qui teste si deux rectangles se croisent: + + ```javascript + function intersectRect(r1, r2) { + return !( + r2.left > r1.right || + r2.right < r1.left || + r2.top > r1.bottom || + r2.bottom < r1.top + ); + } + ``` + +3. **Ajouter une capacité de tir laser ** + 1. **Ajouter un message d'événement clé**. La touche *espace* devrait créer un laser juste au-dessus du vaisseau héros. Ajoutez trois constantes dans l'objet Messages: + + ```javascript + KEY_EVENT_SPACE: "KEY_EVENT_SPACE", + COLLISION_ENEMY_LASER: "COLLISION_ENEMY_LASER", + COLLISION_ENEMY_HERO: "COLLISION_ENEMY_HERO", + ``` + + 1. **Manipuler la touche espace**. Modifiez la fonction keyup `window.addEventListener` pour gérer les espaces: + + ```javascript + } else if(evt.keyCode === 32) { + eventEmitter.emit(Messages.KEY_EVENT_SPACE); + } + ``` + + 1. **Ajouter des auditeurs**. Modifiez la fonction `initGame()` pour vous assurer que le héros peut se déclencher lorsque la barre d'espace est enfoncée: + + ```javascript + eventEmitter.on(Messages.KEY_EVENT_SPACE, () => { + if (hero.canFire()) { + hero.fire(); + } + ``` + + et ajoutez une nouvelle fonction `eventEmitter.on()` pour assurer le comportement lorsqu'un ennemi entre en collision avec un laser: + + ```javascript + eventEmitter.on(Messages.COLLISION_ENEMY_LASER, (_, { first, second }) => { + first.dead = true; + second.dead = true; + }) + ``` + + 1. **Déplacez l'objet**, assurez-vous que le laser se déplace progressivement vers le haut de l'écran. Vous allez créer une nouvelle classe Laser qui étend `GameObject`, comme vous l'avez fait auparavant: + + ```javascript + class Laser extends GameObject { + constructor(x, y) { + super(x,y); + (this.width = 9), (this.height = 33); + this.type = 'Laser'; + this.img = laserImg; + let id = setInterval(() => { + if (this.y > 0) { + this.y -= 15; + } else { + this.dead = true; + clearInterval(id); + } + }, 100) + } + } + ``` + + 1. **Gérer les collisions**, Implémenter les règles de collision pour le laser. Ajouter une fonction `updateGameObjects()` qui teste les objets en collision pour les hits + + ```javascript + function updateGameObjects() { + const enemies = gameObjects.filter(go => go.type === 'Enemy'); + const lasers = gameObjects.filter((go) => go.type === "Laser"); + // laser hit something + lasers.forEach((l) => { + enemies.forEach((m) => { + if (intersectRect(l.rectFromGameObject(), m.rectFromGameObject())) { + eventEmitter.emit(Messages.COLLISION_ENEMY_LASER, { + first: l, + second: m, + }); + } + }); + }); + + gameObjects = gameObjects.filter(go => !go.dead); + } + ``` + + Assurez-vous d'ajouter `updateGameObjects()` dans votre boucle de jeu dans `window.onload`. + + 4. **Mettez en place un temps de recharge (cooldown)** sur le laser, de sorte qu'il ne peut être tiré qu'un certain temps. + + Enfin, modifiez la classe de héros afin qu'elle puisse se recharger: + + ```javascript + class Hero extends GameObject { + constructor(x, y) { + super(x, y); + (this.width = 99), (this.height = 75); + this.type = "Hero"; + this.speed = { x: 0, y: 0 }; + this.cooldown = 0; + } + fire() { + gameObjects.push(new Laser(this.x + 45, this.y - 10)); + this.cooldown = 500; + + let id = setInterval(() => { + if (this.cooldown > 0) { + this.cooldown -= 100; + } else { + clearInterval(id); + } + }, 200); + } + canFire() { + return this.cooldown === 0; + } + } + ``` + +À ce stade, votre jeu a quelques fonctionnalités! Vous pouvez naviguer avec vos touches fléchées, tirer un laser avec votre barre d'espace et les ennemis disparaissent lorsque vous les frappez. Bien joué! + +--- + +## 🚀 Challenge + +Ajoutez une explosion! Jetez un œil aux ressources du jeu dans [le référentiel Space Art](../../solution/spaceArt/readme.txt) et essayez d'ajouter une explosion lorsque le laser frappe un extraterrestre + +## Quiz de validation des connaissances + +[Quiz de validation des connaissances](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/36?loc=fr) + +## Révision et étude personnelle + +Faites des expériences avec les intervalles de votre jeu à ce stade. Que se passe-t-il lorsque vous les modifiez? En savoir plus sur les [événements de minutage JavaScript](https://www.freecodecamp.org/news/javascript-timing-events-settimeout-and-setinterval/). + +## Affectation + +[Explorer les collisions](assignment.fr.md) From aff23da09d4f772e3d208a6d79486535a5129db3 Mon Sep 17 00:00:00 2001 From: -Smooth-E- <71522503+Smooth-E@users.noreply.github.com> Date: Mon, 7 Feb 2022 07:22:32 +0500 Subject: [PATCH 11/58] Translated base README.md to Russian (#588) * Translated base README.md * [RU] Updated available links, fixed broken ones * [RU] Fixed tyos in base README.md * [RU] Fixed broken links in base README.md * [RU] More broken links fixed * [RU] More broken links fixed --- translations/README.ru.md | 103 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 translations/README.ru.md diff --git a/translations/README.ru.md b/translations/README.ru.md new file mode 100644 index 00000000..9f1b9e35 --- /dev/null +++ b/translations/README.ru.md @@ -0,0 +1,103 @@ +[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) + +[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/) + +[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) + +# Веб-разработка для Начинающих - О Курсе + +Специалисты из Microsoft Azure Cloud Advocates рады представить 12-ти недельный обучающий курс, состоящий из 24-х уроков, в котором будет рассказано об основах JavaScript, CSS и HTML. К каждому уроку прилагается: викторина, которую стоит пройти перед уроком, викторина, которую стоит пройти после урока, текстовый урок, решение поставленных в уроке задач, задания и многое другое. Наша стратегия обучения на проектах-примерах, позволяет вам применять полученные знания, прямо во время обучения - проверенный способ закрепить новые навыки. + +**От всей души благодарим наших авторов: Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, и художника зарисовок Tomomi Imura!** + +# Давайте начнем! + +> **Преподавателям.** Му подготовили [несколько советов](for-teachers.ru.md) о том, как использовать этот курс. Будем рады узнать о ваших впечатлениях на [нашем форуме](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! + +> **Ученикам.** Чтобы самостоятельно пройти этот курс, сделайте fork этого репозитория и выполняйте упражнения из данного курса. Начните с предурочной викторины, затем прочтите урок, после чего завершите оставшиеся задания и активности. Постарайтесь самостоятельно создавать проекты, используя информацию из уроков, нежели просто копировать текст из предложенных нами решений. Однако, вы всегда сможете найти код-решение в папке /solutions для каждого ориентированного на проект урока. Хорошей идеей будет собраться с друзьями и пройти курс всем вместе. Для дпльнейшего изучения мы рекомендуем почетить [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa), а также посмотреть видеоматериалы, приведённые ниже. + +[![Promo video](../images/web.gif)](https://youtube.com/watch?v=R1wrdtmBSII "Видео-Презентация") + +Автор GIF-анимации [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) + +> 🎥 Кликните на изображение выше, чтобы посмотреть видео о нашем проекте и людях, создавших его! + +## Стратегии обучения + +При построении этого курса, мы придерживались двух педагогических принципов: помнить о том, что курс ориентирован на обучение, путем проектирования и что он должен содержать большое количество викторин. По окончании обычения, ученики создадут игру, тренирующую навыки печати, виртуальный террариум, "зелёное" расширение для браузера, игру типа "Space Invaders" и банковское приложение для бизнеса, изучат основы JavaScript, HTML и CSS, а также набор современных инструментов для веб-разработчика сегодня. + +> 🎓 Вы можете пройти несколько первых уроков, используя нашу пошаговую систему обучения [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) на сайте Microsoft Learn! + +Проектно-ориентированная стратегия обучения позволяет сделать процесс обучения более привлекательным и облегчить закрепление полученных навыков и информации. Мы также написали несколько уроков, чтобы помочь вам познакомиться с основами JavaScript. Эти уроки совмещены с видео из коллекции уроков "[Знакомсвто с JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa)". Некоторые из авторов этих видео также принимали участие и в создании этого курса. + +В дополнение, простая викторина перед уроками позволяет заинтересовать ученика в изучении темы, в то время как вторая викторина после занятия позволяет закрепить полученные знания. Этот курс был создан, чтобы быть занимательным для каждого. Вы можете пройти курс от начала до конца или изучить лишь его часть. Проекты, которые вы будете делать на протяжении курса, просты вначале и станут более сложными по завершении 12-ти недельного курса. + +Мы намеренно не раскрывали тему фреймворков JavaScript, чтобы сконцентрироваться получении базовых навыков, необходимых веб-разработчику. Следующим шагом, после прохождения этого курса, мы рекомендуем изучить Node.js, воспользовавшись этим набором видео-уроков: "[Знакомство с Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa)" + +> Вы можете ознакомиться с нашей [политикой взаимодействия с сообществом](../CODE_OF_CONDUCT.md), [правила внесения собственного вклада в развитие проекта](../CONTRIBUTING.md) и [правилами для переводчиков](../TRANSLATIONS.md). Мы очень ждём ваших конструктивных отзывов! + +## Каждый урок включает в себя: + +- необязательную зарисовку +- необязательное вспомогательное видео +- викторину для разминки перед уроком +- текстовый урок +- для проектно-ориентированных уроков, пошаговое описание того, как построить проект +- проверку знаний +- "вызов" +- вспомогательную литература +- задания +- викторину для прохождения после урока + +> **На заметку о викторинах**: все викторины находятся в [этом приложении](https://happy-mud-02d95f10f.azurestaticapps.net/), всего мы подготовили 48 викторин, в каждой из которых по три вопроса. Ссылки на них расположены в уроках, но вы можете взаимодействовать с викторинами в отдельности. Для этого, обратитесь к инструкциям в папке `quiz-app`. Эти инструкции активно локализуются. + +## Уроки + +| | Наименование проекта | Получаемые знания | Цели обучения | Ссылка на урок | Автор | +| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | +| 01 | Начало | Введение в Программирование и Инструменты | Узнаем об основах, стоящих за большинством языков программирование и о программном обеспечении, которое помогает профессиональным разработчиками в их делах. | [Введение в программирование и инструменты](../1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md) | Jasmine | +| 02 | Начало | Основы GiHhub, работа в команде | Как использовать GitHub в своих проектах, как писать од в команде | [Введение в GutHub](../1-getting-started-lessons/2-github-basics/translations/README.ru.md) | Floor | +| 03 | Начало | Доступность | Изучите основы доступности сети | [Основы доступности](../1-getting-started-lessons/3-accessibility/README.md) | Christopher | +| 04 | Основы JavaScript | Типы данных в JavaScript | Введение в типы данных в JavaScript. | [Типы данных](../2-js-basics/1-data-types/README.md) | Jasmine | +| 05 | Основы JavaScript | Функции и Методы | Узнайте о функциях и методах, чтобы регулировать поведение и логику приложений. | [Функции и Методы](../2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | +| 06 | Основы JavaScript | Принятие решений в JavaScript | Изучите, как задавать условия, если ваш код использует логику, основывающуюся на принятии решений. | [Принятие решений](../2-js-basics/3-making-decisions/README.md) | Jasmine | +| 07 | Основы JavaScript | Массивы и Циклы | Изучите работу с данными, используя массивы и циклы в JavaScript. | [Массивы и Циклы](../2-js-basics/4-arrays-loops/README.md) | Jasmine | +| 08 | [Террариум](../3-terrarium/solution/README.md) | HTML в действии | Постройте онлайн террариум, используя HTML, акцентируем внимание на построении разметки. | [Введение в HTML](../3-terrarium/1-intro-to-html/README.md) | Jen | +| 09 | [Террариум](../3-terrarium/solution/README.md) | CSS в действии | Сделайте свой онлайн террариум уникальным, используя CSS. Акцентируем внимание на стилизации страницы, в том числе с элементами, реагирующими на пользователя. | [Введение в CSS](../3-terrarium/2-intro-to-css/README.md) | Jen | +| 10 | [Террариум](../3-terrarium/solution/README.md) | Иерархия в JavaScript, взаимодействие со страницей | Постройте JavaScript, превращающий ваш террариум в интерактивное потяни-и-отпусти приложение. Акцентируем внимание на взаимодействие со страницей и иерархиях в JavaScript. | [Иерархия в JavaScript, взаимодействие со страницей](../3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | ["Печатная игра"](../4-typing-game/solution/README.md) | Постройте "Печатную игру" | Научитесь использовать события с клавиатуры, чтобы управлять своим приложением JvaScript. | [Программирование, основанное на событиях](../4-typing-game/typing-game/README.md) | Christopher | +| 12 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Работа с браузерами | Изучите, как работают браузеры, их историю и сделайте свои первые шаги в разработке расширений для браузера. | [О браузерах](../5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Строим форму, обращаемся к API и сохраняем данные | Постройте элементы JavaScript для своего расширения, чтобы обращаться к API, используя сохраненные данные. | [API, формы и хранение данных](../5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Фоновые процессы в браузере, эффективность | Используйте фоновые процессы браузера, чтобы изменять иконку вашего расширения, изучите работу с сетью и узнайте, какие оптимизации можно применить к вашему проекту. | [Фоновые процессы и эффективность](../5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Космическая игра](../6-space-game/solution/README.md) | Более сложная разработка игр с использованием JavaScript | Узнайте о наследовании, используя Классы и Композиции, а также паттерн Pub/Sub в качестве подготовки к построению игры. | [Введение в более сложную разработку игр](../6-space-game/1-introduction/README.md) | Chris | +| 16 | [Космическая игра](../6-space-game/solution/README.md) | Рисование с использованием Canvas | Изучите Canvas API, чтобы рисовать элементы на экране. | [Рисование с помощью Canvas](../6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Космическая игра](../6-space-game/solution/README.md) | Двигаем элементы на экране | Узнайте, как вы можете заставить объекты на экране двигаться, используя координатную систему Canvas API | [Двигаем элементы](../6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Космическая игра](../6-space-game/solution/README.md) | Обработка столкновений | Заставьте элементы сталкиваться друг с другом при нажатии на клавиши, а также добавьте cooldown-функцию, чтобы повысить эффективность игры. | [Обработка столкновений](../6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Космическая игра](../6-space-game/solution/README.md) | Подсчет очков | Совершайте математические вычисления, основываясь на статусе игры и уровне игрока. | [Подсчет очков](../6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Космическая игра](../6-space-game/solution/README.md) | Окончание и перезапуск игры | Изучите то, как заканчивать и заново начинать игру, включая очистку ресурсов и обнуление переменных. | [Условия окончания](../6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Банковское приложение](../7-bank-project/solution/README.md) | Пути и Шаблоны в веб-приложениях HTML | Изучмите как начать построение мультистраничного вебсайта с использованием путей и шаблонов HTML. | [Пути и Шаблоны в HTML](../7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Банковское приложение](../7-bank-project/solution/README.md) | Постройте форму для входа и регистрации | Изучите построение форм и их валидацию | [Формы](../7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Банковское приложение](../7-bank-project/solution/README.md) | Методы обработки и использования информации | Как информация проходит через ваше приложение, как обрабатывать, хранить и уничтожать её. | [Информация](../7-bank-project/3-data/README.md) | Yohan | +| 24 | [Банковское приложение](../7-bank-project/solution/README.md) | Концепции управления состояниями | Изучите, как ваше приложение запоминает состояния и как эти пользоваться. programmatically | [Управление состояниями](../7-bank-project/4-state-management/README.md) | Yohan | + +## Оффлайн доступ + +Вы можете использовать эьту документацию оффлайн при помощи [Docsify](https://docsify.js.org/#/). Сделайте fork этого репозитория, [установите Docsify](https://docsify.js.org/#/quickstart) на ваш компьютер, а затем в корневой директории этого репозитория воспользуйтесь командой `docsify serve`. Вебсайт будет доступен по адресу `localhost:3000`. + +## PDF + +Все уроки в формате PDF доступны [здесь](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) + +## Другие курсы + +Наша команда создает и другие курсы! Рекомендуем взглянуть: + +- [Машинное Обучение для Начинающих](https://aka.ms/ml-beginners) +- [IoT для Начинающих](https://aka.ms/iot-beginners) +- [Data Science для Начинающих](https://aka.ms/datascience-beginners) From b78e92f211c6922c7733eef52253bdcfb34c2268 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Tue, 8 Feb 2022 19:58:22 +0700 Subject: [PATCH 12/58] Link fix, revision of the translation. (#594) --- .../translations/README.ru.md | 10 +++++----- .../2-github-basics/translations/README.ru.md | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md index 8774c935..4ab1f90c 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md @@ -140,16 +140,16 @@ back add r0,r1 Некоторые разработчики предпочитают менее графическое представление для своих повседневных задач и полагаются на командную строку для достижения этой цели. Разработка кода требует значительного набора текста, и некоторые разработчики предпочитают не мешать работе с клавиатурой и будут использовать сочетания клавиш для переключения между окнами рабочего стола, работы с разными файлами и использования инструментов. Большинство задач можно выполнить с помощью мыши, но одним из преимуществ использования командной строки является то, что многое можно сделать с помощью инструментов командной строки без необходимости переключаться между мышью и клавиатурой. Еще одним преимуществом командной строки является то, что они настраиваются, и вы можете сохранить свою настраиваемую конфигурацию, изменить ее позже, а также импортировать ее на новые устройства для разработки. Поскольку среды разработки настолько уникальны для каждого разработчика, некоторые избегают использования командной строки, некоторые будут полностью полагаться на нее, а некоторые предпочитают сочетание двух. -### Популярные параметры командной строки +### Популярные варианты командной строки -Параметры командной строки зависят от используемой вами операционной системы. +Варианты командной строки зависят от используемой вами операционной системы. _💻 = предустановлен в операционной системе._ #### Windows - [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7?WT.mc_id=academic-13441-cxa) 💻 -- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands?WT.mc_id=academic-13441-cxa) (also known as CMD) 💻 +- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands?WT.mc_id=academic-13441-cxa) (также известный как CMD) 💻 - [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-13441-cxa) - [mintty](https://mintty.github.io/) @@ -167,7 +167,7 @@ _💻 = предустановлен в операционной системе. #### Популярные инструменты командной строки -- [Git](https://git-scm.com/) (💻 on most operating systems) +- [Git](https://git-scm.com/) (💻 в большинстве операционных систем) - [NPM](https://www.npmjs.com/) - [Yarn](https://classic.yarnpkg.com/en/docs/cli/) @@ -200,4 +200,4 @@ _💻 = предустановлен в операционной системе. ## Задание -[Чтение документации](assignment.md) +[Чтение документации](assignment.ru.md) diff --git a/1-getting-started-lessons/2-github-basics/translations/README.ru.md b/1-getting-started-lessons/2-github-basics/translations/README.ru.md index 4129f918..4368b99c 100644 --- a/1-getting-started-lessons/2-github-basics/translations/README.ru.md +++ b/1-getting-started-lessons/2-github-basics/translations/README.ru.md @@ -170,7 +170,7 @@ _Если применить этот коммит, то он <ваше сооб ## Работа над проектами с другими разработчиками -В своем репозитории перейдите в `Insights> Community`, чтобы увидеть, как ваш проект сравнивается с рекомендованными стандартами сообщества. +В своем репозитории перейдите в `Insights > Community`, чтобы увидеть, как ваш проект сравнивается с рекомендованными стандартами сообщества. Вот несколько вещей, которые могут улучшить ваш репозиторий на GitHub: @@ -186,7 +186,7 @@ _Если применить этот коммит, то он <ваше сооб ### Задание: Слияние кода -Документ CONTRIBUTING.md помогает людям разобраться, как вносить свой вклад в проект. В нем объясняется, какие типы вкладов вас интересуют и как работает этот процесс. Чтобы внести свой вклад в ваш репозиторий на GitHub, участникам потребуется выполнить ряд шагов: +Правила соучастия (например, документ `CONTRIBUTING.md`) помогают людям разобраться, как вносить свой вклад в проект. В нем объясняется, какие типы вкладов вас интересуют и как работает этот процесс. Чтобы внести свой вклад в ваш репозиторий на GitHub, участникам потребуется выполнить ряд шагов: 1. **Сделать ответвление вашего репозитория (Forking)**. Вы, вероятно, захотите, чтобы люди сделали _ответвление (fork)_ вашего проекта. Ответвление означает создание копии вашего репозитория в их профиле GitHub. 1. **Клонировать**. Оттуда они будут клонировать проект на свой локальный компьютер. @@ -244,7 +244,7 @@ _Если применить этот коммит, то он <ваше сооб Приведенная выше команда создает ветку в вашем, ответвленном от основного, репозитории. -1. **Открытие PR**. Далее вы хотите открыть PR. Вы делаете это, перейдя к ответвленному репозиторию на GitHub. Вы увидите подсказку на GitHub, где вам предложат, хотите ли вы создать новый PR. Вы нажимаете на это указание, и попадаете в интерфейс, где вы можете изменить заголовок сообщения к пул реквесту, можете дать ему более подходящее описание. Теперь владелец репозитория, от которого вы сделали ответвление, увидит этот PR, и (_скрестим пальцы_) он одобрит и примет ваш PR в свой репозиторий. Теперь вы соавтор, ура :) +1. **Открытие PR**. Далее, вы хотите открыть PR. Вы делаете это, перейдя к ответвленному репозиторию на GitHub. Вы увидите подсказку на GitHub, где вам предложат, хотите ли вы создать новый PR. Вы нажимаете на это указание, и попадаете в интерфейс, где вы можете изменить заголовок сообщения к пул реквесту, можете дать ему более подходящее описание. Теперь владелец репозитория, от которого вы сделали ответвление, увидит этот PR, и (_скрестим пальцы_) он одобрит и примет ваш PR в свой репозиторий. Теперь вы соавтор, ура :) 1. **Чистка (Clean up)**. Хорошей практикой считается _чистка_ после успешного слияния PR. Вы хотите очистить как локальную ветку, так и ветку, которую вы отправили на GitHub. Сначала удалим ее локально с помощью следующей команды: From bc8ccd4d6f73ef4447e527e4385780709b748af1 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Tue, 8 Feb 2022 19:59:45 +0700 Subject: [PATCH 13/58] Fixed typos, various text improvements (#592) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit – Typos – Declensions – Word forms and etc --- translations/README.ru.md | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/translations/README.ru.md b/translations/README.ru.md index 9f1b9e35..be9c483b 100644 --- a/translations/README.ru.md +++ b/translations/README.ru.md @@ -12,15 +12,15 @@ # Веб-разработка для Начинающих - О Курсе -Специалисты из Microsoft Azure Cloud Advocates рады представить 12-ти недельный обучающий курс, состоящий из 24-х уроков, в котором будет рассказано об основах JavaScript, CSS и HTML. К каждому уроку прилагается: викторина, которую стоит пройти перед уроком, викторина, которую стоит пройти после урока, текстовый урок, решение поставленных в уроке задач, задания и многое другое. Наша стратегия обучения на проектах-примерах, позволяет вам применять полученные знания, прямо во время обучения - проверенный способ закрепить новые навыки. +Специалисты из Microsoft Azure Cloud Advocates рады представить 12-ти недельный обучающий курс, состоящий из 24-х уроков, в котором будет рассказано об основах JavaScript, CSS и HTML. К каждому уроку прилагается: викторина (quiz), которую стоит пройти перед уроком, викторина, которую стоит пройти после урока, текстовый урок, решение поставленных в уроке задач, задания и многое другое. Наша стратегия обучения на проектах-примерах, позволяет вам применять полученные знания, прямо во время обучения - проверенный способ закрепить новые навыки. **От всей души благодарим наших авторов: Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, и художника зарисовок Tomomi Imura!** # Давайте начнем! -> **Преподавателям.** Му подготовили [несколько советов](for-teachers.ru.md) о том, как использовать этот курс. Будем рады узнать о ваших впечатлениях на [нашем форуме](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! +> **Преподавателям.** Мы подготовили [несколько советов](for-teachers.ru.md) о том, как использовать этот курс. Будем рады узнать о ваших впечатлениях на [нашем форуме](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! -> **Ученикам.** Чтобы самостоятельно пройти этот курс, сделайте fork этого репозитория и выполняйте упражнения из данного курса. Начните с предурочной викторины, затем прочтите урок, после чего завершите оставшиеся задания и активности. Постарайтесь самостоятельно создавать проекты, используя информацию из уроков, нежели просто копировать текст из предложенных нами решений. Однако, вы всегда сможете найти код-решение в папке /solutions для каждого ориентированного на проект урока. Хорошей идеей будет собраться с друзьями и пройти курс всем вместе. Для дпльнейшего изучения мы рекомендуем почетить [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa), а также посмотреть видеоматериалы, приведённые ниже. +> **Ученикам.** Чтобы самостоятельно пройти этот курс, сделайте ответвление (fork) от этого репозитория и выполняйте упражнения из данного курса. Начните с предлекционной викторины, затем прочтите урок, после чего завершите оставшиеся задания и активности. Постарайтесь самостоятельно создавать проекты, используя информацию из уроков, нежели просто копировать текст из предложенных нами решений. Однако, вы всегда сможете найти код-решение в папке `/solutions` для каждого ориентированного на проект урока. Хорошей идеей будет собраться с друзьями и пройти курс всем вместе. Для дальнейшего изучения мы рекомендуем посетить [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa), а также посмотреть видеоматериалы, приведённые ниже. [![Promo video](../images/web.gif)](https://youtube.com/watch?v=R1wrdtmBSII "Видео-Презентация") @@ -30,15 +30,15 @@ ## Стратегии обучения -При построении этого курса, мы придерживались двух педагогических принципов: помнить о том, что курс ориентирован на обучение, путем проектирования и что он должен содержать большое количество викторин. По окончании обычения, ученики создадут игру, тренирующую навыки печати, виртуальный террариум, "зелёное" расширение для браузера, игру типа "Space Invaders" и банковское приложение для бизнеса, изучат основы JavaScript, HTML и CSS, а также набор современных инструментов для веб-разработчика сегодня. +При построении этого курса, мы придерживались двух педагогических принципов: помнить о том, что курс ориентирован на обучение, путем проектирования и что он должен содержать большое количество викторин. По окончании обучения, ученики создадут игру, тренирующую навыки печати, виртуальный террариум, "зелёное" расширение для браузера, игру типа "Space Invaders" и банковское приложение для бизнеса, изучат основы JavaScript, HTML и CSS, а также набор современных инструментов для веб-разработчика. > 🎓 Вы можете пройти несколько первых уроков, используя нашу пошаговую систему обучения [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) на сайте Microsoft Learn! -Проектно-ориентированная стратегия обучения позволяет сделать процесс обучения более привлекательным и облегчить закрепление полученных навыков и информации. Мы также написали несколько уроков, чтобы помочь вам познакомиться с основами JavaScript. Эти уроки совмещены с видео из коллекции уроков "[Знакомсвто с JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa)". Некоторые из авторов этих видео также принимали участие и в создании этого курса. +Проектно-ориентированная стратегия обучения позволяет сделать процесс обучения более привлекательным и облегчить закрепление полученных навыков и информации. Мы также написали несколько уроков, чтобы помочь вам познакомиться с основами JavaScript. Эти уроки совмещены с видео из коллекции уроков "[Знакомство с JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa)". Некоторые из авторов этих видео также принимали участие и в создании этого курса. В дополнение, простая викторина перед уроками позволяет заинтересовать ученика в изучении темы, в то время как вторая викторина после занятия позволяет закрепить полученные знания. Этот курс был создан, чтобы быть занимательным для каждого. Вы можете пройти курс от начала до конца или изучить лишь его часть. Проекты, которые вы будете делать на протяжении курса, просты вначале и станут более сложными по завершении 12-ти недельного курса. -Мы намеренно не раскрывали тему фреймворков JavaScript, чтобы сконцентрироваться получении базовых навыков, необходимых веб-разработчику. Следующим шагом, после прохождения этого курса, мы рекомендуем изучить Node.js, воспользовавшись этим набором видео-уроков: "[Знакомство с Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa)" +Мы намеренно не раскрывали тему фреймворков JavaScript, чтобы сконцентрироваться получении базовых навыков, необходимых веб-разработчику. Следующим шагом, после прохождения этого курса, мы рекомендуем изучить Node.js, воспользовавшись этим набором видеоуроков: "[Знакомство с Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa)" > Вы можете ознакомиться с нашей [политикой взаимодействия с сообществом](../CODE_OF_CONDUCT.md), [правила внесения собственного вклада в развитие проекта](../CONTRIBUTING.md) и [правилами для переводчиков](../TRANSLATIONS.md). Мы очень ждём ваших конструктивных отзывов! @@ -51,7 +51,7 @@ - для проектно-ориентированных уроков, пошаговое описание того, как построить проект - проверку знаний - "вызов" -- вспомогательную литература +- вспомогательную литературу - задания - викторину для прохождения после урока @@ -61,34 +61,34 @@ | | Наименование проекта | Получаемые знания | Цели обучения | Ссылка на урок | Автор | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | -| 01 | Начало | Введение в Программирование и Инструменты | Узнаем об основах, стоящих за большинством языков программирование и о программном обеспечении, которое помогает профессиональным разработчиками в их делах. | [Введение в программирование и инструменты](../1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md) | Jasmine | -| 02 | Начало | Основы GiHhub, работа в команде | Как использовать GitHub в своих проектах, как писать од в команде | [Введение в GutHub](../1-getting-started-lessons/2-github-basics/translations/README.ru.md) | Floor | -| 03 | Начало | Доступность | Изучите основы доступности сети | [Основы доступности](../1-getting-started-lessons/3-accessibility/README.md) | Christopher | -| 04 | Основы JavaScript | Типы данных в JavaScript | Введение в типы данных в JavaScript. | [Типы данных](../2-js-basics/1-data-types/README.md) | Jasmine | -| 05 | Основы JavaScript | Функции и Методы | Узнайте о функциях и методах, чтобы регулировать поведение и логику приложений. | [Функции и Методы](../2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | -| 06 | Основы JavaScript | Принятие решений в JavaScript | Изучите, как задавать условия, если ваш код использует логику, основывающуюся на принятии решений. | [Принятие решений](../2-js-basics/3-making-decisions/README.md) | Jasmine | -| 07 | Основы JavaScript | Массивы и Циклы | Изучите работу с данными, используя массивы и циклы в JavaScript. | [Массивы и Циклы](../2-js-basics/4-arrays-loops/README.md) | Jasmine | -| 08 | [Террариум](../3-terrarium/solution/README.md) | HTML в действии | Постройте онлайн террариум, используя HTML, акцентируем внимание на построении разметки. | [Введение в HTML](../3-terrarium/1-intro-to-html/README.md) | Jen | -| 09 | [Террариум](../3-terrarium/solution/README.md) | CSS в действии | Сделайте свой онлайн террариум уникальным, используя CSS. Акцентируем внимание на стилизации страницы, в том числе с элементами, реагирующими на пользователя. | [Введение в CSS](../3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Террариум](../3-terrarium/solution/README.md) | Иерархия в JavaScript, взаимодействие со страницей | Постройте JavaScript, превращающий ваш террариум в интерактивное потяни-и-отпусти приложение. Акцентируем внимание на взаимодействие со страницей и иерархиях в JavaScript. | [Иерархия в JavaScript, взаимодействие со страницей](../3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | ["Печатная игра"](../4-typing-game/solution/README.md) | Постройте "Печатную игру" | Научитесь использовать события с клавиатуры, чтобы управлять своим приложением JvaScript. | [Программирование, основанное на событиях](../4-typing-game/typing-game/README.md) | Christopher | -| 12 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Работа с браузерами | Изучите, как работают браузеры, их историю и сделайте свои первые шаги в разработке расширений для браузера. | [О браузерах](../5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Строим форму, обращаемся к API и сохраняем данные | Постройте элементы JavaScript для своего расширения, чтобы обращаться к API, используя сохраненные данные. | [API, формы и хранение данных](../5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Фоновые процессы в браузере, эффективность | Используйте фоновые процессы браузера, чтобы изменять иконку вашего расширения, изучите работу с сетью и узнайте, какие оптимизации можно применить к вашему проекту. | [Фоновые процессы и эффективность](../5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Космическая игра](../6-space-game/solution/README.md) | Более сложная разработка игр с использованием JavaScript | Узнайте о наследовании, используя Классы и Композиции, а также паттерн Pub/Sub в качестве подготовки к построению игры. | [Введение в более сложную разработку игр](../6-space-game/1-introduction/README.md) | Chris | -| 16 | [Космическая игра](../6-space-game/solution/README.md) | Рисование с использованием Canvas | Изучите Canvas API, чтобы рисовать элементы на экране. | [Рисование с помощью Canvas](../6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Космическая игра](../6-space-game/solution/README.md) | Двигаем элементы на экране | Узнайте, как вы можете заставить объекты на экране двигаться, используя координатную систему Canvas API | [Двигаем элементы](../6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Космическая игра](../6-space-game/solution/README.md) | Обработка столкновений | Заставьте элементы сталкиваться друг с другом при нажатии на клавиши, а также добавьте cooldown-функцию, чтобы повысить эффективность игры. | [Обработка столкновений](../6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Космическая игра](../6-space-game/solution/README.md) | Подсчет очков | Совершайте математические вычисления, основываясь на статусе игры и уровне игрока. | [Подсчет очков](../6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Космическая игра](../6-space-game/solution/README.md) | Окончание и перезапуск игры | Изучите то, как заканчивать и заново начинать игру, включая очистку ресурсов и обнуление переменных. | [Условия окончания](../6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Банковское приложение](../7-bank-project/solution/README.md) | Пути и Шаблоны в веб-приложениях HTML | Изучмите как начать построение мультистраничного вебсайта с использованием путей и шаблонов HTML. | [Пути и Шаблоны в HTML](../7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Банковское приложение](../7-bank-project/solution/README.md) | Постройте форму для входа и регистрации | Изучите построение форм и их валидацию | [Формы](../7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Банковское приложение](../7-bank-project/solution/README.md) | Методы обработки и использования информации | Как информация проходит через ваше приложение, как обрабатывать, хранить и уничтожать её. | [Информация](../7-bank-project/3-data/README.md) | Yohan | -| 24 | [Банковское приложение](../7-bank-project/solution/README.md) | Концепции управления состояниями | Изучите, как ваше приложение запоминает состояния и как эти пользоваться. programmatically | [Управление состояниями](../7-bank-project/4-state-management/README.md) | Yohan | +| 01 | Начало | Введение в Программирование и Инструменты | Узнать об основах, стоящих за большинством языков программирования и о программном обеспечении, которое помогает профессиональным разработчикам в их делах | [Введение в программирование и инструменты](../1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md) | Jasmine | +| 02 | Начало | Основы GitHub, работа в команде | Как использовать GitHub в своих проектах, как писать код в команде | [Введение в GitHub](../1-getting-started-lessons/2-github-basics/translations/README.ru.md) | Floor | +| 03 | Начало | Доступность | Изучить принципы доступности веб-среды для людей с ограниченными возможностями здоровья | [Основы доступности](../1-getting-started-lessons/3-accessibility/README.md) | Christopher | +| 04 | Основы JavaScript | Типы данных в JavaScript | Введение в типы данных в JavaScript | [Типы данных](../2-js-basics/1-data-types/README.md) | Jasmine | +| 05 | Основы JavaScript | Функции и Методы | Узнать о функциях и методах, чтобы регулировать поведение и логику приложений | [Функции и Методы](../2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | +| 06 | Основы JavaScript | Принятие решений в JavaScript | Изучить как задавать условия, если ваш код использует логику, основывающуюся на принятии решений | [Принятие решений](../2-js-basics/3-making-decisions/README.md) | Jasmine | +| 07 | Основы JavaScript | Массивы и Циклы | Изучить работу с данными, используя массивы и циклы в JavaScript | [Массивы и Циклы](../2-js-basics/4-arrays-loops/README.md) | Jasmine | +| 08 | [Террариум](../3-terrarium/solution/README.md) | HTML в действии | Создать свой онлайн террариум используя HTML. Акцентировать внимание на построении макета страницы | [Введение в HTML](../3-terrarium/1-intro-to-html/README.md) | Jen | +| 09 | [Террариум](../3-terrarium/solution/README.md) | CSS в действии | Оформить стиль своего онлайн террариума используя CSS. Акцентировать внимание на основах CSS, позволяющих сделать страницу адаптивной | [Введение в CSS](../3-terrarium/2-intro-to-css/README.md) | Jen | +| 10 | [Террариум](../3-terrarium/solution/README.md) | Иерархия в JavaScript, взаимодействие со страницей | Добавить JavaScript, превращающий ваш террариум в интерактивное "потяни-и-отпусти" приложение. Акцентировать внимание на взаимодействии со страницей и иерархиях в JavaScript | [Иерархия в JavaScript, взаимодействие со страницей](../3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | +| 11 | ["Печатная игра"](../4-typing-game/solution/README.md) | Создадите "Печатную игру" | Научиться использовать события с клавиатуры, чтобы управлять своим приложением JavaScript | [Программирование, основанное на событиях](../4-typing-game/typing-game/README.md) | Christopher | +| 12 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Работа с браузерами | Изучить как работают браузеры, их историю и сделать свои первые шаги в разработке расширений для браузера | [О браузерах](../5-browser-extension/1-about-browsers/README.md) | Jen | +| 13 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Строим форму, обращаемся к API и сохраняем данные | Создать элементы JavaScript для своего расширения, чтобы обращаться к API, использовать сохраненные данные | [API, формы и хранение данных](../5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | +| 14 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Фоновые процессы в браузере, эффективность | Использовать фоновые процессы браузера, чтобы изменять иконку вашего расширения, изучить работу с сетью и узнать, какие оптимизации можно применить к вашему проекту | [Фоновые процессы и эффективность](../5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | +| 15 | [Космическая игра](../6-space-game/solution/README.md) | Более сложная разработка игр с использованием JavaScript | Узнать о наследовании, используя Классы и Композиции, а также познакомиться с паттерном "Pub/Sub" в качестве подготовки к построению игры | [Введение в более сложную разработку игр](../6-space-game/1-introduction/README.md) | Chris | +| 16 | [Космическая игра](../6-space-game/solution/README.md) | Рисование с использованием Canvas | Изучить Canvas API, чтобы рисовать элементы на экране | [Рисование с помощью Canvas](../6-space-game/2-drawing-to-canvas/README.md) | Chris | +| 17 | [Космическая игра](../6-space-game/solution/README.md) | Двигаем элементы на экране | Узнать, как вы можете заставить объекты на экране двигаться, используя координатную систему Canvas API | [Двигаем элементы](../6-space-game/3-moving-elements-around/README.md) | Chris | +| 18 | [Космическая игра](../6-space-game/solution/README.md) | Обработка столкновений | Заставить элементы сталкиваться друг с другом при нажатии на клавиши, а также добавьте cooldown-функцию, чтобы повысить эффективность игры | [Обработка столкновений](../6-space-game/4-collision-detection/README.md) | Chris | +| 19 | [Космическая игра](../6-space-game/solution/README.md) | Подсчет очков | Совершить математические вычисления, основываясь на статусе игры и уровне игрока | [Подсчет очков](../6-space-game/5-keeping-score/README.md) | Chris | +| 20 | [Космическая игра](../6-space-game/solution/README.md) | Окончание и перезапуск игры | Изучить как заканчивать и заново начинать игру, включая очистку ресурсов и обнуление переменных | [Условия окончания](../6-space-game/6-end-condition/README.md) | Chris | +| 21 | [Банковское приложение](../7-bank-project/solution/README.md) | Пути и Шаблоны в веб-приложениях HTML | Изучить как начать построение мультистраничного веб-сайта с использованием путей и шаблонов HTML | [Пути и Шаблоны в HTML](../7-bank-project/1-template-route/README.md) | Yohan | +| 22 | [Банковское приложение](../7-bank-project/solution/README.md) | Постройте форму для входа и регистрации | Изучить построение форм и их валидацию | [Формы](../7-bank-project/2-forms/README.md) | Yohan | +| 23 | [Банковское приложение](../7-bank-project/solution/README.md) | Методы обработки и использования информации | Изучить как информация проходит через ваше приложение, как обрабатывать, хранить и уничтожать её | [Информация](../7-bank-project/3-data/README.md) | Yohan | +| 24 | [Банковское приложение](../7-bank-project/solution/README.md) | Концепции управления состояниями | Изучить как ваше приложение запоминает состояния и как управлять ими программно | [Управление состояниями](../7-bank-project/4-state-management/README.md) | Yohan | ## Оффлайн доступ -Вы можете использовать эьту документацию оффлайн при помощи [Docsify](https://docsify.js.org/#/). Сделайте fork этого репозитория, [установите Docsify](https://docsify.js.org/#/quickstart) на ваш компьютер, а затем в корневой директории этого репозитория воспользуйтесь командой `docsify serve`. Вебсайт будет доступен по адресу `localhost:3000`. +Вы можете использовать эту документацию оффлайн при помощи [Docsify](https://docsify.js.org/#/). Сделайте fork этого репозитория, [установите Docsify](https://docsify.js.org/#/quickstart) на ваш компьютер, а затем в корневой директории этого репозитория воспользуйтесь командой `docsify serve`. Вебсайт будет доступен по адресу `localhost:3000`. ## PDF From 2940f27fa2a44829745f528bd38e38eb5bb18350 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Fri, 11 Feb 2022 00:15:50 +0700 Subject: [PATCH 14/58] RU: Translated 2-js-basics base README (#597) --- 2-js-basics/translations/README.ru.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 2-js-basics/translations/README.ru.md diff --git a/2-js-basics/translations/README.ru.md b/2-js-basics/translations/README.ru.md new file mode 100644 index 00000000..a9bd5211 --- /dev/null +++ b/2-js-basics/translations/README.ru.md @@ -0,0 +1,14 @@ +# Введение в JavaScript + +JavaScript это язык веб-программирования. В этих четырёх уроках вы изучите его основы. + +### Уроки + +1. [Переменные и типы данных](#) +2. [Функции и методы](#) +3. [Принятие решений с помощью JavaScript](#) +4. [Массивы и циклы](#) + +### Благодарность + +Эти уроки были ♥️ созданы [Жасмин Гринуэй](https://twitter.com/paladique), [Кристофером Харрисоном](https://twitter.com/geektrainer) и [Крисом Норингом](https://twitter.com/chris_noring). \ No newline at end of file From 42d28a0eedeff4cb8e21813c4868c9a1d32403c5 Mon Sep 17 00:00:00 2001 From: Ivan Kalashnikov <53004350+Steindvart@users.noreply.github.com> Date: Fri, 11 Feb 2022 00:16:20 +0700 Subject: [PATCH 15/58] Revision of the question in quiz (id: 4, quest: 2) (#595) --- quiz-app/src/assets/translations/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quiz-app/src/assets/translations/en.json b/quiz-app/src/assets/translations/en.json index 5ad362d5..e049bb6f 100644 --- a/quiz-app/src/assets/translations/en.json +++ b/quiz-app/src/assets/translations/en.json @@ -189,7 +189,7 @@ ] }, { - "questionText": "How would you get all the commits from a remote branch?", + "questionText": "How would you get and integrate all the commits from a remote branch?", "answerOptions": [ { "answerText": "git fetch", From 6f72853e991327d1c330df67eb2fdcaeba1a1259 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Sun, 13 Feb 2022 17:04:10 +0000 Subject: [PATCH 16/58] fix a link by deleting space (#599) fix a link by deleting space --- 7-bank-project/3-data/translations/README.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/7-bank-project/3-data/translations/README.ja.md b/7-bank-project/3-data/translations/README.ja.md index 2906f53a..038f6b60 100644 --- a/7-bank-project/3-data/translations/README.ja.md +++ b/7-bank-project/3-data/translations/README.ja.md @@ -223,7 +223,7 @@ function updateDashboard() { > 残高表示をよりきれいにするために、メソッド [`toFixed(2)`](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) を使用して、小数点以下2桁の値を強制的に表示します。 -これで、ダッシュボードがロードされるたびに `updateDashboard()` 関数を呼び出す必要があります。既に [レッスン1の課題] (../../1-template-route/translations/README.ja.md) を終了している場合は簡単ですが、そうでない場合は以下の実装を使用することができます。 +これで、ダッシュボードがロードされるたびに `updateDashboard()` 関数を呼び出す必要があります。既に [レッスン1の課題](../../1-template-route/translations/README.ja.md) を終了している場合は簡単ですが、そうでない場合は以下の実装を使用することができます。 このコードを `updateRoute()` 関数の最後に追加します。 From 158f3d5595ccc39e397aa0f573d60c494d035c73 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Sun, 13 Feb 2022 17:05:02 +0000 Subject: [PATCH 17/58] [fr] french translation for 7-3-readme.md file (#600) * Fix small typo, links and reference fr assignment Fix small typo, links and reference french assignment * Fix: Add loc param and reference fr assignment Add localization parameter on quizzes links and reference fr assignment * fix localization param fix localization param * Fix image links and reference fr assignment * create 7-3-readme.fr.md file * Complete french translation for 7-bank-project/3-data README file --- .../3-data/translations/README.fr.md | 334 ++++++++++++++++++ 1 file changed, 334 insertions(+) create mode 100644 7-bank-project/3-data/translations/README.fr.md diff --git a/7-bank-project/3-data/translations/README.fr.md b/7-bank-project/3-data/translations/README.fr.md new file mode 100644 index 00000000..aee83c8f --- /dev/null +++ b/7-bank-project/3-data/translations/README.fr.md @@ -0,0 +1,334 @@ +# Créer une application bancaire Partie 3: Méthodes de récupération et d'utilisation des données + +## Quiz préalable + +[Quiz préalable](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/45?loc=fr) + +### Introduction + +Au cœur de chaque application Web, il y a des *données*. Les données peuvent prendre de nombreuses formes, mais leur objectif principal est toujours d'afficher des informations pour l'utilisateur. Les applications Web devenant de plus en plus interactives et complexes, la manière dont l'utilisateur accède aux informations et interagit avec elles est désormais un élément clé du développement Web. + +Dans cette leçon, nous verrons comment récupérer des données d'un serveur de manière asynchrone et utiliser ces données pour afficher des informations sur une page Web sans recharger le code HTML. + +### Prérequis + +Vous devez avoir créé la partie [Formulaire de connexion et d'inscription](../../2-forms/translations/README.fr.md) de l'application Web pour cette leçon. Vous devez également installer [Node.js](https://nodejs.org) et [exécuter l'API du serveur](../../api/translations/README.fr.md) localement afin d'obtenir les données de compte. + +Vous pouvez tester que le serveur fonctionne correctement en exécutant cette commande dans un terminal: + +```sh +curl http://localhost:5000/api +# -> devrait renvoyer "Bank API v1.0.0" comme résultat +``` + +--- + +## AJAX et la récupération de données + +Les sites Web traditionnels mettent à jour le contenu affiché lorsque l’utilisateur sélectionne un lien ou soumet des données à l’aide d’un formulaire, en rechargeant la page HTML complète. Chaque fois que de nouvelles données doivent être chargées, le serveur Web renvoie une toute nouvelle page HTML qui doit être traitée par le navigateur, interrompant l’action actuelle de l’utilisateur et limitant les interactions pendant le rechargement. Ce flux de travail est également appelé *Application multipage* ou *AMP*. + +![Mettre à jour le flux de travail dans une application multipage](../images/mpa.png) + +Lorsque les applications Web ont commencé à devenir plus complexes et interactives, une nouvelle technique appelée [AJAX (Asynchronous JavaScript and XML)](https://en.wikipedia.org/wiki/Ajax_(programming)) a émergé. Cette technique permet aux applications Web d’envoyer et de récupérer des données à partir d’un serveur de manière asynchrone à l’aide de JavaScript, sans avoir à recharger la page HTML, ce qui se traduit par des mises à jour plus rapides et des interactions utilisateur plus fluides. Lorsque de nouvelles données sont reçues du serveur, la page HTML actuelle peut également être mise à jour avec JavaScript à l’aide de l’API [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model). Au fil du temps, cette approche a évolué pour devenir ce qu’on appelle maintenant une [*Application d’une seule page* ou *SPA*](https://en.wikipedia.org/wiki/Single-page_application). + +![Mettre à jour le flux de travail dans une application d’une seule page](../images/spa.png) + +Lors de l’introduction d’AJAX, la seule API disponible pour récupérer des données de manière asynchrone était [`XMLHttpRequest`](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest). Mais les navigateurs modernes implémentent désormais également [l’API `Fetch`](https://developer.mozilla.org/docs/Web/API/Fetch_API) plus pratique et plus puissante, qui utilise des promesses et est mieux adaptée à la manipulation des données JSON. + +> Bien que tous les navigateurs modernes prennent en charge l’API Fetch, si vous souhaitez que votre application Web fonctionne sur des navigateurs hérités ou anciens, il est toujours judicieux de vérifier d’abord le [tableau de compatibilité sur caniuse.com](https://caniuse.com/fetch). + +### Tâche + +Dans [la leçon précédente](../../2-forms/translations/README.fr.md) nous avons implémenté le formulaire d’inscription pour créer un compte. Nous allons maintenant ajouter du code pour vous connecter à l’aide d’un compte existant et récupérer ses données. Ouvrez le fichier `app.js` et ajoutez une nouvelle fonction `login`: + +```js +async function login() { + const loginForm = document.getElementById('loginForm') + const user = loginForm.user.value; +} +``` + +Ici, nous commençons par récupérer l’élément de formulaire avec `getElementById()`, puis nous obtenons le nom d’utilisateur à partir de l’entrée avec `loginForm.user.value`. Chaque contrôle de formulaire est accessible par son nom (défini dans le code HTML à l’aide de l’attribut `name`) en tant que propriété du formulaire. + +De la même manière que nous avons fait pour l’enregistrement, nous allons créer une autre fonction pour effectuer une demande de serveur, mais cette fois pour récupérer les données du compte: + +```js +async function getAccount(user) { + try { + const response = await fetch('//localhost:5000/api/accounts/' + encodeURIComponent(user)); + return await response.json(); + } catch (error) { + return { error: error.message || 'Unknown error' }; + } +} +``` + +Nous utilisons l’API `fetch` pour demander les données de manière asynchrone au serveur, mais cette fois, nous n’avons pas besoin de paramètres supplémentaires autres que l’URL à appeler, car nous n’interrogeons que des données. Par défaut, `fetch` crée une requête HTTP [`GET`](https://developer.mozilla.org/docs/Web/HTTP/Methods/GET), ce que nous recherchons ici. + +✅ `encodeURIComponent()` est une fonction qui échappe les caractères spéciaux pour URL. Quels problèmes pourrions-nous avoir si nous n’appelons pas cette fonction et n’utilisons pas directement la valeur `user` dans l’URL? + +Mettons maintenant à jour notre fonction `login` pour utiliser `getAccount`: + +```js +async function login() { + const loginForm = document.getElementById('loginForm') + const user = loginForm.user.value; + const data = await getAccount(user); + + if (data.error) { + return console.log('loginError', data.error); + } + + account = data; + navigate('/dashboard'); +} +``` + +Tout d’abord, comme `getAccount` est une fonction asynchrone, nous devons la faire correspondre avec le mot-clé `await` pour attendre le résultat du serveur. Comme pour toute demande de serveur, nous devons également traiter les cas d’erreur. Pour l’instant, nous allons seulement ajouter un message de journal pour afficher l’erreur, et y revenir plus tard. + +Ensuite, nous devons stocker les données quelque part afin de pouvoir les utiliser plus tard pour afficher les informations du tableau de bord. Étant donné que la variable `account` n’existe pas encore, nous allons créer une variable globale pour elle en haut de notre fichier: + +```js +let account = null; +``` + +Une fois les données utilisateur enregistrées dans une variable, nous pouvons naviguer de la page *login* au *dashboard* en utilisant la fonction `navigate()` que nous avons déjà. + +Enfin, nous devons appeler notre fonction `login` lorsque le formulaire de login est soumis, en modifiant le HTML: + +```html + +``` + +Vérifiez que tout fonctionne correctement en enregistrant un nouveau compte et en essayant de vous connecter à l’aide du même compte. + +Avant de passer à la partie suivante, nous pouvons également compléter la fonction `register` en ajoutant ceci au bas de la fonction: + +```js +account = result; +navigate('/dashboard'); +``` + +✅ Saviez-vous que par défaut, vous ne pouvez appeler les API du serveur qu’à partir du *même domaine et port* que la page Web que vous consultez? Il s’agit d’un mécanisme de sécurité appliqué par les navigateurs. Mais attendez, notre application web s’exécute sur 'localhost:3000' alors que l’API du serveur s’exécute sur `localhost:3000`, pourquoi cela fonctionne-t-il? En utilisant une technique appelée [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/docs/Web/HTTP/CORS), il est possible d’effectuer des requêtes HTTP inter-origines si le serveur ajoute des en-têtes spéciaux à la réponse, ce qui permet des exceptions pour des domaines spécifiques. + +> En savoir plus sur les API en suivant cette [leçon](https://docs.microsoft.com/learn/modules/use-apis-discover-museum-art?WT.mc_id=academic-13441-cxa) + +## Mettre à jour le code HTML pour afficher les données + +Maintenant que nous avons les données utilisateur, nous devons mettre à jour le code HTML existant pour l’afficher. Nous savons déjà comment récupérer un élément du DOM en utilisant par exemple `document.getElementById()`. Une fois que vous avez un élément de base, voici quelques API que vous pouvez utiliser pour le modifier ou y ajouter des éléments enfants: + +- En utilisant la propriété [`textContent`](https://developer.mozilla.org/docs/Web/API/Node/textContent), vous pouvez modifier le texte d’un élément. Notez que la modification de cette valeur supprime tous les enfants de l’élément (le cas échéant) et le remplace par le texte fourni. En tant que tel, c’est aussi une méthode efficace pour supprimer tous les enfants d’un élément donné en lui attribuant une chaîne vide `''` à celui-ci. + +- En utilisant [`document.createElement()`](https://developer.mozilla.org/docs/Web/API/Document/createElement) avec la méthode [`append()`](https://developer.mozilla.org/docs/Web/API/ParentNode/append), vous pouvez créer et attacher un ou plusieurs nouveaux éléments enfants. + +✅ En utilisant la propriété [`innerHTML`](https://developer.mozilla.org/docs/Web/API/Element/innerHTML) d’un élément, il est également possible de modifier son contenu HTML, mais celui-ci doit être évité car il est vulnérable aux attaques [cross-site scripting (XSS)](https://developer.mozilla.org/docs/Glossary/Cross-site_scripting). + +### Tâche + +Avant de passer à l’écran du tableau de bord, il y a encore une chose que nous devrions faire sur la page *connexion*. Actuellement, si vous essayez de vous connecter avec un nom d’utilisateur qui n’existe pas, un message s’affiche dans la console, mais pour un utilisateur normal, rien ne change et vous ne savez pas ce qui se passe. + +Ajoutons un élément d’espace réservé dans le formulaire de connexion où nous pouvons afficher un message d’erreur si nécessaire. Un bon endroit serait juste avant la connexion ` +... +``` + +Cet élément `
` est vide, ce qui signifie que rien ne sera affiché à l’écran tant que nous n’y aurons pas ajouté du contenu. Nous lui donnons également un `id` afin que nous puissions le récupérer facilement avec JavaScript. + +Revenez au fichier `app.js` et créez une nouvelle fonction d’assistance `updateElement`: + +```js +function updateElement(id, text) { + const element = document.getElementById(id); + element.textContent = text; +} +``` + +Celui-ci est assez simple: selon un élément *id* et *text*, il mettra à jour le contenu textuel de l’élément DOM avec l'`id` correspondant. Utilisons cette méthode à la place du message d’erreur précédent dans la fonction `login`: + +```js +if (data.error) { + return updateElement('loginError', data.error); +} +``` + +Maintenant, si vous essayez de vous connecter avec un compte non valide, vous devriez voir quelque chose comme ceci: + +![Capture d’écran montrant le message d’erreur affiché lors de la connexion](../images/login-error.png) + +Maintenant, nous avons un texte d’erreur qui apparaît visuellement, mais si vous l’essayez avec un lecteur d’écran, vous remarquerez que rien n’est annoncé. Pour que le texte ajouté dynamiquement à une page soit annoncé par les lecteurs d’écran, il devra utiliser quelque chose appelé [Live Region](https://developer.mozilla.org/docs/Web/Accessibility/ARIA/ARIA_Live_Regions). Ici, nous allons utiliser un type spécifique de région en direct (live region) appelée alerte: + +```html + +``` + +Implémentez le même comportement pour les erreurs de la fonction `register` (n’oubliez pas de mettre à jour le code HTML). + +## Afficher les informations sur le tableau de bord + +En utilisant les mêmes techniques que nous venons de voir, nous nous occuperons également d’afficher les informations du compte sur la page du tableau de bord. + +Voici à quoi ressemble un objet de compte reçu du serveur: + +```json +{ + "user": "test", + "currency": "$", + "description": "Test account", + "balance": 75, + "transactions": [ + { "id": "1", "date": "2020-10-01", "object": "Pocket money", "amount": 50 }, + { "id": "2", "date": "2020-10-03", "object": "Book", "amount": -10 }, + { "id": "3", "date": "2020-10-04", "object": "Sandwich", "amount": -5 } + ], +} +``` + +> Remarque: pour vous faciliter la vie, vous pouvez utiliser le compte `test` préexistant qui est déjà rempli de données. + +### Tâche + +Commençons par remplacer la section "Balance" dans le code HTML pour ajouter des éléments d’espace réservé: + +```html +
+ Balance: +
+``` + +Nous ajouterons également une nouvelle section juste en dessous pour afficher la description du compte: + +```html +

+``` + +✅ Étant donné que la description du compte fonctionne comme un titre pour le contenu en dessous, elle est marquée sémantiquement comme un en-tête. Apprenez-en davantage sur l’importance de [structure de titre](https://www.nomensa.com/blog/2017/how-structure-headings-web-accessibility) pour l’accessibilité, et jetez un coup d’œil critique à la page pour déterminer ce qui pourrait être un autre titre. + +Ensuite, nous allons créer une nouvelle fonction dans `app.js` pour remplir l’espace réservé: + +```js +function updateDashboard() { + if (!account) { + return navigate('/login'); + } + + updateElement('description', account.description); + updateElement('balance', account.balance.toFixed(2)); + updateElement('currency', account.currency); +} +``` + +Tout d’abord, nous vérifions que nous avons les données de compte dont nous avons besoin avant d’aller plus loin. Ensuite, nous utilisons la fonction `updateElement()` que nous avons créée précédemment pour mettre à jour le code HTML. + +> Pour rendre l’affichage de la balance plus joli, nous utilisons la méthode [`toFixed(2)`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) pour forcer l’affichage de la valeur avec 2 chiffres après la virgule. + +Maintenant, nous devons appeler notre fonction `updateDashboard()` chaque fois que le tableau de bord est chargé. Si vous avez déjà terminé le [devoir de la leçon 1](../../1-template-route/translations/README.fr.md) cela devrait être simple, sinon vous pouvez utiliser l’implémentation suivante. + +Ajoutez ce code à la fin de la fonction `updateRoute()`: + +```js +if (typeof route.init === 'function') { + route.init(); +} +``` + +Et mettez à jour la définition des itinéraires avec: + +```js +const routes = { + '/login': { templateId: 'login' }, + '/dashboard': { templateId: 'dashboard', init: updateDashboard } +}; +``` + +Avec ce changement, chaque fois que la page du tableau de bord est affichée, la fonction `updateDashboard()` est appelée. Après une connexion, vous devriez alors être en mesure de voir le solde du compte, la devise et la description. + +## Créer dynamiquement des lignes de tableau avec des modèles HTML + +Dans la [première leçon](../../1-template-route/translations/README.fr.md) nous avons utilisé des modèles HTML avec la méthode [`appendChild()`](https://developer.mozilla.org/docs/Web/API/Node/appendChild) pour implémenter la navigation dans notre application. Les modèles peuvent également être plus petits et utilisés pour remplir dynamiquement des parties répétitives d’une page. + +Nous utiliserons une approche similaire pour afficher la liste des transactions dans le tableau HTML. + +### Tâche + +Ajoutez un nouveau modèle dans le code HTML ``: + +```html + +``` + +Ce modèle représente une seule ligne de tableau, avec les 3 colonnes que nous voulons remplir: *date*, *object* et *amount* d’une transaction. + +Ensuite, ajoutez cette propriété `id` à l’élément `` du tableau dans le modèle de tableau de bord pour faciliter la recherche à l’aide de JavaScript: + +```html + +``` + +Notre HTML est prêt, passons au code JavaScript et créons une nouvelle fonction `createTransactionRow`: + +```js +function createTransactionRow(transaction) { + const template = document.getElementById('transaction'); + const transactionRow = template.content.cloneNode(true); + const tr = transactionRow.querySelector('tr'); + tr.children[0].textContent = transaction.date; + tr.children[1].textContent = transaction.object; + tr.children[2].textContent = transaction.amount.toFixed(2); + return transactionRow; +} +``` + +Cette fonction fait exactement ce que ses noms impliquent: en utilisant le modèle que nous avons créé précédemment, elle crée une nouvelle ligne de tableau et remplit son contenu à l’aide de données de transaction. Nous l’utiliserons dans notre fonction `updateDashboard()` pour remplir la table: + +```js +const transactionsRows = document.createDocumentFragment(); +for (const transaction of account.transactions) { + const transactionRow = createTransactionRow(transaction); + transactionsRows.appendChild(transactionRow); +} +updateElement('transactions', transactionsRows); +``` + +Ici, nous utilisons la méthode [`document.createDocumentFragment()`](https://developer.mozilla.org/docs/Web/API/Document/createDocumentFragment) qui crée un nouveau fragment DOM sur lequel nous pouvons travailler, avant de finalement l’attacher à notre tableau HTML. + +Il reste encore une chose à faire avant que ce code puisse fonctionner, car notre fonction `updateElement()` ne prend actuellement en charge que le contenu texte. Changeons un peu son code: + +```js +function updateElement(id, textOrNode) { + const element = document.getElementById(id); + element.textContent = ''; // Removes all children + element.append(textOrNode); +} +``` + +Nous utilisons la méthode [`append()`](https://developer.mozilla.org/docs/Web/API/ParentNode/append) car elle permet d’attacher du texte ou des [nœuds DOM](https://developer.mozilla.org/docs/Web/API/Node) à un élément parent, ce qui est parfait pour tous nos cas d’utilisation. + +Si vous essayez d’utiliser le compte `test` pour vous connecter, vous devriez maintenant voir une liste de transactions sur le tableau de bord 🎉. + +--- + +## 🚀 Challenge + +Travaillez ensemble pour que la page du tableau de bord ressemble à une véritable application bancaire. Si vous avez déjà stylisé votre application, essayez d'utiliser des [requêtes multimédias](https://developer.mozilla.org/docs/Web/CSS/Media_Queries) pour créer un [design réactif](https://developer.mozilla.org/docs/Web/Progressive_web_apps/Responsive/responsive_design_building_blocks) qui fonctionne bien sur les ordinateurs de bureau et les appareils mobiles. + +Voici un exemple de page de tableau de bord stylisée: + +![Capture d'écran d'un exemple de résultat du tableau de bord après le style](../../images/screen2.png) + +## Quiz de validation des connaissances + +[Quiz de validation des connaissances](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/46?loc=fr) + +## Affectation + +[Refactorisez et commentez votre code](assignment.fr.md) From 1a9a8a4b357118afae85554a1960b25d25987b1c Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Sun, 13 Feb 2022 17:05:24 +0000 Subject: [PATCH 18/58] [fr] french translation for 7-4-readme.md file (#601) * Fix small typo, links and reference fr assignment Fix small typo, links and reference french assignment * Fix: Add loc param and reference fr assignment Add localization parameter on quizzes links and reference fr assignment * fix localization param fix localization param * Fix image links and reference fr assignment * french translation of 7-4-readme done --- .../translations/README.fr.md | 281 ++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 7-bank-project/4-state-management/translations/README.fr.md diff --git a/7-bank-project/4-state-management/translations/README.fr.md b/7-bank-project/4-state-management/translations/README.fr.md new file mode 100644 index 00000000..76b5e04d --- /dev/null +++ b/7-bank-project/4-state-management/translations/README.fr.md @@ -0,0 +1,281 @@ +# Créer une application bancaire Partie 4: Concepts de gestion d'état + +## Quiz préalable + +[Quiz préalable](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/47?loc=fr) + +### Introduction + +Au fur et à mesure qu’une application Web se développe, il devient difficile de suivre tous les flux de données. Quel code obtient les données, quelle page les consomme, où et quand doit-il être mis à jour... il est facile de se retrouver avec un code désordonné et difficile à maintenir. Cela est particulièrement vrai lorsque vous devez partager des données entre différentes pages de votre application, par exemple des données utilisateur. Le concept de *gestion de l’état* a toujours existé dans toutes sortes de programmes, mais comme les applications Web ne cessent de croître en complexité, c’est maintenant un point clé à prendre en compte pendant le développement. + +Dans cette dernière partie, nous examinerons l’application que nous avons créée pour repenser la façon dont l’état est géré, permettant la prise en charge de l’actualisation du navigateur à tout moment et la persistance des données entre les sessions utilisateur. + +### Prérequis + +Vous devez avoir terminé la [récupération des données](../../3-data/translations/README.fr.md) de l’application web pour cette leçon. Vous devez également installer [Node.js](https://nodejs.org) et [exécuter l’API du serveur](../../api/translations/README.fr.md) localement afin que vous puissiez gérer les données du compte. + +Vous pouvez tester que le serveur fonctionne correctement en exécutant cette commande dans un terminal: + +```sh +curl http://localhost:5000/api +# -> doit renvoyer "Bank API v1.0.0" comme résultat +``` + +--- + +## Repenser la gestion des états + +Dans la [leçon précédente](../../3-data/translations/README.fr.md), nous avons introduit un concept basique d’état dans notre application avec la variable globale `account` qui contient les données bancaires de l’utilisateur actuellement connecté. Cependant, notre mise en œuvre actuelle présente certains défauts. Essayez d’actualiser la page lorsque vous êtes sur le tableau de bord. Que se passe-t-il? + +Il y a 3 problèmes avec le code actuel: + +- L’état n’est pas persistant, car une actualisation du navigateur vous ramène à la page de connexion. +- Il existe plusieurs fonctions qui modifient l’état. Au fur et à mesure que l’application se développe, il peut être difficile de suivre les modifications et il est facile d’oublier d’en mettre à jour une. +- L’état n’est pas nettoyé, donc lorsque vous cliquez sur *Logout* les données du compte sont toujours là même si vous êtes sur la page de connexion. + +Nous pourrions mettre à jour notre code pour résoudre ces problèmes un par un, mais cela créerait plus de duplication de code et rendrait l’application plus complexe et difficile à maintenir. Ou nous pourrions faire une pause de quelques minutes et repenser notre stratégie. + +> Quels problèmes essayons-nous vraiment de résoudre ici? + +[La gestion de l’état](https://en.wikipedia.org/wiki/State_management) consiste à trouver une bonne approche pour résoudre ces deux problèmes particuliers: + +- Comment rendre compréhensibles les flux de données dans une application? +- Comment garder les données d’état toujours synchronisées avec l’interface utilisateur (et vice versa)? + +Une fois que vous vous êtes occupé de ceux-ci, tous les autres problèmes que vous pourriez avoir peuvent être déjà résolus ou sont devenus plus faciles à résoudre. Il existe de nombreuses approches possibles pour résoudre ces problèmes, mais nous opterons pour une solution commune qui consiste à **centraliser les données et les moyens de les modifier**. Les flux de données se dérouleraient comme suit: + +![Schéma montrant les flux de données entre le code HTML, les actions de l’utilisateur et l’état](../images/data-flow.png) + +> Nous ne couvrirons pas ici la partie où les données déclenchent automatiquement la mise à jour de la vue, car elle est liée à des concepts plus avancés de [Programmation réactive](https://en.wikipedia.org/wiki/Reactive_programming). C’est un bon sujet de suivi si vous êtes prêt à plonger profondément. + +✅ Il existe de nombreuses bibliothèques avec différentes approches de la gestion des États, [Redux](https://redux.js.org) étant une option populaire. Jetez un coup d’œil aux concepts et aux modèles utilisés, car c’est souvent un bon moyen d’apprendre quels problèmes potentiels vous pouvez rencontrer dans les grandes applications Web et comment ils peuvent être résolus. + +### Tâche + +Nous allons commencer par un peu de refactorisation. Remplacer la déclaration `account`: + +```js +let account = null; +``` + +Par: + +```js +let state = { + account: null +}; +``` + +L’idée est de *centraliser* toutes nos données d’application dans un seul objet d’état. Nous n’avons que le `account` pour l’instant dans l’état, donc cela ne change pas beaucoup, mais cela crée un chemin pour les évolutions. + +Nous devons également mettre à jour les fonctions en l’utilisant. Dans les fonctions `register()` et `login()`, remplacez `account = ...` par `state.account = ...`; + +En haut de la fonction `updateDashboard()`, ajoutez cette ligne: + +```js +const account = state.account; +``` + +Ce refactoring en lui-même n’a pas apporté beaucoup d’améliorations, mais l’idée était de jeter les bases des prochains changements. + +## Suivre les modifications de données + +Maintenant que nous avons mis en place l’objet `state` pour stocker nos données, l’étape suivante consiste à centraliser les mises à jour. L’objectif est de faciliter le suivi des changements et de leur moment. + +Pour éviter que des modifications soient apportées à l’objet `state`, il est également recommandé de le considérer comme [*immuable*](https://en.wikipedia.org/wiki/Immutable_object), ce qui signifie qu’il ne peut pas être modifié du tout. Cela signifie également que vous devez créer un nouvel objet d’état si vous souhaitez y modifier quoi que ce soit. Ce faisant, vous créez une protection contre les [effets secondaires](https://en.wikipedia.org/wiki/Side_effect_(computer_science)) potentiellement indésirables et ouvrez des possibilités de nouvelles fonctionnalités dans votre application, telles que la mise en œuvre de l’annulation/rétablissement, tout en facilitant le débogage. Par exemple, vous pouvez consigner chaque modification apportée à l’état et conserver un historique des modifications pour comprendre la source d’un bogue. + +En JavaScript, vous pouvez utiliser [`Object.freeze()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) pour créer une version immuable d’un objet. Si vous essayez d’apporter des modifications à un objet immuable, une exception sera déclenchée. + +✅ Connaissez-vous la différence entre un objet immuable *peu profond* et un objet immuable *profond*? Vous pouvez en apprendre plus sur ce sujet [ici](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze). + +### Tâche + +Créons une nouvelle fonction `updateState()`: + +```js +function updateState(property, newData) { + state = Object.freeze({ + ...state, + [property]: newData + }); +} +``` + +Dans cette fonction, nous créons un nouvel objet d’état et copions les données de l’état précédent à l’aide de [*l’opérateur spread (`...`)*](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals). Ensuite, nous remplaçons une propriété particulière de l’objet d’état par les nouvelles données en utilisant la [notation entre crochets](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Working_with_Objects#Objects_and_properties) `[property]` pour l’affectation. Enfin, nous verrouillons l’objet pour empêcher les modifications en utilisant `Object.freeze()`. Nous n’avons que la propriété `account` stockée dans l’état pour l’instant, mais avec cette approche, vous pouvez ajouter autant de propriétés que nécessaire dans l’état. + +Nous allons également mettre à jour l’initialisation `state` pour nous assurer que l’état initial est également gelé: + +```js +let state = Object.freeze({ + account: null +}); +``` + +Après cela, mettez à jour la fonction `register` en remplaçant l’affectation `state.account = result;` par: + +```js +updateState('account', result); +``` + +Faites de même avec la fonction `login`, en remplaçant `state.account = data;` par: + +```js +updateState('account', data); +``` + +Nous allons maintenant saisir l’occasion de résoudre le problème des données de compte qui ne sont pas effacées lorsque l’utilisateur clique sur *Logout*. + +Créez une nouvelle fonction `logout()`: + +```js +function logout() { + updateState('account', null); + navigate('/login'); +} +``` + +Dans `updateDashboard()`, remplacez la redirection `return navigate('/login');` par `return logout()`; + +Essayez d’enregistrer un nouveau compte, de vous déconnecter et de vous reconnecter pour vérifier que tout fonctionne toujours correctement. + +> Conseil: vous pouvez jeter un coup d’œil à tous les changements d’état en ajoutant `console.log(state)` au bas de `updateState()` et en ouvrant la console dans les outils de développement de votre navigateur. + +## Conserver l’état + +La plupart des applications Web doivent conserver les données pour pouvoir fonctionner correctement. Toutes les données critiques sont généralement stockées dans une base de données et accessibles via une API de serveur, comme les données du compte utilisateur dans notre cas. Mais parfois, il est également intéressant de conserver certaines données sur l’application cliente qui s’exécute dans votre navigateur, pour une meilleure expérience utilisateur ou pour améliorer les performances de chargement. + +Lorsque vous souhaitez conserver des données dans votre navigateur, vous devez vous poser quelques questions importantes: + +- *Les données sont-elles sensibles?* Vous devez éviter de stocker des données sensibles sur le client, telles que les mots de passe des utilisateurs. +- *Pendant combien de temps devez-vous conserver ces données?* Prévoyez-vous d’accéder à ces données uniquement pour la session en cours ou souhaitez-vous qu’elles soient stockées pour toujours? + +Il existe plusieurs façons de stocker des informations dans une application web, en fonction de ce que vous souhaitez réaliser. Par exemple, vous pouvez utiliser les URL pour stocker une requête de recherche et la rendre partageable entre les utilisateurs. Vous pouvez également utiliser des [cookies HTTP](https://developer.mozilla.org/docs/Web/HTTP/Cookies) si les données doivent être partagées avec le serveur, comme les informations d'[authentification](https://en.wikipedia.org/wiki/Authentication). + +Une autre option consiste à utiliser l’une des nombreuses API de navigateur pour stocker des données. Deux d’entre eux sont particulièrement intéressants: + +- [`localStorage`](https://developer.mozilla.org/docs/Web/API/Window/localStorage): un [Key/Value store](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) permettant de conserver des données spécifiques au site web actuel sur différentes sessions. Les données qui y sont enregistrées n’expirent jamais. +- [`sessionStorage`](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage): celui-ci fonctionne de la même manière que `localStorage` sauf que les données qui y sont stockées sont effacées à la fin de la session (lorsque le navigateur est fermé). + +Notez que ces deux API autorisent uniquement le stockage de [chaînes](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String). Si vous souhaitez stocker des objets complexes, vous devrez les sérialiser au format [JSON](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON) à l’aide de [`JSON.stringify()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). + +✅ Si vous souhaitez créer une application web qui ne fonctionne pas avec un serveur, il est également possible de créer une base de données sur le client à l’aide de [l’API `IndexedDB`](https://developer.mozilla.org/docs/Web/API/IndexedDB_API). Celui-ci est réservé aux cas d’utilisation avancés ou si vous avez besoin de stocker une quantité importante de données, car il est plus complexe à utiliser. + +### Tâche + +Nous voulons que nos utilisateurs restent connectés jusqu’à ce qu’ils cliquent explicitement sur le bouton *Logout*, nous utiliserons donc `localStorage` pour stocker les données du compte. Tout d’abord, définissons une clé que nous utiliserons pour stocker nos données. + +```js +const storageKey = 'savedAccount'; +``` + +Ajoutez ensuite cette ligne à la fin de la fonction `updateState()`: + +```js +localStorage.setItem(storageKey, JSON.stringify(state.account)); +``` + +Avec cela, les données du compte utilisateur seront conservées et toujours à jour car nous avons centralisé précédemment toutes nos mises à jour d’état. C’est là que nous commençons à bénéficier de tous nos refactors précédents 🙂. + +Au fur et à mesure que les données sont enregistrées, nous devons également nous occuper de les restaurer lorsque l’application est chargée. Puisque nous allons commencer à avoir plus de code d’initialisation, il peut être judicieux de créer une nouvelle fonction `init`, qui inclut également notre code précédent au bas de `app.js`: + +```js +function init() { + const savedAccount = localStorage.getItem(storageKey); + if (savedAccount) { + updateState('account', JSON.parse(savedAccount)); + } + + // Notre précédent code d'initialisation + window.onpopstate = () => updateRoute(); + updateRoute(); +} + +init(); +``` + +Ici, nous récupérons les données enregistrées, et s’il y en a, nous mettons à jour l’état en conséquence. Il est important de le faire *avant* de mettre à jour l’itinéraire, car il peut y avoir du code s’appuyant sur l’état lors de la mise à jour de la page. + +Nous pouvons également faire de la page *Dashboard* notre page par défaut de l’application, car nous conservons maintenant les données du compte. Si aucune donnée n’est trouvée, le tableau de bord se charge de rediriger vers la page *Login* de toute façon. Dans `updateRoute()`, remplacez le secours `return navigate('/login');` par `return navigate('/dashboard');`. + +Maintenant, connectez-vous à l’application et essayez d’actualiser la page. Vous devez rester sur le tableau de bord. Avec cette mise à jour, nous avons résolu tous nos problèmes initiaux... + +## Actualiser les données + +... Mais nous pourrions aussi en avoir créé un nouveau. Oups! + +Accédez au tableau de bord à l’aide du compte `test`, puis exécutez cette commande sur un terminal pour créer une nouvelle transaction: + +```sh +curl --request POST \ + --header "Content-Type: application/json" \ + --data "{ \"date\": \"2020-07-24\", \"object\": \"Bought book\", \"amount\": -20 }" \ + http://localhost:5000/api/accounts/test/transactions +``` + +Essayez d’actualiser la page du tableau de bord dans le navigateur maintenant. Que se passe-t-il? Voyez-vous la nouvelle transaction? + +L’état est conservé indéfiniment grâce au `localStorage`, mais cela signifie également qu’il n’est jamais mis à jour tant que vous ne vous déconnectez pas de l’application et que vous ne vous connectez pas à nouveau! + +Une stratégie possible pour résoudre ce problème consiste à recharger les données du compte chaque fois que le tableau de bord est chargé, afin d’éviter les données de blocage. + +### Tâche + +Créez une nouvelle fonction `updateAccountData`: + +```js +async function updateAccountData() { + const account = state.account; + if (!account) { + return logout(); + } + + const data = await getAccount(account.user); + if (data.error) { + return logout(); + } + + updateState('account', data); +} +``` + +Cette méthode vérifie que nous sommes actuellement connectés puis recharge les données du compte à partir du serveur. + +Créez une autre fonction nommée `refresh`: + +```js +async function refresh() { + await updateAccountData(); + updateDashboard(); +} +``` + +Celui-ci met à jour les données du compte, puis se charge de mettre à jour le code HTML de la page du tableau de bord. C’est ce que nous devons appeler lorsque l’itinéraire du tableau de bord est chargé. Mettez à jour la définition d’itinéraire avec: + +```js +const routes = { + '/login': { templateId: 'login' }, + '/dashboard': { templateId: 'dashboard', init: refresh } +}; +``` + +Essayez de recharger le tableau de bord maintenant, il devrait afficher les données de compte mises à jour. + +--- + +## 🚀 Challenge + +Maintenant que nous rechargeons les données du compte chaque fois que le tableau de bord est chargé, pensez-vous que nous devons encore conserver *toutes les données du compte*? + +Essayez de travailler ensemble pour modifier ce qui est enregistré et chargé à partir de `localStorage` pour n’inclure que ce qui est absolument nécessaire pour que l’application fonctionne. + +## Quiz de validation des connaissances + +[Quiz de validation des connaissances](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/48?loc=fr) + +## Affectation + +[Implémenter la boîte de dialogue "Ajouter une transaction"](assignment.fr.md) + +Voici un exemple de résultat après avoir terminé l’affectation: + +![Capture d’écran montrant un exemple de boîte de dialogue "Ajouter une transaction"](../images/dialog.png) From bce7ff49538738ae70740b680976ceaeda5fe327 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Mon, 14 Feb 2022 15:19:28 +0000 Subject: [PATCH 19/58] Suggest french translation refactor for Base readme (#602) * Fix small typo, links and reference fr assignment Fix small typo, links and reference french assignment * Fix: Add loc param and reference fr assignment Add localization parameter on quizzes links and reference fr assignment * fix localization param fix localization param * Fix image links and reference fr assignment * Refactor and update of the base readme french translation * Fix typos and broken links from #602 review Fix typos and broken links according to @jlooper review --- translations/README.fr.md | 133 +++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 72 deletions(-) diff --git a/translations/README.fr.md b/translations/README.fr.md index b74e950b..ab7b5a85 100644 --- a/translations/README.fr.md +++ b/translations/README.fr.md @@ -8,108 +8,97 @@ [![Forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/) [![Stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/) +[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) # Développement Web pour débutants - Programme -Azure Cloud Advocates de Microsoft sont heureux de vous offrir un cours de 24 leçons portant sur les bases du HTML, CSS et JavaScript. -Chaque leçon comporte des instructions, des projets et des quizs. -Grâce à la pédagogie basée sur la pratique, vous pouvez apprendre tout en créant des interfaces. -Ce qui représente une méthode qui consiste à acquérir des compétances et s'en rappelant !. +Azure Cloud Advocates de Microsoft ont le plaisir de vous proposer un programme de 12 semaines et 24 leçons sur les bases de JavaScript, CSS et HTML. Chaque leçon comprend des quiz avant et après la leçon, des instructions écrites pour terminer la leçon, une solution, un devoir et plus encore. Notre pédagogie basée sur des projets vous permet d’apprendre tout en construisant, un moyen éprouvé pour que de nouvelles compétences puissent 'coller'. -**Un très grand merci à Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, et Tomomi Imura!** +**Un grand merci à nos auteurs Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees et l’artiste de sketchnote Tomomi Imura!** # Pour commencer -> **Instituteurs**, on vous a préparé des [suggestions](for-teachers.md). On attend votre retour sur ce cours au [forum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! +> **Instituteurs**, nous avons [inclus quelques suggestions](for-teachers.fr.md) sur la façon d’utiliser ce programme. Nous aimerions avoir vos commentaires [dans notre forum de discussion](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! -> **Elèves**, pour en bénéficier de ce cours le plus grand possible. Effectuer un Fork et compléter les exercices, réaliser les quizs! -N'oubliez pas de créer les projets posant sur ce que vous venez d'apprendre puis comparez-les avec les éléments de réponse. -Vous pouvez travailler en groupe, ce qui représente un bon moyen d'apprentissage. -Vous trouverez autres sujets complétants ce cours sur [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa). +> **Elèves**, pour utiliser ce programme par vous-même, effectuer un Fork l’ensemble du dépôt et compléter les exercices par vous-même, en commençant par un quiz préalable, puis en lisant le cours et en complétant le reste des activités. Essayez de créer les projets en comprenant les leçons plutôt que de copier le code de la solution; toutefois, ce code est disponible dans les dossiers /solutions de chaque leçon orientée projet. Une autre idée serait de former un groupe d’étude avec des amis et de parcourir le contenu ensemble. Pour une étude plus approfondie, nous recommandons [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa) et en regardant les vidéos mentionnées ci-dessous. -[![Bande-annonce du cours](screenshot.png)](https://youtube.com/watch?v=R1wrdtmBSII "Bande-annonce du cours") +[![Vidéo promotionnelle](../images/web.gif)](https://youtube.com/watch?v=R1wrdtmBSII "Vidéo promotionnelle") -> 🎥 Cliquez sur l'image pour visualiser une vidéo à propos des créateurs de ce cours ! +Gif par [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -## Pedagogie +> 🎥 Cliquez sur l’image ci-dessus pour une vidéo sur le projet et les personnes qui l’ont créé! -On a choisi deux pédagogies pour créer ce cours. -En premier lieu, on a veillé à ce qu'il soit basé sur un projet et en réalité, vous auriez à la fin de ce cours codé un jeu de typing, une extension web, une application bancaire et d'autres intéressants projets. -En dernier lieu, on a mis à votre disposition des quizs pour vous évaluez vous-même. -Et à la fin, vous auriez appris beaucoup de choses à propos du HTML, CSS et Javascript. Et vous voilà, un développeur web 🎓 ! +## Pédagogie -> En 12 semaines, vous pourrez réaliser cet exploit (de devenir un développeur web 🎓) +Nous avons choisi deux principes pédagogiques lors de l’élaboration de ce programme : s’assurer qu’il est basé sur des projets et qu’il comprend des quiz fréquents. À la fin de cette série, les élèves auront construit un jeu de dactylographie, un terrarium virtuel, une extension de navigateur 'verte', un jeu de type 'space invaders' et une application bancaire de type professionnel, et auront appris les bases de JavaScript, HTML et CSS ainsi que la chaîne d’outils moderne du développeur Web d’aujourd’hui. -> 🎓 Vous pouvez découvrir les premières leçons en tant que [Learn Path Programme](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) de Microsoft Learn! +> 🎓 Vous pouvez prendre les premières leçons de ce programme en tant que [Parcours d’apprentissage](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) sur Microsoft Learn! -Pour s'assurer du bon contenu fourni, on a mis à votre disposition un pack de bases du Javascript contenant une introduction complète à ce langage de programmation [accessible ici](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa). -Il s'agit d'une collection de vidéos faites par les créateurs de ce cours. +En veillant à ce que le contenu s’aligne sur les projets, le processus est rendu plus attrayant pour les étudiants et la rétention des concepts sera augmentée. Nous avons également écrit plusieurs leçons de démarrage sur les bases de JavaScript pour introduire des concepts, associées à une vidéo de la "[Série pour débutants à : JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa)" une collection de tutoriels vidéo, dont certains auteurs ont contribué à ce programme. -En plus, les quizs disponibles sont des quizs qui évaluent les compétences acquises de la leçon précédente et d'autres qui évaluent les compétences acquises dans la leçon actuelle. +En outre, un quiz à faible enjeu avant un cours définit l’intention de l’élève d’apprendre un sujet, tandis qu’un deuxième quiz après le cours assure une rétention supplémentaire. Ce programme a été conçu pour être flexible et amusant et peut être pris en tout ou en partie. Les projets commencent petit et deviennent de plus en plus complexes à la fin du cycle de 12 semaines. -On rappelle que ce cours comporte le HTML, CSS et le Javascript. Donc, on n'a pas traité les Frameworks Javascript comme le React. -Mais voici une série de vidéos éducatives à suivre après avoir complété ce cours, elle traite le Node.js en tant qu'un Framework Javascript. -Accessible [ici](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa) +Bien que nous ayons délibérément évité d’introduire des frameworks JavaScript afin de nous concentrer sur les compétences de base nécessaires en tant que développeur Web avant d’adopter un framework, une bonne prochaine étape pour compléter ce programme serait d’en apprendre davantage sur Node.js via une autre collection de vidéos: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa)". -> Lisez [le Code of Conduct](CODE_OF_CONDUCT.md), [le guide pour contribuer](CONTRIBUTING.md), et [le guide de la traduction du cours](TRANSLATIONS.md). -Vos retours sont vivement acceptés. +> Trouvez nos directives de [Code de conduite](../CODE_OF_CONDUCT.md), pour [Contribuer](../CONTRIBUTING.md) et de [Traduction](../TRANSLATIONS.md). Vos commentaires constructifs sont les bienvenus! -> -## Chaque leçon comporte : +## Chaque leçon comprend : -- Un sketchnote -- Une vidéo supplémentaire -- Quiz des dernières compétences acquises -- Les traces écrites -- Un challenge -- Une explication **très détaillée** pour réussir le challenge -- Ressources -- Des exercices -- Quiz sur ce que l'élève a appris +- note de croquis facultative (sketchnote) +- vidéo supplémentaire en option +- quiz préalable avant la leçon +- leçon écrite +- pour les leçons basées sur un projet, des guides étape par étape sur la façon de construire le projet +- vérifications des connaissances +- un défi +- lecture supplémentaire +- affectation +- quiz de validation des connaissances -> **Les quizs**: Les quizs sont disponibles [ici](https://happy-mud-02d95f10f.azurestaticapps.net/), un total de 48 quizs avec 3 questions chacun. -Ils sont accessible via le dossier `quiz-app`. +> **Une note sur les quiz**: Tous les quiz sont contenus [dans cette application](https://happy-mud-02d95f10f.azurestaticapps.net/), pour un total de 48 quiz de trois questions chacun. Ils sont liés à partir des leçons, mais l’application de quiz peut être exécutée localement; suivez les instructions dans le dossier `quiz-app`. Ils sont progressivement localisés. -## Lessons +## Leçons -| | Nom du projet | Compétences à acquérir | Objectifs | Leçon | Auteur | + +| | Nom du projet | Compétences à acquérir | Objectifs | Leçon liée | Auteur | | :---: | :------------------------------------------------------: | :--------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------: | :---------------------: | -| 01 | Pour commencer | Introduction à la programmation | Savoir les bases de quelques langages de programmation et leur utilité dans la création de solutions informatiques | [Introduction à la programmation](/1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | -| 02 | Pour commencer | Les bases de Github et le travail au groupe | Apprendre comment utiliser GitHub et contribuer à des projets | [Introduction aux bases de GitHub](/1-getting-started-lessons/2-github-basics/README.md) | Floor | -| 03 | Pour commencer | Accessibilité | Apprendre les bases de l'accessibilité au Web | [Accessibility Fundamentals](/1-getting-started-lessons/3-accessibility/README.md) | Christopher | -| 04 | JS Basics | JavaScript Data Types | The basics of JavaScript data types | [Data Types](/2-js-basics/1-data-types/README.md) | Jasmine | -| 05 | JS Basics | Functions and Methods | Learn about functions and methods to manage an application's logic flow | [Functions and Methods](/2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | -| 06 | JS Basics | Making Decisions with JS | Learn how to create conditions in your code using decision-making methods | [Making Decisions](/2-js-basics/3-making-decisions/README.md) | Jasmine | -| 07 | JS Basics | Arrays and Loops | Work with data using arrays and loops in JavaScript | [Arrays and Loops](/2-js-basics/4-arrays-loops/README.md) | Jasmine | -| 08 | [Terrarium](/3-terrarium/solution/README.md) | HTML in Practice | Build the HTML to create an online terrarium, focusing on building a layout | [Introduction to HTML](/3-terrarium/1-intro-to-html/README.md) | Jen | -| 09 | [Terrarium](/3-terrarium/solution/README.md) | CSS in Practice | Build the CSS to style the online terrarium, focusing on the basics of CSS including making the page responsive | [Introduction to CSS](/3-terrarium/2-intro-to-css/README.md) | Jen | -| 10 | [Terrarium](/3-terrarium/solution/README.md) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](/3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | -| 11 | [Typing Game](/4-typing-game/solution/README.md) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](/4-typing-game/typing-game/README.md) | Christopher | -| 12 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](/5-browser-extension/1-about-browsers/README.md) | Jen | -| 13 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in local storage | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | -| 14 | [Green Browser Extension](/5-browser-extension/solution/README.md) | Background processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | -| 15 | [Jeu de l'espace](/6-space-game/solution/README.md) | Développement avancé d'un jeu en Javascript | Savoir les bases de l'**Inheritance** avec les **Classes and Composition et les Pub/Sub pattern**, afin de créer un jeu | [Introduction au développement avancé d'un jeu en Javascript](/6-space-game/1-introduction/README.md) | Chris | -| 16 | [Jeu de l'espace](/6-space-game/solution/README.md) | Les Canvas | Savoir à propos du Canvas API, utilisé pour dessiner des éléments | [Dessiner des Canvas](/6-space-game/2-drawing-to-canvas/README.md) | Chris | -| 17 | [Jeu de l'espace](/6-space-game/solution/README.md) | Déplacer les éléments | En utilisant les données cartésiennes et le Canvas API | [Moving Elements Around](/6-space-game/3-moving-elements-around/README.md) | Chris | -| 18 | [Jeu de l'espace](/6-space-game/solution/README.md) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](/6-space-game/4-collision-detection/README.md) | Chris | -| 19 | [Jeu de l'espace](/6-space-game/solution/README.md) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](/6-space-game/5-keeping-score/README.md) | Chris | -| 20 | [Jeu de l'espace](/6-space-game/solution/README.md) | Commencer et finir un jeu | Savoir manipuler les variables, démarrer un jeu et mettre fin. | [Fin Condition](/6-space-game/6-end-condition/README.md) | Chris | -| 21 | [Application bancaire](/7-bank-project/solution/README.md) | HTML Templates et Routes dans une application web | Savoir l'utilité des Templates et Routes dans la gestion d'un site web multi-pages. | [HTML Templates et Routes](/7-bank-project/1-template-route/README.md) | Yohan | -| 22 | [Application bancaire](/7-bank-project/solution/README.md) | Créer un formulaire de connexion | Apprendre le fonctionnement d'un formulaire et la vérification des données saisies | [Formulaires](/7-bank-project/2-forms/README.md) | Yohan | -| 23 | [Application bancaire](/7-bank-project/solution/README.md) | Fetch et utilisation des données | Savoir comment une application manipule les données | [Données](/7-bank-project/3-data/README.md) | Yohan | -| 24 | [Application bancaire](/7-bank-project/solution/README.md) | Concepts de la gestion des states | En savoir comment une application gère les states | [Gestion des states](/7-bank-project/4-state-management/README.md) | Yohan | +| 01 | Pour commencer | Introduction à la programmation et aux outils métiers | Savoir les bases de quelques langages de programmation et leur utilité dans la création de solutions informatiques | [Introduction à la programmation](/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.fr.md) | Jasmine | +| 02 | Pour commencer | Les bases de Github et le travail en groupe | Apprendre comment utiliser GitHub et contribuer à des projets | [Introduction aux bases de GitHub](/1-getting-started-lessons/2-github-basics/translations/README.fr.md) | Floor | +| 03 | Pour commencer | Accessibilité | Apprendre les bases de l'accessibilité Web | [Accessibility Fundamentals](/1-getting-started-lessons/3-accessibility/translations/README.fr.md) | Christopher | +| 04 | Les bases de JS | Types de données JavaScript | Les bases des types de données JavaScript | [Types de données](/2-js-basics/1-data-types/translations/README.fr.md) | Jasmine | +| 05 | Les bases de JS | Fonctions et méthodes | En savoir plus sur les fonctions et les méthodes de gestion du flux logique d’une application flow | [Fonctions et méthodes](/2-js-basics/2-functions-methods/translations/README.fr.md) | Jasmine et Christopher | +| 06 | Les bases de JS | Prendre des décisions avec JS | Découvrez comment créer des conditions dans votre code à l’aide de méthodes de prise de décision methods | [Prendre des décisions](/2-js-basics/3-making-decisions/translations/README.fr.md) | Jasmine | +| 07 | Les bases de JS | Tableaux et boucles | Utiliser des données à l’aide de tableaux et de boucles en JavaScript | [Tableaux et boucles](/2-js-basics/4-arrays-loops/translations/README.fr.md) | Jasmine | +| 08 | [Terrarium](/3-terrarium/solution/translations/README.fr.md) | HTML en pratique | Construisez le code HTML pour créer un terrarium en ligne, en vous concentrant sur la construction d’une mise en page | [Introduction to HTML](/3-terrarium/1-intro-to-html/translations/README.fr.md) | Jen | +| 09 | [Terrarium](/3-terrarium/solution/translations/README.fr.md) | CSS en pratique | Construisez le CSS pour styliser le terrarium en ligne, en vous concentrant sur les bases du CSS, y compris rendre la page réactive | [Introduction to CSS](/3-terrarium/2-intro-to-css/translations/README.fr.md) | Jen | +| 10 | [Terrarium](/3-terrarium/solution/translations/README.fr.md) | Fermetures JavaScript, manipulation DOM | Construisez le JavaScript pour que le terrarium fonctionne comme une interface glisser/déposer, en vous concentrant sur les fermetures et la manipulation du DOM | [Fermetures JavaScript, manipulation DOM](/3-terrarium/3-intro-to-DOM-and-closures/translations/README.fr.md) | Jen | +| 11 | [Typing Game](/4-typing-game/solution/translations/README.fr.md) | Créer un jeu de frappe | Découvrez comment utiliser les événements de clavier pour piloter la logique de votre application JavaScript | [Event-Driven Programming](/4-typing-game/typing-game/translations/README.fr.md) | Christopher | +| 12 | [Green Browser Extension](/5-browser-extension/solution/translations/README.fr.md) | Utilisation des navigateurs | Découvrez comment fonctionnent les navigateurs, leur historique et comment échafauder les premiers éléments d’une extension de navigateur | [About Browsers](/5-browser-extension/1-about-browsers/translations/README.fr.md) | Jen | +| 13 | [Green Browser Extension](/5-browser-extension/solution/translations/README.fr.md) | Création d’un formulaire, appel d’une API et stockage de variables dans le stockage local | Générez les éléments JavaScript de votre extension de navigateur pour appeler une API à l’aide de variables stockées dans le stockage local | [APIs, Forms, and Local Storage](/5-browser-extension/2-forms-browsers-local-storage/translations/README.fr.md) | Jen | +| 14 | [Green Browser Extension](/5-browser-extension/solution/translations/README.fr.md) | Processus en arrière-plan dans le navigateur, performances Web | Utilisez les processus d’arrière-plan du navigateur pour gérer l’icône de l’extension; en savoir plus sur les performances Web et quelques optimisations à faire | [Background Tasks and Performance](/5-browser-extension/3-background-tasks-and-performance/translations/README.fr.md) | Jen | +| 15 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Développement avancé d'un jeu en Javascript | En savoir plus sur l’héritage en utilisant à la fois les classes et la composition et le modèle Pub/Sub, en préparation de la création d’un jeu | [Introduction au développement avancé d'un jeu en Javascript](/6-space-game/1-introduction/translations/README.fr.md) | Chris | +| 16 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Les Canvas | En savoir plus sur l’API Canvas, utilisée pour dessiner des éléments sur un écran | [Dessiner des Canvas](/6-space-game/2-drawing-to-canvas/translations/README.fr.md) | Chris | +| 17 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Déplacement d’éléments autour de l’écran | Découvrez comment les éléments peuvent gagner du mouvement à l’aide des coordonnées cartésiennes et de l’API Canvas | [Moving Elements Around](/6-space-game/3-moving-elements-around/translations/README.fr.md) | Chris | +| 18 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Détection de collision | Faire entrer en collision les éléments et les faire réagir les uns aux autres à l’aide d’appuis sur les touches et fournir une fonction de refroidissement pour assurer les performances du jeu | [Collision Detection](/6-space-game/4-collision-detection/translations/README.fr.md) | Chris | +| 19 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Garder le score | Effectuez des calculs mathématiques en fonction de l’état du jeu et des performances | [Keeping Score](/6-space-game/5-keeping-score/translations/README.fr.md) | Chris | +| 20 | [Jeu de l'espace](/6-space-game/solution/translations/README.fr.md) | Fin et redémarrage du jeu | Découvrez comment terminer et redémarrer le jeu, y compris le nettoyage des ressources et la réinitialisation des valeurs variables | [Fin Condition](/6-space-game/6-end-condition/translations/README.fr.md) | Chris | +| 21 | [Application bancaire](/7-bank-project/solution/translations/README.fr.md) | Modèles et Routes HTML dans une application Web | Savoir l'utilité des Templates et Routes dans la gestion d'un site web multi-pages. | [HTML Templates et Routes](/7-bank-project/1-template-route/translations/README.fr.md) | Yohan | +| 22 | [Application bancaire](/7-bank-project/solution/translations/README.fr.md) | Créez un formulaire de connexion et d’inscription | En savoir plus sur la création de formulaires et la gestion des routines de validation | [Formulaires](/7-bank-project/2-forms/translations/README.fr.md) | Yohan | +| 23 | [Application bancaire](/7-bank-project/solution/translations/README.fr.md) | Fetch et utilisation des données | Comment les données entrent et sortent de votre application, comment les récupérer, les stocker et les supprimer | [Données](/7-bank-project/3-data/translations/README.fr.md) | Yohan | +| 24 | [Application bancaire](/7-bank-project/solution/translations/README.fr.md) | Concepts de la gestion des states | Découvrez comment votre application conserve son état et comment la gérer par programme | [Gestion des states](/7-bank-project/4-state-management/translations/README.fr.md) | Yohan | ## Accéder au cours hors connexion -Vous pouvez y accéder en utilisant [Docsify](https://docsify.js.org/#/). Effectuez un Fork, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre machine, et tapez `docsify serve` dans le dossier root. Le site web va apparaître dans votre navigateur au port 3000 du localhost `localhost:3000`. +Vous pouvez exécuter cette documentation hors connexion à l’aide de [Docsify](https://docsify.js.org/#/). Effectuez un Fork de ce référentiel, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre ordinateur local, puis dans le dossier racine de ce référentiel, tapez `docsify serve`. Le site Web va apparaître dans votre navigateur au port 3000 du localhost: `localhost:3000`. ## PDF -Ce cours est disponible en PDF. [Cliquez ici](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) +Un PDF de toutes les leçons peut être trouvé [ici](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) -## Autres Cours +## Autres programmes d’études -Découvrez d'autres cours : +Notre équipe produit d’autres programmes! Jettez un oeil: -- [Machine Learning pour débutants](https://aka.ms/ml-beginners) -- [IoT pour débutants](https://aka.ms/iot-beginners) +- [Machine Learning for Beginners](https://aka.ms/ml-beginners) +- [IoT for Beginners](https://aka.ms/iot-beginners) +- [Data Science for Beginners](https://aka.ms/datascience-beginners) From 10638960a6672381236fd427baa4a9e1b4057a8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 10:33:34 -0500 Subject: [PATCH 20/58] build(deps): bump follow-redirects from 1.14.7 to 1.14.8 in /quiz-app (#603) Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- quiz-app/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/quiz-app/package-lock.json b/quiz-app/package-lock.json index a5e449db..e6a0b72b 100644 --- a/quiz-app/package-lock.json +++ b/quiz-app/package-lock.json @@ -5374,9 +5374,9 @@ } }, "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true }, "for-in": { From 03303baa0c4532520b2ae9e66ab1d8ca921f57c5 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Mon, 14 Feb 2022 10:36:51 -0500 Subject: [PATCH 21/58] Update README.md --- 2-js-basics/1-data-types/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/2-js-basics/1-data-types/README.md b/2-js-basics/1-data-types/README.md index 6d56fcb0..1f17e5f4 100644 --- a/2-js-basics/1-data-types/README.md +++ b/2-js-basics/1-data-types/README.md @@ -10,9 +10,11 @@ This lesson covers the basics of JavaScript, the language that provides interact > You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! -[![Data types in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Data types in JavaScript") +[![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") -> 🎥 Click the image above for a video about data types +[![Data Types in JavaScript](https://img.youtube.com/vi/rEHV3fFMfn0/0.jpg)](https://youtube.com/watch?v=rEHV3fFMfn0 "Data Types in JavaScript") + +> 🎥 Click the images above for videos about variables and data types Let's start with variables and the data types that populate them! ## Variables From 046743b59885fc878a4017e04e9f756663f2f6d5 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 09:01:01 -0500 Subject: [PATCH 22/58] Spanish/Portuguese toolbox videos --- .../1-intro-to-programming-languages/translations/README.es.md | 2 +- .../1-intro-to-programming-languages/translations/README.pt.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.es.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.es.md index ef72ea29..4006be1e 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.es.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.es.md @@ -87,7 +87,7 @@ Existe la posibilidad de que un dispositivo no ejecute algunas declaraciones. Es ## Herramientas del oficio -[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade") +[![Herramientas](https://img.youtube.com/vi/ysMrHssmhl0/0.jpg)](https://youtube.com/watch?v=ysMrHssmhl0 "Herramientas") En esta sección, aprenderás sobre software que puede ayudarte comenzar tu viaje de desarrollo profesional. diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.pt.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.pt.md index e634ca27..2a2a8427 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.pt.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/README.pt.md @@ -96,7 +96,7 @@ Há uma chance de que algumas instruções não sejam executadas por um disposit ## Ferramentas -[![Ferramentas](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Ferramentas") +[![Ferramentas](https://img.youtube.com/vi/bynF1E0Hq98/0.jpg)](https://youtube.com/watch?v=bynF1E0Hq98 "Ferramentas") Nesta seção, você aprenderá sobre alguns softwares que podem ser muito úteis ao iniciar sua jornada de desenvolvimento profissional. From c6ef9d59e5e8ee2bc7ba9649f773cef40940938f Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 10:16:18 -0500 Subject: [PATCH 23/58] data types and variables videos --- 2-js-basics/1-data-types/README.md | 2 +- 2-js-basics/1-data-types/translations/README.es.md | 4 +++- 2-js-basics/1-data-types/translations/README.fr.md | 6 ++++-- 2-js-basics/1-data-types/translations/README.hi.md | 2 ++ 2-js-basics/1-data-types/translations/README.id.md | 2 ++ 2-js-basics/1-data-types/translations/README.it.md | 4 +++- 2-js-basics/1-data-types/translations/README.ja.md | 4 +++- 2-js-basics/1-data-types/translations/README.ko.md | 4 +++- 2-js-basics/1-data-types/translations/README.ms.md | 1 + 2-js-basics/1-data-types/translations/README.nl.md | 2 ++ 2-js-basics/1-data-types/translations/README.pt.md | 4 +++- 2-js-basics/1-data-types/translations/README.zh-cn.md | 4 +++- 2-js-basics/1-data-types/translations/README.zh-tw.md | 2 ++ 13 files changed, 32 insertions(+), 9 deletions(-) diff --git a/2-js-basics/1-data-types/README.md b/2-js-basics/1-data-types/README.md index 1f17e5f4..b814986d 100644 --- a/2-js-basics/1-data-types/README.md +++ b/2-js-basics/1-data-types/README.md @@ -12,7 +12,7 @@ This lesson covers the basics of JavaScript, the language that provides interact [![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") -[![Data Types in JavaScript](https://img.youtube.com/vi/rEHV3fFMfn0/0.jpg)](https://youtube.com/watch?v=rEHV3fFMfn0 "Data Types in JavaScript") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") > 🎥 Click the images above for videos about variables and data types diff --git a/2-js-basics/1-data-types/translations/README.es.md b/2-js-basics/1-data-types/translations/README.es.md index 90103c24..07a7b277 100644 --- a/2-js-basics/1-data-types/translations/README.es.md +++ b/2-js-basics/1-data-types/translations/README.es.md @@ -3,7 +3,9 @@ ![JavaScript Basics - Data types](/sketchnotes/webdev101-js-datatypes.png) > Sketchnote por [Tomomi Imura](https://twitter.com/girlie_mac) -[![Tipos de datos en JavaScript](https://img.youtube.com/vi/rEHV3fFMfn0/0.jpg)](https://youtube.com/watch?v=rEHV3fFMfn0 "Tipos de datos en JavaScript") +[![Declaracion de Variables](https://img.youtube.com/vi/mUvddpeBCAs/0.jpg)](https://youtube.com/watch?v=mUvddpeBCAs "Declaracion de Variables") + +[![Tipos de datos en JavaScript](https://img.youtube.com/vi/fuksTtTga90/0.jpg)](https://youtube.com/watch?v=fuksTtTga90 "Tipos de datos en JavaScript") ## [Pre-lectura prueba](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/7) diff --git a/2-js-basics/1-data-types/translations/README.fr.md b/2-js-basics/1-data-types/translations/README.fr.md index 46c910ab..38dc9d7e 100644 --- a/2-js-basics/1-data-types/translations/README.fr.md +++ b/2-js-basics/1-data-types/translations/README.fr.md @@ -10,9 +10,11 @@ Cette leçon couvre les bases de JavaScript, le language qui permet l'interactiv > Vous pouvez suivre cette leçon sur [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! -[![Data types in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Data types in JavaScript") +[![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") -> 🎥 Cliquez sur l'image ci-dessus pour voir une vidéo sur les types de données +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") + +> 🎥 Cliquez sur l'image ci-dessus pour voir une vidéo sur les types de données et des variables Commençons par les variables et les types de données qui les composent! diff --git a/2-js-basics/1-data-types/translations/README.hi.md b/2-js-basics/1-data-types/translations/README.hi.md index 1abb7ae7..bb9a48b2 100644 --- a/2-js-basics/1-data-types/translations/README.hi.md +++ b/2-js-basics/1-data-types/translations/README.hi.md @@ -10,6 +10,8 @@ [![जावास्क्रिप्ट में डेटा प्रकार](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "जावास्क्रिप्ट में डेटा प्रकार") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") + चलो वेरिएबल्स और डेटा प्रकारों के साथ शुरू करते हैं जो उन्हें आबाद करते हैं! diff --git a/2-js-basics/1-data-types/translations/README.id.md b/2-js-basics/1-data-types/translations/README.id.md index 75fc6c4b..303cbce6 100644 --- a/2-js-basics/1-data-types/translations/README.id.md +++ b/2-js-basics/1-data-types/translations/README.id.md @@ -12,6 +12,8 @@ Pelajaran ini mencakup dasar-dasar JavaScript, bahasa yang menyediakan interakti [![Jenis data di JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Jenis data di JavaScript") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") + Mari kita mulai dengan variabel dan tipe data yang mengisinya! ## Variabel diff --git a/2-js-basics/1-data-types/translations/README.it.md b/2-js-basics/1-data-types/translations/README.it.md index 1ce2f6b9..725c8b4c 100644 --- a/2-js-basics/1-data-types/translations/README.it.md +++ b/2-js-basics/1-data-types/translations/README.it.md @@ -8,7 +8,9 @@ Questa lezione copre le basi di JavaScript, il linguaggio che fornisce l'interattività sul web. -[![Tipi di dato in JavaScriptTipi](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 " di dato in JavaScript") +[![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") + +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") Si comincia con le variabili e i tipi di dato che le popolano! diff --git a/2-js-basics/1-data-types/translations/README.ja.md b/2-js-basics/1-data-types/translations/README.ja.md index 7b989e16..643a497b 100644 --- a/2-js-basics/1-data-types/translations/README.ja.md +++ b/2-js-basics/1-data-types/translations/README.ja.md @@ -8,7 +8,9 @@ このレッスンでは、Web 上でインタラクティブな機能を提供する言語である JavaScript の基礎を学びます。 -[![Data types in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Data types in JavaScript") +[![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") + +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") まず、変数とそれを埋めるデータ型について説明しましょう! diff --git a/2-js-basics/1-data-types/translations/README.ko.md b/2-js-basics/1-data-types/translations/README.ko.md index a1ee6985..dc6df1a9 100644 --- a/2-js-basics/1-data-types/translations/README.ko.md +++ b/2-js-basics/1-data-types/translations/README.ko.md @@ -8,7 +8,9 @@ 해당 강의에서는 웹에서 상호작용을 제공하는 언어인 JavaScript의 기초를 다룹니다. -[![Data types in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Data types in JavaScript") +[![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") + +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") 변수와 변수를 채워주는 데이터 타입부터 시작합니다! diff --git a/2-js-basics/1-data-types/translations/README.ms.md b/2-js-basics/1-data-types/translations/README.ms.md index 190f853d..57588ce2 100644 --- a/2-js-basics/1-data-types/translations/README.ms.md +++ b/2-js-basics/1-data-types/translations/README.ms.md @@ -10,6 +10,7 @@ Pelajaran ini merangkumi asas-asas JavaScript, bahasa yang menyediakan interakti [![Jenis Data Dalam JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Data types in JavaScript") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") Marilah kita mulakan dengan pemboleh ubah dan jenis data yang mengisinya! diff --git a/2-js-basics/1-data-types/translations/README.nl.md b/2-js-basics/1-data-types/translations/README.nl.md index 9a574fbe..a9d5e69f 100644 --- a/2-js-basics/1-data-types/translations/README.nl.md +++ b/2-js-basics/1-data-types/translations/README.nl.md @@ -10,6 +10,8 @@ Deze les behandelt de basisprincipes van JavaScript, de taal die voor interactiv [![Gegevenstypen in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Gegevenstypen in JavaScript") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") + Laten we beginnen met variabelen en de gegevenstypen waarmee ze worden gevuld! diff --git a/2-js-basics/1-data-types/translations/README.pt.md b/2-js-basics/1-data-types/translations/README.pt.md index 08ba95e1..04a7f875 100644 --- a/2-js-basics/1-data-types/translations/README.pt.md +++ b/2-js-basics/1-data-types/translations/README.pt.md @@ -8,7 +8,9 @@ Esta lição cobre o básico do JavaScript, a linguagem que fornece interatividade na web. -[![Tipos de dados em JavaScriptt](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Tipos de dados em JavaScript") +[![Variáveis](https://img.youtube.com/vi/u_aLTZHsclg/0.jpg)](https://youtube.com/watch?v=u_aLTZHsclg "Variáveis") + +[![Data Types](https://img.youtube.com/vi/ylaZV-UKTe4/0.jpg)](https://youtube.com/watch?v=ylaZV-UKTe4 "Data Types") Vamos começar com variáveis e os tipos de dados que as preenchem! diff --git a/2-js-basics/1-data-types/translations/README.zh-cn.md b/2-js-basics/1-data-types/translations/README.zh-cn.md index 12254a5a..49482a8d 100644 --- a/2-js-basics/1-data-types/translations/README.zh-cn.md +++ b/2-js-basics/1-data-types/translations/README.zh-cn.md @@ -8,7 +8,9 @@ 这节课将会介绍 JavaScript 的基础知识,正是它为网页提供了可交互性。 -[![Data types in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "JavaScript 中的数据类型") +[![Variables in JavaScript](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "JavaScript 中的数据类型") + +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") 让我们从它最基础的组成部分 —— “变量”和“数据类型”学起吧! diff --git a/2-js-basics/1-data-types/translations/README.zh-tw.md b/2-js-basics/1-data-types/translations/README.zh-tw.md index 303cb877..1b9140f7 100644 --- a/2-js-basics/1-data-types/translations/README.zh-tw.md +++ b/2-js-basics/1-data-types/translations/README.zh-tw.md @@ -10,6 +10,8 @@ [![JavaScript 的資料型態](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "JavaScript 的資料型態") +[![Data Types in JavaScript](https://img.youtube.com/vi/AWfA95eLdq8/0.jpg)](https://youtube.com/watch?v=AWfA95eLdq8 "Data Types in JavaScript") + 讓我們從程式語言的基礎 ── 「變數」與「資料型態」開始吧! ## 變數 (Variable) From 2b009a02672bf3e08bd3cf040b9dd221e42246c7 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 10:19:39 -0500 Subject: [PATCH 24/58] functions! --- 2-js-basics/2-functions-methods/translations/README.es.md | 2 +- 2-js-basics/2-functions-methods/translations/README.pt.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2-js-basics/2-functions-methods/translations/README.es.md b/2-js-basics/2-functions-methods/translations/README.es.md index 9f0b46c2..72ba2a45 100644 --- a/2-js-basics/2-functions-methods/translations/README.es.md +++ b/2-js-basics/2-functions-methods/translations/README.es.md @@ -4,7 +4,7 @@ # Conceptos básicos de JavaScript: funcións y funciones -[![funcións y funciones](https://img.youtube.com/vi/XgKsD6Zwvlc/0.jpg)](https://youtube.com/watch?v=XgKsD6Zwvlc "funcións y funciones") +[![funcións y funciones](https://img.youtube.com/vi/DdCRhOQibMo/0.jpg)](https://youtube.com/watch?v=DdCRhOQibMo "funcións y funciones") ## [Pre-lectura prueba](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/9) diff --git a/2-js-basics/2-functions-methods/translations/README.pt.md b/2-js-basics/2-functions-methods/translations/README.pt.md index 20022417..0d3ff45b 100644 --- a/2-js-basics/2-functions-methods/translations/README.pt.md +++ b/2-js-basics/2-functions-methods/translations/README.pt.md @@ -8,7 +8,7 @@ Quando pensamos em escrever código, sempre queremos garantir que nosso código seja legível. Embora isso pareça contra-intuitivo, o código é lido muito mais vezes do que escrito. Uma ferramenta central na caixa de ferramentas de uma pessoa desenvolvedora para garantir código sustentável é a **função**. -[![Métodos e Funções](https://img.youtube.com/vi/XgKsD6Zwvlc/0.jpg)](https://youtube.com/watch?v=XgKsD6Zwvlc "Métodos e Funções") +[![Métodos e Funções](https://img.youtube.com/vi/aAfSVldL6Vk/0.jpg)](https://youtube.com/watch?v=aAfSVldL6Vk "Métodos e Funções") > Clique na imagem acima para ver um vídeo sobre métodos e funções. From 02f42949717f06ef7cb3cd7e65603d3503a2ce4c Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 10:25:12 -0500 Subject: [PATCH 25/58] making decisions videos --- 2-js-basics/3-making-decisions/translations/README.es.md | 2 ++ 2-js-basics/3-making-decisions/translations/README.pt.md | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/2-js-basics/3-making-decisions/translations/README.es.md b/2-js-basics/3-making-decisions/translations/README.es.md index e6353104..6d54e249 100644 --- a/2-js-basics/3-making-decisions/translations/README.es.md +++ b/2-js-basics/3-making-decisions/translations/README.es.md @@ -8,6 +8,8 @@ Tomar decisiones y controlar el orden en que se ejecuta su código hace que su código sea reutilizable y robusto. Esta sección cubre la sintaxis para controlar el flujo de datos en JavaScript y su importancia cuando se usa con tipos de datos booleanos. +[![tomar decisiones](https://img.youtube.com/vi/P0TrLOz15zk/0.jpg)](https://youtube.com/watch?v=P0TrLOz15zk "tomar decisiones") + ## Un breve resumen sobre los valores booleanos Los booleanos pueden tener solo dos valores: `true` o` false`. Los booleanos ayudan a tomar decisiones sobre qué líneas de código deben ejecutarse cuando se cumplen ciertas condiciones. diff --git a/2-js-basics/3-making-decisions/translations/README.pt.md b/2-js-basics/3-making-decisions/translations/README.pt.md index 3233530f..1263cb52 100644 --- a/2-js-basics/3-making-decisions/translations/README.pt.md +++ b/2-js-basics/3-making-decisions/translations/README.pt.md @@ -7,11 +7,12 @@ Tomar decisões e controlar a ordem do que é executado no seu código o torna recusável e robusto. Essa seção cobre a sintaxe para controle do fluxo de dados no JavaScript e sua significância quando usada com tipos Booleanos. -[![Tomando Decisões](https://img.youtube.com/vi/SxTp8j-fMMY/0.jpg)](https://youtube.com/watch?v=SxTp8j-fMMY "Making Decisions") +[![Tomando Decisões](https://img.youtube.com/vi/jqxfynLcNIw/0.jpg)](https://youtube.com/watch?v=jqxfynLcNIw "Making Decisions") -> 🎥 Clique na imagem acima para ver um video sobre tomada de decisões (Em Inglês) +> 🎥 Clique na imagem acima para ver um video sobre tomada de decisões + +> Você pode fazer essa aula em [Microsoft Learn](https://docs.microsoft.com/pt-br/learn/modules/web-development-101-if-else/?WT.mc_id=academic-13441-cxa)! -> Você pode fazer essa aula em [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-if-else/?WT.mc_id=academic-13441-cxa)! (Em Inglês) ## Uma breve recapitulação sobre Booleanos Booleanos podem ter apenas dois valores `true` ou `false` (Verdadeiro ou falso). Os booleanos ajudam a tomar decisões sobre quais linhas de código devem ser executadas quando certas condições são atendidas. From 5ef7cd5f041362151eaf2b68483d9241c804bc8a Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 10:35:16 -0500 Subject: [PATCH 26/58] arrays and loops --- 2-js-basics/4-arrays-loops/README.md | 5 ++++- 2-js-basics/4-arrays-loops/translations/README.es.md | 5 ++--- 2-js-basics/4-arrays-loops/translations/README.pt.md | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/2-js-basics/4-arrays-loops/README.md b/2-js-basics/4-arrays-loops/README.md index 53ddc6d0..290a3e6b 100644 --- a/2-js-basics/4-arrays-loops/README.md +++ b/2-js-basics/4-arrays-loops/README.md @@ -9,10 +9,13 @@ This lesson covers the basics of JavaScript, the language that provides interactivity on the web. In this lesson, you'll learn about arrays and loops, which are used to manipulate data. [![Arrays](https://img.youtube.com/vi/1U4qTyq02Xw/0.jpg)](https://youtube.com/watch?v=1U4qTyq02Xw "Arrays") + [![Loops](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "Loops") -> 🎥 Click the image above for a video about arrays and loops. + +> 🎥 Click the images above for videos about arrays and loops. > You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! + ## Arrays Working with data is a common task for any language, and it's a much easier task when data is organized in a structural format, such as arrays. With arrays, data is stored in a structure similar to a list. One major benefit of arrays is that you can store different types of data in one array. diff --git a/2-js-basics/4-arrays-loops/translations/README.es.md b/2-js-basics/4-arrays-loops/translations/README.es.md index b3205333..af999ae1 100644 --- a/2-js-basics/4-arrays-loops/translations/README.es.md +++ b/2-js-basics/4-arrays-loops/translations/README.es.md @@ -4,9 +4,8 @@ > Sketchnote por [Tomomi Imura](https://twitter.com/girlie_mac) -[![Matrices](https://img.youtube.com/vi/1U4qTyq02Xw/0.jpg)](https://youtube.com/watch?v=1U4qTyq02Xw "Matrices") -[![Bucles](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "Bucles") - +[![Matrices](https://img.youtube.com/vi/4o64A0IewZ4/0.jpg)](https://youtube.com/watch?v=4o64A0IewZ4 "Matrices") +[![Bucles](https://img.youtube.com/vi/9mDkAALcX9o/0.jpg)](https://www.youtube.com/watch?v=9mDkAALcX9o "Bucles") ## [Pre-lecture prueba](https://happy-mud-02d95f10f.azurestaticapps.net/quiz/13) diff --git a/2-js-basics/4-arrays-loops/translations/README.pt.md b/2-js-basics/4-arrays-loops/translations/README.pt.md index dc26473f..2420a2de 100644 --- a/2-js-basics/4-arrays-loops/translations/README.pt.md +++ b/2-js-basics/4-arrays-loops/translations/README.pt.md @@ -8,11 +8,14 @@ Esta lição cobre os conceitos básicos do JavaScript, a linguagem que proporciona interactividade na web. Nesta lição, aprenderá sobre arrays e loops, que são usados para manipular dados. -[![Arrays](https://img.youtube.com/vi/1U4qTyq02Xw/0.jpg)](https://youtube.com/watch?v=1U4qTyq02Xw "Arrays") -[![Loops](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "Laços") +[![Arrays](https://img.youtube.com/vi/rlvD4Umw37U/0.jpg)](https://youtube.com/watch?v=rlvD4Umw37U "Arrays") + +[![Loops](https://img.youtube.com/vi/J2X-olc3Z6Y/0.jpg)](https://www.youtube.com/watch?v=J2X-olc3Z6Y "Laços") + > 🎥 Clique na imagem acima para um vídeo sobre arrays e loops. > Pode seguir esta lição em [Microsoft Aprender](https://docs.microsoft.com/en-us/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! + ## Arrays Trabalhar com dados é uma tarefa comum para qualquer língua, e é uma tarefa muito mais fácil quando os dados são organizados num formato estrutural, tal como as matrizes. Com arrays, os dados são armazenados numa estrutura semelhante a uma lista. Uma grande vantagem dos arrays é que se pode armazenar diferentes tipos de dados numa única matriz. From bbbd7cfaa0432d6f8573a7bd2b3719dd8c5549b2 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Feb 2022 10:37:41 -0500 Subject: [PATCH 27/58] removing references to en-US --- .../translations/assignment.fr.md | 2 +- .../translations/assignment.nl.md | 2 +- .../translations/assignment.sw.md | 2 +- .../translations/assignment.zh-tw.md | 2 +- .../3-accessibility/translations/README.hi.md | 10 +++---- .../3-accessibility/translations/README.nl.md | 6 ++-- .../translations/README.zh-tw.md | 4 +-- 2-js-basics/1-data-types/README.md | 2 +- .../1-data-types/translations/README.fr.md | 2 +- .../1-data-types/translations/README.hi.md | 2 +- .../1-data-types/translations/README.zh-tw.md | 2 +- 2-js-basics/2-functions-methods/README.md | 2 +- .../translations/README.es.md | 4 +-- .../translations/README.hi.md | 6 ++-- .../translations/README.zh-tw.md | 6 ++-- 2-js-basics/3-making-decisions/README.md | 2 +- .../translations/README.zh-tw.md | 2 +- 2-js-basics/4-arrays-loops/README.md | 2 +- .../4-arrays-loops/translations/README.fr.md | 2 +- .../4-arrays-loops/translations/README.pt.md | 2 +- .../translations/README.zh-tw.md | 4 +-- .../1-intro-to-html/translations/README.hi.md | 6 ++-- .../translations/README.zh-cn.md | 6 ++-- .../translations/README.zh-tw.md | 6 ++-- .../translations/README.zh-tw.md | 2 +- .../translations/README.hi.md | 14 +++++----- .../translations/README.zh-tw.md | 14 +++++----- .../translations/assignment.zh-tw.md | 2 +- .../typing-game/translations/README.hi.md | 10 +++---- .../typing-game/translations/README.zh-tw.md | 10 +++---- .../translations/README.zh-tw.md | 4 +-- .../translations/README.hi.md | 8 +++--- .../translations/README.zh-tw.md | 8 +++--- .../translations/README.hi.md | 2 +- .../translations/README.zh-tw.md | 2 +- .../translations/README.zh-tw.md | 4 +-- .../translations/README.zh-tw.md | 10 +++---- .../translations/README.zh-tw.md | 2 +- 7-bank-project/1-template-route/README.md | 22 +++++++-------- .../translations/README.fr.md | 22 +++++++-------- .../translations/README.hi.md | 22 +++++++-------- .../translations/README.zh-tw.md | 22 +++++++-------- .../2-forms/translations/README.hi.md | 22 +++++++-------- .../2-forms/translations/README.zh-tw.md | 24 ++++++++-------- .../3-data/translations/README.hi.md | 28 +++++++++---------- .../3-data/translations/README.zh-tw.md | 28 +++++++++---------- .../translations/README.hi.md | 14 +++++----- .../translations/README.zh-tw.md | 18 ++++++------ .../translations/assignment.nl.md | 2 +- .../translations/assignment.zh-tw.md | 2 +- SECURITY.md | 6 ++-- 51 files changed, 205 insertions(+), 205 deletions(-) diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.fr.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.fr.md index 6deab32e..d08028f0 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.fr.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.fr.md @@ -2,7 +2,7 @@ ## Instructions -Un développeur Web peut avoir besoin de nombreux outils qui se trouvent sur le [Documentation MDN pour l'outillage côté client](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Sélectionnez 3 outils non traités dans la leçon, expliquez pourquoi un développeur Web l'utiliserait, recherchez un outil qui relève de cette catégorie et partagez sa documentation. N'utilisez pas le même exemple d'outil sur les documents MDN. +Un développeur Web peut avoir besoin de nombreux outils qui se trouvent sur le [Documentation MDN pour l'outillage côté client](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Sélectionnez 3 outils non traités dans la leçon, expliquez pourquoi un développeur Web l'utiliserait, recherchez un outil qui relève de cette catégorie et partagez sa documentation. N'utilisez pas le même exemple d'outil sur les documents MDN. ## Rubrique diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.nl.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.nl.md index 157eb54d..d6100309 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.nl.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.nl.md @@ -2,7 +2,7 @@ ## Instructies -Er zijn veel tools die een webontwikkelaar nodig heeft en die staan in de [MDN-documentatie voor client-side tooling](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecteer 3 tools die niet in de les worden behandeld, leg uit waarom een webontwikkelaar deze zou gebruiken en zoek naar een tool die onder deze categorie valt en deel de documentatie ervan. Gebruik niet hetzelfde toolvoorbeeld voor MDN-documenten. +Er zijn veel tools die een webontwikkelaar nodig heeft en die staan in de [MDN-documentatie voor client-side tooling](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecteer 3 tools die niet in de les worden behandeld, leg uit waarom een webontwikkelaar deze zou gebruiken en zoek naar een tool die onder deze categorie valt en deel de documentatie ervan. Gebruik niet hetzelfde toolvoorbeeld voor MDN-documenten. ## Rubriek diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.sw.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.sw.md index 2706f782..2b9b658f 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.sw.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.sw.md @@ -2,7 +2,7 @@ ## Maagizo -Msanidi wa wavuti anaweza kuhitaji zana nyingi ambazo zinaweza kupatikana kwenye [Hati ya MDN ya Utengenezaji Upande wa Mteja](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). +Msanidi wa wavuti anaweza kuhitaji zana nyingi ambazo zinaweza kupatikana kwenye [Hati ya MDN ya Utengenezaji Upande wa Mteja](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Chagua zana 3 ambazo hazijafunikwa kwenye somo, eleza ni kwanini msanidi wa wavuti atatumia, pata zana ambayo iko kwenye kitengo hiki, na ushiriki nyaraka zake. Usitumie zana sawa ya sampuli kwenye hati za MDN. diff --git a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.zh-tw.md b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.zh-tw.md index ff989c4e..57658f91 100644 --- a/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.zh-tw.md +++ b/1-getting-started-lessons/1-intro-to-programming-languages/translations/assignment.zh-tw.md @@ -2,7 +2,7 @@ ## 說明 -網頁開發人員所需要使用的工具套件可以參考 [MDN Client端技術開發文件](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview)。 請選擇三種未被本課程提及的工具,試解釋為何網頁開發人員使用它,並搜尋其相關的工具與它的技術文件。這些資料不能出現在前述的 MDN 文件當中。 +網頁開發人員所需要使用的工具套件可以參考 [MDN Client端技術開發文件](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview)。 請選擇三種未被本課程提及的工具,試解釋為何網頁開發人員使用它,並搜尋其相關的工具與它的技術文件。這些資料不能出現在前述的 MDN 文件當中。 ## 學習評量 diff --git a/1-getting-started-lessons/3-accessibility/translations/README.hi.md b/1-getting-started-lessons/3-accessibility/translations/README.hi.md index 1136d746..3990868b 100644 --- a/1-getting-started-lessons/3-accessibility/translations/README.hi.md +++ b/1-getting-started-lessons/3-accessibility/translations/README.hi.md @@ -24,15 +24,15 @@ प्रत्येक वेब डेवलपर को स्क्रीन रीडर के साथ खुद को परिचित करना चाहिए। जैसा कि ऊपर प्रकाश डाला गया है, यह वह क्लाइंट है जिसे आपके उपयोगकर्ता उपयोग करेंगे। बहुत कुछ उसी तरह से जिससे आप परिचित हैं कि ब्राउज़र कैसे संचालित होता है, आपको यह सीखना चाहिए कि स्क्रीन रीडर कैसे संचालित होता है। सौभाग्य से, स्क्रीन रीडर अधिकांश ऑपरेटिंग सिस्टम में निर्मित होते हैं। -कुछ ब्राउज़रों में अंतर्निहित टूल और एक्सटेंशन भी होते हैं, जो टेक्स्ट को जोर से पढ़ सकते हैं या कुछ बुनियादी नौवहन सुविधाएँ भी प्रदान कर सकते हैं, जैसे कि [ये एक्सेसिबिलिटी-केंद्रित एज ब्राउज़र टूल](https://support.microsoft.com/en-us/help/4000734/microsoft-edge-accessibility-features)। ये महत्वपूर्ण एक्सेसिबिलिटी टूल भी हैं, लेकिन स्क्रीन रीडर्स से बहुत अलग तरीके से काम करते हैं और स्क्रीन रीडर टेस्टिंग टूल्स के लिए इनसे गलती नहीं होनी चाहिए। +कुछ ब्राउज़रों में अंतर्निहित टूल और एक्सटेंशन भी होते हैं, जो टेक्स्ट को जोर से पढ़ सकते हैं या कुछ बुनियादी नौवहन सुविधाएँ भी प्रदान कर सकते हैं, जैसे कि [ये एक्सेसिबिलिटी-केंद्रित एज ब्राउज़र टूल](https://support.microsoft.com/help/4000734/microsoft-edge-accessibility-features)। ये महत्वपूर्ण एक्सेसिबिलिटी टूल भी हैं, लेकिन स्क्रीन रीडर्स से बहुत अलग तरीके से काम करते हैं और स्क्रीन रीडर टेस्टिंग टूल्स के लिए इनसे गलती नहीं होनी चाहिए। -✅ स्क्रीन रीडर और ब्राउज़र टेक्स्ट रीडर आज़माएं। विंडोज पर [नैरेटर](https://support.microsoft.com/en-us/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c17bf109bdb1) डिफ़ॉल्ट रूप से शामिल है, और [JAWS](https://webaim.org/articles/jaws/) और [NVDA](https://www.nvaccess.org/about-nvda/) भी इंस्टॉल किए जा सकते हैं। MacOS और iOS पर, [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) डिफ़ॉल्ट रूप से स्थापित है। +✅ स्क्रीन रीडर और ब्राउज़र टेक्स्ट रीडर आज़माएं। विंडोज पर [नैरेटर](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c17bf109bdb1) डिफ़ॉल्ट रूप से शामिल है, और [JAWS](https://webaim.org/articles/jaws/) और [NVDA](https://www.nvaccess.org/about-nvda/) भी इंस्टॉल किए जा सकते हैं। MacOS और iOS पर, [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) डिफ़ॉल्ट रूप से स्थापित है। ### ज़ूम -आमतौर पर दृष्टि दोष वाले लोगों द्वारा उपयोग किया जाने वाला एक अन्य उपकरण जूमिंग है। जूमिंग का सबसे मूल प्रकार स्थिर ज़ूम है, जिसे 'कंट्रोल + प्लस साइन (+)' या स्क्रीन रिज़ॉल्यूशन कम करके नियंत्रित किया जाता है। इस प्रकार का ज़ूम पूरे पृष्ठ को आकार देने का कारण बनता है, इसलिए एक अच्छा उपयोगकर्ता अनुभव प्रदान करने के लिए [उत्तरदायी डिज़ाइन](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design) का उपयोग करना महत्वपूर्ण है बढ़े हुए ज़ूम स्तर पर। +आमतौर पर दृष्टि दोष वाले लोगों द्वारा उपयोग किया जाने वाला एक अन्य उपकरण जूमिंग है। जूमिंग का सबसे मूल प्रकार स्थिर ज़ूम है, जिसे 'कंट्रोल + प्लस साइन (+)' या स्क्रीन रिज़ॉल्यूशन कम करके नियंत्रित किया जाता है। इस प्रकार का ज़ूम पूरे पृष्ठ को आकार देने का कारण बनता है, इसलिए एक अच्छा उपयोगकर्ता अनुभव प्रदान करने के लिए [उत्तरदायी डिज़ाइन](https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Responsive_Design) का उपयोग करना महत्वपूर्ण है बढ़े हुए ज़ूम स्तर पर। -एक अन्य प्रकार का ज़ूम स्क्रीन और पैन के एक क्षेत्र को बढ़ाने के लिए विशेष सॉफ़्टवेयर पर निर्भर करता है, बहुत कुछ वास्तविक आवर्धक कांच का उपयोग करने जैसा। विंडोज पर, [Magnifier](https://support.microsoft.com/en-us/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1bc-d3bd-8615-0e5e32204198) में बनाया गया है और [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) अधिक सुविधाओं और एक बड़ा उपयोगकर्ता आधार के लिए एक तृतीय-पक्ष आवर्धन सॉफ्टवेयर है। दोनों macOS और iOS में एक अंतर्निहित आवर्धन सॉफ्टवेयर होता है जिसे [ज़ूम](https://www.apple.com/accessibility/mac/vision/) कहा जाता है। +एक अन्य प्रकार का ज़ूम स्क्रीन और पैन के एक क्षेत्र को बढ़ाने के लिए विशेष सॉफ़्टवेयर पर निर्भर करता है, बहुत कुछ वास्तविक आवर्धक कांच का उपयोग करने जैसा। विंडोज पर, [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1bc-d3bd-8615-0e5e32204198) में बनाया गया है और [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) अधिक सुविधाओं और एक बड़ा उपयोगकर्ता आधार के लिए एक तृतीय-पक्ष आवर्धन सॉफ्टवेयर है। दोनों macOS और iOS में एक अंतर्निहित आवर्धन सॉफ्टवेयर होता है जिसे [ज़ूम](https://www.apple.com/accessibility/mac/vision/) कहा जाता है। ### कंट्रास्ट चेकर्स कलर-ब्लाइंड यूजर्स या ऐसे लोग जिन्हें कम कंट्रास्ट कलर देखने में दिक्कत होती है, उनकी जरूरतों का जवाब देने के लिए वेब साइट्स पर रंगों को सावधानी से चुना जाना चाहिए। @@ -131,7 +131,7 @@ description ``` -✅ सामान्य तौर पर, ऊपर वर्णित शब्दार्थ मार्कअप का उपयोग ARIA के उपयोग को बढ़ा देता है, लेकिन कभी-कभी विभिन्न HTML विजेट के लिए कोई शब्दार्थ समतुल्य नहीं होता है। एक अच्छा उदाहरण एक पेड़ है। एक पेड़ के लिए कोई HTML समतुल्य नहीं है, इसलिए आप इस तत्व के लिए एक उचित भूमिका और aria मान के साथ जेनेरिक `
` की पहचान करते हैं। [ARIA पर MDN प्रलेखन](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) में अधिक उपयोगी जानकारी है। +✅ सामान्य तौर पर, ऊपर वर्णित शब्दार्थ मार्कअप का उपयोग ARIA के उपयोग को बढ़ा देता है, लेकिन कभी-कभी विभिन्न HTML विजेट के लिए कोई शब्दार्थ समतुल्य नहीं होता है। एक अच्छा उदाहरण एक पेड़ है। एक पेड़ के लिए कोई HTML समतुल्य नहीं है, इसलिए आप इस तत्व के लिए एक उचित भूमिका और aria मान के साथ जेनेरिक `
` की पहचान करते हैं। [ARIA पर MDN प्रलेखन](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) में अधिक उपयोगी जानकारी है। ```html

File Viewer

diff --git a/1-getting-started-lessons/3-accessibility/translations/README.nl.md b/1-getting-started-lessons/3-accessibility/translations/README.nl.md index 76816327..6af384df 100644 --- a/1-getting-started-lessons/3-accessibility/translations/README.nl.md +++ b/1-getting-started-lessons/3-accessibility/translations/README.nl.md @@ -30,7 +30,7 @@ Sommige browsers hebben ook ingebouwde tools en extensies die tekst hardop kunne ### Zoom -Een ander hulpmiddel dat vaak wordt gebruikt door mensen met een visuele beperking, is zoomen. De meest basale manier van zoomen is statische zoom, bestuurd via `Control + plusteken (+)` of door de schermresolutie te verlagen. Dit type zoom zorgt ervoor dat het formaat van de hele pagina wordt aangepast, dus het gebruik van [responsive design](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design) is belangrijk om een goede gebruikerservaring te bieden bij verhoogde zoomniveaus. +Een ander hulpmiddel dat vaak wordt gebruikt door mensen met een visuele beperking, is zoomen. De meest basale manier van zoomen is statische zoom, bestuurd via `Control + plusteken (+)` of door de schermresolutie te verlagen. Dit type zoom zorgt ervoor dat het formaat van de hele pagina wordt aangepast, dus het gebruik van [responsive design](https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Responsive_Design) is belangrijk om een goede gebruikerservaring te bieden bij verhoogde zoomniveaus. Een ander type zoom is afhankelijk van gespecialiseerde software om een deel van het scherm te vergroten en te pannen, net zoals bij het gebruik van een echt vergrootglas. Op Windows is [Magnifier](https://support.microsoft.com/nl-nl/windows/vergrootglas-gebruiken-voor-een-betere-zichtbaarheid-op-het-scherm-414948ba-8b1c-d3bd-8615-0e5e32204198) ingebouwd en [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) is vergrotingssoftware van derden met meer functies en een groter gebruikersbestand. Zowel macOS als iOS hebben ingebouwde vergrotingssoftware genaamd [Zoom](https://www.apple.com/nl/accessibility/vision/). @@ -123,7 +123,7 @@ Stelt u de volgende pagina voor: In dit voorbeeld is het zinvol om de tekst van de beschrijving en volgorde te dupliceren voor iemand die een browser gebruikt. Iemand die een schermlezer gebruikt, hoort echter alleen de woorden *beschrijving* en *volgorde* herhaald zonder context. -Om dit soort scenario's te ondersteunen, ondersteunt HTML een set attributen die bekend staan als [Accessible Rich Internet Applications (ARIA)](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA). Met deze attributen kunt u aanvullende informatie verstrekken aan schermlezers. +Om dit soort scenario's te ondersteunen, ondersteunt HTML een set attributen die bekend staan als [Accessible Rich Internet Applications (ARIA)](https://developer.mozilla.org/docs/Web/Accessibility/ARIA). Met deze attributen kunt u aanvullende informatie verstrekken aan schermlezers. > **OPMERKING**: Zoals veel aspecten van HTML, kan de ondersteuning van browser en schermlezer variëren. De meeste mainline-clients ondersteunen echter ARIA-attributen. @@ -133,7 +133,7 @@ U kunt `aria-label` gebruiken om de link te beschrijven als het formaat van de p beschrijving ``` -✅ Over het algemeen vervangt het gebruik van semantische opmaak zoals hierboven beschreven het gebruik van ARIA, maar soms is er geen semantisch equivalent voor verschillende HTML-widgets. Een goed voorbeeld is een boom. Er is geen HTML-equivalent voor een boomstructuur, dus identificeert u de generieke `
` voor dit element met een juiste rol en aria-waarden. De [MDN-documentatie over ARIA](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) bevat meer nuttige informatie. +✅ Over het algemeen vervangt het gebruik van semantische opmaak zoals hierboven beschreven het gebruik van ARIA, maar soms is er geen semantisch equivalent voor verschillende HTML-widgets. Een goed voorbeeld is een boom. Er is geen HTML-equivalent voor een boomstructuur, dus identificeert u de generieke `
` voor dit element met een juiste rol en aria-waarden. De [MDN-documentatie over ARIA](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) bevat meer nuttige informatie. ```html

File Viewer

diff --git a/1-getting-started-lessons/3-accessibility/translations/README.zh-tw.md b/1-getting-started-lessons/3-accessibility/translations/README.zh-tw.md index d9815d0b..01d09f1a 100644 --- a/1-getting-started-lessons/3-accessibility/translations/README.zh-tw.md +++ b/1-getting-started-lessons/3-accessibility/translations/README.zh-tw.md @@ -32,7 +32,7 @@ ### 放大器 -另一項為視覺障礙者提供的輔助程式為放大器。最常見的定點放大功能,可以藉由 `Control + 加號(+)` 或降低螢幕解析度來完成。這個步驟會重新縮放整個網頁,確保網頁的[互動式設計](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design)是縮放頁面重要的一環。 +另一項為視覺障礙者提供的輔助程式為放大器。最常見的定點放大功能,可以藉由 `Control + 加號(+)` 或降低螢幕解析度來完成。這個步驟會重新縮放整個網頁,確保網頁的[互動式設計](https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Responsive_Design)是縮放頁面重要的一環。 其他放大功能會專注在小部分的區域上,這些額外軟體提供類似於實體放大器的功能。 Windows 內建[放大器](https://support.microsoft.com/zh-tw/windows/%E4%BD%BF%E7%94%A8%E6%94%BE%E5%A4%A7%E9%8F%A1%E4%BB%A5%E8%AE%93%E8%9E%A2%E5%B9%95%E4%B8%8A%E7%9A%84%E5%85%A7%E5%AE%B9%E6%9B%B4%E5%AE%B9%E6%98%93%E7%9C%8B%E5%88%B0-414948ba-8b1c-d3bd-8615-0e5e32204198)功能;第三方程式[ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/)則受到廣泛用戶的使用。 macOS 與 iOS 內建[Zoom](https://www.apple.com/accessibility/mac/vision/)軟體。 @@ -135,7 +135,7 @@ CSS 提供完整的網頁造型控制,你可以讓文字框框線隱藏或是 description ``` -✅ 總體而言,使用語義化標籤得以取代 ARIA 功能,但是這些標籤無法全面性地覆蓋 HTML 的各式物件。樹(Tree)就是一種例子。沒有 HTML 物件能處理一棵樹,所以你可以在 `
` 元素中加上 aria 數值。[關於 ARIA 的 MDN 技術文件](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA)說明許多有用的資訊。 +✅ 總體而言,使用語義化標籤得以取代 ARIA 功能,但是這些標籤無法全面性地覆蓋 HTML 的各式物件。樹(Tree)就是一種例子。沒有 HTML 物件能處理一棵樹,所以你可以在 `
` 元素中加上 aria 數值。[關於 ARIA 的 MDN 技術文件](https://developer.mozilla.org/docs/Web/Accessibility/ARIA)說明許多有用的資訊。 ```html

File Viewer

diff --git a/2-js-basics/1-data-types/README.md b/2-js-basics/1-data-types/README.md index b814986d..8c5069d0 100644 --- a/2-js-basics/1-data-types/README.md +++ b/2-js-basics/1-data-types/README.md @@ -8,7 +8,7 @@ This lesson covers the basics of JavaScript, the language that provides interactivity on the web. -> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! +> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! [![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") diff --git a/2-js-basics/1-data-types/translations/README.fr.md b/2-js-basics/1-data-types/translations/README.fr.md index 38dc9d7e..7b782b7b 100644 --- a/2-js-basics/1-data-types/translations/README.fr.md +++ b/2-js-basics/1-data-types/translations/README.fr.md @@ -8,7 +8,7 @@ Cette leçon couvre les bases de JavaScript, le language qui permet l'interactivité sur le web. -> Vous pouvez suivre cette leçon sur [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! +> Vous pouvez suivre cette leçon sur [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-variables/?WT.mc_id=academic-13441-cxa)! [![Variables](https://img.youtube.com/vi/JNIXfGiDWM8/0.jpg)](https://youtube.com/watch?v=JNIXfGiDWM8 "Variables in JavaScript") diff --git a/2-js-basics/1-data-types/translations/README.hi.md b/2-js-basics/1-data-types/translations/README.hi.md index bb9a48b2..8693d6a0 100644 --- a/2-js-basics/1-data-types/translations/README.hi.md +++ b/2-js-basics/1-data-types/translations/README.hi.md @@ -178,7 +178,7 @@ let myString2 = "World"; - `let myTrueBool = true` - `let myFalseBool = false` -✅ एक चर को 'सत्य' माना जा सकता है यदि यह एक बूलियन `true` का मूल्यांकन करता है। दिलचस्प रूप से, जावास्क्रिप्ट में, [सभी मूल्य सत्य हैं जब तक कि मिथ्या के रूप में परिभाषित नहीं किया जाता](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) +✅ एक चर को 'सत्य' माना जा सकता है यदि यह एक बूलियन `true` का मूल्यांकन करता है। दिलचस्प रूप से, जावास्क्रिप्ट में, [सभी मूल्य सत्य हैं जब तक कि मिथ्या के रूप में परिभाषित नहीं किया जाता](https://developer.mozilla.org/docs/Glossary/Truthy) --- diff --git a/2-js-basics/1-data-types/translations/README.zh-tw.md b/2-js-basics/1-data-types/translations/README.zh-tw.md index 1b9140f7..51068117 100644 --- a/2-js-basics/1-data-types/translations/README.zh-tw.md +++ b/2-js-basics/1-data-types/translations/README.zh-tw.md @@ -179,7 +179,7 @@ let myString2 = "World"; - `let myTrueBool = true` - `let myFalseBool = false` -✅ 布林值 `true` 亦有廣義的 'truthy' 數值。有趣的是,在 JavaScript 中,[除非被定義為 falsy,其餘的數值都會被當作是 truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy)。 +✅ 布林值 `true` 亦有廣義的 'truthy' 數值。有趣的是,在 JavaScript 中,[除非被定義為 falsy,其餘的數值都會被當作是 truthy](https://developer.mozilla.org/docs/Glossary/Truthy)。 --- diff --git a/2-js-basics/2-functions-methods/README.md b/2-js-basics/2-functions-methods/README.md index 96ba61cb..13718bbc 100644 --- a/2-js-basics/2-functions-methods/README.md +++ b/2-js-basics/2-functions-methods/README.md @@ -12,7 +12,7 @@ When we think about writing code, we always want to ensure our code is readable. > 🎥 Click the image above for a video about methods and functions. -> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-functions/?WT.mc_id=academic-13441-cxa)! +> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-functions/?WT.mc_id=academic-13441-cxa)! ## Functions diff --git a/2-js-basics/2-functions-methods/translations/README.es.md b/2-js-basics/2-functions-methods/translations/README.es.md index 72ba2a45..caed1c47 100644 --- a/2-js-basics/2-functions-methods/translations/README.es.md +++ b/2-js-basics/2-functions-methods/translations/README.es.md @@ -118,7 +118,7 @@ Los parámetros se enumeran en la parte de definición entre paréntesis y está ### Parámetro -Hasta ahora, la función que construimos siempre saldrá a la [consola](https://developer.mozilla.org/en-US/docs/Web/API/console). A veces, esto puede ser exactamente lo que estamos buscando, especialmente cuando creamos funciones que llamarán a otros servicios. Pero, ¿qué pasa si quiero crear una función auxiliar para realizar un cálculo y devolver el valor para poder usarlo en otro lugar? +Hasta ahora, la función que construimos siempre saldrá a la [consola](https://developer.mozilla.org/docs/Web/API/console). A veces, esto puede ser exactamente lo que estamos buscando, especialmente cuando creamos funciones que llamarán a otros servicios. Pero, ¿qué pasa si quiero crear una función auxiliar para realizar un cálculo y devolver el valor para poder usarlo en otro lugar? Podemos hacer esto usando un **valor de retorno**. La función devuelve un valor de retorno y se puede almacenar en una variable de la misma manera que podríamos almacenar un valor literal como una cadena o un número. @@ -183,7 +183,7 @@ Cualquier parámetro con valores predeterminados debe estar al final de la lista ## Revisión y autoestudio -Vale la pena [leer un poco más sobre las funciones de flecha](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions), ya que se utilizan cada vez más en bases de código. Practique escribir una función y luego reescribirla con esta sintaxis. +Vale la pena [leer un poco más sobre las funciones de flecha](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Arrow_functions), ya que se utilizan cada vez más en bases de código. Practique escribir una función y luego reescribirla con esta sintaxis. **Tarea**: [Práctica de tipos de datos](assignment.es.md) diff --git a/2-js-basics/2-functions-methods/translations/README.hi.md b/2-js-basics/2-functions-methods/translations/README.hi.md index ef3b7f2f..18b8314a 100644 --- a/2-js-basics/2-functions-methods/translations/README.hi.md +++ b/2-js-basics/2-functions-methods/translations/README.hi.md @@ -104,7 +104,7 @@ displayGreeting('Christopher', 'Hi'); ## मान लौटाएं -अब तक हमने जो फ़ंक्शन बनाया है वह हमेशा [कंसोल](https://developer.mozilla.org/en-US/docs/Web/API/console) पर आउटपुट करेगा। कभी-कभी यह ठीक वही हो सकता है जिसकी हम तलाश कर रहे हैं, खासकर जब हम फ़ंक्शन बनाते हैं जो अन्य सेवाओं को कॉल करेगा। लेकिन क्या होगा अगर मैं गणना करने और मान प्रदान करने के लिए एक सहायक फ़ंक्शन बनाना चाहता हूं तो मैं इसे कहीं और उपयोग कर सकता हूं? +अब तक हमने जो फ़ंक्शन बनाया है वह हमेशा [कंसोल](https://developer.mozilla.org/docs/Web/API/console) पर आउटपुट करेगा। कभी-कभी यह ठीक वही हो सकता है जिसकी हम तलाश कर रहे हैं, खासकर जब हम फ़ंक्शन बनाते हैं जो अन्य सेवाओं को कॉल करेगा। लेकिन क्या होगा अगर मैं गणना करने और मान प्रदान करने के लिए एक सहायक फ़ंक्शन बनाना चाहता हूं तो मैं इसे कहीं और उपयोग कर सकता हूं? हम **रिटर्न वैल्यू** का उपयोग करके ऐसा कर सकते हैं। एक वापसी मान फ़ंक्शन द्वारा लौटाया जाता है, और इसे एक चर में संग्रहीत किया जा सकता है, जैसे कि हम एक स्ट्रिंग या संख्या जैसे शाब्दिक मूल्य को संग्रहीत कर सकते हैं। @@ -133,7 +133,7 @@ const greetingMessage = createGreetingMessage('Christopher'); जैसे ही आप अपने प्रोग्रामिंग करियर में आगे बढ़ते हैं, आप ऐसे फंक्शन में आएंगे, जो फंक्शन्स को पैरामीटर के रूप में स्वीकार करते हैं। इस साफ-सुथरी चाल का इस्तेमाल आमतौर पर तब किया जाता है जब हम नहीं जानते कि कब कुछ होने वाला है या पूरा हो रहा है, लेकिन हम जानते हैं कि हमें प्रतिक्रिया में एक ऑपरेशन करने की जरूरत है। -एक उदाहरण के रूप में, [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) पर विचार करें, जो एक टाइमर शुरू करता है और पूरा होने पर कोड निष्पादित करेगा। हमें यह बताना होगा कि हम किस कोड को निष्पादित करना चाहते हैं। एक समारोह के लिए एक सही काम की तरह लगता है! +एक उदाहरण के रूप में, [setTimeout](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) पर विचार करें, जो एक टाइमर शुरू करता है और पूरा होने पर कोड निष्पादित करेगा। हमें यह बताना होगा कि हम किस कोड को निष्पादित करना चाहते हैं। एक समारोह के लिए एक सही काम की तरह लगता है! यदि आप नीचे दिए गए कोड को चलाते हैं, तो 3 सेकंड के बाद आपको संदेश दिखाई देगा **3 सेकंड में** समाप्त हो गया है। @@ -188,7 +188,7 @@ setTimeout(() => { ## समीक्षा और स्व अध्ययन -यह लायक है [एरो फ़ंक्शंस पर थोड़ा और पढ़ना](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions), क्योंकि वे कोड बेस में उपयोग किए जा रहे हैं। एक फ़ंक्शन लिखने का अभ्यास करें, और फिर इस सिंटैक्स के साथ इसे फिर से लिखना। +यह लायक है [एरो फ़ंक्शंस पर थोड़ा और पढ़ना](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Arrow_functions), क्योंकि वे कोड बेस में उपयोग किए जा रहे हैं। एक फ़ंक्शन लिखने का अभ्यास करें, और फिर इस सिंटैक्स के साथ इसे फिर से लिखना। ## असाइनमेंट diff --git a/2-js-basics/2-functions-methods/translations/README.zh-tw.md b/2-js-basics/2-functions-methods/translations/README.zh-tw.md index fa1ea9c7..61553d5f 100644 --- a/2-js-basics/2-functions-methods/translations/README.zh-tw.md +++ b/2-js-basics/2-functions-methods/translations/README.zh-tw.md @@ -104,7 +104,7 @@ displayGreeting('Christopher', 'Hi'); ## 回傳值(Return values) -目前為止,我們的函式只能輸出字串到[console](https://developer.mozilla.org/en-US/docs/Web/API/console)上。這或許是我們希望的結果,尤其是需要呼叫其他服務的時候。萬一今天我想建立一個額外的函式負責做資料處理與運算呢? +目前為止,我們的函式只能輸出字串到[console](https://developer.mozilla.org/docs/Web/API/console)上。這或許是我們希望的結果,尤其是需要呼叫其他服務的時候。萬一今天我想建立一個額外的函式負責做資料處理與運算呢? 此時,我們可以利用**回傳值**。回傳值由函式輸出,就像變數一樣儲存像是字串或是數字的結果。 @@ -133,7 +133,7 @@ const greetingMessage = createGreetingMessage('Christopher'); 在你的程式旅程中,你會見到有函式將其他函式當作參數使用。這個俐落的手法常被用在一種情況:我們不知道 A 事件什麼時候發生與完成,但我們要在 A 事件後執行 B 事件。 -舉例來說,考慮函式[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout),它會啟動計時機制,並在倒數完後執行下一個程式。我們需要告訴函式哪一個函式要在時間到後執行,一個完美的例子! +舉例來說,考慮函式[setTimeout](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout),它會啟動計時機制,並在倒數完後執行下一個程式。我們需要告訴函式哪一個函式要在時間到後執行,一個完美的例子! 執行下方的程式,三秒鐘之後你會看到訊息**已經過三秒鐘**。 @@ -188,7 +188,7 @@ setTimeout(() => { ## 複習與自學 -這很值得去閱讀[關於箭頭函式的資料](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions),它們越來越常被用在程式碼上。試著寫個函式,再改寫成箭頭語法。 +這很值得去閱讀[關於箭頭函式的資料](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Arrow_functions),它們越來越常被用在程式碼上。試著寫個函式,再改寫成箭頭語法。 ## 作業 diff --git a/2-js-basics/3-making-decisions/README.md b/2-js-basics/3-making-decisions/README.md index 7230408d..0246bd74 100644 --- a/2-js-basics/3-making-decisions/README.md +++ b/2-js-basics/3-making-decisions/README.md @@ -12,7 +12,7 @@ Making decisions and controlling the order in which your code runs makes your co > 🎥 Click the image above for a video about making decisions. -> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-if-else/?WT.mc_id=academic-13441-cxa)! +> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-if-else/?WT.mc_id=academic-13441-cxa)! ## A Brief Recap on Booleans Booleans can be only two values: `true` or `false`. Booleans help make decisions on which lines of code should run when certain conditions are met. diff --git a/2-js-basics/3-making-decisions/translations/README.zh-tw.md b/2-js-basics/3-making-decisions/translations/README.zh-tw.md index 7f9cdfad..3f1bd891 100644 --- a/2-js-basics/3-making-decisions/translations/README.zh-tw.md +++ b/2-js-basics/3-making-decisions/translations/README.zh-tw.md @@ -167,7 +167,7 @@ if (firstNumber > secondNumber) { ## 複習與自學 -閱讀更多可被使用的運算子:[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators)。 +閱讀更多可被使用的運算子:[MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators)。 瀏覽 Josh Comeau 所編制的[運算子查詢表](https://joshwcomeau.com/operator-lookup/)! diff --git a/2-js-basics/4-arrays-loops/README.md b/2-js-basics/4-arrays-loops/README.md index 290a3e6b..ec7b40d9 100644 --- a/2-js-basics/4-arrays-loops/README.md +++ b/2-js-basics/4-arrays-loops/README.md @@ -14,7 +14,7 @@ This lesson covers the basics of JavaScript, the language that provides interact > 🎥 Click the images above for videos about arrays and loops. -> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! +> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! ## Arrays diff --git a/2-js-basics/4-arrays-loops/translations/README.fr.md b/2-js-basics/4-arrays-loops/translations/README.fr.md index 5d6428f9..13bc7ecc 100644 --- a/2-js-basics/4-arrays-loops/translations/README.fr.md +++ b/2-js-basics/4-arrays-loops/translations/README.fr.md @@ -12,7 +12,7 @@ Cette leçon couvre les bases de JavaScript, le langage qui offre de l'interacti [![Les boucles](https://img.youtube.com/vi/Eeh7pxtTZ3k/0.jpg)](https://www.youtube.com/watch?v=Eeh7pxtTZ3k "Les boucles") > 🎥 Cliquez sur l'image ci-dessus pour une vidéo sur les tableaux et les boucles. -> Vous pouvez suivre cette leçon sur [Microsoft Learn](https://docs.microsoft.com/en-us/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! +> Vous pouvez suivre cette leçon sur [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! ## Les tableaux Travailler avec des données est une tâche courante pour n'importe quel langage, et c'est une tâche beaucoup plus facile lorsque les données sont organisées dans un format structurel, tel que des tableaux. Avec les tableaux, les données sont stockées dans une structure similaire à une liste. L'un des principaux avantages des tableaux est que vous pouvez stocker différents types de données dans un seul tableau. diff --git a/2-js-basics/4-arrays-loops/translations/README.pt.md b/2-js-basics/4-arrays-loops/translations/README.pt.md index 2420a2de..701be3d4 100644 --- a/2-js-basics/4-arrays-loops/translations/README.pt.md +++ b/2-js-basics/4-arrays-loops/translations/README.pt.md @@ -14,7 +14,7 @@ Esta lição cobre os conceitos básicos do JavaScript, a linguagem que proporci > 🎥 Clique na imagem acima para um vídeo sobre arrays e loops. -> Pode seguir esta lição em [Microsoft Aprender](https://docs.microsoft.com/en-us/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! +> Pode seguir esta lição em [Microsoft Aprender](https://docs.microsoft.com/learn/modules/web-development-101-arrays/?WT.mc_id=academic-13441-cxa)! ## Arrays Trabalhar com dados é uma tarefa comum para qualquer língua, e é uma tarefa muito mais fácil quando os dados são organizados num formato estrutural, tal como as matrizes. Com arrays, os dados são armazenados numa estrutura semelhante a uma lista. Uma grande vantagem dos arrays é que se pode armazenar diferentes tipos de dados numa única matriz. diff --git a/2-js-basics/4-arrays-loops/translations/README.zh-tw.md b/2-js-basics/4-arrays-loops/translations/README.zh-tw.md index 374dce68..d73a447e 100644 --- a/2-js-basics/4-arrays-loops/translations/README.zh-tw.md +++ b/2-js-basics/4-arrays-loops/translations/README.zh-tw.md @@ -116,7 +116,7 @@ for (let i = 0; i < iceCreamFlavors.length; i++) { ## 🚀 挑戰 -除了 for 迴圈與 while 迴圈外,仍有許多使用矩陣與迴圈的方法:[forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)、[for-of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) 與 [map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)。用上列其中一種語法改寫你的迴圈。 +除了 for 迴圈與 while 迴圈外,仍有許多使用矩陣與迴圈的方法:[forEach](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)、[for-of](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/for...of) 與 [map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/map)。用上列其中一種語法改寫你的迴圈。 ## 課後測驗 @@ -125,7 +125,7 @@ for (let i = 0; i < iceCreamFlavors.length; i++) { ## 複習與自學 在 JavaScript 中,矩陣有許多控制的方法,它們在處理資料上有很大的幫助。 -[學習這些方法](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array),如 push、pop、slice 和 splice,試著套用在你所創造的矩陣上。 +[學習這些方法](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array),如 push、pop、slice 和 splice,試著套用在你所創造的矩陣上。 ## 作業 diff --git a/3-terrarium/1-intro-to-html/translations/README.hi.md b/3-terrarium/1-intro-to-html/translations/README.hi.md index 1c8ca2f0..9f90fbe8 100644 --- a/3-terrarium/1-intro-to-html/translations/README.hi.md +++ b/3-terrarium/1-intro-to-html/translations/README.hi.md @@ -48,13 +48,13 @@ HTML फ़ाइल की पहली पंक्ति इसका सि ``` -✅ कुछ अलग तरीके हैं जो डॉक टाइप को क्वेरी स्ट्रिंग के साथ निर्धारित करके निर्धारित किए जा सकते हैं: [क्विर्क मोड और स्टैंडर्ड मोड](https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). ये मोड वास्तव में पुराने ब्राउज़रों का समर्थन करते थे जो आजकल सामान्य रूप से उपयोग नहीं किए जाते हैं (नेटस्केप नेविगेटर 4 और इंटरनेट एक्सप्लोरर 5)। आप मानक सिद्धांत घोषणा से चिपक सकते हैं। +✅ कुछ अलग तरीके हैं जो डॉक टाइप को क्वेरी स्ट्रिंग के साथ निर्धारित करके निर्धारित किए जा सकते हैं: [क्विर्क मोड और स्टैंडर्ड मोड](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). ये मोड वास्तव में पुराने ब्राउज़रों का समर्थन करते थे जो आजकल सामान्य रूप से उपयोग नहीं किए जाते हैं (नेटस्केप नेविगेटर 4 और इंटरनेट एक्सप्लोरर 5)। आप मानक सिद्धांत घोषणा से चिपक सकते हैं। --- ## दस्तावेज़ का 'head' -HTML दस्तावेज़ के 'हेड' क्षेत्र में आपके वेब पेज के बारे में महत्वपूर्ण जानकारी शामिल है, जिसे [मेटाडेटा](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta) के रूप में भी जाना जाता है। हमारे मामले में, हम वेब सर्वर को बताते हैं कि इस पेज को किस पेज पर भेजा जाएगा, ये चार बातें: +HTML दस्तावेज़ के 'हेड' क्षेत्र में आपके वेब पेज के बारे में महत्वपूर्ण जानकारी शामिल है, जिसे [मेटाडेटा](https://developer.mozilla.org/docs/Web/HTML/Element/meta) के रूप में भी जाना जाता है। हमारे मामले में, हम वेब सर्वर को बताते हैं कि इस पेज को किस पेज पर भेजा जाएगा, ये चार बातें: - पेज का शीर्षक - पृष्ठ मेटाडेटा सहित: @@ -212,7 +212,7 @@ HTML में, आप वेब पेज के तत्वों को ब ## 🚀चुनौती -HTML में कुछ जंगली 'पुराने' टैग हैं जो अभी भी खेलने में मज़ेदार हैं, हालांकि आपको [[इन टैग्स](https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Obirect_and_deprecated_elements) जैसे अस्वीकृत टैग का उपयोग नहीं करना चाहिए आपके मार्कअप में । फिर भी, आप h1 शीर्षक स्क्रॉल को क्षैतिज रूप से बनाने के लिए पुराने `` टैग का उपयोग कर सकते हैं? (यदि आप ऐसा करते हैं, तो इसे बाद में हटाना न भूलें) +HTML में कुछ जंगली 'पुराने' टैग हैं जो अभी भी खेलने में मज़ेदार हैं, हालांकि आपको [[इन टैग्स](https://developer.mozilla.org/docs/Web/HTML/Element#Obirect_and_deprecated_elements) जैसे अस्वीकृत टैग का उपयोग नहीं करना चाहिए आपके मार्कअप में । फिर भी, आप h1 शीर्षक स्क्रॉल को क्षैतिज रूप से बनाने के लिए पुराने `` टैग का उपयोग कर सकते हैं? (यदि आप ऐसा करते हैं, तो इसे बाद में हटाना न भूलें) ## व्याख्यान उपरांत प्रश्नोत्तरी diff --git a/3-terrarium/1-intro-to-html/translations/README.zh-cn.md b/3-terrarium/1-intro-to-html/translations/README.zh-cn.md index cf3b2cb8..17db7bc0 100644 --- a/3-terrarium/1-intro-to-html/translations/README.zh-cn.md +++ b/3-terrarium/1-intro-to-html/translations/README.zh-cn.md @@ -48,13 +48,13 @@ HTML 文件的第一行就是文档类型声明。要将这一行内容放在文 ``` -✅ 通过设置带有查询字符串(query string)的 DocType 可以设定几种不同的模式:[怪异模式与标准模式](https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)。这些模式用于支持现在非常不常用的古老浏览器(Netscape Navigator 4 和 Internet Explorer 5)。你仍可以使用标准的文档类型声明。 +✅ 通过设置带有查询字符串(query string)的 DocType 可以设定几种不同的模式:[怪异模式与标准模式](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)。这些模式用于支持现在非常不常用的古老浏览器(Netscape Navigator 4 和 Internet Explorer 5)。你仍可以使用标准的文档类型声明。 --- ## 文档的 'head'(脑袋) -HTML 文档中的 'head' 包含的区域有很多关于页面的重要信息,它也被称作[元数据(metadata)](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta)。在我们的例子中,我们告诉 web 服务器这个页面将依据哪些信息被发送进行渲染,主要是四种: +HTML 文档中的 'head' 包含的区域有很多关于页面的重要信息,它也被称作[元数据(metadata)](https://developer.mozilla.org/docs/Web/HTML/Element/meta)。在我们的例子中,我们告诉 web 服务器这个页面将依据哪些信息被发送进行渲染,主要是四种: - 网页的标题 - 网页的元数据,它包含: @@ -215,7 +215,7 @@ HTML 文档中的 'head' 包含的区域有很多关于页面的重要信息, ## 🚀 挑战 -HTML 中还有一些狂野的'旧'标签,玩起来仍然很有趣。虽然[这些标签](https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Obsolete_and_deprecated_elements)不推荐你使用,但是,你还是可以试试,能否用 `` 标签让 h1 标题文字变成纵向展示的吗?(如果你这么尝试了,不要忘了在后面移除它们) +HTML 中还有一些狂野的'旧'标签,玩起来仍然很有趣。虽然[这些标签](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements)不推荐你使用,但是,你还是可以试试,能否用 `` 标签让 h1 标题文字变成纵向展示的吗?(如果你这么尝试了,不要忘了在后面移除它们) ## 课后测试 diff --git a/3-terrarium/1-intro-to-html/translations/README.zh-tw.md b/3-terrarium/1-intro-to-html/translations/README.zh-tw.md index c947c09a..9aca7ea4 100644 --- a/3-terrarium/1-intro-to-html/translations/README.zh-tw.md +++ b/3-terrarium/1-intro-to-html/translations/README.zh-tw.md @@ -48,13 +48,13 @@ HTML 檔案的第一行是文件型別宣告。你會訝異這一行必須存在 ``` -✅ 有許多不一樣的文件型別模式,你可以用 query string 做設定:[怪異模式與標準模式](https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)。這些模式用來支援非常古老的瀏覽器,現在可能都不會見到的瀏覽器(Netscape Navigator 4 與 Internet Explorer 5)。 你可以觀看他們的文件型別模式宣告定義。 +✅ 有許多不一樣的文件型別模式,你可以用 query string 做設定:[怪異模式與標準模式](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode)。這些模式用來支援非常古老的瀏覽器,現在可能都不會見到的瀏覽器(Netscape Navigator 4 與 Internet Explorer 5)。 你可以觀看他們的文件型別模式宣告定義。 --- ## 文件的 'head' -HTML 文件中 'head' 的區域包含很多網頁的重要資訊,也被稱作[元資訊(metadata)](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta)。我們告訴網頁伺服器我們需要哪些檔案與資訊,主要有四個: +HTML 文件中 'head' 的區域包含很多網頁的重要資訊,也被稱作[元資訊(metadata)](https://developer.mozilla.org/docs/Web/HTML/Element/meta)。我們告訴網頁伺服器我們需要哪些檔案與資訊,主要有四個: - 網頁標題 - 網頁元資訊,包含: @@ -213,7 +213,7 @@ HTML 文件中 'head' 的區域包含很多網頁的重要資訊,也被稱作[ ## 🚀 挑戰 -這邊有一些「古老」的 HTML 標籤。雖然[這些標籤](https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Obsolete_and_deprecated_elements)被歸為不推薦使用的標籤,但仍值得去嘗試的。你可以用 `` 標籤來讓 h1 標題文字變成縱向呈現嗎?實驗完後,記得要移除這些標籤喔。 +這邊有一些「古老」的 HTML 標籤。雖然[這些標籤](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements)被歸為不推薦使用的標籤,但仍值得去嘗試的。你可以用 `` 標籤來讓 h1 標題文字變成縱向呈現嗎?實驗完後,記得要移除這些標籤喔。 ## 課後測驗 diff --git a/3-terrarium/2-intro-to-css/translations/README.zh-tw.md b/3-terrarium/2-intro-to-css/translations/README.zh-tw.md index 8e9e7008..4910873a 100644 --- a/3-terrarium/2-intro-to-css/translations/README.zh-tw.md +++ b/3-terrarium/2-intro-to-css/translations/README.zh-tw.md @@ -248,7 +248,7 @@ h1 { ![盆栽盒成果圖](../images/terrarium-final.png) -在做課後測驗前,請先前往下列的學習頁面:[用 CSS 造型化你的網頁應用](https://docs.microsoft.com/en-us/learn/modules/build-simple-website/4-css-basics?WT.mc_id=academic-13441-cxa) +在做課後測驗前,請先前往下列的學習頁面:[用 CSS 造型化你的網頁應用](https://docs.microsoft.com/learn/modules/build-simple-website/4-css-basics?WT.mc_id=academic-13441-cxa) ## 課後測驗 diff --git a/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md b/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md index 3fbaf41b..2a1883af 100644 --- a/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md +++ b/3-terrarium/3-intro-to-DOM-and-closures/translations/README.hi.md @@ -9,11 +9,11 @@ ### परिचय -DOM, या "Document Object Model" में हेरफेर, वेब विकास का एक प्रमुख पहलू है। [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction) के अनुसार, "The Document Object Model (DOM) संरचना को समाहित करने वाली वस्तुओं का डेटा प्रतिनिधित्व है। और वेब पर एक दस्तावेज़ की सामग्री। " वेब पर DOM हेरफेर के आसपास की चुनौतियाँ अक्सर DOM का प्रबंधन करने के लिए वैनिला जावास्क्रिप्ट के बजाय जावास्क्रिप्ट चौखटे का उपयोग करने के पीछे होती हैं, लेकिन हम अपने दम पर प्रबंधित करेंगे! +DOM, या "Document Object Model" में हेरफेर, वेब विकास का एक प्रमुख पहलू है। [MDN](https://developer.mozilla.org/docs/Web/API/Document_Object_Model/Introduction) के अनुसार, "The Document Object Model (DOM) संरचना को समाहित करने वाली वस्तुओं का डेटा प्रतिनिधित्व है। और वेब पर एक दस्तावेज़ की सामग्री। " वेब पर DOM हेरफेर के आसपास की चुनौतियाँ अक्सर DOM का प्रबंधन करने के लिए वैनिला जावास्क्रिप्ट के बजाय जावास्क्रिप्ट चौखटे का उपयोग करने के पीछे होती हैं, लेकिन हम अपने दम पर प्रबंधित करेंगे! -इसके अलावा, यह पाठ एक [जावास्क्रिप्ट क्लोजर](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures) के विचार को पेश करेगा, जिसे आप दूसरे से संलग्न फ़ंक्शन के रूप में सोच सकते हैं कार्य करें ताकि आंतरिक फ़ंक्शन बाहरी फ़ंक्शन के दायरे तक पहुंच सके। +इसके अलावा, यह पाठ एक [जावास्क्रिप्ट क्लोजर](https://developer.mozilla.org/docs/Web/JavaScript/Closures) के विचार को पेश करेगा, जिसे आप दूसरे से संलग्न फ़ंक्शन के रूप में सोच सकते हैं कार्य करें ताकि आंतरिक फ़ंक्शन बाहरी फ़ंक्शन के दायरे तक पहुंच सके। -> जावास्क्रिप्ट क्लोजर एक विशाल और जटिल विषय है। यह सबक सबसे बुनियादी विचार पर छूता है कि इस टेरारियम के कोड में, आपको एक बंद मिलेगा: एक आंतरिक फ़ंक्शन और एक बाहरी फ़ंक्शन, जो बाहरी फ़ंक्शन के दायरे में आंतरिक फ़ंक्शन का उपयोग करने की अनुमति देता है। यह कैसे काम करता है, इस बारे में अधिक जानकारी के लिए, कृपया [व्यापक प्रलेखन](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures) पर जाएँ। +> जावास्क्रिप्ट क्लोजर एक विशाल और जटिल विषय है। यह सबक सबसे बुनियादी विचार पर छूता है कि इस टेरारियम के कोड में, आपको एक बंद मिलेगा: एक आंतरिक फ़ंक्शन और एक बाहरी फ़ंक्शन, जो बाहरी फ़ंक्शन के दायरे में आंतरिक फ़ंक्शन का उपयोग करने की अनुमति देता है। यह कैसे काम करता है, इस बारे में अधिक जानकारी के लिए, कृपया [व्यापक प्रलेखन](https://developer.mozilla.org/docs/Web/JavaScript/Closures) पर जाएँ। हम DOM को हेरफेर करने के लिए एक क्लोशर का उपयोग करेंगे। @@ -108,9 +108,9 @@ function dragElement(terrariumElement) { `dragElement` स्क्रिप्ट के शीर्ष पर घोषणाओं से अपनी `terrariumElement` वस्तु प्राप्त करें। फिर, आप फ़ंक्शन में पारित ऑब्जेक्ट के लिए `0` पर कुछ स्थानीय स्थिति निर्धारित करते हैं। ये स्थानीय चर हैं जिन्हें प्रत्येक तत्व के लिए हेरफेर किया जाएगा क्योंकि आप प्रत्येक तत्व को बंद करने के भीतर खींचें और ड्रॉप कार्यक्षमता जोड़ते हैं। टेरारियम को इन घसीटे गए तत्वों द्वारा पॉपुलेट किया जाएगा, इसलिए एप्लिकेशन को इस बात पर नज़र रखने की आवश्यकता है कि उन्हें कहाँ रखा गया है। -इसके अलावा, इस फ़ंक्शन को पारित किए जाने वाले टेरारियम ईमेंट को एक `onpointerdown` ईवेंट सौंपा गया है, जो [वेब एपीआई](https://developer.mozilla.org/en-US/docs/Web/API) का एक हिस्सा है। डोम प्रबंधन के साथ मदद करने के लिए। `onpointerdown` एक बटन धकेलने पर, या हमारे मामले में, एक ड्रैग करने योग्य तत्व को छू जाता है। यह ईवेंट हैंडलर कुछ अपवादों के साथ [वेब और मोबाइल ब्राउज़र](https://caniuse.com/?search=onpointerdown) दोनों पर काम करता है। +इसके अलावा, इस फ़ंक्शन को पारित किए जाने वाले टेरारियम ईमेंट को एक `onpointerdown` ईवेंट सौंपा गया है, जो [वेब एपीआई](https://developer.mozilla.org/docs/Web/API) का एक हिस्सा है। डोम प्रबंधन के साथ मदद करने के लिए। `onpointerdown` एक बटन धकेलने पर, या हमारे मामले में, एक ड्रैग करने योग्य तत्व को छू जाता है। यह ईवेंट हैंडलर कुछ अपवादों के साथ [वेब और मोबाइल ब्राउज़र](https://caniuse.com/?search=onpointerdown) दोनों पर काम करता है। -✅ [ईवेंट हैंडलर `onclick`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onclick) को अधिक समर्थन क्रॉस-ब्राउज़र है; आप इसका उपयोग यहां क्यों नहीं करेंगे? स्क्रीन निर्माण के सटीक प्रकार के बारे में सोचें जिसे आप यहाँ बनाने का प्रयास कर रहे हैं। +✅ [ईवेंट हैंडलर `onclick`](https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onclick) को अधिक समर्थन क्रॉस-ब्राउज़र है; आप इसका उपयोग यहां क्यों नहीं करेंगे? स्क्रीन निर्माण के सटीक प्रकार के बारे में सोचें जिसे आप यहाँ बनाने का प्रयास कर रहे हैं। --- @@ -205,9 +205,9 @@ function stopElementDrag() { ## समीक्षा और स्व अध्ययन -स्क्रीन के चारों ओर तत्वों को खींचते समय तुच्छ लगता है, ऐसा करने के कई तरीके और कई नुकसान हैं, जो आपके चाहने वाले प्रभाव पर निर्भर करता है। वास्तव में, एक संपूर्ण [ड्रैग एंड ड्रॉप एपीआई](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) है जिसे आप आज़मा सकते हैं। हमने इसका उपयोग इस मॉड्यूल में नहीं किया क्योंकि हम जो प्रभाव चाहते थे वह कुछ अलग था, लेकिन इस एपीआई को अपने प्रोजेक्ट पर आज़माएँ और देखें कि आप क्या हासिल कर सकते हैं। +स्क्रीन के चारों ओर तत्वों को खींचते समय तुच्छ लगता है, ऐसा करने के कई तरीके और कई नुकसान हैं, जो आपके चाहने वाले प्रभाव पर निर्भर करता है। वास्तव में, एक संपूर्ण [ड्रैग एंड ड्रॉप एपीआई](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API) है जिसे आप आज़मा सकते हैं। हमने इसका उपयोग इस मॉड्यूल में नहीं किया क्योंकि हम जो प्रभाव चाहते थे वह कुछ अलग था, लेकिन इस एपीआई को अपने प्रोजेक्ट पर आज़माएँ और देखें कि आप क्या हासिल कर सकते हैं। -[W3C डॉक्स](https://www.w3.org/TR/pointerevents1/) और [MDN वेब डॉक्स](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events) पर सूचक घटनाओं के बारे में अधिक जानकारी प्राप्त करें। +[W3C डॉक्स](https://www.w3.org/TR/pointerevents1/) और [MDN वेब डॉक्स](https://developer.mozilla.org/docs/Web/API/Pointer_events) पर सूचक घटनाओं के बारे में अधिक जानकारी प्राप्त करें। हमेशा [CanIUse.com] (https://caniuse.com/) का उपयोग करके ब्राउज़र क्षमताओं की जाँच करें। diff --git a/3-terrarium/3-intro-to-DOM-and-closures/translations/README.zh-tw.md b/3-terrarium/3-intro-to-DOM-and-closures/translations/README.zh-tw.md index a42f059c..5b363f41 100644 --- a/3-terrarium/3-intro-to-DOM-and-closures/translations/README.zh-tw.md +++ b/3-terrarium/3-intro-to-DOM-and-closures/translations/README.zh-tw.md @@ -9,11 +9,11 @@ ### 大綱 -操作 DOM (Document Object Model) 是網頁開發的一項關鍵。根據 [MDN 文件](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction), 「Document Object Model (DOM) 元素能根據網頁文件的結構與內容來呈現物件」。藉由使用 JavaScript 框架而非原始的 JavaScript 程式碼來管理 DOM,在網頁上操作 DOM 的挑戰已經不比以前困難了,但這裡我們要自己來管理它們! +操作 DOM (Document Object Model) 是網頁開發的一項關鍵。根據 [MDN 文件](https://developer.mozilla.org/docs/Web/API/Document_Object_Model/Introduction), 「Document Object Model (DOM) 元素能根據網頁文件的結構與內容來呈現物件」。藉由使用 JavaScript 框架而非原始的 JavaScript 程式碼來管理 DOM,在網頁上操作 DOM 的挑戰已經不比以前困難了,但這裡我們要自己來管理它們! -此外,這堂課也會介紹有關[JavaScript 閉包(Closure)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)的概念,你可以想像成一個函式被包在另一個函式中,以訪問外面函式範圍中的變數。 +此外,這堂課也會介紹有關[JavaScript 閉包(Closure)](https://developer.mozilla.org/docs/Web/JavaScript/Closures)的概念,你可以想像成一個函式被包在另一個函式中,以訪問外面函式範圍中的變數。 -> JavaScript 閉包是個廣闊且複雜的主題。本堂課只觸及建立盆栽盒需要的最基礎概念。你能得知一個閉包為:內部函式和外部函式建立一項關係,允許內部函式存取外部函式的變數等作用域。要得知更多關於閉包的原理,請造訪觀看[額外的文件](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)。 +> JavaScript 閉包是個廣闊且複雜的主題。本堂課只觸及建立盆栽盒需要的最基礎概念。你能得知一個閉包為:內部函式和外部函式建立一項關係,允許內部函式存取外部函式的變數等作用域。要得知更多關於閉包的原理,請造訪觀看[額外的文件](https://developer.mozilla.org/docs/Web/JavaScript/Closures)。 我們會使用閉包來操控 DOM。 @@ -108,9 +108,9 @@ function dragElement(terrariumElement) { `dragElement` 藉由程式定義的參數取得 `terrariumElement` 物件。之後,設定一些位置 `0` 的變數給函式內的物件使用。它們是本地變數,給每一個進到拖曳函式內的物件操控。盆栽盒會被這些拖曳物件填充,我們的網頁應用必須要持續追蹤這些物件的位置。 -此外,進到函式的 terrariumElement 也被新增了 `pointerdown` 事件,它是管理 DOM 的其中一項[網頁 APIs](https://developer.mozilla.org/en-US/docs/Web/API)。當按鈕按下時,或是在我們案例中,一個拖曳物件被點擊時,`onpointerdown` 事件就會被觸發。這個事件處理器(event handler)皆運作在[網頁與行動瀏覽器](https://caniuse.com/?search=onpointerdown)上,只有少部分的例外。 +此外,進到函式的 terrariumElement 也被新增了 `pointerdown` 事件,它是管理 DOM 的其中一項[網頁 APIs](https://developer.mozilla.org/docs/Web/API)。當按鈕按下時,或是在我們案例中,一個拖曳物件被點擊時,`onpointerdown` 事件就會被觸發。這個事件處理器(event handler)皆運作在[網頁與行動瀏覽器](https://caniuse.com/?search=onpointerdown)上,只有少部分的例外。 -✅ [事件處理器 `onclick`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onclick)支援更多的瀏覽器。為什麼我們不在這邊使用它? 想想看我們在這此建立的視窗互動類型。 +✅ [事件處理器 `onclick`](https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onclick)支援更多的瀏覽器。為什麼我們不在這邊使用它? 想想看我們在這此建立的視窗互動類型。 --- @@ -207,9 +207,9 @@ function stopElementDrag() { ## 複習與自學 -在螢幕上拖曳物件看似簡單,但依照不同的目的與實現方法會遭遇到不同的問題。事實上,這邊有一份關於你可以嘗試的[拖曳 API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API)。我們沒在專案中使用是為了建立不一樣的實現方法,試著使用這些 API 到專案中,看看你能完成什麼。 +在螢幕上拖曳物件看似簡單,但依照不同的目的與實現方法會遭遇到不同的問題。事實上,這邊有一份關於你可以嘗試的[拖曳 API](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API)。我們沒在專案中使用是為了建立不一樣的實現方法,試著使用這些 API 到專案中,看看你能完成什麼。 -在 [W3C 文件](https://www.w3.org/TR/pointerevents1/) 和 [MDN 網頁文件](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events)上取得更多關於 pointer 的事件。 +在 [W3C 文件](https://www.w3.org/TR/pointerevents1/) 和 [MDN 網頁文件](https://developer.mozilla.org/docs/Web/API/Pointer_events)上取得更多關於 pointer 的事件。 記得習慣性用 [CanIUse.com](https://caniuse.com/) 檢查網頁的瀏覽器兼容性。 diff --git a/3-terrarium/3-intro-to-DOM-and-closures/translations/assignment.zh-tw.md b/3-terrarium/3-intro-to-DOM-and-closures/translations/assignment.zh-tw.md index 3292c192..e239e8ec 100644 --- a/3-terrarium/3-intro-to-DOM-and-closures/translations/assignment.zh-tw.md +++ b/3-terrarium/3-intro-to-DOM-and-closures/translations/assignment.zh-tw.md @@ -2,7 +2,7 @@ ## 簡介 -調查其中一項 DOM 的元素。造訪 MDN 關於 [DOM 介面的清單](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)挑選其中一項。在網路上找尋一個使用這項元素的網頁,並解釋如何使用它。 +調查其中一項 DOM 的元素。造訪 MDN 關於 [DOM 介面的清單](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)挑選其中一項。在網路上找尋一個使用這項元素的網頁,並解釋如何使用它。 ## 學習評量 diff --git a/4-typing-game/typing-game/translations/README.hi.md b/4-typing-game/typing-game/translations/README.hi.md index efc527ca..ac8704fe 100644 --- a/4-typing-game/typing-game/translations/README.hi.md +++ b/4-typing-game/typing-game/translations/README.hi.md @@ -20,10 +20,10 @@ एप्लिकेशन बनाते समय आपको सुनने के लिए [दर्जनों इवेंट](https://developer.mozilla.org/docs/Web/Events) उपलब्ध हैं। मूल रूप से एक पृष्ठ पर एक उपयोगकर्ता कुछ भी करता है, एक घटना को बढ़ाता है, जो आपको यह सुनिश्चित करने के लिए बहुत शक्ति देता है कि वे आपकी इच्छा का अनुभव प्राप्त करें। सौभाग्य से, आपको आम तौर पर केवल कुछ मुट्ठी भर घटनाओं की आवश्यकता होगी। यहां कुछ सामान्य बातें हैं (दोनों में से एक का उपयोग हम अपने खेल को बनाते समय करेंगे) -- [click](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event): उपयोगकर्ता ने कुछ पर क्लिक किया, आमतौर पर एक बटन या हाइपरलिंक -- [contextmenu](https://developer.mozilla.org/en-US/docs/Web/API/Element/contextmenu_event): उपयोगकर्ता ने सही माउस बटन क्लिक किया -- [select](https://developer.mozilla.org/en-US/docs/Web/API/Element/select_event): उपयोगकर्ता ने कुछ टेक्स्ट पर प्रकाश डाला -- [input](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event): उपयोगकर्ता कुछ टेक्स्ट इनपुट करता है +- [click](https://developer.mozilla.org/docs/Web/API/Element/click_event): उपयोगकर्ता ने कुछ पर क्लिक किया, आमतौर पर एक बटन या हाइपरलिंक +- [contextmenu](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event): उपयोगकर्ता ने सही माउस बटन क्लिक किया +- [select](https://developer.mozilla.org/docs/Web/API/Element/select_event): उपयोगकर्ता ने कुछ टेक्स्ट पर प्रकाश डाला +- [input](https://developer.mozilla.org/docs/Web/API/Element/input_event): उपयोगकर्ता कुछ टेक्स्ट इनपुट करता है ## खेल का निर्माण @@ -332,7 +332,7 @@ typedValueElement.addEventListener('input', () => { ## समीक्षा और स्व अध्ययन -वेब ब्राउज़र के माध्यम से डेवलपर के लिए [उपलब्ध सभी घटनाओं](https://developer.mozilla.org/en-US/docs/Web/Events) को पढ़ें, और उन परिदृश्यों पर विचार करें जिनमें आप प्रत्येक का उपयोग करेंगे। +वेब ब्राउज़र के माध्यम से डेवलपर के लिए [उपलब्ध सभी घटनाओं](https://developer.mozilla.org/docs/Web/Events) को पढ़ें, और उन परिदृश्यों पर विचार करें जिनमें आप प्रत्येक का उपयोग करेंगे। ## असाइनमेंट diff --git a/4-typing-game/typing-game/translations/README.zh-tw.md b/4-typing-game/typing-game/translations/README.zh-tw.md index b00658d3..b71329a1 100644 --- a/4-typing-game/typing-game/translations/README.zh-tw.md +++ b/4-typing-game/typing-game/translations/README.zh-tw.md @@ -20,10 +20,10 @@ 創造應用時,這邊有[數種事件](https://developer.mozilla.org/docs/Web/Events)提供給你監聽。基本上,使用者在網頁上做的任何行為都會觸發事件,你需要花大量時間、大量精力確保它們有相對應的使用者體驗。幸運的是,你只需要處理少部分的事件類型。這邊是一些常見的事件類型,我們會使用其中兩種來建立遊戲: -- [點擊](https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event): 使用者點擊物件,通常會是按鈕或是連結。 -- [右鍵選單](https://developer.mozilla.org/en-US/docs/Web/API/Element/contextmenu_event): 使用者點擊滑鼠右鍵。 -- [選取](https://developer.mozilla.org/en-US/docs/Web/API/Element/select_event): 使用者標記特定文字。 -- [輸入](https://developer.mozilla.org/en-US/docs/Web/API/Element/input_event): 使用者輸入文字。 +- [點擊](https://developer.mozilla.org/docs/Web/API/Element/click_event): 使用者點擊物件,通常會是按鈕或是連結。 +- [右鍵選單](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event): 使用者點擊滑鼠右鍵。 +- [選取](https://developer.mozilla.org/docs/Web/API/Element/select_event): 使用者標記特定文字。 +- [輸入](https://developer.mozilla.org/docs/Web/API/Element/input_event): 使用者輸入文字。 ## 建立遊戲 @@ -332,7 +332,7 @@ typedValueElement.addEventListener('input', () => { ## 複習與自學 -在瀏覽器上閱讀[所有開發者可運用的事件](https://developer.mozilla.org/en-US/docs/Web/Events),想想你能在什麼樣的場合使用各個事件。 +在瀏覽器上閱讀[所有開發者可運用的事件](https://developer.mozilla.org/docs/Web/Events),想想你能在什麼樣的場合使用各個事件。 ## 作業 diff --git a/5-browser-extension/1-about-browsers/translations/README.zh-tw.md b/5-browser-extension/1-about-browsers/translations/README.zh-tw.md index 0775976c..aae90b79 100644 --- a/5-browser-extension/1-about-browsers/translations/README.zh-tw.md +++ b/5-browser-extension/1-about-browsers/translations/README.zh-tw.md @@ -68,7 +68,7 @@ - [程式碼](../../start),下載 `start` 資料夾,你需要修改裡面的程式碼檔案。 - [NPM](https://www.npmjs.com),NPM 是一套軟體包管理工具,在本地安裝的軟體包會被列在 `package.json` 檔案中,成為網頁利用的資源。 -✅ 從[這個優質的學習套件](https://docs.microsoft.com/en-us/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-13441-cxa)中,學習更多關於軟體包管理。 +✅ 從[這個優質的學習套件](https://docs.microsoft.com/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-13441-cxa)中,學習更多關於軟體包管理。 花點時間看一下程式檔案結構 @@ -155,7 +155,7 @@ npm install 這堂課中你學到了一些瀏覽器的歷史。趁這個機會閱讀更多它的歷史,學習網際網路的發明者是如何構思網路的應用。這邊有一些實用的網頁: -[瀏覽器的歷史](https://www.mozilla.org/en-US/firefox/browsers/browser-history/) +[瀏覽器的歷史](https://www.mozilla.org/firefox/browsers/browser-history/) [網路的歷史](https://webfoundation.org/about/vision/history-of-the-web/) diff --git a/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md b/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md index 3b66a3cc..0c46a8a6 100644 --- a/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md +++ b/5-browser-extension/2-forms-browsers-local-storage/translations/README.hi.md @@ -94,7 +94,7 @@ function reset(e) { - फॉर्म को छिपाएं - रीसेट बटन दिखाएं -आगे बढ़ने से पहले, ब्राउज़रों में उपलब्ध एक बहुत ही महत्वपूर्ण अवधारणा के बारे में सीखना उपयोगी है: [लोकलस्टोरेज](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).लोकलस्टोरेज, ब्राउज़र में स्ट्रिंगस को 'की-वैल्यू' पेयर के रूप में स्टोर करने का एक उपयोगी तरीका है। इस प्रकार के वेब स्टोरेज को ब्राउजर में डेटा को मैनेज करने के लिए जावास्क्रिप्ट द्वारा मैनिपुलेट किया जा सकता है। लोकलस्टोरीज की समय सीमा समाप्त नहीं होती है, जबकि ब्राउजर के बंद होने पर एक अन्य तरह का वेब स्टोरेज, स्टोरेज साफ हो जाता है। विभिन्न प्रकार के भंडारण में उनके उपयोग के पक्ष और विपक्ष हैं। +आगे बढ़ने से पहले, ब्राउज़रों में उपलब्ध एक बहुत ही महत्वपूर्ण अवधारणा के बारे में सीखना उपयोगी है: [लोकलस्टोरेज](https://developer.mozilla.org/docs/Web/API/Window/localStorage).लोकलस्टोरेज, ब्राउज़र में स्ट्रिंगस को 'की-वैल्यू' पेयर के रूप में स्टोर करने का एक उपयोगी तरीका है। इस प्रकार के वेब स्टोरेज को ब्राउजर में डेटा को मैनेज करने के लिए जावास्क्रिप्ट द्वारा मैनिपुलेट किया जा सकता है। लोकलस्टोरीज की समय सीमा समाप्त नहीं होती है, जबकि ब्राउजर के बंद होने पर एक अन्य तरह का वेब स्टोरेज, स्टोरेज साफ हो जाता है। विभिन्न प्रकार के भंडारण में उनके उपयोग के पक्ष और विपक्ष हैं। > नोट - आपके ब्राउज़र एक्सटेंशन का अपना स्थानीय भंडारण है; मुख्य ब्राउज़र विंडो एक अलग उदाहरण है और अलग-अलग व्यवहार करता है। @@ -145,7 +145,7 @@ function setUpUser(apiKey, regionName) { ✅ 'REST' शब्द 'Representational State Transfer' के लिए है और इसमें डेटा लाने के लिए विभिन्न कॉन्फ़िगर किए गए URL का उपयोग करने की सुविधा है। डेवलपर्स के लिए उपलब्ध विभिन्न प्रकार के एपीआई पर थोड़ा शोध करें। क्या प्रारूप आपको अपील करता है? -इस फ़ंक्शन के बारे में ध्यान देने योग्य महत्वपूर्ण बातें हैं। पहले [`async` कीवर्ड](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function) को नोटिस करें। अपने कार्यों को लिखना ताकि वे अतुल्यकालिक रूप से चलाते हैं इसका मतलब है कि वे एक कार्रवाई की प्रतीक्षा करते हैं, जैसे डेटा लौटाए जाने से पहले, पूरा होने से पहले। +इस फ़ंक्शन के बारे में ध्यान देने योग्य महत्वपूर्ण बातें हैं। पहले [`async` कीवर्ड](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function) को नोटिस करें। अपने कार्यों को लिखना ताकि वे अतुल्यकालिक रूप से चलाते हैं इसका मतलब है कि वे एक कार्रवाई की प्रतीक्षा करते हैं, जैसे डेटा लौटाए जाने से पहले, पूरा होने से पहले। यहाँ `async` के बारे में एक त्वरित वीडियो है: @@ -200,7 +200,7 @@ async function displayCarbonUsage(apiKey, region) { - एपीआई के जवाब देने के बाद, आप इस डेटा को दिखाने के लिए अपने स्क्रीन के कुछ हिस्सों में इसके रिस्पॉन्स डेटा के विभिन्न तत्वों को असाइन करते हैं। - यदि कोई त्रुटि है, या कोई परिणाम नहीं है, तो आप एक त्रुटि संदेश दिखाते हैं। -✅ Asyncronous प्रोग्रामिंग पैटर्न का उपयोग करना आपके टूलबॉक्स में एक और बहुत उपयोगी उपकरण है। [विभिन्न तरीकों के बारे में](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function) पढ़ें आप इस प्रकार के कोड को कॉन्फ़िगर कर सकते हैं। +✅ Asyncronous प्रोग्रामिंग पैटर्न का उपयोग करना आपके टूलबॉक्स में एक और बहुत उपयोगी उपकरण है। [विभिन्न तरीकों के बारे में](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function) पढ़ें आप इस प्रकार के कोड को कॉन्फ़िगर कर सकते हैं। बधाई हो! यदि आप अपना एक्सटेंशन बनाते हैं (`npm run build`) और इसे अपने एक्सटेंशन पेन में रिफ्रेश करें, तो आपके पास काम करने का एक्सटेंशन है! केवल एक चीज जो काम नहीं कर रही है वह आइकन है, और आप इसे अगले पाठ में ठीक कर देंगे। @@ -208,7 +208,7 @@ async function displayCarbonUsage(apiKey, region) { ## 🚀 चुनौती -हमने इन पाठों में अब तक कई प्रकार के एपीआई पर चर्चा की है। एक वेब एपीआई चुनें और गहराई से शोध करें कि यह क्या प्रदान करता है। उदाहरण के लिए, [HTML ड्रैग एंड ड्रॉप एपीआई](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API) जैसे ब्राउज़रों के भीतर उपलब्ध एपीआई पर एक नज़र डालें। आपकी राय में एक महान एपीआई क्या है? +हमने इन पाठों में अब तक कई प्रकार के एपीआई पर चर्चा की है। एक वेब एपीआई चुनें और गहराई से शोध करें कि यह क्या प्रदान करता है। उदाहरण के लिए, [HTML ड्रैग एंड ड्रॉप एपीआई](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API) जैसे ब्राउज़रों के भीतर उपलब्ध एपीआई पर एक नज़र डालें। आपकी राय में एक महान एपीआई क्या है? ## व्याख्यान उपरांत प्रश्नोत्तरी diff --git a/5-browser-extension/2-forms-browsers-local-storage/translations/README.zh-tw.md b/5-browser-extension/2-forms-browsers-local-storage/translations/README.zh-tw.md index 5e5b67b6..d1c75f08 100644 --- a/5-browser-extension/2-forms-browsers-local-storage/translations/README.zh-tw.md +++ b/5-browser-extension/2-forms-browsers-local-storage/translations/README.zh-tw.md @@ -94,7 +94,7 @@ function reset(e) { - 隱藏表單 - 顯示重置按鈕 -在下一步之前,你可以學習一些瀏覽器的重要成員:[LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)。 LocalStorage 是瀏覽器儲存字串的有效方法,以 `key-value` 配對兩兩一組。這種儲存型態可以被 JavaScript 管理並控制瀏覽器的資料。LocalStorage 沒有期限,而另一款網頁儲存 SessionStorage 會在瀏覽器關閉時清除內容。不同的儲存方式有各自的優缺點。 +在下一步之前,你可以學習一些瀏覽器的重要成員:[LocalStorage](https://developer.mozilla.org/docs/Web/API/Window/localStorage)。 LocalStorage 是瀏覽器儲存字串的有效方法,以 `key-value` 配對兩兩一組。這種儲存型態可以被 JavaScript 管理並控制瀏覽器的資料。LocalStorage 沒有期限,而另一款網頁儲存 SessionStorage 會在瀏覽器關閉時清除內容。不同的儲存方式有各自的優缺點。 > 注意 ── 你的瀏覽器擴充套件有自己的 local storage。主瀏覽器視窗是不同的個體,兩者會做各自的行為。 @@ -145,7 +145,7 @@ function setUpUser(apiKey, regionName) { ✅ 'REST' 全名為 'Representational State Transfer',提供各式各樣 URL 形式來抓取資料。對網路開發者的 API 種類做一點研究,什麼形式的 API 最吸引你? -這條函式中有一個重要到值得紀錄的事情。第一點為[關鍵字 `async`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function)。讓你的函式非同步地執行,在行為完成前做等待,譬如資料被回傳。 +這條函式中有一個重要到值得紀錄的事情。第一點為[關鍵字 `async`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function)。讓你的函式非同步地執行,在行為完成前做等待,譬如資料被回傳。 這裡有一個簡短的影片介紹 `async`: @@ -200,7 +200,7 @@ async function displayCarbonUsage(apiKey, region) { - 當 API 回應時,你將各種物件填入回傳的數值,並輸出到畫面上中。 - 如果發生錯誤,或沒有結果產生,輸出錯誤訊息。 -✅ 非同步程式設計是一種實用的工具。閱讀[更多使用方法](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function)設定非同步程式的程式碼。 +✅ 非同步程式設計是一種實用的工具。閱讀[更多使用方法](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function)設定非同步程式的程式碼。 恭喜你!當你建制你的專案(`npm run build`)並在瀏覽器上刷新功能,你有個可以運作的應用套件了!現在只差圖示無法正常顯示,我們會在下一堂課中修正它。 @@ -208,7 +208,7 @@ async function displayCarbonUsage(apiKey, region) { ## 🚀 挑戰 -我們在課程中討論了不同種類的 API。選擇一樣網頁 API 並做更深度的研究。舉例來說,看看瀏覽器內支援的 API 如 [HTML Drag and Drop API](https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API)。依你看,什麼決定了 API 的優劣? +我們在課程中討論了不同種類的 API。選擇一樣網頁 API 並做更深度的研究。舉例來說,看看瀏覽器內支援的 API 如 [HTML Drag and Drop API](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API)。依你看,什麼決定了 API 的優劣? ## 課後測驗 diff --git a/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md b/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md index fb2006dd..51368a55 100644 --- a/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md +++ b/5-browser-extension/3-background-tasks-and-performance/translations/README.hi.md @@ -22,7 +22,7 @@ ![एज प्रोफाइल](../images/profiler.png) -✅ किनारे पर प्रदर्शन पैनल पर [Microsoft दस्तावेज़ीकरण](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide/performance?WT.mc_id=academy-13441-cxa) पर जाएँ +✅ किनारे पर प्रदर्शन पैनल पर [Microsoft दस्तावेज़ीकरण](https://docs.microsoft.com/microsoft-edge/devtools-guide/performance?WT.mc_id=academy-13441-cxa) पर जाएँ > युक्ति: अपनी वेब साइट के स्टार्टअप समय का सही पठन करने के लिए, अपने ब्राउज़र का कैश साफ़ करें diff --git a/5-browser-extension/3-background-tasks-and-performance/translations/README.zh-tw.md b/5-browser-extension/3-background-tasks-and-performance/translations/README.zh-tw.md index 80838d29..90e9dc8e 100644 --- a/5-browser-extension/3-background-tasks-and-performance/translations/README.zh-tw.md +++ b/5-browser-extension/3-background-tasks-and-performance/translations/README.zh-tw.md @@ -22,7 +22,7 @@ Performance 分頁包括了效能分析工具。開啟一個網頁,例如 http ![Edge 性能分析工具](../images/profiler.png) -✅ 造訪 [Microsoft 文件](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide/performance?WT.mc_id=academic-13441-cxa)觀看 Edge 的 Performance 分頁資訊 +✅ 造訪 [Microsoft 文件](https://docs.microsoft.com/microsoft-edge/devtools-guide/performance?WT.mc_id=academic-13441-cxa)觀看 Edge 的 Performance 分頁資訊 > 提示:要取得真正的網頁開啟時間,記得清除你的瀏覽器快取。 diff --git a/6-space-game/1-introduction/translations/README.zh-tw.md b/6-space-game/1-introduction/translations/README.zh-tw.md index 51cff84a..56062798 100644 --- a/6-space-game/1-introduction/translations/README.zh-tw.md +++ b/6-space-game/1-introduction/translations/README.zh-tw.md @@ -29,7 +29,7 @@ 這個想法是結合 `classes` 與`繼承`的方式來在 class 中添加特定行為。 -✅ 繼承是一個重要概念。在[有關繼承的 MDN 文章中](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)學習更多內容。 +✅ 繼承是一個重要概念。在[有關繼承的 MDN 文章中](https://developer.mozilla.org/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)學習更多內容。 以程式碼來表達的話,一個遊戲物件通常會呈現這種形式: @@ -217,7 +217,7 @@ eventEmitter.on(Messages.HERO_MOVE_LEFT, () => { ## 複習與自學 -藉由[閱讀此連結](https://docs.microsoft.com/en-us/azure/architecture/patterns/publisher-subscriber?WT.mc_id=academic-13441-cxa)來認識更多關於發布與訂閱的設計模式。 +藉由[閱讀此連結](https://docs.microsoft.com/azure/architecture/patterns/publisher-subscriber?WT.mc_id=academic-13441-cxa)來認識更多關於發布與訂閱的設計模式。 ## 作業 diff --git a/6-space-game/2-drawing-to-canvas/translations/README.zh-tw.md b/6-space-game/2-drawing-to-canvas/translations/README.zh-tw.md index fe34507e..2da4d2b4 100644 --- a/6-space-game/2-drawing-to-canvas/translations/README.zh-tw.md +++ b/6-space-game/2-drawing-to-canvas/translations/README.zh-tw.md @@ -8,7 +8,7 @@ Canvas 是 HTML 中的元素,預設上不帶有任何內容,就如一塊白板。你需要自己彩繪上去。 -✅ 在 MDN 上閱讀[更多關於 Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)。 +✅ 在 MDN 上閱讀[更多關於 Canvas API](https://developer.mozilla.org/docs/Web/API/Canvas_API)。 這是它典型的宣告方式,位在頁面的 body 中: @@ -27,7 +27,7 @@ Canvas 是 HTML 中的元素,預設上不帶有任何內容,就如一塊白 Canvas 使用了笛卡爾座標系繪製圖案。因此有 x 軸與 y 軸來表達物件的所在地點。座標點 `0,0` 位在畫布的左上方;而右下方則是我們定義畫布的寬度與高度。 ![畫布網格](../canvas_grid.png) -> 圖片出自於 [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes) +> 圖片出自於 [MDN](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes) 要在 Canvas 物件上繪製圖案,你需要執行下列步驟: @@ -52,7 +52,7 @@ ctx.fillStyle = 'red'; ctx.fillRect(0,0, 200, 200) // x,y,width, height ``` -✅ Canvas API 主要是處理 2D 圖形,但你也可以在網頁中繪製 3D 圖形。要完成這個需求,你可以使用 [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API)。 +✅ Canvas API 主要是處理 2D 圖形,但你也可以在網頁中繪製 3D 圖形。要完成這個需求,你可以使用 [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API)。 你可以使用 Canvas API 繪製出這些物件: @@ -201,7 +201,7 @@ npm start ## 🚀 挑戰 -你已經學會繪製 2D 圖形的 Canvas API。看看 [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API),試著繪製 3D 物件。 +你已經學會繪製 2D 圖形的 Canvas API。看看 [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API),試著繪製 3D 物件。 ## 課後測驗 @@ -209,7 +209,7 @@ npm start ## 複習與自學 -[閱讀更多資料](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API),學習更多有關 Canvas API 的用法。 +[閱讀更多資料](https://developer.mozilla.org/docs/Web/API/Canvas_API),學習更多有關 Canvas API 的用法。 ## 作業 diff --git a/6-space-game/5-keeping-score/translations/README.zh-tw.md b/6-space-game/5-keeping-score/translations/README.zh-tw.md index 67f002ce..0a622088 100644 --- a/6-space-game/5-keeping-score/translations/README.zh-tw.md +++ b/6-space-game/5-keeping-score/translations/README.zh-tw.md @@ -17,7 +17,7 @@ ctx.textAlign = "right"; ctx.fillText("show this on the screen", 0, 0); ``` -✅ 閱讀更多關於[在畫布上建立文字](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_text),你可以自由地豐富你的文字! +✅ 閱讀更多關於[在畫布上建立文字](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text),你可以自由地豐富你的文字! ## 性命,一個遊戲概念 diff --git a/7-bank-project/1-template-route/README.md b/7-bank-project/1-template-route/README.md index ac413312..7ce2517d 100644 --- a/7-bank-project/1-template-route/README.md +++ b/7-bank-project/1-template-route/README.md @@ -41,7 +41,7 @@ If you want to create multiples screens for a web page, one solution would be to - You have to reload the entire HTML when switching screen, which can be slow. - It's difficult to share data between the different screens. -Another approach is have only one HTML file, and define multiple [HTML templates](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template) using the `