language_cards 0.3.2 → 2.0.0

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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +20 -0
  3. data/CHANGELOG.md +31 -0
  4. data/README.md +80 -22
  5. data/bin/language_cards +7 -1
  6. data/cards/en/arabic.yml +370 -0
  7. data/cards/en/armenian.yml +406 -0
  8. data/cards/en/bengali.yml +395 -0
  9. data/cards/en/chinese-hsk1.yml +157 -0
  10. data/cards/en/chinese-hsk2.yml +154 -0
  11. data/cards/en/chinese-hsk3.yml +305 -0
  12. data/cards/en/chinese-hsk4.yml +605 -0
  13. data/cards/en/georgian.yml +362 -0
  14. data/cards/en/greek.yml +379 -0
  15. data/cards/en/hebrew.yml +355 -0
  16. data/cards/en/hindi.yml +412 -0
  17. data/cards/en/japanese-01-hiragana.yml +227 -0
  18. data/cards/en/japanese-02-katakana.yml +296 -0
  19. data/cards/en/japanese-03-keyboard-mappings.yml +357 -0
  20. data/cards/en/japanese-10-kanji-jlpt-n5.yml +86 -0
  21. data/cards/en/japanese-11-kanji-jlpt-n4.yml +173 -0
  22. data/cards/en/japanese-12-kanji-jlpt-n3.yml +374 -0
  23. data/cards/en/japanese-13-kanji-jlpt-n2.yml +374 -0
  24. data/cards/en/japanese-14-kanji-jlpt-n1.yml +1239 -0
  25. data/cards/en/japanese-20-vocabulary-jlpt-n5.yml +708 -0
  26. data/cards/en/japanese-21-vocabulary-jlpt-n4.yml +668 -0
  27. data/cards/en/japanese-22-vocabulary-jlpt-n3.yml +2108 -0
  28. data/cards/en/japanese-23-vocabulary-jlpt-n2.yml +1738 -0
  29. data/cards/en/japanese-24-vocabulary-jlpt-n1.yml +2689 -0
  30. data/cards/en/korean.yml +534 -0
  31. data/cards/en/persian.yml +370 -0
  32. data/cards/en/punjabi.yml +393 -0
  33. data/cards/en/russian.yml +398 -0
  34. data/cards/en/tamil.yml +405 -0
  35. data/cards/en/thai.yml +408 -0
  36. data/cards/en/ukrainian.yml +398 -0
  37. data/cards/en/urdu.yml +374 -0
  38. data/language_cards.gemspec +7 -6
  39. data/lib/language_cards/card_set_builder.rb +11 -0
  40. data/lib/language_cards/controllers/application_controller.rb +2 -0
  41. data/lib/language_cards/controllers/game.rb +10 -6
  42. data/lib/language_cards/controllers/main_menu.rb +20 -3
  43. data/lib/language_cards/defaults.rb +33 -0
  44. data/lib/language_cards/helpers/view_helper.rb +3 -2
  45. data/lib/language_cards/menu_builder.rb +11 -0
  46. data/lib/language_cards/menu_node.rb +9 -4
  47. data/lib/language_cards/models/card.rb +18 -0
  48. data/lib/language_cards/models/card_set.rb +15 -16
  49. data/lib/language_cards/modes/game.rb +15 -4
  50. data/lib/language_cards/modes/translate.rb +12 -1
  51. data/lib/language_cards/modes/typing_practice.rb +5 -1
  52. data/lib/language_cards/paginator.rb +59 -0
  53. data/lib/language_cards/user_interface.rb +84 -52
  54. data/lib/language_cards/version.rb +1 -1
  55. data/lib/language_cards/view/main_menu.erb +3 -1
  56. data/lib/language_cards/yaml_loader.rb +5 -3
  57. data/lib/language_cards.rb +7 -24
  58. data/locales/en.yml +11 -0
  59. metadata +69 -43
  60. data/.travis.yml +0 -5
  61. data/cards/en/japanese-hiragana.yml +0 -113
  62. data/cards/en/japanese-kanji-jlpt-n5.yml +0 -107
  63. data/cards/en/japanese-katakana-keyboard-mappings.yml +0 -180
  64. data/cards/en/japanese-katakana.yml +0 -109
  65. data/lib/language_cards/grapheme_builder.rb +0 -12
  66. data/lib/language_cards/language_cards.rb +0 -25
  67. data/lib/language_cards/models/grapheme.rb +0 -18
