The Course pane lists the 21 lessons, shows a lesson's text and exercise, loads its starter, and checks the program in the editor with the engine (engine_course_check in the page, the same commands in the desktop app): each case's verdict, each rule, What went wrong? from the diagnostics, the verdict and the critique, the hints one at a time with the engine's pointer, and a hint from the assistant when a model is connected, any program in its answer held back. Progress is kept only in this browser and says so. The interface's words are data, locales/<locale>/<area>.json for every part, English the source and Simplified Chinese marked machine-assisted; the Studio follows the browser's language until the reader picks one with the switch. test/locales.test.mjs holds every locale to every key and placeholder. The e2e checks the course in English and in Chinese. wai-web's engine tests pin 23 native and 16 wasm32, a course check the same bytes in both. Co-Authored-By: Claude Opus 5.5 <[email protected]>
47 lines
2.3 KiB
JSON
47 lines
2.3 KiB
JSON
{
|
||
"_meta": {
|
||
"locale": "en",
|
||
"area": "course",
|
||
"translation": "source"
|
||
},
|
||
"course.title": "Course",
|
||
"course.open": "Course",
|
||
"course.open_title": "The circuits course: lessons with exercises the engine checks",
|
||
"course.lessons": "The lessons",
|
||
"course.where": "Lesson {number} of {of} · {unit}",
|
||
"course.exercise": "Exercise",
|
||
"course.starter": "Load the starter",
|
||
"course.starter_title": "Put the exercise’s starter program in the editor (your draft stays in Versions)",
|
||
"course.starter_loaded": "The starter program of “{title}” is in the editor.",
|
||
"course.check": "Check",
|
||
"course.check_title": "Check the program in the editor against the exercise, with the engine",
|
||
"course.hint": "Hint",
|
||
"course.no_more_hints": "No more hints",
|
||
"course.hint_of": "Hint {level} of {of}",
|
||
"course.why": "What went wrong?",
|
||
"course.ask": "Ask the assistant for a hint",
|
||
"course.ask_title": "The model on this machine, told not to write the program; any program in its answer is held back",
|
||
"course.ask_needs_model": "The assistant needs a model: connect one under Assistant, then ask again.",
|
||
"course.asking": "Asking the assistant…",
|
||
"course.assistant_says": "The assistant’s hint",
|
||
"course.held_solution": "The answer held a program that passes this exercise. It is not shown, so that the exercise stays yours.",
|
||
"course.held_code": "The answer held code, which is not shown here.",
|
||
"course.ask_failed": "The assistant could not answer: {error}",
|
||
"course.not_checked": "not checked",
|
||
"course.passed": "passed",
|
||
"course.not_yet": "not yet",
|
||
"course.passed_status": "Passed: “{title}”.",
|
||
"course.not_yet_status": "Not yet: What went wrong? says what the engine found.",
|
||
"course.engine_says": "The engine:",
|
||
"course.nothing_wrong": "Nothing went wrong: the check passes.",
|
||
"course.where_to_look": "Where to look:",
|
||
"course.previous": "← Previous",
|
||
"course.next": "Next →",
|
||
"course.progress": "{passed} of {of} lessons passed",
|
||
"course.kept": "kept only in this browser",
|
||
"course.reset": "Reset progress",
|
||
"course.reset_confirm": "Click again to reset",
|
||
"course.reset_done": "Your progress in this browser is cleared.",
|
||
"course.companion": "Beside it:",
|
||
"course.machine_assisted": "This lesson is a machine-assisted translation, to be reviewed by a fluent reader."
|
||
}
|