@syllst/ja 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +80 -0
- package/dist/index.js +23 -0
- package/dist/shared.js +26 -0
- package/dist/syllabi/hiragana/index.d.ts +7 -0
- package/dist/syllabi/hiragana/index.js +47 -0
- package/dist/syllabi/hiragana/lessons/lesson-01.mdx.js +171 -0
- package/dist/syllabi/hiragana/lessons/lesson-02.mdx.js +160 -0
- package/dist/syllabi/hiragana/lessons/lesson-03.mdx.js +151 -0
- package/dist/syllabi/hiragana/lessons/lesson-04.mdx.js +158 -0
- package/dist/syllabi/hiragana/lessons/lesson-05.mdx.js +169 -0
- package/dist/syllabi/hiragana/lessons/lesson-06.mdx.js +174 -0
- package/dist/syllabi/hiragana/lessons/lesson-07.mdx.js +173 -0
- package/dist/syllabi/hiragana/lessons/lesson-08.mdx.js +159 -0
- package/dist/syllabi/hiragana/lessons/lesson-09.mdx.js +176 -0
- package/dist/syllabi/hiragana/lessons/lesson-10.mdx.js +199 -0
- package/dist/syllabi/katakana/index.js +37 -0
- package/dist/syllabi/katakana/lessons/lesson-01.mdx.js +196 -0
- package/dist/syllabi/katakana/lessons/lesson-02.mdx.js +210 -0
- package/dist/syllabi/katakana/lessons/lesson-03.mdx.js +214 -0
- package/dist/syllabi/katakana/lessons/lesson-04.mdx.js +216 -0
- package/dist/syllabi/katakana/lessons/lesson-05.mdx.js +259 -0
- package/package.json +64 -0
- package/src/syllabi/hiragana/lessons/lesson-01.mdx +167 -0
- package/src/syllabi/hiragana/lessons/lesson-02.mdx +156 -0
- package/src/syllabi/hiragana/lessons/lesson-03.mdx +147 -0
- package/src/syllabi/hiragana/lessons/lesson-04.mdx +154 -0
- package/src/syllabi/hiragana/lessons/lesson-05.mdx +165 -0
- package/src/syllabi/hiragana/lessons/lesson-06.mdx +170 -0
- package/src/syllabi/hiragana/lessons/lesson-07.mdx +169 -0
- package/src/syllabi/hiragana/lessons/lesson-08.mdx +155 -0
- package/src/syllabi/hiragana/lessons/lesson-09.mdx +172 -0
- package/src/syllabi/hiragana/lessons/lesson-10.mdx +195 -0
- package/src/syllabi/katakana/lessons/lesson-01.mdx +192 -0
- package/src/syllabi/katakana/lessons/lesson-02.mdx +206 -0
- package/src/syllabi/katakana/lessons/lesson-03.mdx +210 -0
- package/src/syllabi/katakana/lessons/lesson-04.mdx +212 -0
- package/src/syllabi/katakana/lessons/lesson-05.mdx +255 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types and utilities for SYLLST content
|
|
3
|
+
* (Inlined from @syllst/content-shared to make package self-contained)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* CEFR language proficiency levels
|
|
7
|
+
*/
|
|
8
|
+
declare type CEFRLevel = 'A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2';
|
|
9
|
+
|
|
10
|
+
export declare const config: SyllabusConfig;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Content loader interface
|
|
14
|
+
*/
|
|
15
|
+
declare interface ContentLoader {
|
|
16
|
+
/** Syllabus configuration */
|
|
17
|
+
config: SyllabusConfig;
|
|
18
|
+
/** Load a single lesson by number */
|
|
19
|
+
loadLesson(lessonNumber: number): Promise<LoadedLesson>;
|
|
20
|
+
/** Load all lessons */
|
|
21
|
+
loadAllLessons(): Promise<LoadedLesson[]>;
|
|
22
|
+
/** Get list of available lesson numbers */
|
|
23
|
+
getAvailableLessons(): number[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Difficulty levels
|
|
28
|
+
*/
|
|
29
|
+
declare type Difficulty = 'beginner' | 'intermediate' | 'advanced';
|
|
30
|
+
|
|
31
|
+
export declare const getAvailableLessons: () => number[];
|
|
32
|
+
|
|
33
|
+
export declare const loadAllLessons: () => Promise<LoadedLesson[]>;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Result of loading a lesson
|
|
37
|
+
*/
|
|
38
|
+
declare interface LoadedLesson {
|
|
39
|
+
/** Lesson number (1-indexed) */
|
|
40
|
+
number: number;
|
|
41
|
+
/** Raw MDX content */
|
|
42
|
+
rawContent: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export declare const loader: ContentLoader;
|
|
46
|
+
|
|
47
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<LoadedLesson>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Configuration for a syllabus content package
|
|
51
|
+
*/
|
|
52
|
+
declare interface SyllabusConfig {
|
|
53
|
+
/** Unique syllabus ID (e.g., "ja-hiragana") */
|
|
54
|
+
id: string;
|
|
55
|
+
/** Display title */
|
|
56
|
+
title: string;
|
|
57
|
+
/** Description */
|
|
58
|
+
description: string;
|
|
59
|
+
/** Language code (ISO 639-1) */
|
|
60
|
+
language: string;
|
|
61
|
+
/** Locale code (e.g., "ja-JP") */
|
|
62
|
+
locale: string;
|
|
63
|
+
/** Number of lessons */
|
|
64
|
+
lessonCount: number;
|
|
65
|
+
/** Difficulty level */
|
|
66
|
+
difficulty: Difficulty;
|
|
67
|
+
/** CEFR level */
|
|
68
|
+
cefrLevel: CEFRLevel;
|
|
69
|
+
/** Icon for display */
|
|
70
|
+
icon?: SyllabusIcon;
|
|
71
|
+
/** Package version */
|
|
72
|
+
version: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Icon types for syllabi
|
|
77
|
+
*/
|
|
78
|
+
declare type SyllabusIcon = 'alphabet' | 'dialogue' | 'vocabulary' | 'grammar' | 'reading' | 'numbers' | 'food' | 'travel';
|
|
79
|
+
|
|
80
|
+
export { }
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { config as r } from "./syllabi/hiragana/index.js";
|
|
2
|
+
import * as f from "./syllabi/hiragana/index.js";
|
|
3
|
+
import { loader as p } from "./syllabi/hiragana/index.js";
|
|
4
|
+
import { config as i } from "./syllabi/katakana/index.js";
|
|
5
|
+
import * as g from "./syllabi/katakana/index.js";
|
|
6
|
+
import { loader as k } from "./syllabi/katakana/index.js";
|
|
7
|
+
const n = [
|
|
8
|
+
r,
|
|
9
|
+
i
|
|
10
|
+
];
|
|
11
|
+
function s(a) {
|
|
12
|
+
return n.find((o) => o.id === a);
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
n as allConfigs,
|
|
16
|
+
s as getConfigById,
|
|
17
|
+
f as hiragana,
|
|
18
|
+
r as hiraganaConfig,
|
|
19
|
+
p as hiraganaLoader,
|
|
20
|
+
g as katakana,
|
|
21
|
+
i as katakanaConfig,
|
|
22
|
+
k as katakanaLoader
|
|
23
|
+
};
|
package/dist/shared.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function s(o, e) {
|
|
2
|
+
return {
|
|
3
|
+
config: o,
|
|
4
|
+
async loadLesson(n) {
|
|
5
|
+
if (n < 1 || n > o.lessonCount)
|
|
6
|
+
throw new Error(`Lesson ${n} not found. Valid range: 1-${o.lessonCount}`);
|
|
7
|
+
const t = await e(n);
|
|
8
|
+
return {
|
|
9
|
+
number: n,
|
|
10
|
+
rawContent: t.default
|
|
11
|
+
};
|
|
12
|
+
},
|
|
13
|
+
async loadAllLessons() {
|
|
14
|
+
const n = [];
|
|
15
|
+
for (let t = 1; t <= o.lessonCount; t++)
|
|
16
|
+
n.push(await this.loadLesson(t));
|
|
17
|
+
return n;
|
|
18
|
+
},
|
|
19
|
+
getAvailableLessons() {
|
|
20
|
+
return Array.from({ length: o.lessonCount }, (n, t) => t + 1);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
s as createContentLoader
|
|
26
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyllabusConfig, ContentLoader } from '../../shared.js';
|
|
2
|
+
export declare const config: SyllabusConfig;
|
|
3
|
+
export declare const loader: ContentLoader;
|
|
4
|
+
export declare const loadLesson: (lessonNumber: number) => Promise<import('../../shared.js').LoadedLesson>;
|
|
5
|
+
export declare const loadAllLessons: () => Promise<import('../../shared.js').LoadedLesson[]>;
|
|
6
|
+
export declare const getAvailableLessons: () => number[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createContentLoader as a } from "../../shared.js";
|
|
2
|
+
const n = {
|
|
3
|
+
id: "ja-hiragana",
|
|
4
|
+
title: "ひらがな (Hiragana)",
|
|
5
|
+
description: "Learn the Japanese Hiragana script — all 46 basic characters across 10 lessons",
|
|
6
|
+
language: "ja",
|
|
7
|
+
locale: "ja-JP",
|
|
8
|
+
lessonCount: 10,
|
|
9
|
+
difficulty: "beginner",
|
|
10
|
+
cefrLevel: "A1",
|
|
11
|
+
icon: "alphabet",
|
|
12
|
+
version: "0.1.0"
|
|
13
|
+
};
|
|
14
|
+
async function s(r) {
|
|
15
|
+
switch (r) {
|
|
16
|
+
case 1:
|
|
17
|
+
return import("./lessons/lesson-01.mdx.js");
|
|
18
|
+
case 2:
|
|
19
|
+
return import("./lessons/lesson-02.mdx.js");
|
|
20
|
+
case 3:
|
|
21
|
+
return import("./lessons/lesson-03.mdx.js");
|
|
22
|
+
case 4:
|
|
23
|
+
return import("./lessons/lesson-04.mdx.js");
|
|
24
|
+
case 5:
|
|
25
|
+
return import("./lessons/lesson-05.mdx.js");
|
|
26
|
+
case 6:
|
|
27
|
+
return import("./lessons/lesson-06.mdx.js");
|
|
28
|
+
case 7:
|
|
29
|
+
return import("./lessons/lesson-07.mdx.js");
|
|
30
|
+
case 8:
|
|
31
|
+
return import("./lessons/lesson-08.mdx.js");
|
|
32
|
+
case 9:
|
|
33
|
+
return import("./lessons/lesson-09.mdx.js");
|
|
34
|
+
case 10:
|
|
35
|
+
return import("./lessons/lesson-10.mdx.js");
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`Lesson ${r} not found`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const e = a(n, s), t = e.loadLesson.bind(e), i = e.loadAllLessons.bind(e), c = e.getAvailableLessons.bind(e);
|
|
41
|
+
export {
|
|
42
|
+
n as config,
|
|
43
|
+
c as getAvailableLessons,
|
|
44
|
+
i as loadAllLessons,
|
|
45
|
+
t as loadLesson,
|
|
46
|
+
e as loader
|
|
47
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
const a = `---
|
|
2
|
+
type: lesson
|
|
3
|
+
id: japanese-hiragana-lesson-01
|
|
4
|
+
title: "Lesson 1 — Vowels (あいうえお)"
|
|
5
|
+
description: "Learn the 5 Japanese vowels in Hiragana script"
|
|
6
|
+
order: 1
|
|
7
|
+
parentId: japanese-hiragana
|
|
8
|
+
difficulty: beginner
|
|
9
|
+
cefrLevel: A1
|
|
10
|
+
categories:
|
|
11
|
+
- vowels
|
|
12
|
+
- basic-characters
|
|
13
|
+
metadata:
|
|
14
|
+
estimatedTime: 20
|
|
15
|
+
prerequisites: []
|
|
16
|
+
learningObjectives:
|
|
17
|
+
- id: obj-recognize-vowels
|
|
18
|
+
description: "Recognize the five hiragana vowels"
|
|
19
|
+
skill: character-recognition
|
|
20
|
+
references: [hiragana-a, hiragana-i, hiragana-u, hiragana-e, hiragana-o]
|
|
21
|
+
- id: obj-sounds-vowels
|
|
22
|
+
description: "Map each vowel to its sound"
|
|
23
|
+
skill: character-sound-mapping
|
|
24
|
+
references: [hiragana-a, hiragana-i, hiragana-u, hiragana-e, hiragana-o]
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Lesson 1 — Vowels (あいうえお)
|
|
28
|
+
|
|
29
|
+
## Introduction
|
|
30
|
+
|
|
31
|
+
Welcome to Hiragana, one of the three Japanese writing systems. Hiragana is a phonetic script where each character represents one sound (mora). It is used for native Japanese words, grammatical elements, and is the first script Japanese children learn.
|
|
32
|
+
|
|
33
|
+
In this first lesson, you will learn the 5 vowels of Japanese. These vowels form the foundation of the entire Hiragana system.
|
|
34
|
+
|
|
35
|
+
## The Japanese Vowel System
|
|
36
|
+
|
|
37
|
+
Japanese has exactly **5 vowel sounds**, similar to Spanish or Italian. These vowels are always pronounced the same way, regardless of context. There are no diphthongs or vowel reductions in standard Japanese.
|
|
38
|
+
|
|
39
|
+
The five vowels are:
|
|
40
|
+
|
|
41
|
+
- **a** (あ) — like "a" in "father"
|
|
42
|
+
- **i** (い) — like "ee" in "see"
|
|
43
|
+
- **u** (う) — like "oo" in "zoo" (but with less lip rounding)
|
|
44
|
+
- **e** (え) — like "e" in "bed"
|
|
45
|
+
- **o** (お) — like "o" in "go"
|
|
46
|
+
|
|
47
|
+
## Characters
|
|
48
|
+
|
|
49
|
+
:::character-set{id="hiragana-vowels" title="Hiragana Vowels (あ行)"}
|
|
50
|
+
|
|
51
|
+
::character{id="hiragana-a" canonicalRef="hiragana-a" char="あ" name="あ (a)" charType="hiragana" data:romaji="a" data:row="a"}
|
|
52
|
+
|
|
53
|
+
::character{id="hiragana-i" canonicalRef="hiragana-i" char="い" name="い (i)" charType="hiragana" data:romaji="i" data:row="a"}
|
|
54
|
+
|
|
55
|
+
::character{id="hiragana-u" canonicalRef="hiragana-u" char="う" name="う (u)" charType="hiragana" data:romaji="u" data:row="a"}
|
|
56
|
+
|
|
57
|
+
::character{id="hiragana-e" canonicalRef="hiragana-e" char="え" name="え (e)" charType="hiragana" data:romaji="e" data:row="a"}
|
|
58
|
+
|
|
59
|
+
::character{id="hiragana-o" canonicalRef="hiragana-o" char="お" name="お (o)" charType="hiragana" data:romaji="o" data:row="a"}
|
|
60
|
+
|
|
61
|
+
:::
|
|
62
|
+
|
|
63
|
+
## Pronunciation Guide
|
|
64
|
+
|
|
65
|
+
| Character | Romaji | Sound | English Approximation |
|
|
66
|
+
|-----------|--------|-------|----------------------|
|
|
67
|
+
| あ | a | /a/ | "a" in "father" |
|
|
68
|
+
| い | i | /i/ | "ee" in "see" |
|
|
69
|
+
| う | u | /ɯ/ | "oo" in "zoo" (unrounded) |
|
|
70
|
+
| え | e | /e/ | "e" in "bed" |
|
|
71
|
+
| お | o | /o/ | "o" in "go" |
|
|
72
|
+
|
|
73
|
+
**Note on う (u):** The Japanese "u" sound is pronounced without rounding your lips, unlike the English "oo" sound. Try saying "oo" while keeping your lips relaxed and flat.
|
|
74
|
+
|
|
75
|
+
## Writing Tips
|
|
76
|
+
|
|
77
|
+
- **あ**: Has three strokes. Starts with a small stroke at the top, then a curved body, then a final hook at the bottom right.
|
|
78
|
+
- **い**: Has two simple vertical strokes, slightly curved.
|
|
79
|
+
- **う**: Looks like a "U" with a tail. Two strokes.
|
|
80
|
+
- **え**: Has two strokes forming a distinctive shape like a backward "C" with a horizontal line.
|
|
81
|
+
- **お**: Has three strokes. Looks like a "tree" character (木) but more curved.
|
|
82
|
+
|
|
83
|
+
## Practice Words
|
|
84
|
+
|
|
85
|
+
With just the five vowels, you can already read some Japanese words:
|
|
86
|
+
|
|
87
|
+
| Hiragana | Romaji | Meaning |
|
|
88
|
+
|----------|--------|---------|
|
|
89
|
+
| あい | ai | love |
|
|
90
|
+
| うえ | ue | above |
|
|
91
|
+
| あお | ao | blue |
|
|
92
|
+
| いえ | ie | house |
|
|
93
|
+
|
|
94
|
+
## Key Points
|
|
95
|
+
|
|
96
|
+
1. **Five vowels only**: Japanese has exactly 5 vowel sounds, always pronounced the same way.
|
|
97
|
+
2. **Pure sounds**: No diphthongs or vowel changes based on position.
|
|
98
|
+
3. **Foundation**: These 5 vowels combine with consonants to form all other hiragana characters.
|
|
99
|
+
4. **Order matters**: The traditional order is あいうえお (a-i-u-e-o), not alphabetical like English.
|
|
100
|
+
|
|
101
|
+
## Practice Recognition
|
|
102
|
+
|
|
103
|
+
:::exercise{id="ja-hiragana-01-recognition" type="matching" title="Match Characters to Sounds" skill="character-recognition" tests="hiragana-a,hiragana-i,hiragana-u,hiragana-e,hiragana-o" objectiveId="obj-recognize-vowels"}
|
|
104
|
+
|
|
105
|
+
**Question:** Match each hiragana vowel to its romaji sound
|
|
106
|
+
|
|
107
|
+
- あ
|
|
108
|
+
- い
|
|
109
|
+
- う
|
|
110
|
+
- え
|
|
111
|
+
- お
|
|
112
|
+
|
|
113
|
+
**Answer:**
|
|
114
|
+
|
|
115
|
+
- あ = a
|
|
116
|
+
- い = i
|
|
117
|
+
- う = u
|
|
118
|
+
- え = e
|
|
119
|
+
- お = o
|
|
120
|
+
|
|
121
|
+
**Explanation:** These are the five vowels of Japanese in their traditional order (a-i-u-e-o). This order is used throughout the hiragana chart and is fundamental to Japanese.
|
|
122
|
+
|
|
123
|
+
:::
|
|
124
|
+
|
|
125
|
+
:::exercise{id="ja-hiragana-01-sounds" type="fill-in-blank" title="Sound Mapping" skill="character-sound-mapping" tests="hiragana-a,hiragana-i,hiragana-u,hiragana-e,hiragana-o" objectiveId="obj-sounds-vowels"}
|
|
126
|
+
|
|
127
|
+
**Question:** What sound does each vowel make?
|
|
128
|
+
|
|
129
|
+
- あ sounds like ___
|
|
130
|
+
- い sounds like ___
|
|
131
|
+
- う sounds like ___
|
|
132
|
+
- え sounds like ___
|
|
133
|
+
- お sounds like ___
|
|
134
|
+
|
|
135
|
+
**Answer:**
|
|
136
|
+
|
|
137
|
+
- あ = /a/ as in "father"
|
|
138
|
+
- い = /i/ as in "see"
|
|
139
|
+
- う = /ɯ/ as in "zoo" (unrounded)
|
|
140
|
+
- え = /e/ as in "bed"
|
|
141
|
+
- お = /o/ as in "go"
|
|
142
|
+
|
|
143
|
+
**Explanation:** Japanese vowels are pure and consistent. Unlike English, they don't change pronunciation based on context or position in a word.
|
|
144
|
+
|
|
145
|
+
:::
|
|
146
|
+
|
|
147
|
+
:::exercise{id="ja-hiragana-01-word-reading" type="fill-in-blank" title="Read Simple Words" skill="word-recognition" tests="hiragana-a,hiragana-i,hiragana-u,hiragana-e,hiragana-o" objectiveId="obj-recognize-vowels"}
|
|
148
|
+
|
|
149
|
+
**Question:** Read the following hiragana words and give their pronunciation
|
|
150
|
+
|
|
151
|
+
- あい = ___
|
|
152
|
+
- うえ = ___
|
|
153
|
+
- いえ = ___
|
|
154
|
+
|
|
155
|
+
**Answer:**
|
|
156
|
+
|
|
157
|
+
- あい = "ai" (love)
|
|
158
|
+
- うえ = "ue" (above)
|
|
159
|
+
- いえ = "ie" (house)
|
|
160
|
+
|
|
161
|
+
**Explanation:** Read each character from left to right. Every hiragana character is always pronounced the same way, making Japanese highly phonetic.
|
|
162
|
+
|
|
163
|
+
:::
|
|
164
|
+
|
|
165
|
+
## What's Next
|
|
166
|
+
|
|
167
|
+
In Lesson 2, you will learn the か-row (ka, ki, ku, ke, ko), which combines the consonant "k" with each of the five vowels you just learned.
|
|
168
|
+
`;
|
|
169
|
+
export {
|
|
170
|
+
a as default
|
|
171
|
+
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
const a = `---
|
|
2
|
+
type: lesson
|
|
3
|
+
id: japanese-hiragana-lesson-02
|
|
4
|
+
title: "Lesson 2 — Ka-row (かきくけこ)"
|
|
5
|
+
description: "Learn the か-row: ka, ki, ku, ke, ko"
|
|
6
|
+
order: 2
|
|
7
|
+
parentId: japanese-hiragana
|
|
8
|
+
difficulty: beginner
|
|
9
|
+
cefrLevel: A1
|
|
10
|
+
categories:
|
|
11
|
+
- consonants
|
|
12
|
+
- basic-characters
|
|
13
|
+
metadata:
|
|
14
|
+
estimatedTime: 20
|
|
15
|
+
prerequisites: [japanese-hiragana-lesson-01]
|
|
16
|
+
learningObjectives:
|
|
17
|
+
- id: obj-recognize-ka-row
|
|
18
|
+
description: "Recognize the ka-row hiragana characters"
|
|
19
|
+
skill: character-recognition
|
|
20
|
+
references: [hiragana-ka, hiragana-ki, hiragana-ku, hiragana-ke, hiragana-ko]
|
|
21
|
+
- id: obj-sounds-ka-row
|
|
22
|
+
description: "Map each ka-row character to its sound"
|
|
23
|
+
skill: character-sound-mapping
|
|
24
|
+
references: [hiragana-ka, hiragana-ki, hiragana-ku, hiragana-ke, hiragana-ko]
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Lesson 2 — Ka-row (かきくけこ)
|
|
28
|
+
|
|
29
|
+
## Introduction
|
|
30
|
+
|
|
31
|
+
In this lesson, you will learn the **か-row** (ka-gyō), the second row of the hiragana chart. This row combines the consonant sound "k" with each of the five vowels you learned in Lesson 1.
|
|
32
|
+
|
|
33
|
+
The pattern is simple: **k + vowel = ka, ki, ku, ke, ko**
|
|
34
|
+
|
|
35
|
+
## Characters
|
|
36
|
+
|
|
37
|
+
:::character-set{id="hiragana-ka-row" title="Hiragana Ka-row (か行)"}
|
|
38
|
+
|
|
39
|
+
::character{id="hiragana-ka" canonicalRef="hiragana-ka" char="か" name="か (ka)" charType="hiragana" data:romaji="ka" data:row="ka"}
|
|
40
|
+
|
|
41
|
+
::character{id="hiragana-ki" canonicalRef="hiragana-ki" char="き" name="き (ki)" charType="hiragana" data:romaji="ki" data:row="ka"}
|
|
42
|
+
|
|
43
|
+
::character{id="hiragana-ku" canonicalRef="hiragana-ku" char="く" name="く (ku)" charType="hiragana" data:romaji="ku" data:row="ka"}
|
|
44
|
+
|
|
45
|
+
::character{id="hiragana-ke" canonicalRef="hiragana-ke" char="け" name="け (ke)" charType="hiragana" data:romaji="ke" data:row="ka"}
|
|
46
|
+
|
|
47
|
+
::character{id="hiragana-ko" canonicalRef="hiragana-ko" char="こ" name="こ (ko)" charType="hiragana" data:romaji="ko" data:row="ka"}
|
|
48
|
+
|
|
49
|
+
:::
|
|
50
|
+
|
|
51
|
+
## Pronunciation Guide
|
|
52
|
+
|
|
53
|
+
| Character | Romaji | Sound | Notes |
|
|
54
|
+
|-----------|--------|-------|-------|
|
|
55
|
+
| か | ka | /ka/ | Like "ka" in "car" |
|
|
56
|
+
| き | ki | /ki/ | Like "kee" in "keen" |
|
|
57
|
+
| く | ku | /kɯ/ | Like "coo" (unrounded lips) |
|
|
58
|
+
| け | ke | /ke/ | Like "ke" in "ketchup" |
|
|
59
|
+
| こ | ko | /ko/ | Like "ko" in "koala" |
|
|
60
|
+
|
|
61
|
+
**Note:** The "k" sound is the same as in English. The vowel sounds follow the same rules you learned in Lesson 1.
|
|
62
|
+
|
|
63
|
+
## Writing Tips
|
|
64
|
+
|
|
65
|
+
- **か**: Has three strokes. Starts with a vertical stroke, then two curved strokes on the right.
|
|
66
|
+
- **き**: Has four strokes. Looks like three horizontal lines with a fourth diagonal stroke.
|
|
67
|
+
- **く**: Has one simple curved stroke, like a backwards "<".
|
|
68
|
+
- **け**: Has three strokes forming a distinctive shape.
|
|
69
|
+
- **こ**: Has two horizontal strokes, like a simple "二" character.
|
|
70
|
+
|
|
71
|
+
## Practice Words
|
|
72
|
+
|
|
73
|
+
| Hiragana | Romaji | Meaning |
|
|
74
|
+
|----------|--------|---------|
|
|
75
|
+
| かい | kai | shellfish |
|
|
76
|
+
| きかい | kikai | machine |
|
|
77
|
+
| ここ | koko | here |
|
|
78
|
+
| いけ | ike | pond |
|
|
79
|
+
| かお | kao | face |
|
|
80
|
+
|
|
81
|
+
## Pattern Recognition
|
|
82
|
+
|
|
83
|
+
Notice the pattern:
|
|
84
|
+
- Each row takes one consonant ("k" in this case)
|
|
85
|
+
- Combines it with all five vowels (a, i, u, e, o)
|
|
86
|
+
- Creates 5 new characters
|
|
87
|
+
|
|
88
|
+
This pattern continues throughout the entire hiragana chart.
|
|
89
|
+
|
|
90
|
+
## Practice Recognition
|
|
91
|
+
|
|
92
|
+
:::exercise{id="ja-hiragana-02-recognition" type="matching" title="Match Ka-row Characters" skill="character-recognition" tests="hiragana-ka,hiragana-ki,hiragana-ku,hiragana-ke,hiragana-ko" objectiveId="obj-recognize-ka-row"}
|
|
93
|
+
|
|
94
|
+
**Question:** Match each ka-row character to its romaji
|
|
95
|
+
|
|
96
|
+
- か
|
|
97
|
+
- き
|
|
98
|
+
- く
|
|
99
|
+
- け
|
|
100
|
+
- こ
|
|
101
|
+
|
|
102
|
+
**Answer:**
|
|
103
|
+
|
|
104
|
+
- か = ka
|
|
105
|
+
- き = ki
|
|
106
|
+
- く = ku
|
|
107
|
+
- け = ke
|
|
108
|
+
- こ = ko
|
|
109
|
+
|
|
110
|
+
**Explanation:** The ka-row follows the same vowel pattern as the vowels row (a-i-u-e-o), but adds the "k" consonant sound before each vowel.
|
|
111
|
+
|
|
112
|
+
:::
|
|
113
|
+
|
|
114
|
+
:::exercise{id="ja-hiragana-02-sounds" type="fill-in-blank" title="Sound Mapping" skill="character-sound-mapping" tests="hiragana-ka,hiragana-ki,hiragana-ku,hiragana-ke,hiragana-ko" objectiveId="obj-sounds-ka-row"}
|
|
115
|
+
|
|
116
|
+
**Question:** What sound does each character make?
|
|
117
|
+
|
|
118
|
+
- か = ___
|
|
119
|
+
- き = ___
|
|
120
|
+
- く = ___
|
|
121
|
+
- け = ___
|
|
122
|
+
- こ = ___
|
|
123
|
+
|
|
124
|
+
**Answer:**
|
|
125
|
+
|
|
126
|
+
- か = /ka/
|
|
127
|
+
- き = /ki/
|
|
128
|
+
- く = /kɯ/
|
|
129
|
+
- け = /ke/
|
|
130
|
+
- こ = /ko/
|
|
131
|
+
|
|
132
|
+
**Explanation:** Each character combines the "k" consonant with one of the five vowel sounds you learned in Lesson 1.
|
|
133
|
+
|
|
134
|
+
:::
|
|
135
|
+
|
|
136
|
+
:::exercise{id="ja-hiragana-02-word-reading" type="fill-in-blank" title="Read Words with Ka-row" skill="word-recognition" tests="hiragana-ka,hiragana-ki,hiragana-ku,hiragana-ke,hiragana-ko" objectiveId="obj-recognize-ka-row"}
|
|
137
|
+
|
|
138
|
+
**Question:** Read these words
|
|
139
|
+
|
|
140
|
+
- かお = ___
|
|
141
|
+
- ここ = ___
|
|
142
|
+
- いけ = ___
|
|
143
|
+
|
|
144
|
+
**Answer:**
|
|
145
|
+
|
|
146
|
+
- かお = "kao" (face)
|
|
147
|
+
- ここ = "koko" (here)
|
|
148
|
+
- いけ = "ike" (pond)
|
|
149
|
+
|
|
150
|
+
**Explanation:** Combine the characters you've learned so far. Read from left to right, pronouncing each character clearly.
|
|
151
|
+
|
|
152
|
+
:::
|
|
153
|
+
|
|
154
|
+
## What's Next
|
|
155
|
+
|
|
156
|
+
In Lesson 3, you will learn the さ-row (sa, shi, su, se, so), continuing the pattern with the "s" consonant.
|
|
157
|
+
`;
|
|
158
|
+
export {
|
|
159
|
+
a as default
|
|
160
|
+
};
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
const a = `---
|
|
2
|
+
type: lesson
|
|
3
|
+
id: japanese-hiragana-lesson-03
|
|
4
|
+
title: "Lesson 3 — Sa-row (さしすせそ)"
|
|
5
|
+
description: "Learn the さ-row: sa, shi, su, se, so"
|
|
6
|
+
order: 3
|
|
7
|
+
parentId: japanese-hiragana
|
|
8
|
+
difficulty: beginner
|
|
9
|
+
cefrLevel: A1
|
|
10
|
+
categories:
|
|
11
|
+
- consonants
|
|
12
|
+
- basic-characters
|
|
13
|
+
metadata:
|
|
14
|
+
estimatedTime: 20
|
|
15
|
+
prerequisites: [japanese-hiragana-lesson-02]
|
|
16
|
+
learningObjectives:
|
|
17
|
+
- id: obj-recognize-sa-row
|
|
18
|
+
description: "Recognize the sa-row hiragana characters"
|
|
19
|
+
skill: character-recognition
|
|
20
|
+
references: [hiragana-sa, hiragana-shi, hiragana-su, hiragana-se, hiragana-so]
|
|
21
|
+
- id: obj-sounds-sa-row
|
|
22
|
+
description: "Map each sa-row character to its sound"
|
|
23
|
+
skill: character-sound-mapping
|
|
24
|
+
references: [hiragana-sa, hiragana-shi, hiragana-su, hiragana-se, hiragana-so]
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Lesson 3 — Sa-row (さしすせそ)
|
|
28
|
+
|
|
29
|
+
## Introduction
|
|
30
|
+
|
|
31
|
+
In this lesson, you will learn the **さ-row** (sa-gyō), the third row of the hiragana chart. This row combines the "s" consonant with the five vowels.
|
|
32
|
+
|
|
33
|
+
**Important note:** The "si" character is pronounced "shi" (し), not "si". This is one of the irregularities in the hiragana chart.
|
|
34
|
+
|
|
35
|
+
## Characters
|
|
36
|
+
|
|
37
|
+
:::character-set{id="hiragana-sa-row" title="Hiragana Sa-row (さ行)"}
|
|
38
|
+
|
|
39
|
+
::character{id="hiragana-sa" canonicalRef="hiragana-sa" char="さ" name="さ (sa)" charType="hiragana" data:romaji="sa" data:row="sa"}
|
|
40
|
+
|
|
41
|
+
::character{id="hiragana-shi" canonicalRef="hiragana-shi" char="し" name="し (shi)" charType="hiragana" data:romaji="shi" data:row="sa"}
|
|
42
|
+
|
|
43
|
+
::character{id="hiragana-su" canonicalRef="hiragana-su" char="す" name="す (su)" charType="hiragana" data:romaji="su" data:row="sa"}
|
|
44
|
+
|
|
45
|
+
::character{id="hiragana-se" canonicalRef="hiragana-se" char="せ" name="せ (se)" charType="hiragana" data:romaji="se" data:row="sa"}
|
|
46
|
+
|
|
47
|
+
::character{id="hiragana-so" canonicalRef="hiragana-so" char="そ" name="そ (so)" charType="hiragana" data:romaji="so" data:row="sa"}
|
|
48
|
+
|
|
49
|
+
:::
|
|
50
|
+
|
|
51
|
+
## Pronunciation Guide
|
|
52
|
+
|
|
53
|
+
| Character | Romaji | Sound | Notes |
|
|
54
|
+
|-----------|--------|-------|-------|
|
|
55
|
+
| さ | sa | /sa/ | Like "sa" in "saw" |
|
|
56
|
+
| し | shi | /ɕi/ | Like "shi" in "sheep" (NOT "si") |
|
|
57
|
+
| す | su | /sɯ/ | Like "soo" (unrounded lips) |
|
|
58
|
+
| せ | se | /se/ | Like "se" in "set" |
|
|
59
|
+
| そ | so | /so/ | Like "so" in "soap" |
|
|
60
|
+
|
|
61
|
+
**Key Point:** し is pronounced "shi", not "si". This is a standard irregularity in Japanese. The sound is like English "she" but shorter.
|
|
62
|
+
|
|
63
|
+
## Writing Tips
|
|
64
|
+
|
|
65
|
+
- **さ**: Has three strokes. Starts with a horizontal stroke, then two curved strokes below.
|
|
66
|
+
- **し**: Has one simple curved stroke, like a backwards "J".
|
|
67
|
+
- **す**: Has two strokes forming a distinctive shape.
|
|
68
|
+
- **せ**: Has three strokes, similar to せ in hiragana.
|
|
69
|
+
- **そ**: Has one continuous stroke forming a distinctive curved shape.
|
|
70
|
+
|
|
71
|
+
## Practice Words
|
|
72
|
+
|
|
73
|
+
| Hiragana | Romaji | Meaning |
|
|
74
|
+
|----------|--------|---------|
|
|
75
|
+
| さけ | sake | salmon; alcohol |
|
|
76
|
+
| しお | shio | salt |
|
|
77
|
+
| すし | sushi | sushi |
|
|
78
|
+
| そこ | soko | there; bottom |
|
|
79
|
+
| かさ | kasa | umbrella |
|
|
80
|
+
|
|
81
|
+
## Practice Recognition
|
|
82
|
+
|
|
83
|
+
:::exercise{id="ja-hiragana-03-recognition" type="matching" title="Match Sa-row Characters" skill="character-recognition" tests="hiragana-sa,hiragana-shi,hiragana-su,hiragana-se,hiragana-so" objectiveId="obj-recognize-sa-row"}
|
|
84
|
+
|
|
85
|
+
**Question:** Match each sa-row character to its romaji
|
|
86
|
+
|
|
87
|
+
- さ
|
|
88
|
+
- し
|
|
89
|
+
- す
|
|
90
|
+
- せ
|
|
91
|
+
- そ
|
|
92
|
+
|
|
93
|
+
**Answer:**
|
|
94
|
+
|
|
95
|
+
- さ = sa
|
|
96
|
+
- し = shi (not "si")
|
|
97
|
+
- す = su
|
|
98
|
+
- せ = se
|
|
99
|
+
- そ = so
|
|
100
|
+
|
|
101
|
+
**Explanation:** Remember that し is pronounced "shi", not "si". This is a standard pronunciation in Japanese.
|
|
102
|
+
|
|
103
|
+
:::
|
|
104
|
+
|
|
105
|
+
:::exercise{id="ja-hiragana-03-sounds" type="fill-in-blank" title="Sound Mapping" skill="character-sound-mapping" tests="hiragana-sa,hiragana-shi,hiragana-su,hiragana-se,hiragana-so" objectiveId="obj-sounds-sa-row"}
|
|
106
|
+
|
|
107
|
+
**Question:** What sound does each character make?
|
|
108
|
+
|
|
109
|
+
- さ = ___
|
|
110
|
+
- し = ___
|
|
111
|
+
- す = ___
|
|
112
|
+
- せ = ___
|
|
113
|
+
- そ = ___
|
|
114
|
+
|
|
115
|
+
**Answer:**
|
|
116
|
+
|
|
117
|
+
- さ = /sa/
|
|
118
|
+
- し = /ɕi/ (shi)
|
|
119
|
+
- す = /sɯ/
|
|
120
|
+
- せ = /se/
|
|
121
|
+
- そ = /so/
|
|
122
|
+
|
|
123
|
+
**Explanation:** The し character is always pronounced "shi", never "si" in modern standard Japanese.
|
|
124
|
+
|
|
125
|
+
:::
|
|
126
|
+
|
|
127
|
+
:::exercise{id="ja-hiragana-03-word-reading" type="fill-in-blank" title="Read Words with Sa-row" skill="word-recognition" tests="hiragana-sa,hiragana-shi,hiragana-su,hiragana-se,hiragana-so" objectiveId="obj-recognize-sa-row"}
|
|
128
|
+
|
|
129
|
+
**Question:** Read these words
|
|
130
|
+
|
|
131
|
+
- すし = ___
|
|
132
|
+
- しお = ___
|
|
133
|
+
- かさ = ___
|
|
134
|
+
|
|
135
|
+
**Answer:**
|
|
136
|
+
|
|
137
|
+
- すし = "sushi" (sushi)
|
|
138
|
+
- しお = "shio" (salt)
|
|
139
|
+
- かさ = "kasa" (umbrella)
|
|
140
|
+
|
|
141
|
+
**Explanation:** Notice how し is always pronounced "shi". The word すし (sushi) uses this character twice.
|
|
142
|
+
|
|
143
|
+
:::
|
|
144
|
+
|
|
145
|
+
## What's Next
|
|
146
|
+
|
|
147
|
+
In Lesson 4, you will learn the た-row (ta, chi, tsu, te, to), which has two more irregular pronunciations to watch for.
|
|
148
|
+
`;
|
|
149
|
+
export {
|
|
150
|
+
a as default
|
|
151
|
+
};
|