@@ -1,113 +0,0 @@
1
- --- # https://en.wikibooks.org/wiki/Japanese/Kana_chart
2
- # https://www.nayuki.io/page/variations-on-japanese-romanization
3
- Japanese:
4
- Hiragana:
5
- mapping: { Hiragana: Romaji }
6
- あ: a
7
- い: i
8
- う: u
9
- え: e
10
- お: o
11
- か: ka
12
- き: ki
13
- く: ku
14
- け: ke
15
- こ: ko
16
- が: ga
17
- ぎ: gi
18
- ぐ: gu
19
- げ: ge
20
- ご: go
21
- さ: sa
22
- す: su
23
- せ: se
24
- そ: so
25
- ざ: za
26
- ず: zu
27
- ぜ: ze
28
- ぞ: zo
29
- じゃ: [zya, ja, jya]
30
- じゅ: [zyu, ju, jyu]
31
- じょ: [zyo, jo, jyo]
32
- た: ta
33
- て: te
34
- と: to
35
- だ: da
36
- で: de
37
- ど: do
38
- な: na
39
- に: ni
40
- ぬ: nu
41
- ね: ne
42
- の: 'no'
43
- は: ha
44
- ひ: hi
45
- へ: he
46
- ほ: ho
47
- ば: ba
48
- び: bi
49
- ぶ: bu
50
- べ: be
51
- ぼ: bo
52
- ぱ: pa
53
- ぴ: pi
54
- ぷ: pu
55
- ぺ: pe
56
- ぽ: po
57
- ふ: [hu, fu]
58
- ま: ma
59
- み: mi
60
- む: mu
61
- め: me
62
- も: mo
63
- や: ya
64
- ゆ: yu
65
- よ: yo
66
- ら: ra
67
- り: ri
68
- る: ru
69
- れ: re
70
- ろ: ro
71
- わ: wa
72
- を: wo
73
- ん: n
74
- つ: [tu, tsu]
75
- きゃ: kya
76
- きゅ: kyu
77
- きょ: kyo
78
- ぎゃ: gya
79
- ぎゅ: gyu
80
- ぎょ: gyo
81
- しゃ: [sya, sha]
82
- し: [si, shi]
83
- しゅ: [syu, shu]
84
- しょ: [syo, sho]
85
- ちゃ: [tya, cha]
86
- ち: [ti, chi]
87
- ちゅ: [tyu, chu]
88
- ちょ: [tyo, cho]
89
- にゃ: nya
90
- にゅ: nyu
91
- にょ: nyo
92
- ひゃ: hya
93
- ひゅ: hyu
94
- ひょ: hyo
95
- びゃ: bya
96
- びゅ: byu
97
- びょ: byo
98
- ぴゃ: pya
99
- ぴゅ: pyu
100
- ぴょ: pyo
101
- みゃ: mya
102
- みゅ: myu
103
- みょ: myo
104
- りゃ: rya
105
- りゅ: ryu
106
- りょ: ryo
107
- じ: [zi, ji]
108
- ぢ: [di, ji, dji]
109
- づ: [du, zu, dzu]
110
- ゔ: vu # https://en.wiktionary.org/wiki/%E3%82%94
111
- ぢゃ: [dya, ja, dja]
112
- ぢゅ: [dyu, ju, dju]
113
- ぢょ: [dyo, jo, djo]
@@ -1,107 +0,0 @@
1
- --- # https://www.jlptstudy.net/N5/?kanji-list
2
- Japanese:
3
- Kanji (JLPT Level N5):
4
- mapping: { Kanji: [Hiragana, English] }
5
- 一: [ひと, ひとつ, one, only, even, 1]
6
- 七: [なな, seven, 7]
7
- 万: [よろず, ten thousand]
8
- 三: [さん, three, 3]
9
- 上: [うえ, above, up]
10
- 下: [した, below, down, descend, give, low, inferior]
11
- 中: [なか, in, inside, middle, mean, center]
12
- 九: [ここの, nine, 9]
13
- 二: [に, two, 2]
14
- 五: [ご, five, 5]
15
- 人: [ひと, people, person, man, human being, other people, mankind]
16
- 今: [いま, now]
17
- 休: [きゅう, rest, day off, retire, sleep]
18
- 会: [かい, gathering, meeting, meet, party, association, interview, join]
19
- 何: [なに, なん, what]
20
- 先: [さき, before, ahead, previous, future, precedence]
21
- 入: [いり, enter, insert]
22
- 八: [はち, eight, 8]
23
- 六: [ろく, six, 6]
24
- 円: [えん, circle, yen, round]
25
- 出: [で, exit, leave]
26
- 分: [ぶん, part, minute of time, segment, share, degree, one's lot, duty, understand, know, rate, 1%, chances, shaku/100]
27
- 前: [まえ, in front, before]
28
- 北: [きた, north]
29
- 十: [じゅう, ten, 10]
30
- 千: [せん, thousand, 1000]
31
- 午: [うま, noon, sign of the horse, 11AM-1PM, seventh sign of Chinese zodiac]
32
- 半: [はん, half, middle, odd number, semi-, part-]
33
- 南: [みなみ, south]
34
- 友: [とも, friend]
35
- 口: [くち, mouth]
36
- 古: [ふる, old]
37
- 右: [みぎ, right]
38
- 名: [な, name, noted, distinguished, reputation]
39
- 四: [よん, four, 4]
40
- 国: [くに, country, state, region, province, home, hometown, homeland, home country, land, earth]
41
- 土: [つち, soil, earth, ground, Turkey]
42
- 外: [そと, outside, outside of]
43
- 多: [さわ, many, frequent, much]
44
- 大: [おお, large, big]
45
- 天: [てん, heavens, sky, imperial]
46
- 女: [おんな, woman, female]
47
- 子: [こ, child, sign of the rat, 11PM-1AM, first sign of Chinese zodiac]
48
- 学: [がく, study, learning, science]
49
- 安: [あん, cheap, relax, low, quiet, rested, contented, peaceful]
50
- 小: [しょう, little, small]
51
- 少: [すくな, few, little]
52
- 山: [やま, mountain]
53
- 川: [かわ, stream, river]
54
- 左: [ひだり, left]
55
- 年: [とし, year, counter for years, age]
56
- 店: [みせ, store, shop]
57
- 後: [あと, behind, back, later]
58
- 手: [て, hand]
59
- 新: [しん, new]
60
- 日: [ひ, day, sun, Japan, counter for days, sunshine, sunlight, case, event]
61
- 時: [じ, time, hour]
62
- 書: [しょ, write]
63
- 月: [つき, month, moon]
64
- 木: [き, tree, wood]
65
- 本: [もと, book, present, main, 'true', real, counter for long cylindrical things]
66
- 来: [き, come, due, next, cause, become]
67
- 東: [ひがし, east]
68
- 校: [-こう, exam, school, printing, proof, correction]
69
- 母: [はは, mama, mother]
70
- 毎: [まい, every]
71
- 気: [いき, spirit, mind, air, atmosphere, mood]
72
- 水: [みず, water]
73
- 火: [ひ, fire]
74
- 父: [ちち, father]
75
- 生: [なま, life, genuine, birth]
76
- 男: [おとこ, male]
77
- 白: [しろ, white]
78
- 百: [もも, hundred, 100]
79
- 目: [め, eye, class, look, insight, experience, care, favor]
80
- 社: [やしろ, company, firm, office, association, shrine]
81
- 空: [そら, empty, sky, void, vacant, vacuum]
82
- 立: [たて, stand up]
83
- 耳: [みみ, ear]
84
- 聞: [きき, hear, ask, listen]
85
- 花: [はな, flower]
86
- 行: [こう, going, journey]
87
- 西: [にし, west, Spain]
88
- 見: [み, see, hopes, chances, idea, opinion, look at, visible]
89
- 言: [げん, say]
90
- 話: [はなし, tale, talk]
91
- 語: [ご, word, speech, language]
92
- 読: [よみ, read]
93
- 買: [かい, buy]
94
- 足: [あし, leg, foot, be sufficient, counter for pairs of footwear]
95
- 車: [くるま, car]
96
- 週: [しゅう, week]
97
- 道: [みち, road-way, street, district, journey, course, moral, teachings]
98
- 金: [きん, gold]
99
- 長: [なが, long, leader]
100
- 間: [ま, interval, space]
101
- 雨: [あめ, rain]
102
- 電: [でん, electricity]
103
- 食: [しょく, eat, food]
104
- 飲: [いん, drink, smoke, take]
105
- 駅: [えき, station]
106
- 高: [こう, tall, high, expensive]
107
- 魚: [さかな, fish]
@@ -1,180 +0,0 @@
1
- --- # https://en.wikibooks.org/wiki/Japanese/Kana_chart
2
- Japanese:
3
- Katakana Keyboard Mappings:
4
- mapping: { Katakana: Romaji }
5
- ア: a
6
- イ: [i, yi]
7
- ウ: [u, wu]
8
- エ: e
9
- オ: o
10
- ー: '-'
11
- ァ: xa
12
- ィ: xi
13
- ゥ: xu
14
- ェ: xe
15
- ォ: xo
16
- カ: [ka, ca]
17
- キ: ki
18
- ク: [ku, cu]
19
- ケ: ke
20
- コ: [ko, co]
21
- ガ: ga
22
- ギ: gi
23
- グ: gu
24
- ゲ: ge
25
- ゴ: go
26
- サ: sa
27
- シ: [si, shi]
28
- ス: su
29
- セ: se
30
- ソ: so
31
- ザ: za
32
- ジ: [zi, ji]
33
- ズ: zu
34
- ゼ: ze
35
- ゾ: zo
36
- ジャ: [ja, zya, jya]
37
- ジュ: [ju, zyu, jyu]
38
- ジェ: [je, zye, jye]
39
- ジョ: [jo, zyo, jyo]
40
- タ: ta
41
- チ: [ti, chi]
42
- ツ: [tu, tsu]
43
- テ: te
44
- ト: to
45
- ダ: da
46
- ヂ: di
47
- ヅ: du
48
- デ: de
49
- ド: do
50
- ナ: na
51
- ニ: ni
52
- ヌ: nu
53
- ネ: ne
54
- ノ: 'no'
55
- ハ: ha
56
- ヒ: hi
57
- フ: [hu, fu]
58
- ヘ: he
59
- ホ: ho
60
- バ: ba
61
- ビ: bi
62
- ブ: bu
63
- ベ: be
64
- ボ: bo
65
- パ: pa
66
- ピ: pi
67
- プ: pu
68
- ペ: pe
69
- ポ: po
70
- ヴァ: va
71
- ヴィ: vi
72
- ヴ: vu
73
- ヴェ: ve
74
- ヴォ: vo
75
- ファ: fa
76
- フィ: fi
77
- フェ: fe
78
- フォ: fo
79
- マ: ma
80
- ミ: mi
81
- ム: mu
82
- メ: me
83
- モ: mo
84
- ヤ: ya
85
- ユ: yu
86
- イェ: ye
87
- ヨ: yo
88
- ラ: [ra, la]
89
- リ: [ri, li]
90
- ル: [ru, lu]
91
- レ: [re, le]
92
- ロ: [ro, lo]
93
- ワ: wa
94
- ウィ: wi
95
- ウェ: we
96
- ヲ: wo
97
- ン: [nn, n]
98
- ヵ: xka
99
- ヶ: xke
100
- ヮ: xwa
101
- ッ: xtsu
102
- ャ: xya
103
- ュ: xyu
104
- ョ: xyo
105
- キャ: kya
106
- キィ: kyi
107
- キュ: kyu
108
- キェ: kye
109
- キョ: kyo
110
- ギャ: gya
111
- ギィ: gyi
112
- ギュ: gyu
113
- ギェ: gye
114
- ギョ: gyo
115
- シャ: [sya, sha]
116
- シィ: syi
117
- シュ: [syu, shu]
118
- シェ: [sye, she]
119
- ショ: [syo, sho]
120
- ジィ: [zyi, jyi]
121
- チャ: [tya, cya, cha]
122
- チィ: [tyi, cyi]
123
- チュ: [tyu, cyu, chu]
124
- チェ: [tye, cye, che]
125
- チョ: [tyo, cyo, cho]
126
- トァ: twa
127
- トィ: twi
128
- トゥ: twu
129
- トェ: twe
130
- トォ: two
131
- ドァ: dwa
132
- ドィ: dwi
133
- ドゥ: dwu
134
- ドェ: dwe
135
- ドォ: dwo
136
- テャ: tha
137
- ティ: thi
138
- テュ: thu
139
- テェ: the
140
- テョ: tho
141
- ヂャ: dya
142
- ヂィ: dyi
143
- ヂュ: dyu
144
- ヂェ: dye
145
- ヂョ: dyo
146
- デャ: dha
147
- ディ: dhi
148
- デュ: dhu
149
- デェ: dhe
150
- デョ: dho
151
- ニャ: nya
152
- ニィ: nyi
153
- ニュ: nyu
154
- ニェ: nye
155
- ニョ: nyo
156
- ヒャ: hya
157
- ヒィ: hyi
158
- ヒュ: hyu
159
- ヒェ: hye
160
- ヒョ: hyo
161
- ビャ: bya
162
- ビィ: byi
163
- ビュ: byu
164
- ビェ: bye
165
- ビョ: byo
166
- ピャ: pya
167
- ピィ: pyi
168
- ピュ: pyu
169
- ピェ: pye
170
- ピョ: pyo
171
- ミャ: mya
172
- ミィ: myi
173
- ミュ: myu
174
- ミェ: mye
175
- ミョ: myo
176
- リャ: [rya, lya]
177
- リィ: [ryi, lyi]
178
- リュ: [ryu, lyu]
179
- リェ: [rye, lye]
180
- リョ: [ryo, lyo]
@@ -1,109 +0,0 @@
1
- --- # https://en.wikibooks.org/wiki/Japanese/Kana_chart
2
- Japanese:
3
- Katakana:
4
- mapping: { Katakana: Romaji }
5
- ア: a
6
- イ: i
7
- ウ: u
8
- エ: e
9
- オ: o
10
- ー: '-'
11
- カ: ka
12
- キ: ki
13
- ク: ku
14
- ケ: ke
15
- コ: ko
16
- ガ: ga
17
- ギ: gi
18
- グ: gu
19
- ゲ: ge
20
- ゴ: go
21
- サ: sa
22
- ス: su
23
- セ: se
24
- ソ: so
25
- ザ: za
26
- ズ: zu
27
- ゼ: ze
28
- ゾ: zo
29
- ジャ: ja
30
- ジ: ji
31
- ジュ: ju
32
- ジョ: jo
33
- タ: ta
34
- テ: te
35
- ト: to
36
- ダ: da
37
- デ: de
38
- ド: do
39
- ナ: na
40
- ニ: ni
41
- ヌ: nu
42
- ネ: ne
43
- ノ: 'no'
44
- ハ: ha
45
- ヒ: hi
46
- ヘ: he
47
- ホ: ho
48
- バ: ba
49
- ビ: bi
50
- ブ: bu
51
- ベ: be
52
- ボ: bo
53
- パ: pa
54
- ピ: pi
55
- プ: pu
56
- ペ: pe
57
- ポ: po
58
- フ: fu
59
- マ: ma
60
- ミ: mi
61
- ム: mu
62
- メ: me
63
- モ: mo
64
- ヤ: ya
65
- ユ: yu
66
- ヨ: yo
67
- ラ: ra
68
- リ: ri
69
- ル: ru
70
- レ: re
71
- ロ: ro
72
- ワ: wa
73
- ヲ: wo
74
- ン: n
75
- ツ: tsu
76
- キャ: kya
77
- キュ: kyu
78
- キョ: kyo
79
- ギャ: gya
80
- ギュ: gyu
81
- ギョ: gyo
82
- シャ: sha
83
- シ: shi
84
- シュ: shu
85
- ショ: sho
86
- チャ: cha
87
- チ: chi
88
- チュ: chu
89
- チョ: cho
90
- ニャ: nya
91
- ニュ: nyu
92
- ニョ: nyo
93
- ビャ: bya
94
- ビュ: byu
95
- ビョ: byo
96
- ピャ: pya
97
- ピュ: pyu
98
- ピョ: pyo
99
- ミャ: mya
100
- ミュ: myu
101
- ミョ: myo
102
- リャ: rya
103
- リュ: ryu
104
- リョ: ryo
105
- ヂ: ji
106
- ヅ: zu
107
- ヂャ: ja
108
- ヂュ: ju
109
- ヂョ: jo
@@ -1,12 +0,0 @@
1
- require 'language_cards/models/grapheme'
2
-
3
- module LanguageCards
4
- module GraphemeBuilder
5
- # Hash {translation => grapheme}
6
- def self.call(translation_graphemes = {})
7
- translation_graphemes.each_with_object([]) do |(key, value), memo|
8
- memo << Grapheme.new(key, value)
9
- end
10
- end
11
- end
12
- end
@@ -1,25 +0,0 @@
1
- require 'language_cards/menu_node'
2
- require 'language_cards/yaml_loader'
3
- require 'language_cards/user_interface'
4
-
5
- module LanguageCards
6
- class LanguageCards
7
- def initialize
8
- self.cards = builder(YAMLLoader.new.load)
9
- end
10
-
11
- def start
12
- UserInterface.new(cards).start
13
- end
14
-
15
- private
16
- attr_accessor :cards
17
- def builder(cards_yaml)
18
- cards_yaml.each_with_object([]) do |(language, values), memo|
19
- values.each do |category_with_card_set|
20
- memo << MenuNode.new(language, category_with_card_set)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,18 +0,0 @@
1
-
2
- module LanguageCards
3
- class Grapheme
4
- attr_reader :translation
5
- def initialize grapheme, translation
6
- @grapheme = grapheme
7
- @translation = Array(translation)
8
- end
9
-
10
- def display
11
- @grapheme
12
- end
13
-
14
- def to_s
15
- @grapheme
16
- end
17
- end
18
- end