Skip to content

Commit d621085

Browse files
bleucitronRomain Crestey
andauthored
Examples (#48)
* docs: add examples 00 to 04 * add examples 05 * add examples 06 * add examples 07 * add examples 08 * add examples 09 * add examples 10 * add examples 11 * add examples 12 * add examples 13 * add examples 14 * add examples 15 * add examples 16 * add examples 17 * add examples 18 * add examples 19-20 * add examples 21 * forgot flight booker --------- Co-authored-by: Romain Crestey <[email protected]>
1 parent 4dc8b1a commit d621085

File tree

134 files changed

+371
-332
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+371
-332
lines changed

documentation/examples/05-bindings/00-text-inputs/App.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
let name = '';
33
</script>
44

5-
<input bind:value={name} placeholder="enter your name" />
6-
<p>Hello {name || 'stranger'}!</p>
5+
<input bind:value={name} placeholder="tapez votre nom" />
6+
<p>Bonjour {name || 'étranger'} !</p>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Text inputs"
2+
"title": "Inputs texte"
33
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Numeric inputs"
2+
"title": "Inputs numériques"
33
}

documentation/examples/05-bindings/02-checkbox-inputs/App.svelte

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55
<label>
66
<input type="checkbox" bind:checked={yes} />
7-
Yes! Send me regular email spam
7+
Oui ! Envoyez-moi du courrier indésirable
88
</label>
99

1010
{#if yes}
11-
<p>Thank you. We will bombard your inbox and sell your personal details.</p>
11+
<p>Merci. Nous allons bombarder votre boite mail et vendre vos données personnelles.</p>
1212
{:else}
13-
<p>You must opt-in to continue. If you're not paying, you're the product.</p>
13+
<p>Vous devez accepter pour continuer. Si vous ne payez pas, vous êtes le produit.</p>
1414
{/if}
1515

16-
<button disabled={!yes}> Subscribe </button>
16+
<button disabled={!yes}> S'abonner </button>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Checkbox inputs"
2+
"title": "Inputs checkbox"
33
}
Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
11
<script>
22
let scoops = 1;
3-
let flavours = ['Mint choc chip'];
3+
let flavours = ['Éclats de menthe'];
44
5-
let menu = ['Cookies and cream', 'Mint choc chip', 'Raspberry ripple'];
5+
let menu = ['Cookie crémeux', 'Éclats de menthe', 'Vague à la fraise'];
66
77
function join(flavours) {
88
if (flavours.length === 1) return flavours[0];
9-
return `${flavours.slice(0, -1).join(', ')} and ${flavours[flavours.length - 1]}`;
9+
return `${flavours.slice(0, -1).join(', ')} et ${flavours[flavours.length - 1]}`;
1010
}
1111
</script>
1212

13-
<h2>Size</h2>
13+
<h2>Nombre de boules</h2>
1414

1515
<label>
16-
<input type="radio" bind:group={scoops} value={1} />
17-
One scoop
16+
<input type="radio" bind:group={scoops} name="scoops" value={1} />
17+
Une boule
1818
</label>
1919

2020
<label>
21-
<input type="radio" bind:group={scoops} value={2} />
22-
Two scoops
21+
<input type="radio" bind:group={scoops} name="scoops" value={2} />
22+
Deux boules
2323
</label>
2424

2525
<label>
26-
<input type="radio" bind:group={scoops} value={3} />
27-
Three scoops
26+
<input type="radio" bind:group={scoops} name="scoops" value={3} />
27+
Trois boules
2828
</label>
2929

30-
<h2>Flavours</h2>
30+
<h2>Parfums</h2>
3131

