Files
website/src/lib/language-learner/ui/Speak.svelte
Stan Runge 438623d857
Some checks failed
Test and deploy staging / staging (push) Has been cancelled
add language learner project
Dutch and Korean (explained in English) and English (explained in Dutch)
from A1 to C1, with a Hangul level for Korean. Lessons with notes, words
and sentences generate multiple-choice, typing, sentence building, cloze,
listening and matching exercises. Endless challenges: a seeded daily
challenge, sprint, survival, mixed practice, level tests, spaced-repetition
reviews and generated drills (numbers, clock times, de/het, plurals, Dutch
and Korean conjugation, particles, Hangul reading, irregular verbs).
Progress is stored in localStorage with export/import.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:34:56 +00:00

23 lines
455 B
Svelte

<script lang="ts">
import Volume2 from 'lucide-svelte/icons/volume-2';
import { speak } from '../speech';
let {
text,
voice,
size = 18,
label = 'Listen'
}: { text: string; voice: string; size?: number; label?: string } = $props();
</script>
<button
type="button"
class="ll-speak"
aria-label={label}
title={label}
onclick={(event) => {
event.stopPropagation();
speak(text, voice);
}}><Volume2 {size} aria-hidden="true" /></button
>