Skip to content

Commit 863916d

Browse files
author
Lionel Laské
committed
Merge branch 'release/1.8.0'
2 parents 9630e2a + 62958db commit 863916d

File tree

1,627 files changed

+52344
-188717
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,627 files changed

+52344
-188717
lines changed

CHANGELOG.md

+38
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,44 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7+
## [1.8.0] - 2024-04-10
8+
### Added
9+
- Chart Activity
10+
- Word Puzzle Template in Exerciser activity
11+
- CSV support in the Journal
12+
- Export CSV instead of TXT in Measure.activity
13+
- Export CSV in Stopwatch activity
14+
- Allow any files to be copied from device on Android/iOS
15+
16+
### Changed
17+
- Rewrite of Chat activity
18+
- Migrate localization to i18next
19+
- Updated Etoys activity, supports (local) saving now
20+
- Add pause button in Gears Activity #1506
21+
22+
### Fixed
23+
- Chess multiplayer bug when a third player join #1047
24+
- Undefined tutorial step in curriculum activity #1293
25+
- Bad cursor pointer on scrollbar #1281
26+
- Extra white space to right side of the buttons #1124
27+
- Migrating Measure activity to i18next #1362
28+
- Unable to create password mainly based on numbers #1380
29+
- QR activity Photo Loading Icon Overlaping #1268
30+
- Fototoon Activity: interactive buttons appears under the box shape #1221
31+
- "Help" pop-ups nearly impossible to close in Chrome on Mobile #1403
32+
- XSS injections on Labyrinth JS and Paint Activity #787
33+
- Style for Planet Info in Planet Activity is Hard to See #1448
34+
- Misaligned button in Speak activity #1504
35+
- Added pause functionality to Blockrain activity #1501
36+
- Fraction Bounce Activity, trick to cheat the score #1511
37+
- Tooltips not localized in Reflection activity #1508
38+
- Time fluctuations in Clock Activity #1507
39+
- Resizing textarea in activity palette looks ugly #1303
40+
- Player without face and color #1536
41+
- Undeletable text in FotoToon #1549
42+
- Blockrain: Game can start before pressing play button #1563
43+
- Tank Operation the music persists even after returning to a previous screen #1553
44+
745
## [1.7.0] - 2023-03-28
846
### Added
947
- Evaluation mode in Exerciser activity

CODE_OF_CONDUCT.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Nobody is expected to be perfect in this community. Asking questions early avoid
4343
Step down considerately
4444
-----------------------
4545

46-
When somebody leaves or disengages from the project, we ask that they do so in a way that minimises disruption to the project. They should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.
46+
When somebody leaves or disengages from the project, we ask that they do so in a way that minimizes disruption to the project. They should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.
4747

4848

