Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/labs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ how to do that and the labs we'd like created.

Here are some of the labs available, which you can use as examples:

* [hello](hello.html) - simple "Hello, world!" demo. [ja_hello](ja_hello.html)
* [hello](hello.html) - simple "Hello, world!" demo. ([ja_hello](ja_hello.html), [fr_hello](fr_hello.html))
* [input1](input1.html) - input validation (simple types)
* [regex0](regex0.html) - regular expressions (regexes) - introduction
* [regex1](regex1.html) - regular expressions (regexes)
Expand Down
23 changes: 20 additions & 3 deletions docs/labs/checker.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const resources = {
reset_title: 'Reset initial state (throwing away current attempt).',
to_be_completed: 'to be completed',
try_harder: "Try harder! Don't give up so soon. Current time spent (in seconds): {0}",
}
},
},
ja: {
translation: {
Expand All @@ -57,9 +57,26 @@ const resources = {
reset_title: '初期状態をリセットします (現在の試行を破棄します)。',
to_be_completed: '完成する',
try_harder: '「もっと頑張ってください! すぐに諦めないでください。現在の所要時間 (秒): {0}」',
}
},
},
}
fr: {
translation: {
already_correct: 'La réponse est déjà correcte !',
complete: 'COMPLET !',
completed: 'Terminé',
congrats: 'Félicitations ! Votre réponse est correcte !',
congrats_all: 'Excellent travail ! Toutes vos réponses sont correctes !',
expecting: "Nous attendions une réponse comme celle-ci :\n{0}",
give_up_title: 'Abandonnez et montrez une réponse.',
hint_title: 'Fournir un indice compte tenu de la tentative en cours.',
no_hints: "Désolé, il n'y a aucun indice pour cet atelier.",
no_matching_hint: "Désolé, je ne trouve pas d'indice correspondant à votre tentative.",
reset_title: "Réinitialiser l'état initial (abandonner la tentative actuelle).",
to_be_completed: 'à compléter',
try_harder: "Essayez plus fort ! N'abandonnez pas si tôt. Temps actuel passé (en secondes) : {0}",
},
},
};

// Create a "format" method to simplify internationalization.
// Use as: "Demo {0} result"".format(name);
Expand Down
83 changes: 83 additions & 0 deletions docs/labs/fr_hello.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://best.openssf.org/assets/css/style.css">
<link rel="stylesheet" href="checker.css">
<script src="checker.js"></script>
<script src="hello.js"></script>
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/">

<!-- See create_labs.md for how to create your own lab! -->
</head>
<body>
<!-- For GitHub Pages formatting: -->
<div class="container-lg px-3 my-5 markdown-body">
<h1>Exercice de laboratoire Hello</h1>

Il s'agit d'un exercice de laboratoire sur le développement de logiciels sécurisés.
Pour plus d'informations, consultez l'<a href="introduction.html" target="_blank">introduction à les laboratoires</a>.

<p>
<h2>But</h2>
<p>
<b>Apprenez à utiliser nos laboratoires en écrivant un message « Hello, world ! » programme.</b>

<p>
<h2>Arrière-plan</h2>
<p>
<a href="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program"
> "Hello, World! " programme</a>
est souvent le premier programme écrit en
un nouveau langage ou système de programmation.
Nous en rédigerons un afin de voir comment fonctionnent ces laboratoires.

<p>
<h2>Informations sur la tâche</h2>
<p>

<p>
Votre tâche est de modifier le programme ci-dessous
pour imprimer "Hello, world!" pour savoir comment fonctionnent nos laboratoires.
Veuillez expérimenter avec les boutons ci-dessous intitulés
<i>Indice</i>, <i>Réinitialiser</i> et <i>Abandonner</i>.

<p>
Lorsque vous obtenez une réponse correcte, vous verrez une notification contextuelle, le
la couleur d'arrière-plan de la zone de saisie changera et le
Le titre « Laboratoire interactif » changera pour indiquer <i>Terminé !</i>.

