@robotical/martyblocksjr 3.4.3 → 3.5.2
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/editions/free/src/app.bundle.js +1 -1
- package/editions/free/src/assets/blockicons/counter_decrease.svg +42 -2
- package/editions/free/src/assets/blockicons/counter_increase.svg +42 -2
- package/editions/free/src/assets/blockicons/counter_start-reset.svg +52 -2
- package/editions/free/src/inapp/blocks.html +3 -3
- package/editions/free/src/localizations/README.md +91 -0
- package/editions/free/src/localizations/ca.json +1040 -412
- package/editions/free/src/localizations/csv-to-localizations.js +43 -0
- package/editions/free/src/localizations/cy.json +1040 -412
- package/editions/free/src/localizations/da.json +1040 -412
- package/editions/free/src/localizations/de.json +1040 -412
- package/editions/free/src/localizations/el.json +1040 -412
- package/editions/free/src/localizations/en.json +486 -7
- package/editions/free/src/localizations/es.json +1040 -412
- package/editions/free/src/localizations/fr.json +1040 -412
- package/editions/free/src/localizations/it.json +1040 -412
- package/editions/free/src/localizations/ja.json +1040 -412
- package/editions/free/src/localizations/ko.json +1040 -412
- package/editions/free/src/localizations/localizations-to-csv.js +49 -0
- package/editions/free/src/localizations/nl.json +1040 -412
- package/editions/free/src/localizations/no.json +1040 -412
- package/editions/free/src/localizations/pl.json +1040 -412
- package/editions/free/src/localizations/pt-br.json +1040 -412
- package/editions/free/src/localizations/pt.json +1040 -412
- package/editions/free/src/localizations/sv.json +1040 -412
- package/editions/free/src/localizations/th.json +1040 -412
- package/editions/free/src/localizations/tr.json +1040 -412
- package/editions/free/src/localizations/uk.json +1040 -412
- package/editions/free/src/localizations/zh-cn.json +1040 -412
- package/editions/free/src/localizations/zh-tw.json +1040 -412
- package/editions/free/src/settings.json +20 -1
- package/package.json +2 -1
- package/editions/free/src/app.bundle.js.map +0 -1
- package/editions/free/src/inapp/images/clearcolours copy.png +0 -0
|
@@ -1,2 +1,42 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
|
2
|
-
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
id="Layer_2"
|
|
4
|
+
width="75.766235"
|
|
5
|
+
height="66.20533"
|
|
6
|
+
viewBox="0 0 76 66"
|
|
7
|
+
version="1.1"
|
|
8
|
+
sodipodi:docname="counter_decrease.svg"
|
|
9
|
+
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
|
|
10
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
14
|
+
<defs
|
|
15
|
+
id="defs5" />
|
|
16
|
+
<sodipodi:namedview
|
|
17
|
+
id="namedview5"
|
|
18
|
+
pagecolor="#505050"
|
|
19
|
+
bordercolor="#eeeeee"
|
|
20
|
+
borderopacity="1"
|
|
21
|
+
inkscape:showpageshadow="0"
|
|
22
|
+
inkscape:pageopacity="0"
|
|
23
|
+
inkscape:pagecheckerboard="0"
|
|
24
|
+
inkscape:deskcolor="#505050"
|
|
25
|
+
inkscape:zoom="3.5646677"
|
|
26
|
+
inkscape:cx="112.49295"
|
|
27
|
+
inkscape:cy="76.164182"
|
|
28
|
+
inkscape:window-width="1376"
|
|
29
|
+
inkscape:window-height="740"
|
|
30
|
+
inkscape:window-x="0"
|
|
31
|
+
inkscape:window-y="105"
|
|
32
|
+
inkscape:window-maximized="0"
|
|
33
|
+
inkscape:current-layer="Layer_2" />
|
|
34
|
+
<path
|
|
35
|
+
d="m 21.304456,36.359707 v -4.875224 h 13.447569 v 4.875224 z"
|
|
36
|
+
style="fill:#ffffff;stroke:#a8721b;stroke-width:2.10294;stroke-miterlimit:10"
|
|
37
|
+
id="path4" />
|
|
38
|
+
<path
|
|
39
|
+
d="M 38.278219,24.208429 36.34062,21.771954 c 2.179798,-0.34263 4.02657,-0.824849 5.540319,-1.433967 1.51375,-0.60912 2.724751,-1.281689 3.602723,-1.992327 h 0.877975 l 5.540317,1.256307 V 44.81695 h -8.355888 v -21.2684 z"
|
|
40
|
+
style="fill:#ffffff;stroke:#a8721b;stroke-width:1.96009;stroke-miterlimit:10"
|
|
41
|
+
id="path3" />
|
|
42
|
+
</svg>
|
|
@@ -1,2 +1,42 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
|
2
|
-
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
id="Layer_2"
|
|
4
|
+
width="76.339561"
|
|
5
|
+
height="67.040359"
|
|
6
|
+
viewBox="0 0 76 66"
|
|
7
|
+
version="1.1"
|
|
8
|
+
sodipodi:docname="counter_increase.svg"
|
|
9
|
+
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
|
|
10
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
14
|
+
<defs
|
|
15
|
+
id="defs5" />
|
|
16
|
+
<sodipodi:namedview
|
|
17
|
+
id="namedview5"
|
|
18
|
+
pagecolor="#505050"
|
|
19
|
+
bordercolor="#eeeeee"
|
|
20
|
+
borderopacity="1"
|
|
21
|
+
inkscape:showpageshadow="0"
|
|
22
|
+
inkscape:pageopacity="0"
|
|
23
|
+
inkscape:pagecheckerboard="0"
|
|
24
|
+
inkscape:deskcolor="#505050"
|
|
25
|
+
inkscape:zoom="3.5202675"
|
|
26
|
+
inkscape:cx="116.61046"
|
|
27
|
+
inkscape:cy="76.840751"
|
|
28
|
+
inkscape:window-width="1376"
|
|
29
|
+
inkscape:window-height="740"
|
|
30
|
+
inkscape:window-x="0"
|
|
31
|
+
inkscape:window-y="105"
|
|
32
|
+
inkscape:window-maximized="0"
|
|
33
|
+
inkscape:current-layer="Layer_2" />
|
|
34
|
+
<path
|
|
35
|
+
d="m 28.320933,36.539615 v 5.494992 h -4.970201 v -5.494992 h -6.212751 v -4.125472 h 6.212751 v -5.697886 h 4.970201 v 5.697886 h 5.805039 v 4.125472 z"
|
|
36
|
+
style="fill:#ffffff;stroke:#a8721b;stroke-width:1.81179;stroke-miterlimit:10"
|
|
37
|
+
id="path4" />
|
|
38
|
+
<path
|
|
39
|
+
d="M 39.855208,24.519059 37.853441,22.12356 c 2.251988,-0.336867 4.159916,-0.810977 5.723796,-1.409851 1.563877,-0.598876 2.81498,-1.260133 3.722029,-1.95882 h 0.907049 l 5.723792,1.235179 V 44.780986 H 45.297503 V 23.870277 Z"
|
|
40
|
+
style="fill:#ffffff;stroke:#a8721b;stroke-width:1.97544;stroke-miterlimit:10"
|
|
41
|
+
id="path3" />
|
|
42
|
+
</svg>
|
|
@@ -1,2 +1,52 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
|
2
|
-
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
id="Layer_2"
|
|
4
|
+
width="76.89888"
|
|
5
|
+
height="66.205307"
|
|
6
|
+
viewBox="0 0 76 66"
|
|
7
|
+
version="1.1"
|
|
8
|
+
sodipodi:docname="counter_start-reset.svg"
|
|
9
|
+
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
|
|
10
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
14
|
+
<defs
|
|
15
|
+
id="defs5" />
|
|
16
|
+
<sodipodi:namedview
|
|
17
|
+
id="namedview5"
|
|
18
|
+
pagecolor="#505050"
|
|
19
|
+
bordercolor="#eeeeee"
|
|
20
|
+
borderopacity="1"
|
|
21
|
+
inkscape:showpageshadow="0"
|
|
22
|
+
inkscape:pageopacity="0"
|
|
23
|
+
inkscape:pagecheckerboard="0"
|
|
24
|
+
inkscape:deskcolor="#505050"
|
|
25
|
+
inkscape:zoom="3.5646689"
|
|
26
|
+
inkscape:cx="38.432742"
|
|
27
|
+
inkscape:cy="32.962388"
|
|
28
|
+
inkscape:window-width="1376"
|
|
29
|
+
inkscape:window-height="740"
|
|
30
|
+
inkscape:window-x="0"
|
|
31
|
+
inkscape:window-y="105"
|
|
32
|
+
inkscape:window-maximized="0"
|
|
33
|
+
inkscape:current-layer="Layer_2" />
|
|
34
|
+
<path
|
|
35
|
+
fill="#ae1f24"
|
|
36
|
+
d="m 25.493377,37.087819 c 0,-0.978979 0.307119,-1.530401 0.563843,-1.81917 0.329649,-0.370102 0.777284,-0.53799 1.259307,-0.46785 l 0.04328,0.006 0.0415,0.01567 a 7.7965605,9.8121719 0 0 0 1.096854,0.27086 c 0.0054,-1.156567 0.01957,-3.322707 0.03143,-5.002342 a 587.27785,739.10428 0 0 0 0.01364,-2.292989 c 0,-6.42007 4.503032,-11.64328 10.037701,-11.64328 5.375773,0 9.726431,4.247962 10.231577,9.932306 2.231061,2.517587 2.536995,3.482388 2.536995,4.092012 0,0.979724 -0.307712,1.530399 -0.565028,1.819168 -0.330242,0.370102 -0.778471,0.535007 -1.259308,0.464866 l -0.04269,-0.006 -0.0415,-0.01418 a 7.9056528,9.9494674 0 0 0 -1.096855,-0.270115 c -0.0048,1.155822 -0.01957,3.322708 -0.03143,5.001596 -0.0083,1.182684 -0.01423,2.122862 -0.01423,2.291497 0,3.122733 -1.050609,6.052953 -2.959135,8.254163 -1.894297,2.188524 -4.407577,3.390609 -7.077973,3.390609 -5.375179,0 -9.725838,-4.247962 -10.23217,-9.930813 -2.22869,-2.518333 -2.535809,-3.483135 -2.535809,-4.092012 z M 40.772264,26.114602 c -0.429255,-1.118513 -1.529668,-1.298341 -2.190745,-1.298341 -1.568798,0 -3.051627,1.452052 -3.051627,2.987676 0,0.249968 -0.02075,6.175326 -0.02312,7.289362 a 7.9833221,10.047216 0 0 0 1.106933,-0.271607 l 0.0415,-0.01492 0.04269,-0.006 c 0.509297,-0.07387 0.951003,0.08133 1.278281,0.449942 0.362258,0.407411 0.546648,1.025242 0.546648,1.837077 -5.93e-4,0.617085 -0.288146,1.633373 -2.452211,4.062911 0.429256,1.119259 1.529075,1.298341 2.190152,1.298341 1.568798,0 3.05222,-1.451307 3.05222,-2.986184 0,-0.250714 0.02016,-6.177564 0.02253,-7.290854 -0.288739,0.0388 -0.716216,0.140281 -1.10634,0.270861 l -0.0415,0.01418 -0.0421,0.006 c -0.509296,0.07536 -0.951595,-0.07984 -1.278873,-0.446957 -0.362851,-0.40741 -0.547241,-1.025241 -0.547241,-1.837077 0.0012,-0.616339 0.288146,-1.634119 2.452804,-4.064404 z m -2.510908,24.249869 c 5.21332,0 9.444807,-4.879224 9.444214,-10.897107 0,-0.457404 0.04684,-6.536474 0.04684,-7.853469 0,-0.510382 1.840938,0.108942 1.840938,0.108942 0.640326,0.09327 1.163258,-0.406665 1.163258,-1.543086 0,-0.740203 -1.24152,-2.313135 -2.512093,-3.729371 -0.36048,-5.613458 -4.671414,-9.548773 -9.663585,-9.548773 -5.213319,0 -9.444806,4.879223 -9.444806,10.897107 0,0.457404 -0.04625,6.537966 -0.04625,7.85496 0,0.510383 -1.840344,-0.110433 -1.840344,-0.110433 -0.640919,-0.09178 -1.163259,0.406664 -1.163259,1.544578 0,0.740203 1.241521,2.313135 2.511501,3.729371 0.361665,5.614204 4.671414,9.547281 9.663584,9.547281 z m 0,-7.168482 c -1.510101,0 -2.585612,-0.782735 -2.882059,-2.272096 1.283616,-1.406536 2.550039,-3.001853 2.551224,-3.836074 0,-1.244616 -0.524711,-1.636357 -1.165037,-1.544578 0,0 -1.852795,0.620816 -1.852795,0.110433 0,-1.443097 0.02372,-7.22146 0.02372,-7.849737 0,-2.059437 1.859317,-3.733849 3.644522,-3.733849 1.510694,0 2.586205,0.782736 2.882652,2.272096 -1.284209,1.406536 -2.550632,3.004838 -2.551225,3.837567 0,1.243124 0.524712,1.636357 1.165038,1.543086 0,0 1.852202,-0.619324 1.852202,-0.108942 0,1.441606 -0.02312,7.22146 -0.02312,7.849738 5.93e-4,2.057198 -1.858723,3.732356 -3.645114,3.732356 z"
|
|
37
|
+
id="path1"
|
|
38
|
+
style="fill:#a8721b;fill-opacity:1;stroke-width:0.665133"
|
|
39
|
+
inkscape:label="path1" />
|
|
40
|
+
<path
|
|
41
|
+
fill="#ffffff"
|
|
42
|
+
d="m 38.261356,50.364471 c 5.21332,0 9.444807,-4.879224 9.444214,-10.897107 0,-0.457404 0.04684,-6.536474 0.04684,-7.853469 0,-0.510382 1.840938,0.108942 1.840938,0.108942 0.640326,0.09327 1.163258,-0.406665 1.163258,-1.543086 0,-0.740203 -1.24152,-2.313135 -2.512093,-3.729371 -0.36048,-5.613458 -4.671414,-9.548773 -9.663585,-9.548773 -5.213319,0 -9.444806,4.879223 -9.444806,10.897107 0,0.457404 -0.04625,6.537966 -0.04625,7.85496 0,0.510383 -1.840344,-0.110433 -1.840344,-0.110433 -0.640919,-0.09178 -1.163259,0.406664 -1.163259,1.544578 0,0.740203 1.241521,2.313135 2.511501,3.729371 0.361665,5.614204 4.671414,9.547281 9.663584,9.547281 z m 0,-7.168482 c -1.510101,0 -2.585612,-0.782735 -2.882059,-2.272096 1.283616,-1.406536 2.550039,-3.001853 2.551224,-3.836074 0,-1.244616 -0.524711,-1.636357 -1.165037,-1.544578 0,0 -1.852795,0.620816 -1.852795,0.110433 0,-1.443097 0.02372,-7.22146 0.02372,-7.849737 0,-2.059437 1.859317,-3.733849 3.644522,-3.733849 1.510694,0 2.586205,0.782736 2.882652,2.272096 -1.284209,1.406536 -2.550632,3.004838 -2.551225,3.837567 0,1.243124 0.524712,1.636357 1.165038,1.543086 0,0 1.852202,-0.619324 1.852202,-0.108942 0,1.441606 -0.02312,7.22146 -0.02312,7.849738 5.93e-4,2.057198 -1.858723,3.732356 -3.645114,3.732356 z"
|
|
43
|
+
id="path2"
|
|
44
|
+
style="stroke-width:0.665133" />
|
|
45
|
+
<path
|
|
46
|
+
fill="none"
|
|
47
|
+
stroke="#ae1f24"
|
|
48
|
+
stroke-miterlimit="10"
|
|
49
|
+
d="m 48.454396,26.370539 c -3.264477,-4.108427 -3.940969,-4.313625 -7.368491,0 m -12.73122,14.535446 c 3.264476,4.108427 3.940375,4.313624 7.368491,0"
|
|
50
|
+
id="path3"
|
|
51
|
+
style="stroke:#a8721b;stroke-width:0.665133;stroke-opacity:1" />
|
|
52
|
+
</svg>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<div class="block-title" id="BLOCKS_ON_TOUCH_Cog">
|
|
42
42
|
</div>
|
|
43
43
|
<div class="block-image-wrapper">
|
|
44
|
-
<img class="block-image" src="images/
|
|
44
|
+
<img class="block-image" src="images/ontouch.png" />
|
|
45
45
|
</div>
|
|
46
46
|
<div class="block-description" id="BLOCKS_ON_TOUCH_Cog_DESCRIPTION">
|
|
47
47
|
</div>
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
<div class="block-title" id="BLOCKS_SET_PATTERN">
|
|
191
191
|
</div>
|
|
192
192
|
<div class="block-image-wrapper">
|
|
193
|
-
<img class="block-image" src="images/
|
|
193
|
+
<img class="block-image" src="images/patternrainbow.png" />
|
|
194
194
|
</div>
|
|
195
195
|
<div class="block-description" id="BLOCKS_SET_PATTERN_DESCRIPTION">
|
|
196
196
|
</div>
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
<div class="block-title" id="BLOCKS_SELECT_COLOUR">
|
|
200
200
|
</div>
|
|
201
201
|
<div class="block-image-wrapper">
|
|
202
|
-
<img class="block-image" src="images/
|
|
202
|
+
<img class="block-image" src="images/clearcolours.png" />
|
|
203
203
|
</div>
|
|
204
204
|
<div class="block-description" id="BLOCKS_SELECT_COLOUR_DESCRIPTION">
|
|
205
205
|
</div>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Localization CSV Workflow
|
|
2
|
+
|
|
3
|
+
This project provides two Node.js scripts to simplify the translation process by converting between per-language JSON localization files and a flat CSV file:
|
|
4
|
+
|
|
5
|
+
- **localizations-to-csv.js**: Reads all language JSON files (e.g., `en.json`, `fr.json`, etc.) and writes out a single `localizations.csv` file.
|
|
6
|
+
- **csv-to-localizations.js**: Reads `localizations.csv` and reconstructs the per-language JSON files.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
Both scripts require Node.js. The `csv-to-localizations.js` script also requires the [`csv-parse`](https://www.npmjs.com/package/csv-parse) package.
|
|
13
|
+
|
|
14
|
+
Install dependencies (if needed):
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install csv-parse
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. localizations-to-csv.js
|
|
23
|
+
|
|
24
|
+
Generates a flat `localizations.csv` from your per-language JSON files.
|
|
25
|
+
|
|
26
|
+
**Usage:**
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node localizations-to-csv.js
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- **Input:** All `*.json` localization files in the same directory (must include `en.json` as the master key list).
|
|
33
|
+
- **Output:** `localizations.csv`
|
|
34
|
+
|
|
35
|
+
The script will:
|
|
36
|
+
|
|
37
|
+
1. Read all JSON files in the directory.
|
|
38
|
+
2. Use `en.json` as the master list of keys.
|
|
39
|
+
3. For each key, collect the translation from each language file.
|
|
40
|
+
4. Write a CSV file with columns: `key`, and one column per language (e.g., `en`, `fr`, `de`).
|
|
41
|
+
5. Escape fields containing commas, quotes, or newlines.
|
|
42
|
+
|
|
43
|
+
**CSV Example:**
|
|
44
|
+
|
|
45
|
+
```csv
|
|
46
|
+
key,en,fr
|
|
47
|
+
MY_PROJECTS,My Projects,Mes Projets
|
|
48
|
+
ABOUT_SCRATCHJR,About ScratchJr,À propos de ScratchJr
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 2. csv-to-localizations.js
|
|
54
|
+
|
|
55
|
+
Reconstructs the per-language JSON files from `localizations.csv`.
|
|
56
|
+
|
|
57
|
+
**Usage:**
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
node csv-to-localizations.js
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- **Input:** `localizations.csv` (must be in the same directory as `en.json`)
|
|
64
|
+
- **Output:** One JSON file per language (e.g., `en.json`, `fr.json`, etc.)
|
|
65
|
+
|
|
66
|
+
The script will:
|
|
67
|
+
|
|
68
|
+
1. Read and parse the CSV file.
|
|
69
|
+
2. Use the header row to determine language codes.
|
|
70
|
+
3. For each row, assign the translation string for each language and key.
|
|
71
|
+
4. Only include keys that exist in `en.json` (to avoid obsolete keys).
|
|
72
|
+
5. Write out a JSON file for each language.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Notes
|
|
77
|
+
|
|
78
|
+
- The workflow ensures that all language files stay in sync with the master `en.json`.
|
|
79
|
+
- Only keys present in `en.json` are included in the output files.
|
|
80
|
+
- Fields containing commas, quotes, or newlines are properly escaped in the CSV.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Customization
|
|
85
|
+
|
|
86
|
+
- To add a new language, add a column to the CSV and re-run `csv-to-localizations.js`.
|
|
87
|
+
- To update translations, edit the CSV and regenerate the JSON files.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
This workflow makes it easy to manage translations in bulk using spreadsheet tools, while keeping your app’s localization files up to date and consistent.
|