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]>
67 lines
5.3 KiB
JavaScript
67 lines
5.3 KiB
JavaScript
// The Studio's words: one file for each part of the interface in each locale,
|
|
// gathered here. English is the source. test/locales.test.mjs holds this list
|
|
// to the files on disk, and every locale to every key.
|
|
import enAssistant from './en/assistant.json' with { type: 'json' };
|
|
import enCircuitSvg from './en/circuit_svg.json' with { type: 'json' };
|
|
import enCompileView from './en/compile_view.json' with { type: 'json' };
|
|
import enConverge from './en/converge.json' with { type: 'json' };
|
|
import enCourse from './en/course.json' with { type: 'json' };
|
|
import enCritiqueView from './en/critique_view.json' with { type: 'json' };
|
|
import enDebugger from './en/debugger.json' with { type: 'json' };
|
|
import enDevice from './en/device.json' with { type: 'json' };
|
|
import enDom from './en/dom.json' with { type: 'json' };
|
|
import enEstimateView from './en/estimate_view.json' with { type: 'json' };
|
|
import enExamples from './en/examples.json' with { type: 'json' };
|
|
import enFlags from './en/flags.json' with { type: 'json' };
|
|
import enFrame from './en/frame.json' with { type: 'json' };
|
|
import enGallery from './en/gallery.json' with { type: 'json' };
|
|
import enGenerators from './en/generators.json' with { type: 'json' };
|
|
import enHardware from './en/hardware.json' with { type: 'json' };
|
|
import enNovelty from './en/novelty.json' with { type: 'json' };
|
|
import enPredict from './en/predict.json' with { type: 'json' };
|
|
import enRewriteView from './en/rewrite_view.json' with { type: 'json' };
|
|
import enRules from './en/rules.json' with { type: 'json' };
|
|
import enShortcutsView from './en/shortcuts_view.json' with { type: 'json' };
|
|
import enStateViews from './en/state_views.json' with { type: 'json' };
|
|
import enStudy from './en/study.json' with { type: 'json' };
|
|
import enTaste from './en/taste.json' with { type: 'json' };
|
|
import enVerdictView from './en/verdict_view.json' with { type: 'json' };
|
|
import enVersions from './en/versions.json' with { type: 'json' };
|
|
import enVisualEdit from './en/visual_edit.json' with { type: 'json' };
|
|
import enWorkbench from './en/workbench.json' with { type: 'json' };
|
|
import zhAssistant from './zh-CN/assistant.json' with { type: 'json' };
|
|
import zhCircuitSvg from './zh-CN/circuit_svg.json' with { type: 'json' };
|
|
import zhCompileView from './zh-CN/compile_view.json' with { type: 'json' };
|
|
import zhConverge from './zh-CN/converge.json' with { type: 'json' };
|
|
import zhCourse from './zh-CN/course.json' with { type: 'json' };
|
|
import zhCritiqueView from './zh-CN/critique_view.json' with { type: 'json' };
|
|
import zhDebugger from './zh-CN/debugger.json' with { type: 'json' };
|
|
import zhDevice from './zh-CN/device.json' with { type: 'json' };
|
|
import zhDom from './zh-CN/dom.json' with { type: 'json' };
|
|
import zhEstimateView from './zh-CN/estimate_view.json' with { type: 'json' };
|
|
import zhExamples from './zh-CN/examples.json' with { type: 'json' };
|
|
import zhFlags from './zh-CN/flags.json' with { type: 'json' };
|
|
import zhFrame from './zh-CN/frame.json' with { type: 'json' };
|
|
import zhGallery from './zh-CN/gallery.json' with { type: 'json' };
|
|
import zhGenerators from './zh-CN/generators.json' with { type: 'json' };
|
|
import zhHardware from './zh-CN/hardware.json' with { type: 'json' };
|
|
import zhNovelty from './zh-CN/novelty.json' with { type: 'json' };
|
|
import zhPredict from './zh-CN/predict.json' with { type: 'json' };
|
|
import zhRewriteView from './zh-CN/rewrite_view.json' with { type: 'json' };
|
|
import zhRules from './zh-CN/rules.json' with { type: 'json' };
|
|
import zhShortcutsView from './zh-CN/shortcuts_view.json' with { type: 'json' };
|
|
import zhStateViews from './zh-CN/state_views.json' with { type: 'json' };
|
|
import zhStudy from './zh-CN/study.json' with { type: 'json' };
|
|
import zhTaste from './zh-CN/taste.json' with { type: 'json' };
|
|
import zhVerdictView from './zh-CN/verdict_view.json' with { type: 'json' };
|
|
import zhVersions from './zh-CN/versions.json' with { type: 'json' };
|
|
import zhVisualEdit from './zh-CN/visual_edit.json' with { type: 'json' };
|
|
import zhWorkbench from './zh-CN/workbench.json' with { type: 'json' };
|
|
|
|
// The parts of the interface, in the order their words are gathered.
|
|
export const AREAS = ['assistant', 'circuit_svg', 'compile_view', 'converge', 'course', 'critique_view', 'debugger', 'device', 'dom', 'estimate_view', 'examples', 'flags', 'frame', 'gallery', 'generators', 'hardware', 'novelty', 'predict', 'rewrite_view', 'rules', 'shortcuts_view', 'state_views', 'study', 'taste', 'verdict_view', 'versions', 'visual_edit', 'workbench'];
|
|
|
|
export default {
|
|
en: { ...enAssistant, ...enCircuitSvg, ...enCompileView, ...enConverge, ...enCourse, ...enCritiqueView, ...enDebugger, ...enDevice, ...enDom, ...enEstimateView, ...enExamples, ...enFlags, ...enFrame, ...enGallery, ...enGenerators, ...enHardware, ...enNovelty, ...enPredict, ...enRewriteView, ...enRules, ...enShortcutsView, ...enStateViews, ...enStudy, ...enTaste, ...enVerdictView, ...enVersions, ...enVisualEdit, ...enWorkbench },
|
|
'zh-CN': { ...zhAssistant, ...zhCircuitSvg, ...zhCompileView, ...zhConverge, ...zhCourse, ...zhCritiqueView, ...zhDebugger, ...zhDevice, ...zhDom, ...zhEstimateView, ...zhExamples, ...zhFlags, ...zhFrame, ...zhGallery, ...zhGenerators, ...zhHardware, ...zhNovelty, ...zhPredict, ...zhRewriteView, ...zhRules, ...zhShortcutsView, ...zhStateViews, ...zhStudy, ...zhTaste, ...zhVerdictView, ...zhVersions, ...zhVisualEdit, ...zhWorkbench },
|
|
};
|