URL: https://linuxfr.org/news/gcompris-sort-en-version-0-97 Title: GCompris sort en version 0.97 Authors: Johnny Jazeix ZeroHeure, palm123, Davy Defaud, Pierre Jarillon, Julien Jorge et Ysabeau đ§¶ Date: 2019ćčŽ12æ02æ„T21:23:20+01:00 License: CC By-SA Tags: gcompris Score: 51 Nous avons le plaisir de vous annoncer la publication de la version 0.97 de GCompris, le logiciel Ă©ducatif pour les enfants de deux Ă dix ans. Cette nouvelle version contient entre autres deux nouvelles activitĂ©s : base de programmation et base de tangram. GCompris propose plus de 150 activitĂ©s, dont des jeux, toujours avec un objectif pĂ©dagogique. Lecture, mathĂ©matiques, sciences, gĂ©ographie et dĂ©couverte de lâordinateur sont les thĂšmes abordĂ©s par ces activitĂ©s. Cette nouvelle version rajoute pas mal de petites nouveautĂ©s.  ---- [Site officiel de GCompris](https://gcompris.net/index-fr.html) [Annonce de la prĂ©cĂ©dente version de GCompris sur LinuxFr.org](https://linuxfr.org/news/gcompris-sort-en-version-0-95) ---- CĂŽtĂ© technique ============== IntĂ©gration dans KDE -------------------- Suite au changement de technologie en 2014, GCompris a rejoint [KDE](https://kde.org/). En plus de profiter de lâinfrastructure dĂ©jĂ mise en place ([Git](https://cgit.kde.org/gcompris.git/), [Phabricator](https://phabricator.kde.org/project/profile/1/), [Jenkins](https://build.kde.org/job/Extragear/job/gcompris/)...), nous bĂ©nĂ©ficions de lâaide des Ă©quipes de traduction qui fournissent un travail considĂ©rable afin de traduire les logiciels dans plein de langues ([GCompris](http://l10n.kde.org/stats/gui/stable-kf5/po/gcompris_qt.po/)). Nous essayons aussi de participer Ă divers programmes (en fonction des disponibilitĂ©s des encadrants potentiels) : le [Season of KDE](https://season.kde.org/?q=program_home&prg=47), le [Google Codeâin](https://codein.withgoogle.com/) et le [Google Summer of Code](https://summerofcode.withgoogle.com/). Architecture ------------ Ătant donnĂ© le but du logiciel (pouvoir ajouter des activitĂ©s facilement), nous avons dĂšs le dĂ©but optĂ© pour une solution Ă base de greffons. Les activitĂ©s sont codĂ©es en [QML](https://www.scriptol.fr/programmation/qml.php) et [[JavaScript]] et un code en C++ permet, entre autres, de les charger au dĂ©marrage. Lâavantage est quâon peut garder une grande indĂ©pendance entre les activitĂ©s, mais il y a la possibilitĂ© « dâhĂ©ritage » afin dâavoir une mĂȘme base pour plusieurs activitĂ©s (par exemple, tous les jeux de mĂ©moire sont basĂ©s sur un mĂȘme code). Un cĆur contenant les Ă©lĂ©ments communs et non spĂ©cifiques Ă une activitĂ© est aussi prĂ©sent, ce code Ă©tant un mix de QML et C++ selon les fonctionnalitĂ©s. Pour le QML, il y a tout ce qui est graphique : - style des Ă©lĂ©ments graphiques (boutons, combobox...) ; - boĂźtes de dialogue de configuration, dâaide ; - le clavier virtuel (Ă voir si remplaçable par celui de [Qt](https://doc.qt.io/qt-5/qtvirtualkeyboard-index.html) fourni sous licence libre depuis Qt 5.7) ; - la gestion de la police dâĂ©criture... Pour le C++, la gestion en interne des onnĂ©es : - la classe de base des activitĂ©s ; - la configuration de GCompris ; - la gestion du tĂ©lĂ©chargement des fichiers de ressources ; - la lecture de fichiers et dossiers. Nous sommes toujours sur du C++11, QML, JavaScript pour les langages, Qt (version 5.6 minimale) pour lâinterface graphique et CMake pour le systĂšme de compilation multiâplateâforme (> 3.0). QtQuick.Controls Ă©tant dĂ©prĂ©ciĂ© depuis 5.11, lâune des prochaines Ă©tapes est de passer Ă QtQuick.Controls 2 qui a Ă©tĂ© introduit en Qt 5.7. Cela devrait aussi permettre de gagner en performance (https://doc.qt.io/qt-5/qtquickcontrols2-differences.html). La majoritĂ© des composants (boutons, barres dâavancement...) a Ă©tĂ© migrĂ©e facilement, il reste deux composants plus compliquĂ©s Ă changer : - le [calendrier Ă©tait un composant](https://doc.qt.io/qt-5/qml-qtquick-controls-calendar.html) prĂȘt Ă lâemploi en QtQuick.Controls 1 mais nâexiste pas en QtQuick.Controls 2, il faut utiliser [les labs](https://doc.qt.io/qt-5/qt-labs-calendar-qmlmodule.html) et le recrĂ©er Ă partir de ses diffĂ©rentes parties ; - la StackView, dont nous nous servons pour passer du menu Ă une activitĂ© et afficher les diffĂ©rents panneaux dâaide, nâa pas la mĂȘme interface entre les deux versions. Une autre grosse Ă©tape est dâavoir des jeux de donnĂ©es spĂ©cifiques par activitĂ©. Le but Ă©tant dâavoir une meilleure granularitĂ© sur la difficultĂ© et dâadapter une mĂȘme activitĂ© Ă plusieurs tranches dâĂąge. Par exemple, sur lâactivitĂ© pour apprendre Ă lire lâheure, avoir des premiers niveaux avec seulement les heures affichĂ©es, puis rajouter les minutes et enfin les secondes. Des images dĂ©crivant la future interface [sont disponibles si vous ĂȘtes enregistrĂ© sur _Phabricator_](https://phabricator.kde.org/M146/546/). Ce gros travail avance en grande partie avec les diffĂ©rents programmes (_Season of KDE_ et _Google Summer of Code_) oĂč nous proposons en sujets principaux dâajouter la gestion des jeux de donnĂ©es et de les coder. Cela nous permet de prĂ©parer le terrain pour un mode serveur/administrateur oĂč les professeurs pourront directement envoyer les diffĂ©rents jeux de donnĂ©es souhaitĂ©s sur les tablettes ou PC des Ă©lĂšves afin de mieux les faire progresser. GrĂące Ă CMake et Qt, GCompris est disponible sur les platesâformes : - GNU/Linux (dont [Raspberry Pi](https://gcompris.net/download/qt/raspberrypi/gcompris-qt-0.97-Raspberry.sh)) ; - Android (via [FâDroid](https://f-droid.org/fr/packages/net.gcompris.full/) et [Play Store](https://play.google.com/store/apps/details?id=net.gcompris&hl=fr)) ; - Windows ; - macOS. Site Internet ------------- Le code est aussi [hĂ©bergĂ© par KDE](https://cgit.kde.org/websites/gcompris-net.git). La gĂ©nĂ©ration du site Internet est basĂ©e sur le logiciel Python [Jinja](https://jinja.palletsprojects.com/en/2.10.x/) qui gĂ©nĂšre un site statique. A partir des diffĂ©rents modĂšles (page dâaccueil, page de captures dâĂ©cran, flux RSS...), nous gĂ©nĂ©rons pour chaque langue la page traduite associĂ©e : Ă chaque nouvelle version du logiciel, nous crĂ©ons une page HTML contenant le texte (par exemple, [en anglais](https://cgit.kde.org/websites/gcompris-net.git/tree/news/20191201.html)). Un [script](https://cgit.kde.org/websites/gcompris-net.git/tree/tools/convertLastNewsToPo.py) Python convertit cette nouvelle en `.po`, format utilisĂ© par les traducteurs afin quâils puissent traduire avec leurs logiciels prĂ©fĂ©rĂ©s (et ne pas avoir Ă Ă©crire du HTML directement). Un deuxiĂšme [script](https://cgit.kde.org/websites/gcompris-net.git/tree/tools/convertPoToNews.py) reconvertit le `.po` en `.html` afin de pouvoir ĂȘtre affichĂ©. Ressources associĂ©es au logiciel -------------------------------- Nous utilisons [un troisiĂšme dĂ©pĂŽt Git](https://cgit.kde.org/gcompris-data.git/) afin de stocker toutes les ressources facultatives Ă lâapplication qui peuvent amĂ©liorer son utilisation. Il contient lâensemble des images utilisĂ©es dans lâactivitĂ© de vocabulaire, ainsi que les voix associĂ©es par langue (si un contributeur les a enregistrĂ©es). Au niveau des voix, il y a aussi les introductions des diffĂ©rentes activitĂ©s, les pays pour lâactivitĂ© de gĂ©ographie ainsi que les couleurs et les chiffres ou lettres. Nous avons aussi rajoutĂ© dans cette version 0.97, les musiques de fond, qui ont Ă©tĂ© mises Ă jour par rapport Ă la version GTK+ et sont aussi mises dans ce dĂ©pĂŽt. Cette fois, ce sont des scripts Bash qui permettent de gĂ©nĂ©rer les fichiers [rcc](https://doc.qt.io/qt-5/resources.html) pour quâon puisse les utiliser dans GCompris. Pour les fichiers audio, la particularitĂ© est de devoir convertir les fichiers OGG en MP3 pour Windows et en AAC pour macOS, car ces platesâformes ne prennent pas en charge le format OGG par dĂ©faut. Un script [Python](https://cgit.kde.org/gcompris-data.git/tree/voices/check_voices.py), enfin, permet de gĂ©nĂ©rer [la page](http://gcompris.net/voicestats/) qui donne lâĂ©tat des lieux des voix et traductions par langue. Nouvelles activitĂ©s =================== Une activitĂ© pour apprendre quelques bases sur la programmation : Ă partir de quelques instructions simples (avancer, tourner Ă 90°), il faut aider Tux Ă atteindre le poisson.  Une activitĂ© pour comprendre les bases du tangram : il sâagit en fait des premiers niveaux de lâactivitĂ© de tangram mis dans une activitĂ© spĂ©cifique pour les plus jeunes.  Traductions =========== La traduction du logiciel a Ă©tĂ© faite en macĂ©donien. GCompris est, dans cette version, entiĂšrement traduit dans vingt langues (anglais britannique, basque, breton, catalan, chinois traditionnel, espagnol, français, galicien, grec, italien, macĂ©donien, malayalam, nĂ©erlandais, polonais, portugais, portugais du BrĂ©sil, roumain, slovaque, suĂ©dois et ukrainien). Il est partiellement traduit (plus de 50 %) dans quinze langues : allemand (96 %), biĂ©lorusse (65 %), catalan de Valence (95 %), chinois simplifiĂ© (66 %), Ă©cossais gaĂ©lique (67 %), estonien (93 %), finnois (86 %), hongrois (95 %), indien (73 %), indonĂ©sien (95 %), irlandais gaĂ©lique (78 %), norvĂ©gien (93 %), russe (76 %), slovĂšne (54 %) et turc (95 %). Pour la prochaine version, nous retirerons les langues qui nâont pas un pourcentage de traduction assez Ă©levĂ© ou non maintenues (80 %). Autres changements ================== - des nouvelles voix amĂ©ricaines ; - ajout du jeu de donnĂ©es en malayalam pour lâactivitĂ© « Jeu de lettres » ; - ajout du jeu de donnĂ©es en breton pour lâactivitĂ© « Les mots qui tombent » ; - des sousâcatĂ©gories pour mieux organiser les activitĂ©s par thĂšme ; - des musiques de fond (comme dans lâancienne version GTK+) ; - des options pour modifier le volume pour les effets audio ; - une configuration pour changer la vitesse de dĂ©filement des Ă©lĂ©ments dans plusieurs activitĂ©s (lettres qui tombent, lecture horizontale/verticale, nomme la note) ; - lâaffichage des piĂšces capturĂ©es dans le jeu dâĂ©checs ; - de nouvelles images et amĂ©liorations de _layout_ pour plusieurs activitĂ©s ; - les fichiers de ressources (donnĂ©es) sont maintenant sur [un serveur KDE](https://cdn.kde.org/).