@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.
Files changed (34) hide show
  1. package/editions/free/src/app.bundle.js +1 -1
  2. package/editions/free/src/assets/blockicons/counter_decrease.svg +42 -2
  3. package/editions/free/src/assets/blockicons/counter_increase.svg +42 -2
  4. package/editions/free/src/assets/blockicons/counter_start-reset.svg +52 -2
  5. package/editions/free/src/inapp/blocks.html +3 -3
  6. package/editions/free/src/localizations/README.md +91 -0
  7. package/editions/free/src/localizations/ca.json +1040 -412
  8. package/editions/free/src/localizations/csv-to-localizations.js +43 -0
  9. package/editions/free/src/localizations/cy.json +1040 -412
  10. package/editions/free/src/localizations/da.json +1040 -412
  11. package/editions/free/src/localizations/de.json +1040 -412
  12. package/editions/free/src/localizations/el.json +1040 -412
  13. package/editions/free/src/localizations/en.json +486 -7
  14. package/editions/free/src/localizations/es.json +1040 -412
  15. package/editions/free/src/localizations/fr.json +1040 -412
  16. package/editions/free/src/localizations/it.json +1040 -412
  17. package/editions/free/src/localizations/ja.json +1040 -412
  18. package/editions/free/src/localizations/ko.json +1040 -412
  19. package/editions/free/src/localizations/localizations-to-csv.js +49 -0
  20. package/editions/free/src/localizations/nl.json +1040 -412
  21. package/editions/free/src/localizations/no.json +1040 -412
  22. package/editions/free/src/localizations/pl.json +1040 -412
  23. package/editions/free/src/localizations/pt-br.json +1040 -412
  24. package/editions/free/src/localizations/pt.json +1040 -412
  25. package/editions/free/src/localizations/sv.json +1040 -412
  26. package/editions/free/src/localizations/th.json +1040 -412
  27. package/editions/free/src/localizations/tr.json +1040 -412
  28. package/editions/free/src/localizations/uk.json +1040 -412
  29. package/editions/free/src/localizations/zh-cn.json +1040 -412
  30. package/editions/free/src/localizations/zh-tw.json +1040 -412
  31. package/editions/free/src/settings.json +20 -1
  32. package/package.json +2 -1
  33. package/editions/free/src/app.bundle.js.map +0 -1
  34. package/editions/free/src/inapp/images/clearcolours copy.png +0 -0
@@ -1,2 +1,42 @@
1
- <?xml version="1.0" encoding="UTF-8"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" width="75.766235"
2
- height="66.20533" viewBox="0 0 76 66"><path d="M19.78,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM20.33,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M32.47,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM33.03,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M48.02,32.1c1.45.39,2.18,1.27,2.18,2.64v4.53c0,2.36-1.11,3.54-3.34,3.54h-1.89c-2.23,0-3.34-1.18-3.34-3.54v-1.34h2.79v1.13c0,.81.37,1.22,1.1,1.22h.64c.83,0,1.25-.41,1.25-1.22v-4.3c0-.91-.54-1.37-1.63-1.37h-.75v-2.35h.41c1.08,0,1.63-.46,1.63-1.37v-3.95c0-.81-.42-1.22-1.25-1.22h-.38c-.74,0-1.1.41-1.1,1.22v2.12h-2.79v-2.32c0-2.38,1.11-3.57,3.34-3.57h1.63c2.23,0,3.34,1.19,3.34,3.57v4.15c0,1.32-.61,2.12-1.83,2.41Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M54.13,34.66v-2.32h6.39v2.32h-6.39Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M46.38,54.42c-.28,0-.5-.22-.5-.5v-7.65c0-.28.22-.5.5-.5s.5.22.5.5v7.65c0,.28-.22.5-.5.5Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><polygon points="42.3 50.61 43.03 49.92 46.38 53.54 49.74 49.92 50.47 50.61 46.38 55.01 42.3 50.61" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/></svg>
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"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" width="76.339561"
2
- height="67.040359" viewBox="0 0 76 66"><path d="M18.79,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM19.34,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M31.48,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM32.03,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M48.59,40.32v2.5h-7.5v-6.42c0-.35.03-.64.09-.87.06-.23.16-.45.3-.65s.4-.49.77-.86l2.82-2.7c.21-.21.38-.4.51-.55.13-.15.21-.29.26-.39.05-.11.08-.22.09-.33s.01-.27.01-.46v-3.86c0-.81-.4-1.22-1.19-1.22h-.17c-.79,0-1.19.41-1.19,1.22v2.15h-2.79v-2.32c0-2.38,1.11-3.57,3.34-3.57h1.45c2.23,0,3.34,1.19,3.34,3.57v5c0,.39-.05.73-.16,1.02-.11.29-.38.65-.83,1.08l-3.08,2.96c-.39.37-.61.62-.67.75-.06.14-.09.27-.1.41s-.01.32-.01.55v3.02h4.71Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M57.56,34.1v3.25h-2.56v-3.25h-3.2v-2.44h3.2v-3.37h2.56v3.37h2.99v2.44h-2.99Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M45.04,20.23c-.28,0-.5-.22-.5-.5v-7.65c0-.28.22-.5.5-.5s.5.22.5.5v7.65c0,.28-.22.5-.5.5Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><polygon points="49.13 15.39 48.39 16.08 45.04 12.46 41.68 16.08 40.95 15.39 45.04 10.99 49.13 15.39" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/></svg>
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"?><svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" width="76.89888"
2
- height="66.205307" viewBox="0 0 76 66"><path d="M26.44,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM26.99,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M39.13,42.82c-2.23,0-3.34-1.19-3.34-3.57v-13.71c0-2.38,1.11-3.57,3.34-3.57h1.95c2.23,0,3.34,1.19,3.34,3.57v13.71c0,2.38-1.11,3.57-3.34,3.57h-1.95ZM39.68,24.49c-.74,0-1.1.41-1.1,1.22v13.36c0,.81.42,1.22,1.25,1.22h.7c.74,0,1.1-.41,1.1-1.22v-13.36c0-.81-.42-1.22-1.25-1.22h-.7Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M48.25,26.58l-.64-1.92c.72-.27,1.33-.65,1.83-1.13.5-.48.9-1.01,1.19-1.57h.29l1.83.99v19.87h-2.76v-16.76l-1.74.52Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M51.58,20.23c-.28,0-.5-.22-.5-.5v-7.65c0-.28.22-.5.5-.5s.5.22.5.5v7.65c0,.28-.22.5-.5.5Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><polygon points="55.67 15.39 54.93 16.08 51.58 12.46 48.22 16.08 47.49 15.39 51.58 10.99 55.67 15.39" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><path d="M51.58,54.42c-.28,0-.5-.22-.5-.5v-7.65c0-.28.22-.5.5-.5s.5.22.5.5v7.65c0,.28-.22.5-.5.5Z" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/><polygon points="47.49 50.61 48.22 49.92 51.58 53.54 54.93 49.92 55.67 50.61 51.58 55.01 47.49 50.61" style="fill:#fff; stroke:#a8721b; stroke-miterlimit:10;"/></svg>
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/ontouchcog.png" />
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/setpatternrainbow.png" />
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/selectcolour.png" />
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.