@read-frog/definitions 0.3.1 → 0.3.3

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.
@@ -0,0 +1,183 @@
1
+ import type { LangCodeISO6393 } from "../languages"
2
+
3
+ export const LANG_CODE_TO_ZH_HANT_NAME = {
4
+ "eng": "英語",
5
+ "cmn": "簡體中文",
6
+ "cmn-Hant": "繁體中文",
7
+ "yue": "粵語",
8
+ "spa": "西班牙語",
9
+ "rus": "俄文",
10
+ "arb": "阿拉伯語",
11
+ "ben": "孟加拉語",
12
+ "hin": "印地語",
13
+ "por": "葡萄牙語",
14
+ "ind": "印尼語",
15
+ "jpn": "日語",
16
+ "fra": "法語",
17
+ "deu": "德文",
18
+ "jav": "爪哇語",
19
+ "kor": "韓語",
20
+ "tel": "泰盧固語",
21
+ "vie": "越南語",
22
+ "mar": "馬拉地語",
23
+ "ita": "義大利語",
24
+ "tam": "泰米爾語",
25
+ "tur": "土耳其語",
26
+ "urd": "烏爾都語",
27
+ "guj": "古吉拉特語",
28
+ "pol": "波蘭語",
29
+ "ukr": "烏克蘭語",
30
+ "kan": "坎納達語",
31
+ "mai": "邁蒂利語",
32
+ "mal": "馬拉雅拉姆語",
33
+ "pes": "波斯語",
34
+ "mya": "緬甸語",
35
+ "swh": "斯瓦希里語",
36
+ "sun": "巽他語",
37
+ "ron": "羅馬尼亞語",
38
+ "pan": "旁遮普語",
39
+ "bho": "博傑普爾語",
40
+ "amh": "阿姆哈拉語",
41
+ "hau": "豪薩語",
42
+ "fuv": "富拉語",
43
+ "bos": "波士尼亞語",
44
+ "hrv": "克羅埃西亞語",
45
+ "nld": "荷蘭語",
46
+ "srp": "塞爾維亞語",
47
+ "tha": "泰語",
48
+ "ckb": "庫德語",
49
+ "yor": "約魯巴語",
50
+ "uzn": "烏茲別克語",
51
+ "zlm": "馬來語",
52
+ "ibo": "伊博語",
53
+ "npi": "尼泊爾語",
54
+ "ceb": "宿霧語",
55
+ "skr": "旁遮普語",
56
+ "tgl": "塔加路語",
57
+ "hun": "匈牙利語",
58
+ "azj": "北阿塞拜疆語",
59
+ "sin": "僧伽羅語",
60
+ "koi": "科米-彼爾姆語",
61
+ "ell": "現代希臘文",
62
+ "ces": "捷克語",
63
+ "mag": "馬加哈語",
64
+ "run": "魯恩達語",
65
+ "bel": "白俄羅斯語",
66
+ "plt": "高原馬達加斯加語",
67
+ "qug": "奇布查語",
68
+ "mad": "馬都拉語",
69
+ "nya": "尼揚加語",
70
+ "zyb": "壯語",
71
+ "pbu": "北部普什圖語",
72
+ "kin": "基尼亞盧安達語",
73
+ "zul": "祖魯語",
74
+ "bul": "保加利亞語",
75
+ "swe": "瑞典語",
76
+ "lin": "林加拉語",
77
+ "som": "索馬利亞語",
78
+ "hms": "南部幹東苗語",
79
+ "hnj": "苗族北部語",
80
+ "ilo": "伊洛卡諾語",
81
+ "kaz": "哈薩克語",
82
+ "heb": "希伯來文",
83
+ "nob": "書面挪威語",
84
+ "nno": "新挪威語",
85
+ "afr": "南非荷蘭語",
86
+ "sqi": "阿爾巴尼亞語",
87
+ "asm": "阿薩姆語",
88
+ "eus": "巴斯克語",
89
+ "bre": "布列塔尼語",
90
+ "cat": "加泰隆尼亞語",
91
+ "cos": "科西嘉語",
92
+ "cym": "威爾斯語",
93
+ "dan": "丹麥語",
94
+ "div": "迪維希語",
95
+ "epo": "世界語",
96
+ "ekk": "愛沙尼亞語",
97
+ "fao": "法羅語",
98
+ "fij": "斐濟語",
99
+ "fin": "芬蘭語",
100
+ "fry": "西弗里西亞語",
101
+ "gla": "蘇格蘭蓋爾語",
102
+ "gle": "愛爾蘭語",
103
+ "glg": "加利西亞語",
104
+ "grn": "瓜拉尼語",
105
+ "hat": "海地克里奧爾語",
106
+ "haw": "夏威夷語",
107
+ "hye": "亞美尼亞語",
108
+ "ido": "伊多語",
109
+ "ina": "國際輔助語",
110
+ "isl": "冰島語",
111
+ "kat": "喬治亞語",
112
+ "khm": "高棉語",
113
+ "kir": "吉爾吉斯語",
114
+ "lao": "寮國語",
115
+ "lat": "拉丁文",
116
+ "lvs": "拉脫維亞語",
117
+ "lit": "立陶宛語",
118
+ "ltz": "盧森堡語",
119
+ "mkd": "馬其頓語",
120
+ "mlt": "馬爾他語",
121
+ "mon": "蒙古語",
122
+ "mri": "毛利語",
123
+ "nso": "北索托語",
124
+ "oci": "奧克語",
125
+ "ori": "奧裡亞語",
126
+ "orm": "奧羅莫語",
127
+ "prs": "達裡語",
128
+ "san": "梵語",
129
+ "slk": "斯洛伐克語",
130
+ "slv": "斯洛維尼亞語",
131
+ "smo": "薩摩亞語",
132
+ "sna": "紹納語",
133
+ "snd": "信德語",
134
+ "sot": "南索托語",
135
+ "tah": "塔希提語",
136
+ "tat": "韃靼語",
137
+ "tgk": "塔吉克語",
138
+ "tir": "提格雷尼亞語",
139
+ "ton": "東加語",
140
+ "tsn": "茨瓦納語",
141
+ "tuk": "土庫曼語",
142
+ "uig": "維吾爾語",
143
+ "vol": "沃拉普克語",
144
+ "wol": "沃洛夫語",
145
+ "xho": "科薩語",
146
+ "ydd": "東意第緒語",
147
+ "aka": "阿坎語",
148
+ "bam": "班巴拉語",
149
+ "bis": "比斯拉馬語",
150
+ "bod": "藏語",
151
+ "che": "車臣語",
152
+ "chv": "楚瓦什語",
153
+ "dzo": "宗喀語",
154
+ "ewe": "埃維語",
155
+ "kab": "卡拜爾語",
156
+ "lug": "盧幹達語",
157
+ "oss": "奧塞梯語",
158
+ "ssw": "斯瓦蒂語",
159
+ "ven": "文達語",
160
+ "war": "瓦瑞語",
161
+ "nde": "北恩德貝勒語",
162
+ "nbl": "南恩德貝勒語",
163
+ "pam": "邦板牙語",
164
+ "hil": "希利蓋農語",
165
+ "bcl": "中比科爾語",
166
+ "min": "米南佳保語",
167
+ "ace": "亞齊語",
168
+ "bug": "布吉語",
169
+ "ban": "峇裡語",
170
+ "bjn": "班賈爾語",
171
+ "mak": "望加錫語",
172
+ "sas": "薩薩克語",
173
+ "tet": "德頓語",
174
+ "cha": "查莫羅語",
175
+ "niu": "紐埃語",
176
+ "tvl": "吐瓦魯語",
177
+ "gil": "吉爾伯特語",
178
+ "mah": "馬紹爾語",
179
+ "pau": "帛琉語",
180
+ "wls": "瓦利斯語",
181
+ "rar": "拉羅湯加語",
182
+ "hif": "斐濟印地語",
183
+ } satisfies Record<LangCodeISO6393, string>
@@ -334,8 +334,15 @@ export type LangCodeISO6391 = z.infer<typeof langCodeISO6391Schema>
334
334
  export type LangCodeISO6393 = z.infer<typeof langCodeISO6393Schema>