3232
{#each menu as flavour}
3333
<label>
34-
<input type="checkbox" bind:group={flavours} value={flavour} />
34+
<input type="checkbox" bind:group={flavours} name="flavours" value={flavour} />
3535
{flavour}
3636
</label>
3737
{/each}
3838

3939
{#if flavours.length === 0}
40-
<p>Please select at least one flavour</p>
40+
<p>Veuillez choisir au moins un parfum</p>
4141
{:else if flavours.length > scoops}
42-
<p>Can't order more flavours than scoops!</p>
42+
<p>Vous ne pouvez pas choisir plus de parfums que de boules !</p>
4343
{:else}
4444
<p>
45-
You ordered {scoops}
46-
{scoops === 1 ? 'scoop' : 'scoops'}
47-
of {join(flavours)}
45+
Vous avez commandé {scoops}
46+
{scoops === 1 ? 'boule' : 'boules'}
47+
de {join(flavours)}
4848
</p>
4949
{/if}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Group inputs"
2+
"title": "Inputs groupés"
33
}

documentation/examples/05-bindings/04-textarea-inputs/App.svelte

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<script>
22
import { marked } from 'marked';
3-
let text = `Some words are *italic*, some are **bold**`;
3+
let value = `Certains mots sont en *italique*, d'autres sont en **gras**`;
44
</script>
55

6-
<textarea bind:value={text} />
6+
{@html marked(value)}
77

8-
{@html marked(text)}
8+
<textarea bind:value />
99

1010
<style>
1111
textarea {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Textarea inputs"
2+
"title": "Inputs de zone de texte"
33
}

documentation/examples/05-bindings/05-file-inputs/App.svelte

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22
let files;
33
44
$: if (files) {
5-
// Note that `files` is of type `FileList`, not an Array:
6-
// https://developer.mozilla.org/en-US/docs/Web/API/FileList
5+
// Notez que `files` est de type `FileList`, ce n'est pas un tableau :
6+
// https://developer.mozilla.org/fr/docs/Web/API/FileList
77
console.log(files);
88
99
for (const file of files) {
10-
console.log(`${file.name}: ${file.size} bytes`);
10+
console.log(`${file.name}: ${file.size} octets`);
1111
}
1212
}
1313
</script>
1414

15-
<label for="avatar">Upload a picture:</label>
15+
<label for="avatar">Sélectionnez une image :</label>
1616
<input accept="image/png, image/jpeg" bind:files id="avatar" name="avatar" type="file" />
1717

18-
<label for="many">Upload multiple files of any type:</label>
18+
<label for="many">Sélectionnez plusieurs images de n'importe quel type :</label>
1919
<input bind:files id="many" multiple type="file" />
2020

2121
{#if files}
22-
<h2>Selected files:</h2>
22+
<h2>Images sélectionnées :</h2>
2323
{#each Array.from(files) as file}
24-
<p>{file.name} ({file.size} bytes)</p>
24+
<p>{file.name} ({file.size} octets)</p>
2525
{/each}
2626
{/if}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "File inputs"
2+
"title": "Inputs de fichiers"
33
}

documentation/examples/05-bindings/06-select-bindings/App.svelte

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
<script>
22
let questions = [
3-
{ id: 1, text: `Where did you go to school?` },
4-
{ id: 2, text: `What is your mother's name?` },
5-
{ id: 3, text: `What is another personal fact that an attacker could easily find with Google?` }
3+
{ id: 1, text: `Où alliez-vous à l'école ?` },
4+
{ id: 2, text: `Quel est le nom de jeune de fille de votre mère ?` },
5+
{
6+
id: 3,
7+
text: `Donnez-nous un autre élément personnel qu'une personne mal intentionnée pourrait facilement trouver sur Google`
8+
}
69
];
710
811
let selected;
912
1013
let answer = '';
1114
1215
function handleSubmit() {
13-
alert(`answered question ${selected.id} (${selected.text}) with "${answer}"`);
16+
alert(`la réponse à la question ${selected.id} (${selected.text}) est "${answer}"`);
1417
}
1518
</script>
1619

17-
<h2>Insecurity questions</h2>
20+
<h2>Questions de non-sécurité</h2>
1821

1922
<form on:submit|preventDefault={handleSubmit}>
2023
<select bind:value={selected} on:change={() => (answer = '')}>
@@ -27,10 +30,10 @@
2730

2831
<input bind:value={answer} />
2932

30-
<button disabled={!answer} type="submit"> Submit </button>
33+
<button disabled={!answer} type="submit"> Envoyer </button>
3134
</form>
3235

33-
<p>selected question {selected ? selected.id : '[waiting...]'}</p>
36+
<p>question choisie {selected ? selected.id : '[en attente...]'}</p>
3437

3538
<style>
3639
input {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Select bindings"
2+
"title": "Liaisons de sélection"
33
}
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
<script>
22
let scoops = 1;
3-
let flavours = ['Mint choc chip'];
3+
let flavours = ['Éclats de menthe'];
44
5-
let menu = ['Cookies and cream', 'Mint choc chip', 'Raspberry ripple'];
5+
let menu = ['Cookie crémeux', 'Éclats de menthe', 'Vague à la fraise'];
66
77
function join(flavours) {
88
if (flavours.length === 1) return flavours[0];
9-
return `${flavours.slice(0, -1).join(', ')} and ${flavours[flavours.length - 1]}`;
9+
return `${flavours.slice(0, -1).join(', ')} et ${flavours[flavours.length - 1]}`;
1010
}
1111
</script>
1212

1313
<h2>Size</h2>
1414

1515
<label>
1616
<input type="radio" bind:group={scoops} value={1} />
17-
One scoop
17+
Une boule
1818
</label>
1919

2020
<label>
2121
<input type="radio" bind:group={scoops} value={2} />
22-
Two scoops
22+
Deux boules
2323
</label>
2424

2525
<label>
2626
<input type="radio" bind:group={scoops} value={3} />
27-
Three scoops
27+
Trois boules
2828
</label>
2929

30-
<h2>Flavours</h2>
30+
<h2>Parfums</h2>
3131

3232
<select multiple bind:value={flavours}>
3333
{#each menu as flavour}
@@ -38,13 +38,13 @@
3838
</select>
3939

4040
{#if flavours.length === 0}
41-
<p>Please select at least one flavour</p>
41+
<p>Veuillez choisir au moins un parfum</p>
4242
{:else if flavours.length > scoops}
43-
<p>Can't order more flavours than scoops!</p>
43+
<p>Vous ne pouvez pas choisir plus de parfums que de boules !</p>
4444
{:else}
4545
<p>
46-
You ordered {scoops}
47-
{scoops === 1 ? 'scoop' : 'scoops'}
48-
of {join(flavours)}
46+
Vous avez commandé {scoops}
47+
{scoops === 1 ? 'boule' : 'boules'}
48+
de {join(flavours)}
4949
</p>
5050
{/if}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Select multiple"
2+
"title": "Sélection multiple"
33
}

documentation/examples/05-bindings/08-each-block-bindings/App.svelte

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<script>
22
let todos = [
3-
{ done: false, text: 'finish Svelte tutorial' },
4-
{ done: false, text: 'build an app' },
5-
{ done: false, text: 'world domination' }
3+
{ done: false, text: 'finir le tutoriel Svelte' },
4+
{ done: false, text: 'construire une app' },
5+
{ done: false, text: 'dominer le monde' }
66
];
77
88
function add() {
@@ -22,12 +22,16 @@
2222
<div>
2323
<input type="checkbox" bind:checked={todo.done} />
2424

25-
<input placeholder="What needs to be done?" bind:value={todo.text} disabled={todo.done} />
25+
<input
26+
placeholder="Qu'avez-vous besoin de faire ?"
27+
bind:value={todo.text}
28+
disabled={todo.done}
29+
/>
2630
</div>
2731
{/each}
2832

29-
<p>{remaining} remaining</p>
33+
<p>Encore {remaining}</p>
3034

31-
<button on:click={add}> Add new </button>
35+
<button on:click={add}> Ajouter </button>
3236

33-
<button on:click={clear}> Clear completed </button>
37+
<button on:click={clear}> Effacer les tâches complétées </button>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Each block bindings"
2+
"title": "Liaisons de bloc each"
33
}

documentation/examples/05-bindings/09-media-elements/App.svelte

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
<script>
2-
// These values are bound to properties of the video
2+
// Ces valeurs sont liées aux propriétés de la vidéo
33
let time = 0;
44
let duration;
55
let paused = true;
66
77
let showControls = true;
88
let showControlsTimeout;
99
10-
// Used to track time of last mouse down event
10+
// Utilisée pour suivre le timing du dernier évènement mousedown
1111
let lastMouseDown;
1212
1313
function handleMove(e) {
14-
// Make the controls visible, but fade out after
15-
// 2.5 seconds of inactivity
14+
// Rend les contrôles visibles, mais les estompe après
15+
// 2.5 secondes d'inactivité
1616
clearTimeout(showControlsTimeout);
1717
showControlsTimeout = setTimeout(() => (showControls = false), 2500);
1818
showControls = true;
1919
20-
if (!duration) return; // video not loaded yet
21-
if (e.type !== 'touchmove' && !(e.buttons & 1)) return; // mouse not down
20+
if (!duration) return; // la vidéo n'est pas encore chargée
21+
if (e.type !== 'touchmove' && !(e.buttons & 1)) return; // la souris n'est pas encore enfoncée
2222
2323
const clientX = e.type === 'touchmove' ? e.touches[0].clientX : e.clientX;
2424
const { left, right } = this.getBoundingClientRect();
2525
time = (duration * (clientX - left)) / (right - left);
2626
}
2727
28-
// we can't rely on the built-in click event, because it fires
29-
// after a drag — we have to listen for clicks ourselves
28+
// nous ne pouvons pas nous fier à l'évènement clic natif,
29+
// parce qu'il est déclenché après avoir fait glisser (drag) la souris
30+
// — nous devons écouter les clics nous-mêmes
3031
function handleMousedown(e) {
3132
lastMouseDown = new Date();
3233
}
@@ -50,7 +51,7 @@
5051
</script>
5152

5253
<h1>Caminandes: Llamigos</h1>
53-
<p>From <a href="https://studio.blender.org/films">Blender Studio</a>. CC-BY</p>
54+
<p>Par <a href="https://studio.blender.org/films">Blender Studio</a>. CC-BY</p>
5455

5556
<div>
5657
<video
@@ -72,7 +73,9 @@
7273

7374
<div class="info">
7475
<span class="time">{format(time)}</span>
75-
<span>click anywhere to {paused ? 'play' : 'pause'} / drag to seek</span>
76+
<span
77+
>cliquez n'importe où pour {paused ? 'lire' : 'mettre en pause'} / glissez pour chercher</span
78+
>
7679
<span class="time">{format(duration)}</span>
7780
</div>
7881
</div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"title": "Media elements"
2+
"title": "Éléments media"
33
}

0 commit comments

Comments
 (0)