<div dir="ltr"><div>Hi,</div><div><br></div><div>A few suggestions -</div><div>1. If there are more than one nouns/verbs/... to be selected, maybe add a hint if users choose less than the answers.  I was confused when I just selected one noun and it just told me it was wrong, nothing else.</div><div>2. Some words are too close. (See screenshot: <a href="https://nextcloud.slat.org/index.php/s/RdkxB2jL9TM2E3A">https://nextcloud.slat.org/index.php/s/RdkxB2jL9TM2E3A</a> )</div><div>3. I wonder how the languages other than en are applied.  Though I can create json files for Traditional Chinese as well, what I'm thinking about is to let kids(users) learn English/French/Spanish/... etc.  I created -en json files, copied them to -it files, put some obvious differences like to modify Find to ITFind.  Then select language to Italiano.  It still showed Find instead of ITFind.  I even deleted -en files, leaving -it files only.  It still showed Find instead of ITFind.  I guess it didn't work the way I thought it is.</div><div><br></div><div><br></div><div>Franklin<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Johnny Jazeix <<a href="mailto:jazeix@gmail.com">jazeix@gmail.com</a>> 於 2023年7月24日 週一 下午11:57寫道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
We have 2 new grammar activities in GCompris (thank you Bruno for<br>
these two new activities, they will be appreciated). The levels for each<br>
language are in separate .json files, to allow definitions of<br>
language-specific grammar classes and exercises.<br>
<br>
The 2 activities are very similar, the only difference is that one<br>
(grammar_classes) only asks for a single grammatical class per level,<br>
while the other (grammar_analysis) asks for several grammatical classes<br>
per level.<br>
<br>
We have made special development packages, with a special translator<br>
option activated to let you easily create and test localized json files.<br>
<br>
Linux (64bit):<br>
<a href="https://gcompris.net/beta-download/gcompris-qt-4.0-dev-grammar-Linux64.sh" rel="noreferrer" target="_blank">https://gcompris.net/beta-download/gcompris-qt-4.0-dev-grammar-Linux64.sh</a><br>
Windows (64bit):<br>
<a href="https://gcompris.net/beta-download/gcompris-qt-4.0-dev-grammar-win64.exe" rel="noreferrer" target="_blank">https://gcompris.net/beta-download/gcompris-qt-4.0-dev-grammar-win64.exe</a><br>
Android (32bit):<br>
<a href="https://gcompris.net/beta-download/GCompris-Android-release-signed-aligned-armeabi-v7a-dl-4.0-dev-grammar.apk" rel="noreferrer" target="_blank">https://gcompris.net/beta-download/GCompris-Android-release-signed-aligned-armeabi-v7a-dl-4.0-dev-grammar.apk</a><br>
<br>
To create json files for your languages, we have a very detailed README<br>
(<a href="https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/README.md" rel="noreferrer" target="_blank">https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/README.md</a>),<br>
but as it can be long to read, we tried to to summarize the most<br>
important points below.<br>
<br>
- First, copy the base example files<br>
(<a href="https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/examples/grammar_analysis-xx.json" rel="noreferrer" target="_blank">https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/examples/grammar_analysis-xx.json</a><br>
and<br>
<a href="https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/examples/grammar_classes-xx.json" rel="noreferrer" target="_blank">https://invent.kde.org/education/gcompris/-/blob/master/src/activities/grammar_analysis/examples/grammar_classes-xx.json</a>)<br>
to the following path depending on your operating system: on Linux, it<br>
is $HOME/.local/share/GCompris/, on Windows it is<br>
C:\Users\Username\AppData\Local\gcompris\, on Android it is<br>
/Android/data/net.gcompris.full/files/GCompris/.<br>
<br>
- In each file, start by editing the "syntax" section at the end. It<br>
must contain one entry for each of the grammatical classes that will be<br>
included in the sentences. For each entry, you'll need to set a "code"<br>
(a short identifier to refer to this class in the other sections), a<br>
"wordClass" (the full name of the class which will be displayed in the<br>
activity), and an "image" name for the symbol which will be associated<br>
to this class in the interface of the activity. There are currently 10<br>
images available, named "1.svg" to "10.svg". If you really need more,<br>
tell us and we'll add some.<br>
<br>
- Note that we only expect main grammatical classes, not sub-classes<br>
(for example in English, we only have one "pronoun" entry, not one for<br>
each type of pronoun).<br>
<br>
- The next section to edit is "dataset", in the middle of the files. It<br>
contains some groups of sentences which can be reused in different<br>
levels. It is also possible to create one sentence group per level, but<br>
the possibility to reuse sentence groups in different levels can reduce<br>
the amount of work for you and optimize the size of the packages. There<br>
are 3 groups by default (named "small", "medium" and "large"), but you<br>
can add as many groups as you need, and name them as you want.<br>
<br>
- Each entry in a sentence group has a "sentence" value (to write the<br>
actual sentence to display) and an "answer" value which must contain the<br>
list of grammatical classes corresponding to the words in the sentence,<br>
in the same order. If you want, you can add more than one space between<br>
identifiers to align them visually with the words. Example:<br>
       { "sentence": "The flower is very pretty."<br>
       , "answer":   "dtm nou   vrb adv adj"<br>
       }<br>
<br>
- If you need you can group several words to match a single class by<br>
using parenthesis. The only limitation is that the grouped words must be<br>
next to each-others. Example:<br>
       { "sentence": "I (am reading) the news."<br>
       , "answer":   "prn   vrb      dtm nou"<br>
       }<br>
<br>
- If your language allows to agglutinate words together, you can specify<br>
more than one class for a word by using +. Example:<br>
       { "sentence": "ശേഷം ആനയോടി."<br>
       , "answer":   "avyayam naamam+kriya"<br>
       }<br>
<br>
- As a general advice, please try to make relatively small/medium sized<br>
sentences, and using small/medium sized words, else the sentences might<br>
overflow the allocated screen space.<br>
<br>
- The last section, at the beginning of the file, is to create "levels".<br>
Each level contains 4 values:<br>
"objective": the description displayed in the activity.<br>
"difficulty": the difficulty level (not used for now).<br>
"exercise": the name of the sentence group to use.<br>
"goal": the list of grammatical classes to identify in this level.<br>
<br>
In the provided development packages, as the translationMode is<br>
activated, all the sentences in the exercise groups will be displayed<br>
for each level, in the same order as they are written in the json file.<br>
Else for users, sentences will be filtered to use only those containing<br>
at least one of the requested classes (in the goal) in the level, and in<br>
random order.<br>
<br>
If you need more info, please read the README, and if you still have<br>
some doubts you can ask us.<br>
<br>
When your files are ready, you can send them directly to me or Timothée<br>
and we will add them to the activities if you don't have direct commit access.<br>
<br>
These activities will be in our next release that we usually plan to<br>
do between December/January.<br>
<br>
Cheers,<br>
<br>
Timothée & Johnny<br>
</blockquote></div><br clear="all"><br></div>