4949
Leadership by example
@@ -63,4 +63,4 @@ Conduct](http://www.ubuntu.com/community/conduct). It is licensed
6363
under the Creative Commons Attribution-Share Alike 3.0 license. You
6464
may re-use it for your own project, and modify it as you wish, just
6565
please allow others to use your modifications and give credit to the
66-
Ubuntu Project!*
66+
Ubuntu Project!*

CONTRIBUTING.md

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ As all Open Source software, contributions to Sugarizer are welcome.
22

33
A good way to start to contribute is testing and trying Sugarizer to find some issues. If you find one, don't be shy, submit your issue [here](https://github.com/llaske/Sugarizer/issues) by giving the maximum information on it, specifically detailed steps to reproduce it. We will check your issue and ask you more information if needed.
44

5+
Issues are also the way to propose new features. If you have a suggestion, explain it in detail in an issue and we will discuss it.
6+
57
If you're a developer, the best way to start is to read the [architecture](docs/architecture.md) then to do the whole [tutorial](docs/tutorial.md). It will give you a good understanding of Sugarizer internal.
68

79
When you think you're ready, you could try to fix some existing issues [here](https://github.com/llaske/Sugarizer/issues). If you find a fix, send a Pull Request, we will be pleased to review it.
@@ -17,6 +19,7 @@ So to send your Pull Request:
1719

1820
Few rules to respect when you fix an issue:
1921

22+
* [ ] Do not send a Pull Request without a related issue that has been approved by a Sugarizer maintainer,
2023
* [ ] Ensure your pull request contains only update related to the fix,
2124
* [ ] Respect indentation of the original file,
2225
* [ ] Mention the issue number in the pull request but not in the commit message

README.md

+36-39
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
![](images/sugarizer_logo_with_text.svg)
22

3-
# What is Sugarizer ?
3+
# What is Sugarizer?
44

5-
Sugarizer is a free/libre learning platform. The Sugarizer UI use ergonomic principles from The [Sugar platform](https://sugarlabs.org/), developed for the One Laptop per Child project and used by more than 2 million children around the world.
5+
Sugarizer is a free/libre learning platform. The Sugarizer UI uses ergonomic principles from The [Sugar platform](https://sugarlabs.org/), developed for the One Laptop per Child project and used by more than 2 million children around the world.
66

77
Sugarizer runs on every device: laptops, desktops, tiny computers, tablets or smartphones.
88

@@ -16,23 +16,23 @@ Sugarizer is available as:
1616

1717
# Sugarizer Application
1818

19-
Sugarizer Application is a cross-platform application for installing on any GNU+Linux, Windows, Mac OS, Android or iOS device.
19+
Sugarizer Application is a cross-platform application for installation on any GNU+Linux, Windows, Mac OS, Android or iOS device.
2020

2121
To run **Sugarizer Application on Android**, download it on [Google Play](https://play.google.com/store/apps/details?id=org.olpc_france.sugarizer), [Amazon Store](http://www.amazon.com/gp/product/B00NKK7PZA) or [F-Droid](https://f-droid.org/repository/browse/?fdid=org.olpc_france.sugarizer).
2222

23-
Sugarizer on Android is also available as a launcher to replace the current launcher of your device so you could launch native Android applications from Sugarizer. You could download this Sugarizer version on [Google Play](https://play.google.com/store/apps/details?id=org.olpc_france.sugarizeros).
23+
Sugarizer on Android is also available as a launcher to replace the current launcher of your device so you can launch native Android applications from Sugarizer. You can download this Sugarizer version on [Google Play](https://play.google.com/store/apps/details?id=org.olpc_france.sugarizeros).
2424

25-
You could also build yourself the Sugarizer Application APK using instruction below.
25+
You could also build yourself the Sugarizer Application APK using the instructions below.
2626

27-
<a href="https://play.google.com/store/apps/details?id=org.olpc_france.sugarizer">![](images/googleplay.png)</a>
28-
<a href="http://www.amazon.com/gp/product/B00NKK7PZA">![](images/amazonstore.png)</a>
29-
<a href="https://f-droid.org/repository/browse/?fdid=org.olpc_france.sugarizer">![](images/fdroid.png)</a>
27+
<a href="https://play.google.com/store/apps/details?id=org.olpc_france.sugarizer"><img src="images/googleplay.png" alt="Google Play" width="20%" ></a>
28+
<a href="http://www.amazon.com/gp/product/B00NKK7PZA"><img src="images/amazonstore.png" alt="Amazon Store" width="20%" ></a>
29+
<a href="https://f-droid.org/repository/browse/?fdid=org.olpc_france.sugarizer"><img src="images/fdroid.png" alt="F-Droid" width="20%" ></a>
3030

3131

3232

33-
To run **Sugarizer Application on iOS**, download it on [Apple Store](https://itunes.apple.com/us/app/sugarizer/id978495303) or build yourself the Sugarizer Application IPA using instructions below.
33+
To run **Sugarizer Application on iOS**, download it on [Apple Store](https://itunes.apple.com/us/app/sugarizer/id978495303) or build yourself the Sugarizer Application IPA using the instructions below.
3434

35-
<a href="https://apps.apple.com/us/app/sugarizer/id978495303">![](images/applestore.png)</a>
35+
<a href="https://apps.apple.com/us/app/sugarizer/id978495303"><img src="images/applestore.png" alt="Apple Store" width="20%" ></a>
3636

3737
To run **Sugarizer Application on GNU Linux/Mac OS/Windows**, download it [here](https://sugarizer.org#desktop).
3838
The Sugarizer desktop application has four possible arguments:
@@ -42,7 +42,7 @@ The Sugarizer desktop application has four possible arguments:
4242
* `--logoff` to logoff the previous user if one is connected (unsynchronized content will be lost)
4343
* `--init` to remove all existing Journal and settings (all will be lost)
4444

45-
If you're a developer you could also launch Sugarizer desktop application using [electron](https://github.com/electron/electron). First install Node.js and npm on your computer. See [here](http://nodejs.org/) for more information. Then install electron and specific modules for Sugarizer by running:
45+
If you're a developer you could also launch Sugarizer desktop application using [electron](https://github.com/electron/electron). First, install Node.js and npm on your computer. See [here](http://nodejs.org/) for more information. Then install electron and specific modules for Sugarizer by running:
4646

4747
npm install
4848

@@ -104,9 +104,9 @@ Sugarizer Web App is a web application that runs on any device with a recent ver
104104

105105
As a web application, it does not run offline and requires a permanent network connection to a **Sugarizer Server**.
106106

107-
Sugarizer Server allow deployment of Sugarizer on a local server, for example on a school server, so expose locally Web Application (without Internet access). Sugarizer Server can also be used to provide collaboration features for Sugarizer Application on the network.
107+
Sugarizer Server allows deployment of Sugarizer on a local server, for example on a school server, so exposes locally Web Application (without Internet access). Sugarizer Server can also be used to provide collaboration features for Sugarizer Application on the network.
108108

109-
To install your own Sugarizer Server, follow instructions on
109+
To install your own Sugarizer Server, follow the instructions on
110110
[Sugarizer Server repository](https://github.com/llaske/sugarizer-server)
111111

112112

@@ -119,13 +119,13 @@ If you're a developer and you want to learn more about Sugarizer architecture, s
119119

120120
# Activities distribution
121121

122-
All activities could be found in the [activities](activities) directory. Each activity has its own subdirectory. So for example, the *Abecedarium* activity is located in [activities/Abecedarium.activity](activities/Abecedarium.activity)
122+
All activities can be found in the [activities](activities) directory. Each activity has its own subdirectory. So for example, the *Abecedarium* activity is located in [activities/Abecedarium.activity](activities/Abecedarium.activity)
123123

124124
You could distribute Sugarizer with whatever activities you want.
125-
To do that, you first need to adapt the content of the [activities](activities) directory to match your wish: removing activities you don't want to distribute and adding in this directory new activities you want to include.
125+
To do that, you first need to adapt the content of the [activities](activities) directory to match your wish: removing activities you don't want to distribute and adding in this directory new activities you want to include.
126126

127127
Then you need to update the [activities.json](activities.json) file to reflect your choice.
128-
Here an example of this file:
128+
Here is an example of this file:
129129

130130
[
131131
{"id": "org.sugarlabs.GearsActivity", "name": "Gears", "version": 6, "directory": "activities/Gears.activity", "icon": "activity/activity-icon.svg", "favorite": true, "activityId": null},
@@ -178,7 +178,7 @@ With Sugarizer, it's easy to create an activity with a bunch of HTML and JavaScr
178178

179179
![](images/tutorial_teaser.png)
180180

181-
If you're interested to create your own activity, a full tutorial will guide you between all development steps:
181+
If you're interested in creating your own activity, a full tutorial will guide you between all the development steps:
182182

183183
* **Step 1**: create the activity from a template
184184
* **Step 2**: customize icon and content
@@ -214,15 +214,15 @@ Refer [this](docs/ios/ios_doc.md) documentation for building sugarizer for iOS.
214214

215215
# Reduce package size
216216

217-
The current size of Sugarizer is more than 400 Mb. This huge size is related to media content and resources include in three activities:
217+
The current size of Sugarizer is more than 400 Mb. This huge size is related to media content and resources included in three activities:
218218

219219
* **Abecedarium activity**: about 150 Mb
220220
* **Etoys activity**: about 100 Mb
221221
* **Scratch activity**: about 50 Mb
222222

223-
By the way, these activities are able to retrieve the content remotely if its not deployed locally. So, if you want to reduce the Sugarizer package size (specifically for deployment on mobile) you could either remove completely those three activities or just remove the media content of these activities.
223+
By the way, these activities are able to retrieve the content remotely if it's not deployed locally. So, if you want to reduce the Sugarizer package size (specifically for deployment on mobile) you could either remove completely those three activities or just remove the media content of these activities.
224224

225-
To remove activities, just remove these activities directory and update [activities.json](activities.json) file as explain above.
225+
To remove activities, just remove these activities directory and update [activities.json](activities.json) file as explained above.
226226

227227
To remove media content for **Abecedarium**, remove directories:
228228

@@ -239,19 +239,19 @@ To remove resources for **Scratch**, remove directory [activities/Scratch.activi
239239

240240
# Optimize performance
241241

242-
If you want to optimize JavaScript performance, you could generate an optimized version of Sugarizer with [Grunt](http://gruntjs.com). This optimized version will minimize and reduce size of all JavaScript files.
242+
If you want to optimize JavaScript performance, you could generate an optimized version of Sugarizer with [Grunt](http://gruntjs.com). This optimized version will minimize and reduce the size of all JavaScript files.
243243

244-
First ensure than Node.js and npm is installed on your machine. See [here](http://nodejs.org/) for more information.
244+
First, ensure that Node.js and npm are installed on your machine. See [here](http://nodejs.org/) for more information.
245245

246246
The [Gruntfile.js](Gruntfile.js) contains tasks settings to build an optimized version of Sugarizer. To do that, ensure first that grunt is installed:
247247

248248
npm install -g grunt-cli
249249

250-
Then install specific component for Sugarizer by running:
250+
Then install the specific component for Sugarizer by running:
251251

252252
npm install --only=dev
253253

254-
Finally launch:
254+
Finally, launch:
255255

256256
grunt -v
257257

@@ -262,20 +262,17 @@ At the end of the process, all JavaScript files in all directories have been rep
262262

263263
If you're not a developer and you want to translate Sugarizer into your own language, please go to the [Sugarizer translation platform](http://translate.sugarizer.org) where you will be able to do that. If you're a developer, the following paragraphs will explain to you how the Sugarizer localization system works.
264264

265-
Sugarizer use [webL10n](https://github.com/fabi1cazenave/webL10n) localization system by Fabien Cazenave.
265+
Sugarizer use [i18next](https://www.i18next.com/) localization system.
266266

267-
Here how to add a new translation. See a video tutorial [here](https://youtu.be/vTPVegrVm5A).
267+
All strings are localized in JSON files in the [locales](locales) directory at the root of the repository.
268+
If you want to add a new translation, copy the `en.json` files in a new one and:
268269

269-
All strings are localized in the [locale.ini](locale.ini) file at the root of the repository.
270-
If you want to add a new translation, copy the whole [en] section at the end of the file and:
270+
* Replace "en" in the new file name by the [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of your language. For example, "fr.json" for French,
271+
* Substitute the right side of the ":" character on each line of the file by the string localized in your language. For example:
271272

272-
* Replace "en" by the [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of your language. For example, "fr" for French,
273-
* Substitute the right side of the "=" character on each line by the string localized in your language. For example:
274-
275-
[fr]
276-
StartNew=Commencer un nouveau
277-
NameActivity=Activité {{name}}
278-
RemoveFavorite=Retirer le favori
273+
"StartNew": "Commencer un nouveau",
274+
"NameActivity": "Activité {{name}}",
275+
"RemoveFavorite": "Retirer le favori",
279276

280277
Warning: Note that text inside {{}} must not be localized. So here, **{{name}}** is not translated.
281278

@@ -286,13 +283,13 @@ Sugarizer automatically detects the navigator language. To enable this detection
286283

287284
Sugarizer settings display a list of all available languages. You need to add your language in this dialog. For this you have to:
288285

289-
* Add a new string in [locale.ini](locale.ini) with the name of your language in English. For example:
286+
* Add a new string in [locales/en.json](locales/en.json) with the name of your language in English. For example:
290287

291-
French=French
288+
"French": "French",
292289

293-
* Add the same line for all languages/sections in the file. If you're able to do that, translate the right side of the "=" character with the localized string for the name of your language. If you don't know how to translate it, just let the English word. For example:
290+
* Add the same line in all other language files. If you're able to do that, translate the right side of the ":" character with the localized string for the name of your language. If you don't know how to translate it, just use the English word. For example:
294291

295-
French=Français
292+
"French": "Français",
296293

297294
* Add your string in the [js/dialog.js](js/dialog.js) file in the create function of the Enyo class Sugar.DialogLanguage. You should give the ISO 639-1 language code and the new string for your language name. For example:
298295

0 commit comments

Comments
 (0)