kantord / LibreLingo

🐢 🌎 📚 a community-owned language-learning platform
https://librelingo.app
GNU Affero General Public License v3.0
1.94k stars 213 forks source link

Remove Mandatory Definition for words #3375

Closed nprime496 closed 2 months ago

nprime496 commented 4 months ago

I am trying to install the repo locally but I stumble upon this error:

RuntimeError: Error while exporting skill "Chiffres 2" in file "4_Numbers/skills/4_Numbers_2.yaml": The French word "téléphones" does not have a definition. Please add it to the mini-dictionary.

Reading the code, I notice that there's a check to ensure that all words have a correspondance in mini-dictionnary:

https://github.com/LibreLingo/LibreLingo/blob/3bb6d4deadc27cf7b762fcf63d7bb07ea0ccaac8/src/librelingo_json_export/dictionary.py#L52C1-L56C1

I do not think that it is necessary as it put too much constraints on course creation. Dictionnary should be added to improve existing courses not be an unavoidable requirement.

Skivling commented 4 months ago

I think the rationale behind this is so that people can hover over a word and it will show a definition. Although I agree with you that it shouldn't be required.

kantord commented 2 months ago

The purpose of requiring words to be defined is to be able to teach new words without relying on pictures. Pictures can be used to teach simple words like the names of food items, objects or animals, but when it comes to teaching concepts, grammar words, verbs etc the best tool you have to teach a new word is to translate it to the user's native language.

Keep in mind that you only need to define a word if it's not already defined elsewhere. If it's been taught with a picture before for instance, you no longer have to define it. You also don't need to define it if it's already been defined elsewhere (you can always add an additional definition when the already existing definition does not suffice)