Interested in creating a course for Kabyle from French #2777
Replies: 24 comments 77 replies
-
Hi @Bouaziz-aitd! Can you please tell me more about this part?
That might not be an issue if it's a few characters, as we have a feature to add a virtual keyboard to the user interface that contains special characters (for example this is used for adding accents in Spanish even when the user has an English keyboard with no accents). This should be enough to solve the problems if a language mainly relies on Latin characters but has a few added ones. But it's probably not enough when the language uses an entirely different writing system. Edit, I see you added this concrete example:
so that could be solved with the special characters feature, basically treat those as "accent characters" even when they are completely independent characters such as ɣ. That should not be a problem unless maybe the number of these special characters is very high. All that being said, in theory a course can be created, but at the current moment there won't be additional features for teaching the writing system itself and there aren't any special feature currently built for this. The other problem is that a lot of users, especially when just starting a course, will not have a way to use 2 different keyboards for typing in 2 different languages, hence we have the "special keys" feature in Spanish.
This is a problem for many courses and there is a plan to solve it by relying on real audio recordings rather than TTS. This could actually have some advantages, albeit it can also be an added difficulty. While the software support is not ready for this yet, there is no reason to not start developing a course because of this, as there is a way to disable audio support and start testing the course without audio. That is not ideal, but it should allow you to start developing and even testing the course while the software support catches up |
Beta Was this translation helpful? Give feedback.
-
I guess as a next step, I could create a repo for your course in GitHub with some example content. Then you could edit the readme file to add links, such as a link to the matrix group and any information that you think other people collaborating to the course will need. Then you could for example use the sample content (taken from the spanish course) and change it to have the content in Kabyle. After that we can deploy that course to see if everything works as expected, and you get a link that you will be able to use as a minimalist demo you can show to other people who might be interested in contributing |
Beta Was this translation helpful? Give feedback.
-
I have created a course repository: https://github.com/LibreLingo/LibreLingo-KAB-from-FR and invited you to become a maintainer of this repository, @Bouaziz-aitd. If you accept the invite you should be able to manage this repository including inviting more members, approving merge requests and such |
Beta Was this translation helpful? Give feedback.
-
Hi kantord, I made an update of the Introduction module changing to kab from fr. |
Beta Was this translation helpful? Give feedback.
-
@kantord I am lost in trying resolving the failures from the CI. As an example when I look at the output errors from the check of Preferences skill I see "keyError: 'Kabyle' " |
Beta Was this translation helpful? Give feedback.
-
@kantord super good news! you may have seen that the course has updated and I was able to correct what was failing in the skill animals. I did not understand that the mini-dictionary requires to have words from the vocabulary used above it. I am still unsure if all the words cited must be listed. |
Beta Was this translation helpful? Give feedback.
-
Hi @kantord, I managed to make skill "Clothes" to work as I see it in the web app. You may notice that I made lots of try and error until I solved the failure. I thought I understood the structure but I think there is still some nuances that I do not necessarily understand very well. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the feedback on this. It is a very good observation that the format seems to be a big constraint, and also that the error messages are deficient. Like I said, the current path I see to improve this is adding a GUI and better error reporting. Unfortunately the constraints are related to actual data constraints, especially when it comes to the mini dictionary. So I think the only way to improve this in the data structure/schema itself would be to somehow make the constraints more intuitive, basically like making the correct data be the only possible data? 🤔 Not sure, do you have some kind of additional suggestion to this? Also, regarding improving the documentation, could you please help me with it? I have been trying to improve the documentation, however I think I have a lot of blinds spots, basically since I designed the system I am struggling to approach it with the same perspective as a person with no prior knowledge would, and inherently assume that some of the things that are not intuitive at all should make sense to other people. If you could either edit some of the documentation files, or what I should write there, that would be an amazing help |
Beta Was this translation helpful? Give feedback.
-
yes, there is a list: https://github.com/LibreLingo/LibreLingo/blob/main/docs/image_attributions.csv though long term the idea here is to be able to link the unsplash files directly. at the moment it's not possible but it's a known issue |
Beta Was this translation helpful? Give feedback.
-
I am not sure I fully understood this part. Is it about the changes not being deployed? In theory, the deployment happens once an hour, so there is a potentially one hour delay in the deployment (unless of course, something goes wrong for example). This is because the whole site is statically built, it's not based on a "live backend" or database. (Though there is the idea of building each course separately, or even build just one specific page after a change, or even to have a live backend in addition to the static build to reduce such delays to trivially low) this should indeed be documented. btw if you want to keep track of exactly when the last deployment has happened, you can always look at this page: https://github.com/LibreLingo/LibreLingo/actions |
Beta Was this translation helpful? Give feedback.
-
If I remember correctly, the only documentation we have regarding the mini-dictionary it's located here: https://librelingo.app/docs/courses/skill.html basically there is an explanation regarding that the mini dictionary is for |
Beta Was this translation helpful? Give feedback.
-
No, this is for sure a bug or a configuration issue 😮 could you please report it? https://github.com/LibreLingo/LibreLingo/issues/new |
Beta Was this translation helpful? Give feedback.
-
So actually, this is kinda a new feature, basically we need to translate all pages. Although, the home page is already translated, so there is an infrastructure built for this, so all we should need to do is add a configuration somewhere that will force the UI to use the translation to be in French for this course, plus make sure all relevant text has it's own translation key. I will do at least an initial MR for this when I have a moment. For now I created an issue for it: #2796 |
Beta Was this translation helpful? Give feedback.
-
Don't worry, all your questions and feedback are extremely useful and I also thank you for your contribution by creating a new course and testing this software that is admittedly not the most stable and optimized piece of software yet. If you'd like to help, it would be also extremely useful if you helped by editing/extending existing documentation, since time has proved that I'm not able to write the best documentation as I don't have the same perspective as the users have. The documentation files are located here: https://github.com/LibreLingo/LibreLingo/tree/main/docs |
Beta Was this translation helpful? Give feedback.
-
@kantord, here are some screen shots of an error I am not able to understand. You can see the quoted sentence that I believe is correctly written in the sentence along with its declaration in the mini-dict. Note that it is also specified in the French part of the mini-dict. You may see the error is pointing to line 125 which is the Phrase. |
Beta Was this translation helpful? Give feedback.
-
Hello! I'm just trying to figure this stuff out myself, so I did a little searching through various yaml files. I think that based on https://github.com/LibreLingo/LibreLingo/blob/main/apps/tools/tests/fixtures/e2/basics/skills/hello.yaml (To avoid confusion, I should point out that this file does actually have a deliberate error, namely the undefined word "uncompersick". See also https://github.com/LibreLingo/LibreLingo/blob/main/apps/tools/tests/fixtures/e1/basics/skills/hello.yaml, which doesn't have that error, but has the (deliberate) error that "Excuse me" is not defined.) |
Beta Was this translation helpful? Give feedback.
-
@kantord I managed to complete my course based on the template you provided from "ES from EN". I did and adaptation of the skills as Kabyle does not have the same structure as Spanish when it comes to "Estar and Ser" verbs among others. When I was testing the Kab course I noticed that when you go through a skill it is marked as complete even if you go over it another time. In my opinion, we should make the skill appear in progress when you over it again. This will mark it as kind of under study, In such a way that the user can engage in multiple skills in parallel and the would know where they stand in the progress. I am not sure if this is clear? Hopefully will be able to make the voice work so I am planning to add junior section tailored to kids. That section should base the learning very much on pictures and voice through short words or sentences. I would like for example to introduce the alphabet with words accompanied with voice. I did not yet make my head around this but I am still thinking about the best way to include it. Since you know better than me the structure behind LibreLingo platform, I turn it to you hoping to get an option for this, please! I will be sharing the app among a limited group for now just to get some feedback and make corrections if any. Lastly, you may have noticed, I edited the the skill documentation and slightly amended a bit the text related the above "{}" question. I am not sure those additions are acceptable. Thanks for your help! |
Beta Was this translation helpful? Give feedback.
-
@kantord, I came accross a very strange case with the word "l'eau". I have two distinct sentences in the skill that use the composed word "l'eau" (see the attached snapshot).
From the attached sentences work fine with the above definitions. |
Beta Was this translation helpful? Give feedback.
-
@kantord, I am at the point where I will distribute the link to the course for select people for feedback and any corrections.
|
Beta Was this translation helpful? Give feedback.
-
@kantord, I would like to move forward with enriching the kab course by adding skills (mainly basics for junior or kids) and modules. The basics_jr will be mainly focused on pictures recognition with more animals, objects and simple actions. I am not sure if I should just add files for skills in the folder directly in the repository? And I do not know how to create a new module. |
Beta Was this translation helpful? Give feedback.
-
@kantord is there a way to see the trafic on a given course? I am anticipating on the moment I will share the course more widely. |
Beta Was this translation helpful? Give feedback.
-
Hi Daniel, |
Beta Was this translation helpful? Give feedback.
-
Hi @kantord I took a look to the audio feature and how it can be implemented. For common voice, the api seems not available. My guess is that we need to download the dataset, store it somewhere (s3 bucket, drive,...) and then embed each url in the code. Also, while doing some research on this I found this issue #714 where a discussion about this topic started. ++ |
Beta Was this translation helpful? Give feedback.
-
Hi Daniel, In summary I tested two options i) using Tatoeba database and ii) using the MMS TTS model (as you may know this is a Meta initiative). i) Tatoeba dataset ii) Massively Multilingual Speech (MMS TTS) of Meta. This project has targeted more than 4000 languages around the world. they make a good deal of work for some languages but not all. At this time they have trained with the equivalent of 32 hours of data more that a thousand language among them Kabyle. The latter has been trained for text to speech conversion and for speech recognition. I focused on the TTS. They have a repo on Github here: https://github.com/facebookresearch/fairseq/blob/main/examples/mms/tts/tutorial/MMS_TTS_Inference_Colab.ipynb In conclusion, we have at least two options we work around. I did what I could till here and I do not know how we can move this to bring it to fruition. What do you think? |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
First of all, thank you for the committed people who are working on this project. This is really a huge work that's been deployed through the platform.
I was searching for such a platform since a while now trying to find a way how to build an online course for my native language Kabyle (a branch of the more general Tamazight language family). This is a native language from North Africa. I recently came across LibreLingo and found the project very interesting and I thought it would be a good platform for teaching Kabyle for French speaking people as North Africa is overly french speaking.
I had a quick read through all the LibreLingo documents, I went through GitHub repos and I started playing a bit with Git as I was new to this. I also read through a number of the discussions in the community space and a little about the issues discussed in the LibreLingo discussion group in Element and I am unsure if Kabyle can be rolled out on this platform for several reasons:
At this stage of my understanding, I am unsure if it would be possible to go around some of the hurdles and achieve the creation of an interesting course. Kabyle language is rapidly declining so it is in danger to die and that is why I am committed to do something through the LL platform.
It should be noted that Kabyle is among the languages that are selected in the Common voice and Tatoeba databases. I though read some discussions about the difficulties to bring-in the information from these DBs and I do not know if any progress was made in this context.
To make the long story short, my question is : Can someone tell me if I should engage in such endeavor and start working on the course (Kabyle from French) or it is not worth it? The least least that can be done is laying out a course without audios to start with and implementing any audios later on.
In order to substantiate the issue of having non Latin letters these are examples of letters in use in some words: aɣrum: bread, aɛebbuḍ: abdomen, ečč: eat, awi-t-id: bring it here.
Thank you for your consideration and help.
Beta Was this translation helpful? Give feedback.
All reactions