335
335
 
336
336
  export * from "./language-names/en"
337
+ export * from "./language-names/es"
338
+ export * from "./language-names/ja"
339
+ export * from "./language-names/ko"
337
340
  export * from "./language-names/locale"
341
+ export * from "./language-names/ru"
342
+ export * from "./language-names/tr"
343
+ export * from "./language-names/vi"
338
344
  export * from "./language-names/zh"
345
+ export * from "./language-names/zh-Hant"
339
346
 
340
347
  export const ISO6393_TO_6391: Record<LangCodeISO6393, LangCodeISO6391 | undefined> = {
341
348
  "eng": "en",
@@ -519,11 +526,22 @@ export const ISO6393_TO_6391: Record<LangCodeISO6393, LangCodeISO6391 | undefine
519
526
  "hif": undefined,
520
527
  }
521
528
 
522
- export const LOCALE_TO_ISO6393: Partial<Record<LangCodeISO6391, LangCodeISO6393>> = {
523
- en: "eng",
524
- zh: "cmn",
529
+ function createLocaleToISO6393Map(): Partial<Record<LangCodeISO6391, LangCodeISO6393>> {
530
+ const result: Partial<Record<LangCodeISO6391, LangCodeISO6393>> = {}
531
+
532
+ for (const langCode of LANG_CODE_ISO6393_OPTIONS) {
533
+ const locale = ISO6393_TO_6391[langCode]
534
+
535
+ if (locale && result[locale] === undefined) {
536
+ result[locale] = langCode
537
+ }
538
+ }
539
+
540
+ return result
525
541
  }
526
542
 
543
+ export const LOCALE_TO_ISO6393: Partial<Record<LangCodeISO6391, LangCodeISO6393>> = createLocaleToISO6393Map()
544
+
527
545
  export const langLevel = z.enum(["beginner", "intermediate", "advanced"])
528
546
  export type LangLevel = z.infer<typeof langLevel>
529
547
 
package/src/types/srs.ts CHANGED
@@ -26,9 +26,11 @@ export type SrsStep = z.infer<typeof srsStepSchema>
26
26
 
27
27
  export const srsWeightsSchema = z.array(z.number())
28
28
 
29
+ export const UNLIMITED_DAILY_LIMIT = -1
30
+
29
31
  export const schedulingParamsShape = {
30
- newPerDay: z.number().int().gte(-1),
31
- reviewsPerDay: z.number().int().gte(-1),
32
+ newPerDay: z.number().int().gte(UNLIMITED_DAILY_LIMIT),
33
+ reviewsPerDay: z.number().int().gte(UNLIMITED_DAILY_LIMIT),
32
34
  desiredRetention: z.number().gt(0).lte(1),
33
35
  enableShortTerm: z.boolean(),
34
36
  maximumInterval: z.number().int().positive(),
@@ -43,8 +45,8 @@ export const schedulingParamsSchema = z.object(schedulingParamsShape).strict()
43
45
  export type SchedulingParams = z.infer<typeof schedulingParamsSchema>
44
46
 
45
47
  export const DEFAULT_SRS_SCHEDULING_PARAMS = {
46
- newPerDay: 20,
47
- reviewsPerDay: 200,
48
+ newPerDay: UNLIMITED_DAILY_LIMIT,
49
+ reviewsPerDay: UNLIMITED_DAILY_LIMIT,
48
50
  desiredRetention: 0.9,
49
51
  enableShortTerm: true,
50
52
  maximumInterval: 36500,