<p>
<h2>Laboratoire interactif (<span id="grade"></span>)</h2>
<p>
<b>Veuillez modifier le code ci-dessous pour imprimer "Hello, world!"
(sans compter les citations)
pour JavaScript sur Node.js, tout en apprenant comment fonctionnent nos ateliers.</b>
<p>
<!--
You can use this an example for new labs.
For multi-line inputs, instead of <input id="attempt0" type="text" ...>, use
<textarea id="attempt" rows="2" cols="65">...</textarea>
-->
<form id="lab">
<pre><code
><input id="attempt0" type="text" size="60" spellcheck="false"
value='console.log("Goodbye.");'>
</code></pre>
<button type="button" class="hintButton">Indice</button>
<button type="button" class="resetButton">Réinitialiser</button>
<button type="button" class="giveUpButton">Abandonner</button>
<br><br>
<p>
<i>Ce laboratoire a été développé par David A. Wheeler à
<a href="https://www.linuxfoundation.org/">La Fondation Linux</a>.</i>
<br><br>
<p id="correctStamp" class="small">
<textarea id="debugData" class="displayNone" rows="20" cols="65" readonly>
</textarea>
</form>

</div><!-- End GitHub pages formatting -->
</body>
</html>
10 changes: 10 additions & 0 deletions docs/labs/hello.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,63 +5,73 @@ info =
absent: String.raw`^ console \. log \(`,
text: "Please use the form console.log(...);",
text_ja: "console.log(...); の形式を使用してください。",
text_fr: "Veuillez utiliser le formulaire console.log(...);",
examples: [ [ "" ], [ "foo" ]
],
},
{
present: "Goodbye",
text: "You need to change the text Goodbye to something else.",
text_ja: "「Goodbye」というテキストを別の文字に変更する必要があります.",
text_fr: "Vous devez remplacer le texte Goodbye par autre chose.",
examples: [ [ "console.log(\"Goodbye.\");" ] ]
},
{
present: "hello",
text: "Please capitalize Hello.",
text_ja: "Hello は大文字で入力してください。.",
text_fr: "Veuillez mettre une majuscule Hello.",
examples: [ [ "console.log(\"hello.\");" ] ]
},
{
present: "World",
text: "Please lowercase world.",
text_ja: "world という単語を小文字にしてください。",
text_fr: "Veuillez mettre world en minuscule.",
examples: [ [ "console.log(\"Hello, World!\");" ] ]
},
{
present: "Hello[^,]",
text: "Put a comma immediately after Hello.",
text_ja: "Hello の直後にカンマを入れます",
text_fr: "Mettez une virgule immédiatement après Hello.",
examples: [ [ "console.log(\"Hello world.\");" ] ]
},
{
present: "Hello",
absent: "[Ww]orld",
text: "There's a Hello, but you need to also mention the world.",
text_ja: "「Hello」がありますが、「world」という単語にも言及する必要があります。",
text_fr: "Il y a un Hello, mais il faut aussi mentionner le world.",
examples: [ [ "console.log(\"Hello, \");" ] ]
},
{
present: String.raw`world[^\!]`,
text: "Put an exclamation point immediately after world.",
text_ja: "world の直後に感嘆符を置きます。",
text_fr: "Mettez un point d'exclamation immédiatement après world.",
examples: [ [ "console.log(\"Hello, world.\");" ] ]
},
{
present: String.raw`Hello,\s*world!`,
absent: String.raw`Hello,\x20world!`,
text: "You need exactly one space between 'Hello,' and 'world!'",
text_ja: "「Hello」と「world!」の間にはスペースが 1 つだけ必要です。",
text_fr: "Vous avez besoin d'exactement un espace entre « Hello, » et « world! »",
examples: [ [ "console.log(\"Hello, world!\");" ] ]
},
{
present: String.raw`^ console \. log \( Hello`,
text: "You must quote constant strings using \", ', or `",
text_ja: "定数文字列は \"、'、または ` を使用して引用符で囲む必要があります。",
text_fr: "Vous devez citer les chaînes constantes en utilisant \", ' ou `",
examples: [ [ "console.log(Hello, world" ], [ "console.log( Hello, world" ] ]
},
{
absent: String.raw` ; $`,
text: "Please end this statement with a semicolon. JavaScript does not require a semicolon in this case, but usually when modifying source code you should follow the style of the current code.",
text_ja: "このステートメントはセミコロンで終了してください。この場合、JavaScript ではセミコロンは必要ありませんが、通常、ソース コードを変更する場合は、現在のコードのスタイルに従う必要があります。",
text_fr: "Veuillez terminer cette déclaration par un point-virgule. JavaScript ne nécessite pas de point-virgule dans ce cas, mais généralement lors de la modification du code source, vous devez suivre le style du code actuel",
examples: [ [ " console.log(\"Hello, world!\") " ] ]
},
],
Expand Down