Major Changes: - Moved legacy system to Legacy/ folder for archival - Built new modular architecture with strict separation of concerns - Created core system: Module, EventBus, ModuleLoader, Router - Added Application bootstrap with auto-start functionality - Implemented development server with ES6 modules support - Created comprehensive documentation and project context - Converted SBS-7-8 content to JSON format - Copied all legacy games and content to new structure New Architecture Features: - Sealed modules with WeakMap private data - Strict dependency injection system - Event-driven communication only - Inviolable responsibility patterns - Auto-initialization without commands - Component-based UI foundation ready Technical Stack: - Vanilla JS/HTML/CSS only - ES6 modules with proper imports/exports - HTTP development server (no file:// protocol) - Modular CSS with component scoping - Comprehensive error handling and debugging Ready for Phase 2: Converting legacy modules to new architecture 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
479 lines
22 KiB
JavaScript
479 lines
22 KiB
JavaScript
// === ENGLISH LEARNING MODULE ===
|
||
// Complete English learning module with Chinese translation and pronunciation
|
||
|
||
window.ContentModules = window.ContentModules || {};
|
||
|
||
window.ContentModules.SBSLevel1 = {
|
||
id: "sbs-level-1",
|
||
name: "SBS-1",
|
||
description: "English introduction lessons with Chinese translation and pronunciation",
|
||
difficulty: "beginner",
|
||
language: "en-US",
|
||
userLanguage: "zh-CN",
|
||
totalWords: 150,
|
||
|
||
// === GRAMMAR LESSONS SYSTEM ===
|
||
grammar: {
|
||
"to-be-verb": {
|
||
title: "The Verb 'To Be' - 动词Be",
|
||
explanation: "The verb 'be' is one of the most important verbs in English, used to describe states, identity, and location.",
|
||
rules: [
|
||
"I am - 我是 (first person singular)",
|
||
"You are - 你是/你们是 (second person)",
|
||
"He/She/It is - 他/她/它是 (third person singular)",
|
||
"We are - 我们是 (first person plural)",
|
||
"They are - 他们是 (third person plural)"
|
||
],
|
||
examples: [
|
||
{
|
||
english: "My name is Maria.",
|
||
chinese: "我的名字是玛丽亚。",
|
||
explanation: "Use 'is' because 'name' is third person singular",
|
||
pronunciation: "/maɪ neɪm ɪz məˈriːə/"
|
||
},
|
||
{
|
||
english: "I am from Mexico City.",
|
||
chinese: "我来自墨西哥城。",
|
||
explanation: "Use 'am' because the subject is 'I'",
|
||
pronunciation: "/aɪ æm frʌm ˈmeksɪkoʊ ˈsɪti/"
|
||
},
|
||
{
|
||
english: "Where are you from?",
|
||
chinese: "你来自哪里?",
|
||
explanation: "Use 'are' because the subject is 'you'",
|
||
pronunciation: "/wer ɑr ju frʌm/"
|
||
}
|
||
],
|
||
exercises: [
|
||
{
|
||
type: "fill_blank",
|
||
sentence: "My address _____ 235 Main Street.",
|
||
options: ["am", "is", "are"],
|
||
correct: "is",
|
||
explanation: "Use 'is' because 'address' is third person singular"
|
||
},
|
||
{
|
||
type: "translation",
|
||
english: "What's your phone number?",
|
||
chinese: "你的电话号码是多少?",
|
||
focus: "Contraction What's = What is"
|
||
}
|
||
]
|
||
},
|
||
|
||
"contractions": {
|
||
title: "Contractions - 缩写形式",
|
||
explanation: "English often uses contractions to make conversation more natural and fluent.",
|
||
rules: [
|
||
"What's = What is - 什么是",
|
||
"I'm = I am - 我是",
|
||
"You're = You are - 你是",
|
||
"He's/She's/It's = He/She/It is - 他/她/它是"
|
||
],
|
||
examples: [
|
||
{
|
||
english: "What's your name?",
|
||
chinese: "你叫什么名字?",
|
||
explanation: "What's is the contraction of What is",
|
||
pronunciation: "/wʌts jʊr neɪm/"
|
||
},
|
||
{
|
||
english: "I'm Nancy Lee.",
|
||
chinese: "我是南希·李。",
|
||
explanation: "I'm is the contraction of I am",
|
||
pronunciation: "/aɪm ˈnænsi li/"
|
||
}
|
||
],
|
||
exercises: [
|
||
{
|
||
type: "contraction_match",
|
||
full_form: "What is your address?",
|
||
contracted: "What's your address?",
|
||
chinese: "你的地址是什么?"
|
||
}
|
||
]
|
||
},
|
||
|
||
"personal-information": {
|
||
title: "Personal Information - 个人信息",
|
||
explanation: "Learn how to ask for and provide basic personal information in English.",
|
||
rules: [
|
||
"Name - 姓名: What's your name? My name is...",
|
||
"Address - 地址: What's your address? My address is...",
|
||
"Phone - 电话: What's your phone number? My phone number is...",
|
||
"Origin - 来源: Where are you from? I'm from..."
|
||
],
|
||
examples: [
|
||
{
|
||
english: "My name is David Carter.",
|
||
chinese: "我的名字是大卫·卡特。",
|
||
explanation: "Standard expression for introducing name",
|
||
pronunciation: "/maɪ neɪm ɪz ˈdeɪvɪd ˈkɑrtər/"
|
||
},
|
||
{
|
||
english: "I'm from San Francisco.",
|
||
chinese: "我来自旧金山。",
|
||
explanation: "Expression for stating origin",
|
||
pronunciation: "/aɪm frʌm sæn frænˈsɪskoʊ/"
|
||
}
|
||
],
|
||
exercises: [
|
||
{
|
||
type: "dialogue_completion",
|
||
prompt: "A: What's your name? B: _____",
|
||
answer: "My name is [your name].",
|
||
chinese: "A: 你叫什么名字? B: 我的名字是[你的名字]。"
|
||
}
|
||
]
|
||
},
|
||
|
||
"meeting-people": {
|
||
title: "Meeting People - 与人见面",
|
||
explanation: "Common phrases and expressions used when meeting new people.",
|
||
rules: [
|
||
"Hello - 你好 (formal greeting)",
|
||
"Hi - 嗨 (informal greeting)",
|
||
"Nice to meet you - 很高兴认识你",
|
||
"Nice to meet you, too - 我也很高兴认识你"
|
||
],
|
||
examples: [
|
||
{
|
||
english: "Hello. My name is Peter Lewis.",
|
||
chinese: "你好。我的名字是彼得·刘易斯。",
|
||
explanation: "Formal introduction",
|
||
pronunciation: "/həˈloʊ maɪ neɪm ɪz ˈpitər ˈluɪs/"
|
||
},
|
||
{
|
||
english: "Hi. I'm Nancy Lee. Nice to meet you.",
|
||
chinese: "嗨。我是南希·李。很高兴认识你。",
|
||
explanation: "Informal introduction with greeting",
|
||
pronunciation: "/haɪ aɪm ˈnænsi li naɪs tu mit ju/"
|
||
}
|
||
],
|
||
exercises: [
|
||
{
|
||
type: "role_play",
|
||
scenario: "Meeting someone new",
|
||
dialogue: "A: Hello. B: Hi. A: What's your name? B: My name is ____."
|
||
}
|
||
]
|
||
}
|
||
},
|
||
|
||
vocabulary: {
|
||
"name": {
|
||
"user_language": "名字",
|
||
"type": "noun",
|
||
"pronunciation": "/neɪm/"
|
||
},
|
||
"address": {
|
||
"user_language": "地址",
|
||
"type": "noun",
|
||
"pronunciation": "/əˈdres/"
|
||
},
|
||
"phone number": {
|
||
"user_language": "电话号码",
|
||
"type": "noun",
|
||
"pronunciation": "/foʊn ˈnʌmbər/"
|
||
},
|
||
"telephone number": {
|
||
"user_language": "电话号码",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈteləfoʊn ˈnʌmbər/"
|
||
},
|
||
"apartment number": {
|
||
"user_language": "公寓号码",
|
||
"type": "noun",
|
||
"pronunciation": "/əˈpɑrtmənt ˈnʌmbər/"
|
||
},
|
||
"e-mail address": {
|
||
"user_language": "电子邮件地址",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈiːmeɪl əˈdres/"
|
||
},
|
||
"first name": {
|
||
"user_language": "名",
|
||
"type": "noun",
|
||
"pronunciation": "/fɜrst neɪm/"
|
||
},
|
||
"last name": {
|
||
"user_language": "姓",
|
||
"type": "noun",
|
||
"pronunciation": "/læst neɪm/"
|
||
},
|
||
"hello": {
|
||
"user_language": "你好",
|
||
"type": "interjection",
|
||
"pronunciation": "/həˈloʊ/"
|
||
},
|
||
"hi": {
|
||
"user_language": "嗨",
|
||
"type": "interjection",
|
||
"pronunciation": "/haɪ/"
|
||
},
|
||
"nice to meet you": {
|
||
"user_language": "很高兴认识你",
|
||
"type": "phrase",
|
||
"pronunciation": "/naɪs tu mit ju/"
|
||
},
|
||
"where": {
|
||
"user_language": "哪里",
|
||
"type": "adverb",
|
||
"pronunciation": "/wer/"
|
||
},
|
||
"from": {
|
||
"user_language": "来自",
|
||
"type": "preposition",
|
||
"pronunciation": "/frʌm/"
|
||
},
|
||
"alphabet": {
|
||
"user_language": "字母表",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈælfəbet/"
|
||
},
|
||
"numbers": {
|
||
"user_language": "数字",
|
||
"type": "noun",
|
||
"pronunciation": "/ˈnʌmbərz/"
|
||
}
|
||
},
|
||
|
||
story: {
|
||
title: "To Be: Introduction - 动词Be的介绍",
|
||
totalSentences: 50,
|
||
chapters: [
|
||
{
|
||
title: "Chapter 1: Vocabulary Preview - 第一章:词汇预览",
|
||
sentences: [
|
||
{
|
||
id: 1,
|
||
original: "Learn the alphabet Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz",
|
||
translation: "学习字母表 Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz",
|
||
words: [
|
||
{word: "Learn", translation: "学习", type: "verb", pronunciation: "/lɜrn/"},
|
||
{word: "alphabet", translation: "字母表", type: "noun", pronunciation: "/ˈælfəbet/"}
|
||
]
|
||
},
|
||
{
|
||
id: 2,
|
||
original: "Practice numbers 0 1 2 3 4 5 6 7 8 9 10",
|
||
translation: "练习数字 0 1 2 3 4 5 6 7 8 9 10",
|
||
words: [
|
||
{word: "Practice", translation: "练习", type: "verb", pronunciation: "/ˈpræktɪs/"},
|
||
{word: "numbers", translation: "数字", type: "noun", pronunciation: "/ˈnʌmbərz/"}
|
||
]
|
||
},
|
||
{
|
||
id: 3,
|
||
original: "This is Maria's name tag.",
|
||
translation: "这是玛丽亚的姓名牌。",
|
||
words: [
|
||
{word: "This", translation: "这", type: "pronoun", pronunciation: "/ðɪs/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "Maria's", translation: "玛丽亚的", type: "possessive", pronunciation: "/məˈriːəz/"},
|
||
{word: "name", translation: "姓名", type: "noun", pronunciation: "/neɪm/"},
|
||
{word: "tag", translation: "牌", type: "noun", pronunciation: "/tæg/"}
|
||
]
|
||
},
|
||
{
|
||
id: 4,
|
||
original: "235 Main Street is an address.",
|
||
translation: "主街235号是一个地址。",
|
||
words: [
|
||
{word: "235", translation: "235", type: "number", pronunciation: "/tu ˈθɜrti faɪv/"},
|
||
{word: "Main", translation: "主要的", type: "adjective", pronunciation: "/meɪn/"},
|
||
{word: "Street", translation: "街", type: "noun", pronunciation: "/strit/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "an", translation: "一个", type: "article", pronunciation: "/æn/"},
|
||
{word: "address", translation: "地址", type: "noun", pronunciation: "/əˈdres/"}
|
||
]
|
||
},
|
||
{
|
||
id: 5,
|
||
original: "741-8906 is a telephone number.",
|
||
translation: "741-8906是一个电话号码。",
|
||
words: [
|
||
{word: "741-8906", translation: "741-8906", type: "number", pronunciation: "/ˈsevən fɔr wʌn eɪt naɪn oʊ sɪks/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "a", translation: "一个", type: "article", pronunciation: "/ə/"},
|
||
{word: "telephone", translation: "电话", type: "noun", pronunciation: "/ˈteləfoʊn/"},
|
||
{word: "number", translation: "号码", type: "noun", pronunciation: "/ˈnʌmbər/"}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
title: "Chapter 2: What's Your Name? - 第二章:你叫什么名字?",
|
||
sentences: [
|
||
{
|
||
id: 6,
|
||
original: "What's your name?",
|
||
translation: "你叫什么名字?",
|
||
words: [
|
||
{word: "What's", translation: "什么是", type: "contraction", pronunciation: "/wʌts/"},
|
||
{word: "your", translation: "你的", type: "possessive", pronunciation: "/jʊr/"},
|
||
{word: "name", translation: "名字", type: "noun", pronunciation: "/neɪm/"}
|
||
]
|
||
},
|
||
{
|
||
id: 7,
|
||
original: "My name is Maria.",
|
||
translation: "我的名字是玛丽亚。",
|
||
words: [
|
||
{word: "My", translation: "我的", type: "possessive", pronunciation: "/maɪ/"},
|
||
{word: "name", translation: "名字", type: "noun", pronunciation: "/neɪm/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "Maria", translation: "玛丽亚", type: "name", pronunciation: "/məˈriːə/"}
|
||
]
|
||
},
|
||
{
|
||
id: 8,
|
||
original: "What's your address?",
|
||
translation: "你的地址是什么?",
|
||
words: [
|
||
{word: "What's", translation: "什么是", type: "contraction", pronunciation: "/wʌts/"},
|
||
{word: "your", translation: "你的", type: "possessive", pronunciation: "/jʊr/"},
|
||
{word: "address", translation: "地址", type: "noun", pronunciation: "/əˈdres/"}
|
||
]
|
||
},
|
||
{
|
||
id: 9,
|
||
original: "My address is 235 Main Street.",
|
||
translation: "我的地址是主街235号。",
|
||
words: [
|
||
{word: "My", translation: "我的", type: "possessive", pronunciation: "/maɪ/"},
|
||
{word: "address", translation: "地址", type: "noun", pronunciation: "/əˈdres/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "235", translation: "235", type: "number", pronunciation: "/tu ˈθɜrti faɪv/"},
|
||
{word: "Main", translation: "主要的", type: "adjective", pronunciation: "/meɪn/"},
|
||
{word: "Street", translation: "街", type: "noun", pronunciation: "/strit/"}
|
||
]
|
||
},
|
||
{
|
||
id: 10,
|
||
original: "I'm from Mexico City.",
|
||
translation: "我来自墨西哥城。",
|
||
words: [
|
||
{word: "I'm", translation: "我是", type: "contraction", pronunciation: "/aɪm/"},
|
||
{word: "from", translation: "来自", type: "preposition", pronunciation: "/frʌm/"},
|
||
{word: "Mexico", translation: "墨西哥", type: "place", pronunciation: "/ˈmeksɪkoʊ/"},
|
||
{word: "City", translation: "城", type: "noun", pronunciation: "/ˈsɪti/"}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
title: "Chapter 3: Meeting People - 第三章:与人见面",
|
||
sentences: [
|
||
{
|
||
id: 11,
|
||
original: "Hello. My name is Peter Lewis.",
|
||
translation: "你好。我的名字是彼得·刘易斯。",
|
||
words: [
|
||
{word: "Hello", translation: "你好", type: "interjection", pronunciation: "/həˈloʊ/"},
|
||
{word: "My", translation: "我的", type: "possessive", pronunciation: "/maɪ/"},
|
||
{word: "name", translation: "名字", type: "noun", pronunciation: "/neɪm/"},
|
||
{word: "is", translation: "是", type: "verb", pronunciation: "/ɪz/"},
|
||
{word: "Peter", translation: "彼得", type: "name", pronunciation: "/ˈpitər/"},
|
||
{word: "Lewis", translation: "刘易斯", type: "name", pronunciation: "/ˈluɪs/"}
|
||
]
|
||
},
|
||
{
|
||
id: 12,
|
||
original: "Hi. I'm Nancy Lee. Nice to meet you.",
|
||
translation: "嗨。我是南希·李。很高兴认识你。",
|
||
words: [
|
||
{word: "Hi", translation: "嗨", type: "interjection", pronunciation: "/haɪ/"},
|
||
{word: "I'm", translation: "我是", type: "contraction", pronunciation: "/aɪm/"},
|
||
{word: "Nancy", translation: "南希", type: "name", pronunciation: "/ˈnænsi/"},
|
||
{word: "Lee", translation: "李", type: "name", pronunciation: "/li/"},
|
||
{word: "Nice", translation: "很好的", type: "adjective", pronunciation: "/naɪs/"},
|
||
{word: "to", translation: "到", type: "preposition", pronunciation: "/tu/"},
|
||
{word: "meet", translation: "遇见", type: "verb", pronunciation: "/mit/"},
|
||
{word: "you", translation: "你", type: "pronoun", pronunciation: "/ju/"}
|
||
]
|
||
},
|
||
{
|
||
id: 13,
|
||
original: "Nice to meet you, too.",
|
||
translation: "我也很高兴认识你。",
|
||
words: [
|
||
{word: "Nice", translation: "很好的", type: "adjective", pronunciation: "/naɪs/"},
|
||
{word: "to", translation: "到", type: "preposition", pronunciation: "/tu/"},
|
||
{word: "meet", translation: "遇见", type: "verb", pronunciation: "/mit/"},
|
||
{word: "you", translation: "你", type: "pronoun", pronunciation: "/ju/"},
|
||
{word: "too", translation: "也", type: "adverb", pronunciation: "/tu/"}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
|
||
// === GRAMMAR-BASED FILL IN THE BLANKS ===
|
||
fillInBlanks: [
|
||
{
|
||
sentence: "My name _____ David.",
|
||
options: ["am", "is", "are"],
|
||
correctAnswer: "is",
|
||
explanation: "Use 'is' because 'name' is third person singular",
|
||
grammarFocus: "to-be-verb"
|
||
},
|
||
{
|
||
sentence: "I _____ from China.",
|
||
options: ["am", "is", "are"],
|
||
correctAnswer: "am",
|
||
explanation: "Use 'am' because the subject is 'I'",
|
||
grammarFocus: "to-be-verb"
|
||
},
|
||
{
|
||
sentence: "_____ your phone number?",
|
||
options: ["What", "What's", "Where"],
|
||
correctAnswer: "What's",
|
||
explanation: "What's = What is, used to ask for phone number",
|
||
grammarFocus: "contractions"
|
||
},
|
||
{
|
||
sentence: "Where _____ you from?",
|
||
options: ["am", "is", "are"],
|
||
correctAnswer: "are",
|
||
explanation: "Use 'are' because the subject is 'you'",
|
||
grammarFocus: "to-be-verb"
|
||
},
|
||
{
|
||
sentence: "_____ to meet you.",
|
||
options: ["Nice", "Good", "Fine"],
|
||
correctAnswer: "Nice",
|
||
explanation: "Standard expression for meeting people",
|
||
grammarFocus: "meeting-people"
|
||
}
|
||
],
|
||
|
||
// === GRAMMAR CORRECTION EXERCISES ===
|
||
corrections: [
|
||
{
|
||
incorrect: "My name are John.",
|
||
correct: "My name is John.",
|
||
explanation: "'Name' is third person singular, so use 'is'",
|
||
grammarFocus: "to-be-verb"
|
||
},
|
||
{
|
||
incorrect: "Where you are from?",
|
||
correct: "Where are you from?",
|
||
explanation: "In questions, the be verb comes before the subject",
|
||
grammarFocus: "to-be-verb"
|
||
},
|
||
{
|
||
incorrect: "What is you name?",
|
||
correct: "What is your name?",
|
||
explanation: "Use possessive 'your' not subject pronoun 'you'",
|
||
grammarFocus: "personal-information"
|
||
},
|
||
{
|
||
incorrect: "I are from Mexico.",
|
||
correct: "I am from Mexico.",
|
||
explanation: "Use 'am' with subject 'I'",
|
||
grammarFocus: "to-be-verb"
|
||
}
|
||
]
|
||
}; |