@read-frog/definitions 0.1.4 → 0.3.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.
- package/dist/index.d.ts +772 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +840 -516
- package/dist/index.js.map +1 -1
- package/package.json +21 -9
- package/src/constants/dictionary.ts +1 -1
- package/src/constants/notebase-column.ts +2 -0
- package/src/index.ts +5 -2
- package/src/schemas/cell-value.ts +4 -4
- package/src/types/card.ts +73 -0
- package/src/types/language-names/en.ts +183 -0
- package/src/types/language-names/locale.ts +183 -0
- package/src/types/language-names/zh.ts +183 -0
- package/src/types/languages.ts +3 -363
- package/src/types/{column.ts → notebase-column.ts} +14 -14
- package/src/types/srs.ts +68 -0
- package/src/utils/srs-day.test.ts +132 -0
- package/src/utils/srs-day.ts +60 -0
- package/src/constants/column.ts +0 -2
package/package.json
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@read-frog/definitions",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"private": false,
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/mengxi-ream/read-frog-monorepo",
|
|
9
|
+
"directory": "packages/definitions"
|
|
10
|
+
},
|
|
11
|
+
"imports": {
|
|
12
|
+
"#/*": "./src/*.ts"
|
|
13
|
+
},
|
|
6
14
|
"exports": {
|
|
7
15
|
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
8
17
|
"import": "./dist/index.js",
|
|
9
|
-
"require": "./dist/index.js"
|
|
10
|
-
"types": "./dist/index.d.ts"
|
|
18
|
+
"require": "./dist/index.js"
|
|
11
19
|
}
|
|
12
20
|
},
|
|
13
21
|
"main": "./dist/index.js",
|
|
14
22
|
"types": "./dist/index.d.ts",
|
|
15
23
|
"files": [
|
|
16
|
-
"dist",
|
|
17
|
-
"src"
|
|
24
|
+
"dist/**",
|
|
25
|
+
"src/**"
|
|
18
26
|
],
|
|
19
27
|
"dependencies": {
|
|
20
|
-
"
|
|
28
|
+
"@date-fns/tz": "^1.4.1",
|
|
29
|
+
"date-fns": "^4.1.0",
|
|
30
|
+
"zod": "^4.4.3"
|
|
21
31
|
},
|
|
22
32
|
"devDependencies": {
|
|
23
|
-
"tsdown": "^0.
|
|
33
|
+
"tsdown": "^0.22.0",
|
|
34
|
+
"vitest": "^4.1.6",
|
|
24
35
|
"@repo/eslint-config": "0.0.1",
|
|
25
36
|
"@repo/tsdown-config": "0.0.0",
|
|
26
37
|
"@repo/typescript-config": "0.0.0"
|
|
@@ -32,7 +43,8 @@
|
|
|
32
43
|
"unlink:packages": "pnpm unlink --global",
|
|
33
44
|
"build:publish": "tsdown",
|
|
34
45
|
"type-check": "tsc --noEmit",
|
|
35
|
-
"lint": "eslint .",
|
|
36
|
-
"lint:fix": "eslint --fix"
|
|
46
|
+
"lint": "eslint . --max-warnings 0",
|
|
47
|
+
"lint:fix": "eslint --fix --max-warnings 0",
|
|
48
|
+
"test": "vitest run"
|
|
37
49
|
}
|
|
38
50
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export * from "./constants/app"
|
|
2
2
|
export * from "./constants/auth"
|
|
3
3
|
export * from "./constants/beta-access"
|
|
4
|
-
export * from "./constants/column"
|
|
5
4
|
export * from "./constants/dictionary"
|
|
5
|
+
export * from "./constants/notebase-column"
|
|
6
6
|
export * from "./constants/url"
|
|
7
7
|
export * from "./schemas/cell-value"
|
|
8
8
|
export * from "./schemas/version"
|
|
9
|
-
export * from "./types/
|
|
9
|
+
export * from "./types/card"
|
|
10
10
|
export * from "./types/languages"
|
|
11
|
+
export * from "./types/notebase-column"
|
|
12
|
+
export * from "./types/srs"
|
|
13
|
+
export * from "./utils/srs-day"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NotebaseColumnConfig } from "#/types/notebase-column"
|
|
2
2
|
|
|
3
3
|
import { z } from "zod"
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import { z } from "zod"
|
|
|
6
6
|
* Create a Zod schema for a cell value based on column config.
|
|
7
7
|
* All cell schemas are nullable (empty cells are valid).
|
|
8
8
|
*/
|
|
9
|
-
export function createCellSchema(config:
|
|
9
|
+
export function createCellSchema(config: NotebaseColumnConfig): z.ZodType {
|
|
10
10
|
switch (config.type) {
|
|
11
11
|
case "string":
|
|
12
12
|
return z.string().nullable()
|
|
@@ -31,7 +31,7 @@ export function createCellSchema(config: ColumnConfig): z.ZodType {
|
|
|
31
31
|
* Each column becomes a field in the object schema.
|
|
32
32
|
*/
|
|
33
33
|
export function createRowSchema(
|
|
34
|
-
columns: Array<{ id: string, name: string, config:
|
|
34
|
+
columns: Array<{ id: string, name: string, config: NotebaseColumnConfig }>,
|
|
35
35
|
): z.ZodObject<Record<string, z.ZodType>> {
|
|
36
36
|
const shape: Record<string, z.ZodType> = {}
|
|
37
37
|
|
|
@@ -48,7 +48,7 @@ export function createRowSchema(
|
|
|
48
48
|
* Use this when generating prompts for LLMs that support structured outputs.
|
|
49
49
|
*/
|
|
50
50
|
export function rowSchemaToJsonSchema(
|
|
51
|
-
columns: Array<{ id: string, name: string, config:
|
|
51
|
+
columns: Array<{ id: string, name: string, config: NotebaseColumnConfig }>,
|
|
52
52
|
) {
|
|
53
53
|
return z.toJSONSchema(createRowSchema(columns))
|
|
54
54
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
export const CARD_STATE_VALUES = [
|
|
4
|
+
"new",
|
|
5
|
+
"learning",
|
|
6
|
+
"review",
|
|
7
|
+
"relearning",
|
|
8
|
+
] as const
|
|
9
|
+
|
|
10
|
+
export const SCHEDULE_STATUS_VALUES = [
|
|
11
|
+
"new",
|
|
12
|
+
"learning",
|
|
13
|
+
"review",
|
|
14
|
+
"suspended",
|
|
15
|
+
"buried",
|
|
16
|
+
] as const
|
|
17
|
+
|
|
18
|
+
export const cardStateSchema = z.enum(CARD_STATE_VALUES)
|
|
19
|
+
export type CardState = z.infer<typeof cardStateSchema>
|
|
20
|
+
|
|
21
|
+
export const scheduleStatusSchema = z.enum(SCHEDULE_STATUS_VALUES)
|
|
22
|
+
export type ScheduleStatus = z.infer<typeof scheduleStatusSchema>
|
|
23
|
+
|
|
24
|
+
export const CARD_STATE_TO_SCHEDULE_STATUS = {
|
|
25
|
+
new: "new",
|
|
26
|
+
learning: "learning",
|
|
27
|
+
relearning: "learning",
|
|
28
|
+
review: "review",
|
|
29
|
+
} satisfies Record<CardState, Extract<ScheduleStatus, "new" | "learning" | "review">>
|
|
30
|
+
|
|
31
|
+
export const basicCardTemplateConfigSchema = z.object({
|
|
32
|
+
type: z.literal("basic"),
|
|
33
|
+
frontPattern: z.string().min(1),
|
|
34
|
+
backPattern: z.string().min(1),
|
|
35
|
+
}).strict()
|
|
36
|
+
|
|
37
|
+
export const cardTemplateConfigSchema = z.discriminatedUnion("type", [
|
|
38
|
+
basicCardTemplateConfigSchema,
|
|
39
|
+
])
|
|
40
|
+
|
|
41
|
+
export type BasicCardTemplateConfig = z.infer<typeof basicCardTemplateConfigSchema>
|
|
42
|
+
export type CardTemplateConfig = z.infer<typeof cardTemplateConfigSchema>
|
|
43
|
+
|
|
44
|
+
export const cardIdentityShape = {
|
|
45
|
+
id: z.uuid(),
|
|
46
|
+
notebaseId: z.uuid(),
|
|
47
|
+
notebaseRowId: z.uuid(),
|
|
48
|
+
templateId: z.uuid(),
|
|
49
|
+
variantKey: z.string(),
|
|
50
|
+
} satisfies z.ZodRawShape
|
|
51
|
+
|
|
52
|
+
export const cardReviewStateShape = {
|
|
53
|
+
state: cardStateSchema,
|
|
54
|
+
scheduleStatus: scheduleStatusSchema,
|
|
55
|
+
dueAt: z.coerce.date(),
|
|
56
|
+
lastReviewTime: z.coerce.date().nullable(),
|
|
57
|
+
stability: z.number(),
|
|
58
|
+
difficulty: z.number(),
|
|
59
|
+
step: z.number().int(),
|
|
60
|
+
lapses: z.number().int(),
|
|
61
|
+
reps: z.number().int(),
|
|
62
|
+
} satisfies z.ZodRawShape
|
|
63
|
+
|
|
64
|
+
export const cardMemoryStateShape = {
|
|
65
|
+
...cardReviewStateShape,
|
|
66
|
+
buriedAt: z.coerce.date().nullable(),
|
|
67
|
+
} satisfies z.ZodRawShape
|
|
68
|
+
|
|
69
|
+
export const cardReviewStateSchema = z.object(cardReviewStateShape)
|
|
70
|
+
export type CardReviewState = z.infer<typeof cardReviewStateSchema>
|
|
71
|
+
|
|
72
|
+
export const cardMemoryStateSchema = z.object(cardMemoryStateShape)
|
|
73
|
+
export type CardMemoryState = z.infer<typeof cardMemoryStateSchema>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { LangCodeISO6393 } from "../languages"
|
|
2
|
+
|
|
3
|
+
export const LANG_CODE_TO_EN_NAME = {
|
|
4
|
+
"eng": "English",
|
|
5
|
+
"cmn": "Simplified Mandarin Chinese",
|
|
6
|
+
"cmn-Hant": "Traditional Mandarin Chinese",
|
|
7
|
+
"yue": "Cantonese", // not supported by franc-min
|
|
8
|
+
"spa": "Spanish",
|
|
9
|
+
"rus": "Russian",
|
|
10
|
+
"arb": "Standard Arabic",
|
|
11
|
+
"ben": "Bengali",
|
|
12
|
+
"hin": "Hindi",
|
|
13
|
+
"por": "Portuguese",
|
|
14
|
+
"ind": "Indonesian",
|
|
15
|
+
"jpn": "Japanese",
|
|
16
|
+
"fra": "French",
|
|
17
|
+
"deu": "German",
|
|
18
|
+
"jav": "Javanese (Javanese)",
|
|
19
|
+
"kor": "Korean",
|
|
20
|
+
"tel": "Telugu",
|
|
21
|
+
"vie": "Vietnamese",
|
|
22
|
+
"mar": "Marathi",
|
|
23
|
+
"ita": "Italian",
|
|
24
|
+
"tam": "Tamil",
|
|
25
|
+
"tur": "Turkish",
|
|
26
|
+
"urd": "Urdu",
|
|
27
|
+
"guj": "Gujarati",
|
|
28
|
+
"pol": "Polish",
|
|
29
|
+
"ukr": "Ukrainian",
|
|
30
|
+
"kan": "Kannada",
|
|
31
|
+
"mai": "Maithili",
|
|
32
|
+
"mal": "Malayalam",
|
|
33
|
+
"pes": "Iranian Persian",
|
|
34
|
+
"mya": "Burmese",
|
|
35
|
+
"swh": "Swahili (individual language)",
|
|
36
|
+
"sun": "Sundanese",
|
|
37
|
+
"ron": "Romanian",
|
|
38
|
+
"pan": "Panjabi",
|
|
39
|
+
"bho": "Bhojpuri",
|
|
40
|
+
"amh": "Amharic",
|
|
41
|
+
"hau": "Hausa",
|
|
42
|
+
"fuv": "Nigerian Fulfulde",
|
|
43
|
+
"bos": "Bosnian (Cyrillic)",
|
|
44
|
+
"hrv": "Croatian",
|
|
45
|
+
"nld": "Dutch",
|
|
46
|
+
"srp": "Serbian (Cyrillic)",
|
|
47
|
+
"tha": "Thai",
|
|
48
|
+
"ckb": "Central Kurdish",
|
|
49
|
+
"yor": "Yoruba",
|
|
50
|
+
"uzn": "Northern Uzbek (Cyrillic)",
|
|
51
|
+
"zlm": "Malay (individual language) (Arabic)",
|
|
52
|
+
"ibo": "Igbo",
|
|
53
|
+
"npi": "Nepali (individual language)",
|
|
54
|
+
"ceb": "Cebuano",
|
|
55
|
+
"skr": "Saraiki",
|
|
56
|
+
"tgl": "Tagalog",
|
|
57
|
+
"hun": "Hungarian",
|
|
58
|
+
"azj": "North Azerbaijani (Cyrillic)",
|
|
59
|
+
"sin": "Sinhala",
|
|
60
|
+
"koi": "Komi-Permyak",
|
|
61
|
+
"ell": "Modern Greek (1453-)",
|
|
62
|
+
"ces": "Czech",
|
|
63
|
+
"mag": "Magahi",
|
|
64
|
+
"run": "Rundi",
|
|
65
|
+
"bel": "Belarusian",
|
|
66
|
+
"plt": "Plateau Malagasy",
|
|
67
|
+
"qug": "Chimborazo Highland Quichua",
|
|
68
|
+
"mad": "Madurese",
|
|
69
|
+
"nya": "Nyanja",
|
|
70
|
+
"zyb": "Yongbei Zhuang",
|
|
71
|
+
"pbu": "Northern Pashto",
|
|
72
|
+
"kin": "Kinyarwanda",
|
|
73
|
+
"zul": "Zulu",
|
|
74
|
+
"bul": "Bulgarian",
|
|
75
|
+
"swe": "Swedish",
|
|
76
|
+
"lin": "Lingala",
|
|
77
|
+
"som": "Somali",
|
|
78
|
+
"hms": "Southern Qiandong Miao",
|
|
79
|
+
"hnj": "Hmong Njua",
|
|
80
|
+
"ilo": "Iloko",
|
|
81
|
+
"kaz": "Kazakh",
|
|
82
|
+
"heb": "Hebrew",
|
|
83
|
+
"nob": "Norwegian Bokmål",
|
|
84
|
+
"nno": "Norwegian Nynorsk",
|
|
85
|
+
"afr": "Afrikaans",
|
|
86
|
+
"sqi": "Albanian",
|
|
87
|
+
"asm": "Assamese",
|
|
88
|
+
"eus": "Basque",
|
|
89
|
+
"bre": "Breton",
|
|
90
|
+
"cat": "Catalan",
|
|
91
|
+
"cos": "Corsican",
|
|
92
|
+
"cym": "Welsh",
|
|
93
|
+
"dan": "Danish",
|
|
94
|
+
"div": "Divehi",
|
|
95
|
+
"epo": "Esperanto",
|
|
96
|
+
"ekk": "Estonian",
|
|
97
|
+
"fao": "Faroese",
|
|
98
|
+
"fij": "Fijian",
|
|
99
|
+
"fin": "Finnish",
|
|
100
|
+
"fry": "Western Frisian",
|
|
101
|
+
"gla": "Scottish Gaelic",
|
|
102
|
+
"gle": "Irish",
|
|
103
|
+
"glg": "Galician",
|
|
104
|
+
"grn": "Guarani",
|
|
105
|
+
"hat": "Haitian Creole",
|
|
106
|
+
"haw": "Hawaiian",
|
|
107
|
+
"hye": "Armenian",
|
|
108
|
+
"ido": "Ido",
|
|
109
|
+
"ina": "Interlingua",
|
|
110
|
+
"isl": "Icelandic",
|
|
111
|
+
"kat": "Georgian",
|
|
112
|
+
"khm": "Khmer",
|
|
113
|
+
"kir": "Kyrgyz",
|
|
114
|
+
"lao": "Lao",
|
|
115
|
+
"lat": "Latin",
|
|
116
|
+
"lvs": "Latvian",
|
|
117
|
+
"lit": "Lithuanian",
|
|
118
|
+
"ltz": "Luxembourgish",
|
|
119
|
+
"mkd": "Macedonian",
|
|
120
|
+
"mlt": "Maltese",
|
|
121
|
+
"mon": "Mongolian",
|
|
122
|
+
"mri": "Maori",
|
|
123
|
+
"nso": "Northern Sotho",
|
|
124
|
+
"oci": "Occitan",
|
|
125
|
+
"ori": "Odia",
|
|
126
|
+
"orm": "Oromo",
|
|
127
|
+
"prs": "Dari",
|
|
128
|
+
"san": "Sanskrit",
|
|
129
|
+
"slk": "Slovak",
|
|
130
|
+
"slv": "Slovenian",
|
|
131
|
+
"smo": "Samoan",
|
|
132
|
+
"sna": "Shona",
|
|
133
|
+
"snd": "Sindhi",
|
|
134
|
+
"sot": "Southern Sotho",
|
|
135
|
+
"tah": "Tahitian",
|
|
136
|
+
"tat": "Tatar",
|
|
137
|
+
"tgk": "Tajik",
|
|
138
|
+
"tir": "Tigrinya",
|
|
139
|
+
"ton": "Tongan",
|
|
140
|
+
"tsn": "Tswana",
|
|
141
|
+
"tuk": "Turkmen",
|
|
142
|
+
"uig": "Uyghur",
|
|
143
|
+
"vol": "Volapük",
|
|
144
|
+
"wol": "Wolof",
|
|
145
|
+
"xho": "Xhosa",
|
|
146
|
+
"ydd": "Eastern Yiddish",
|
|
147
|
+
"aka": "Akan",
|
|
148
|
+
"bam": "Bambara",
|
|
149
|
+
"bis": "Bislama",
|
|
150
|
+
"bod": "Tibetan",
|
|
151
|
+
"che": "Chechen",
|
|
152
|
+
"chv": "Chuvash",
|
|
153
|
+
"dzo": "Dzongkha",
|
|
154
|
+
"ewe": "Ewe",
|
|
155
|
+
"kab": "Kabyle",
|
|
156
|
+
"lug": "Ganda",
|
|
157
|
+
"oss": "Ossetian",
|
|
158
|
+
"ssw": "Swati",
|
|
159
|
+
"ven": "Venda",
|
|
160
|
+
"war": "Waray",
|
|
161
|
+
"nde": "North Ndebele",
|
|
162
|
+
"nbl": "South Ndebele",
|
|
163
|
+
"pam": "Pampanga",
|
|
164
|
+
"hil": "Hiligaynon",
|
|
165
|
+
"bcl": "Central Bikol",
|
|
166
|
+
"min": "Minangkabau",
|
|
167
|
+
"ace": "Acehnese",
|
|
168
|
+
"bug": "Buginese",
|
|
169
|
+
"ban": "Balinese",
|
|
170
|
+
"bjn": "Banjar",
|
|
171
|
+
"mak": "Makasar",
|
|
172
|
+
"sas": "Sasak",
|
|
173
|
+
"tet": "Tetum",
|
|
174
|
+
"cha": "Chamorro",
|
|
175
|
+
"niu": "Niuean",
|
|
176
|
+
"tvl": "Tuvaluan",
|
|
177
|
+
"gil": "Gilbertese",
|
|
178
|
+
"mah": "Marshallese",
|
|
179
|
+
"pau": "Palauan",
|
|
180
|
+
"wls": "Wallisian",
|
|
181
|
+
"rar": "Rarotongan",
|
|
182
|
+
"hif": "Fiji Hindi",
|
|
183
|
+
} satisfies Record<LangCodeISO6393, string>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { LangCodeISO6393 } from "../languages"
|
|
2
|
+
|
|
3
|
+
export const LANG_CODE_TO_LOCALE_NAME = {
|
|
4
|
+
"eng": "English",
|
|
5
|
+
"cmn": "简体中文",
|
|
6
|
+
"cmn-Hant": "繁體中文",
|
|
7
|
+
"yue": "粵語",
|
|
8
|
+
"spa": "Español",
|
|
9
|
+
"rus": "Русский",
|
|
10
|
+
"arb": "العربية",
|
|
11
|
+
"ben": "বাংলা",
|
|
12
|
+
"hin": "हिन्दी",
|
|
13
|
+
"por": "Português",
|
|
14
|
+
"ind": "Bahasa Indonesia",
|
|
15
|
+
"jpn": "日本語",
|
|
16
|
+
"fra": "Français",
|
|
17
|
+
"deu": "Deutsch",
|
|
18
|
+
"jav": "Basa Jawa",
|
|
19
|
+
"kor": "한국어",
|
|
20
|
+
"tel": "తెలుగు",
|
|
21
|
+
"vie": "Tiếng Việt",
|
|
22
|
+
"mar": "मराठी",
|
|
23
|
+
"ita": "Italiano",
|
|
24
|
+
"tam": "தமிழ்",
|
|
25
|
+
"tur": "Türkçe",
|
|
26
|
+
"urd": "اردو",
|
|
27
|
+
"guj": "ગુજરાતી",
|
|
28
|
+
"pol": "Polski",
|
|
29
|
+
"ukr": "Українська",
|
|
30
|
+
"kan": "ಕನ್ನಡ",
|
|
31
|
+
"mai": "मैथिली",
|
|
32
|
+
"mal": "മലയാളം",
|
|
33
|
+
"pes": "فارسی",
|
|
34
|
+
"mya": "မြန်မာစာ",
|
|
35
|
+
"swh": "Kiswahili",
|
|
36
|
+
"sun": "Basa Sunda",
|
|
37
|
+
"ron": "Română",
|
|
38
|
+
"pan": "ਪੰਜਾਬੀ",
|
|
39
|
+
"bho": "भोजपुरी",
|
|
40
|
+
"amh": "አማርኛ",
|
|
41
|
+
"hau": "Hausa",
|
|
42
|
+
"fuv": "Fulfulde",
|
|
43
|
+
"bos": "Босански",
|
|
44
|
+
"hrv": "Hrvatski",
|
|
45
|
+
"nld": "Nederlands",
|
|
46
|
+
"srp": "Српски",
|
|
47
|
+
"tha": "ไทย",
|
|
48
|
+
"ckb": "کوردیی ناوەندی",
|
|
49
|
+
"yor": "Yorùbá",
|
|
50
|
+
"uzn": "Ўзбекча",
|
|
51
|
+
"zlm": "بهاس ملايو",
|
|
52
|
+
"ibo": "Asụsụ Igbo",
|
|
53
|
+
"npi": "नेपाली",
|
|
54
|
+
"ceb": "Cebuano",
|
|
55
|
+
"skr": "سرائیکی",
|
|
56
|
+
"tgl": "Tagalog",
|
|
57
|
+
"hun": "Magyar",
|
|
58
|
+
"azj": "Азәрбајҹан дили",
|
|
59
|
+
"sin": "සිංහල",
|
|
60
|
+
"koi": "Перем Коми кыв",
|
|
61
|
+
"ell": "Ελληνικά",
|
|
62
|
+
"ces": "Čeština",
|
|
63
|
+
"mag": "मगही",
|
|
64
|
+
"run": "Ikirundi",
|
|
65
|
+
"bel": "Беларуская",
|
|
66
|
+
"plt": "Fiteny Malagasy",
|
|
67
|
+
"qug": "Kichwa",
|
|
68
|
+
"mad": "Madhurâ",
|
|
69
|
+
"nya": "Chinyanja",
|
|
70
|
+
"zyb": "Yongbei Bouxcuengh",
|
|
71
|
+
"pbu": "پښتو",
|
|
72
|
+
"kin": "Kinyarwanda",
|
|
73
|
+
"zul": "isiZulu",
|
|
74
|
+
"bul": "Български",
|
|
75
|
+
"swe": "Svenska",
|
|
76
|
+
"lin": "Lingála",
|
|
77
|
+
"som": "Af Soomaali",
|
|
78
|
+
"hms": "Hmongb Shuad",
|
|
79
|
+
"hnj": "Hmong Njua",
|
|
80
|
+
"ilo": "Ilokano",
|
|
81
|
+
"kaz": "Қазақ тілі",
|
|
82
|
+
"heb": "עברית",
|
|
83
|
+
"nob": "Norsk bokmål",
|
|
84
|
+
"nno": "Norsk nynorsk",
|
|
85
|
+
"afr": "Afrikaans",
|
|
86
|
+
"sqi": "Shqip",
|
|
87
|
+
"asm": "অসমীয়া",
|
|
88
|
+
"eus": "Euskara",
|
|
89
|
+
"bre": "Brezhoneg",
|
|
90
|
+
"cat": "Català",
|
|
91
|
+
"cos": "Corsu",
|
|
92
|
+
"cym": "Cymraeg",
|
|
93
|
+
"dan": "Dansk",
|
|
94
|
+
"div": "ދިވެހި",
|
|
95
|
+
"epo": "Esperanto",
|
|
96
|
+
"ekk": "Eesti",
|
|
97
|
+
"fao": "Føroyskt",
|
|
98
|
+
"fij": "Vosa Vakaviti",
|
|
99
|
+
"fin": "Suomi",
|
|
100
|
+
"fry": "Frysk",
|
|
101
|
+
"gla": "Gàidhlig",
|
|
102
|
+
"gle": "Gaeilge",
|
|
103
|
+
"glg": "Galego",
|
|
104
|
+
"grn": "Avañeʼẽ",
|
|
105
|
+
"hat": "Kreyòl ayisyen",
|
|
106
|
+
"haw": "ʻŌlelo Hawaiʻi",
|
|
107
|
+
"hye": "Հایերен",
|
|
108
|
+
"ido": "Ido",
|
|
109
|
+
"ina": "Interlingua",
|
|
110
|
+
"isl": "Íslenska",
|
|
111
|
+
"kat": "ქართული",
|
|
112
|
+
"khm": "ភាសាខ្មែរ",
|
|
113
|
+
"kir": "Кыргызча",
|
|
114
|
+
"lao": "ພາສາລາວ",
|
|
115
|
+
"lat": "Latina",
|
|
116
|
+
"lvs": "Latviešu",
|
|
117
|
+
"lit": "Lietuvių",
|
|
118
|
+
"ltz": "Lëtzebuergesch",
|
|
119
|
+
"mkd": "Македонски",
|
|
120
|
+
"mlt": "Malti",
|
|
121
|
+
"mon": "Монгол",
|
|
122
|
+
"mri": "Te Reo Māori",
|
|
123
|
+
"nso": "Sesotho sa Leboa",
|
|
124
|
+
"oci": "Occitan",
|
|
125
|
+
"ori": "ଓଡ଼ିଆ",
|
|
126
|
+
"orm": "Oromoo",
|
|
127
|
+
"prs": "دری",
|
|
128
|
+
"san": "संस्कृतम्",
|
|
129
|
+
"slk": "Slovenčina",
|
|
130
|
+
"slv": "Slovenščina",
|
|
131
|
+
"smo": "Gagana Samoa",
|
|
132
|
+
"sna": "chiShona",
|
|
133
|
+
"snd": "سنڌي",
|
|
134
|
+
"sot": "Sesotho",
|
|
135
|
+
"tah": "Reo Tahiti",
|
|
136
|
+
"tat": "Татарча",
|
|
137
|
+
"tgk": "Тоҷикӣ",
|
|
138
|
+
"tir": "ትግርኛ",
|
|
139
|
+
"ton": "Lea fakatonga",
|
|
140
|
+
"tsn": "Setswana",
|
|
141
|
+
"tuk": "Türkmençe",
|
|
142
|
+
"uig": "ئۇيغۇرچە",
|
|
143
|
+
"vol": "Volapük",
|
|
144
|
+
"wol": "Wolof",
|
|
145
|
+
"xho": "isiXhosa",
|
|
146
|
+
"ydd": "ייִדיש",
|
|
147
|
+
"aka": "Akan",
|
|
148
|
+
"bam": "Bamanankan",
|
|
149
|
+
"bis": "Bislama",
|
|
150
|
+
"bod": "བོད་སྐད",
|
|
151
|
+
"che": "Нохчийн",
|
|
152
|
+
"chv": "Чӑвашла",
|
|
153
|
+
"dzo": "རྫོང་ཁ",
|
|
154
|
+
"ewe": "Eʋegbe",
|
|
155
|
+
"kab": "Taqbaylit",
|
|
156
|
+
"lug": "Luganda",
|
|
157
|
+
"oss": "Ирон",
|
|
158
|
+
"ssw": "SiSwati",
|
|
159
|
+
"ven": "Tshivenḓa",
|
|
160
|
+
"war": "Winaray",
|
|
161
|
+
"nde": "isiNdebele",
|
|
162
|
+
"nbl": "isiNdebele seSewula",
|
|
163
|
+
"pam": "Kapampangan",
|
|
164
|
+
"hil": "Ilonggo",
|
|
165
|
+
"bcl": "Bikol Sentral",
|
|
166
|
+
"min": "Baso Minangkabau",
|
|
167
|
+
"ace": "Bahsa Acèh",
|
|
168
|
+
"bug": "Basa Ugi",
|
|
169
|
+
"ban": "Basa Bali",
|
|
170
|
+
"bjn": "Bahasa Banjar",
|
|
171
|
+
"mak": "Basa Mangkasara",
|
|
172
|
+
"sas": "Sasak",
|
|
173
|
+
"tet": "Tetun",
|
|
174
|
+
"cha": "Chamoru",
|
|
175
|
+
"niu": "Vagahau Niuē",
|
|
176
|
+
"tvl": "Te Gana Tuvalu",
|
|
177
|
+
"gil": "Taetae ni Kiribati",
|
|
178
|
+
"mah": "Kajin Majel",
|
|
179
|
+
"pau": "A tekoi er a Belau",
|
|
180
|
+
"wls": "Fakaʻuvea",
|
|
181
|
+
"rar": "Māori Kūki ʻĀirani",
|
|
182
|
+
"hif": "फ़िजी हिंदी",
|
|
183
|
+
} satisfies Record<LangCodeISO6393, string>
|