Skip to content

Commit ce2d5e9

Browse files
feat: add language managers (#7)
1 parent 720f8e4 commit ce2d5e9

8 files changed

Lines changed: 1394 additions & 286 deletions

language-managers.json

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
{
2+
"$schema": "./schemas/language-managers.schema.json",
3+
"bg": [
4+
{
5+
"crowdin": "lyubomirv",
6+
"discord": "lyubomirv",
7+
"github": "lyubomirv"
8+
}
9+
],
10+
"cs": [
11+
{
12+
"crowdin": "helak",
13+
"discord": "helak",
14+
"github": null
15+
}
16+
],
17+
"de": [
18+
{
19+
"crowdin": "yungleballz",
20+
"discord": "yungleballz",
21+
"github": "yungleballz"
22+
}
23+
],
24+
"es": [
25+
{
26+
"crowdin": "tatibugatti",
27+
"discord": "tatibugatti",
28+
"github": "tatacontreras"
29+
}
30+
],
31+
"fr": [
32+
{
33+
"crowdin": "moi952",
34+
"discord": "moi952",
35+
"github": "moi952"
36+
},
37+
{
38+
"crowdin": "chainejoueur542",
39+
"discord": "chainejoueur542",
40+
"github": "jorys-paulin"
41+
},
42+
{
43+
"crowdin": "zdimension",
44+
"discord": "zdimension",
45+
"github": "zdimension"
46+
}
47+
],
48+
"hu": [
49+
{
50+
"crowdin": "Therealmate",
51+
"discord": "mate8090",
52+
"github": "therealmate"
53+
}
54+
],
55+
"it": [
56+
{
57+
"crowdin": "elix",
58+
"discord": "elix",
59+
"github": "TheElixZammuto"
60+
}
61+
],
62+
"ja": [
63+
{
64+
"crowdin": "magicalkayo",
65+
"discord": "magicalkayo",
66+
"github": null
67+
}
68+
],
69+
"ko": [
70+
{
71+
"crowdin": "key994984",
72+
"discord": "alter_gate",
73+
"github": null
74+
}
75+
],
76+
"pl": [
77+
{
78+
"crowdin": "alekshere",
79+
"discord": "alekshere",
80+
"github": null
81+
}
82+
],
83+
"pt": [
84+
{
85+
"crowdin": "vithorio",
86+
"discord": "synthdroid",
87+
"github": "Hazer"
88+
}
89+
],
90+
"pt-BR": [
91+
{
92+
"crowdin": "vithorio",
93+
"discord": "synthdroid",
94+
"github": "Hazer"
95+
}
96+
],
97+
"ru": [],
98+
"sv": [
99+
{
100+
"crowdin": "zjoasan",
101+
"discord": "zjoasan",
102+
"github": "zjoasan"
103+
}
104+
],
105+
"tr": [
106+
{
107+
"crowdin": "ogulcanbayram",
108+
"discord": "bayramog92",
109+
"github": null
110+
}
111+
],
112+
"uk": [
113+
{
114+
"crowdin": "rabbitruthless",
115+
"discord": "hungry_rabbit",
116+
"github": null
117+
}
118+
],
119+
"vi": [
120+
{
121+
"crowdin": "daongochuy",
122+
"discord": "daongochuy2516",
123+
"github": "daongochuy2516"
124+
}
125+
],
126+
"zh-CN": [
127+
{
128+
"crowdin": "x1ao4",
129+
"discord": "x1ao4",
130+
"github": "x1ao4"
131+
}
132+
],
133+
"zh-TW": [
134+
{
135+
"crowdin": "beststeve",
136+
"discord": "beststeve",
137+
"github": null
138+
}
139+
]
140+
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@babel/preset-env": "7.29.0",
1414
"@eslint/js": "10.0.1",
1515
"@jest/globals": "30.3.0",
16+
"ajv": "8.18.0",
1617
"babel-plugin-transform-import-meta": "^2.3.3",
1718
"eslint": "10.0.3",
1819
"eslint-plugin-jest": "29.15.0",
@@ -35,7 +36,8 @@
3536
},
3637
"scripts": {
3738
"build": "echo \"No build step required\"",
38-
"test": "npm-run-all test:unit test:report test:lint",
39+
"test": "npm-run-all test:schema test:unit test:report test:lint",
40+
"test:schema": "node src/validate-language-managers.js",
3941
"test:unit": "jest --coverage",
4042
"test:report": "jest --reporters=jest-junit",
4143
"test:lint": "eslint ."
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"title": "Language Managers",
4+
"description": "Maps Crowdin language IDs to their language managers across platforms.",
5+
"type": "object",
6+
"properties": {
7+
"$schema": {
8+
"type": "string",
9+
"description": "JSON Schema reference URI."
10+
}
11+
},
12+
"patternProperties": {
13+
"^[a-z]{2}(-[A-Za-z]{2,})?$": {
14+
"type": "array",
15+
"items": {
16+
"type": "object",
17+
"description": "A single language manager entry.",
18+
"properties": {
19+
"discord": {
20+
"type": "string",
21+
"description": "Discord username of the manager.",
22+
"minLength": 1
23+
},
24+
"crowdin": {
25+
"type": "string",
26+
"description": "Crowdin username of the manager.",
27+
"minLength": 1
28+
},
29+
"github": {
30+
"type": ["string", "null"],
31+
"description": "GitHub username of the manager, or null if not available.",
32+
"minLength": 1
33+
}
34+
},
35+
"required": ["discord", "crowdin", "github"],
36+
"additionalProperties": false
37+
}
38+
}
39+
},
40+
"additionalProperties": false
41+
}

0 commit comments

Comments
 (0)