Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Bangla course #1121

Merged
merged 1 commit into from
Feb 26, 2021
Merged

Add Bangla course #1121

merged 1 commit into from
Feb 26, 2021

Conversation

adnan360
Copy link
Contributor

Description

Adds "basics" course for Bangla (aka Bengali) language. Bangla is the 7th most spoken language according to Ethnologue (2020). So hope it's useful for the project and the users.

Is this related to any open issue(s)?

No

Is there anything you need help with to get this PR merged?

I've just created the basics course for Bangla. Plan to add the rest of them similar to the Spanish course. Created this PR to see if I'm on the right track before continuing. Please let me know if I need to add/change anything.

Checklist

Don't worry if you haven't done everything on this checklist. Simply create your PR, and make sure everything is done later,
or ask for help if you don't know how to do it.

  • The CI is passing
  • I tested my implementation manually
  • I wrote new tests to test my code, or updated existing tests to test my changes

@vercel
Copy link

vercel bot commented Feb 26, 2021

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/kantord/libre-lingo/96vyheNBupCLDAybFfSenurra82r
✅ Preview: https://libre-lingo-git-fork-adnan360-bangla-kantord.vercel.app

@sonarcloud
Copy link

sonarcloud bot commented Feb 26, 2021

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@kantord
Copy link
Owner

kantord commented Feb 26, 2021

Hi @adnan360 , this is an amazing contribution!!!! 🥇 🎉

I am going to merge it and deploy it so that you can preview it

@kantord kantord merged commit 1713a99 into kantord:main Feb 26, 2021
@kantord
Copy link
Owner

kantord commented Feb 26, 2021

@adnan360 you can preview this at this URL 🎉 https://librelingo.app/course/bangla-from-english/

As you can see, LibreLingo needs some new features/fixes before the course becomes usable... could you be able to help me out with this by creating issues? That way we could make plans how to fix them.

Some issues I noticed:

  • There's no audio and I don't know where to source audio from. Do you know a way to have Bangla text-to-speech?
  • Some of the skills were not exported successfully because there are missing definitions
  • I had to make a couple of changes so that the export doesn't fail: 86eb600?branch=86eb60001b524663753ec4f3b9b8a549d250555f&diff=unified
  • I don't know the Bengali script, so there's no way for me to know how to pronounce or read the words that I see. LibreLingo should add some way to teach the characters in Bengali script, and how to combine those characters together to form words/sentences.
  • Typing in Bengali script might be very difficult for someone who doesn't have a Bengali keyboard on their device. On phones this might be solved by installing a bengali keyboard, but on desktop it might be more problematic. LibreLingo should add some way to deal with this issue

@kantord
Copy link
Owner

kantord commented Feb 26, 2021

@allcontributors please add @adnan360 for content

@allcontributors
Copy link
Contributor

@kantord

I've put up a pull request to add @adnan360! 🎉

@chickendude
Copy link
Contributor

Typing in Bengali script might be very difficult for someone who doesn't have a Bengali keyboard on their device. On phones this might be solved by installing a bengali keyboard, but on desktop it might be more problematic. LibreLingo should add some way to deal with this issue

I think creating an IME (since it's not one key = one letter) would be a bit of an overkill, alternatives could be allowing a romanization (not sure if there's a standardized romanization for Bengali, i would guess not) or suggesting users install something like Google Input Tools Chrome extension (unfortunately only for Chrome), which has Bengali support:
https://www.google.com/intl/bn/inputtools/try/

I'm not sure how to go about it on Windows, but there are several options for Linux (such as OpenBangla) which shouldn't be too difficult to set up.

@adnan360
Copy link
Contributor Author

@kantord

I am going to merge it and deploy it so that you can preview it

That's great, thanks. And sorry for getting you in the trouble with all the edits.

Now to your questions:

  1. I know Google Translate has Bangla support (when you select Bengali there it shows a speaker icon for this). But I'm not sure if they're suitable, license-wise, to be used here. They're done by real humans and are clear. Another option could be responsivevoice.org. They have 2 "Bangla Bangladesh" and 2 "Bangla India" voices and offer a CC BY-NC-ND license for non-profit projects. As much as I tested "Bangla India Female" voice was clear, almost comparable to GT's.

  2. About the missing definitions, I felt that documentation was not helping me understand what I'm supposed to do. There were some words/activities that were not appropriate for our culture. e.g. "drinking", "beer". While people drink, but that's not something to be proud of in our culture and done mostly privately. So I thought I'd (a) replace them with something else. Another thing I noticed is that there are some translations that were repeating and maybe was not appropriate for the structure of the language. So (b) I deleted those entries. I thought the software was smart enough to understand the differences. Maybe that was a mistake.

  3. I think the reasons from previous answer count here. Plus, one of the things I noticed is that you reverted the IDs to previous values. (c) I thought I was supposed to get a new ID for courses with UUID generator. Maybe that's a mistake too.

  4. That would be an interesting challenge to solve. Do you already have something similar done for other languages?

  5. Yes, I was thinking about this. An on screen keyboard would be nice. If you go to this site and click the little "Click n type" button, it shows a Bangla keyboard. If you Inspect element the button and go to the event, they're just using a bunch of buttons with a value attribute with what to insert. When that button is clicked it just inserts the value to active field. We can code something like this. We can maybe allow the layout to be customized per language. The layout should be configurable from per language yaml file, including the positioning of the buttons (row, column, width, height) to be really useful. I think if this is implemented, we won't need Special characters anymore. But feel free to present your thought.

@adnan360
Copy link
Contributor Author

adnan360 commented Feb 26, 2021

Another thing I thought I should point out.

There were some words/activities that were not appropriate for our culture. e.g. "drinking", "beer". While people drink, but that's not something to be proud of in our culture and done mostly privately.

I am from Bangladesh (aka BD). And this applies to Bangladesh. Bangla speakers are there in both Bangladesh and India (mainly on Calcutta/Kolkata). I'm not aware of the culture about this there.

Most of the translation systems have language name and then country. e.g. bn-BD, bn-IN, en-US, en-UK. Couldn't find anything similar in this project. So had to point this out for future readers.

@adnan360
Copy link
Contributor Author

adnan360 commented Mar 3, 2021

@kantord

LibreLingo should add some way to teach the characters in Bengali script, and how to combine those characters together to form words/sentences.

I've found a way to show letter writing animation within browser using only CSS+SVG. Any letter in the world can be animated with this. Check this file here / or here.

  • The letter SVG can be easily made with Inkscape and user just needs to draw how a hand draws characters - one stroke after the other
  • Supports straight or curved lines (or any kind of vector path really) to express the letter
  • No JS needed, so should be lighter on system resources
  • Optionally can be animated with JS on click
  • Very light downloads, esp. compared to video assets with similar content
  • No need for video recording or lighting setup ;) - basically anyone can do it
  • The "software" part of it is just CSS, so just including the styles will be enough for animating hundreds of characters

There are limitations as well which are mentioned in the file source. But one that I can think of is I'm not sure if it can handle word or sentence formations. Maybe it can. But haven't tried it yet.

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

I know Google Translate has Bangla support (when you select Bengali there it shows a speaker icon for this). But I'm not sure if they're suitable, license-wise, to be used here. They're done by real humans and are clear. Another option could be responsivevoice.org. They have 2 "Bangla Bangladesh" and 2 "Bangla India" voices and offer a CC BY-NC-ND license for non-profit projects. As much as I tested "Bangla India Female" voice was clear, almost comparable to GT's.

Thanks. Responsivevoice might indeed be interesting. Although in the end maybe the best is to use real human voices

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

@adnan360

There were some words/activities that were not appropriate for our culture. e.g. "drinking", "beer". While people drink, but that's not something to be proud of in our culture and done mostly privately. So I thought I'd (a) replace them with something else.

That is fine and a good idea in my opinion. Actually, courses don't (and can't!) all have the same content. There are no such arbitrary limitations on designing a course.

The problem with missing definitions is that all words that appear in phrases should have a definition.

Another thing I noticed is that there are some translations that were repeating and maybe was not appropriate for the structure of the language. So (b) I deleted those entries.

That makes sense. There is no inherent, "one correct" way to structure courses. Actually each language will require a completely different strategy to teach grammar, so you have complete freedom in how you structure the course!

I thought the software was smart enough to understand the differences. Maybe that was a mistake.

Not sure what are you referring to here. Can you show me an example?

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

Plus, one of the things I noticed is that you reverted the IDs to previous values. (c) I thought I was supposed to get a new ID for courses with UUID generator. Maybe that's a mistake too.

Which IDs did I revert to previous values? 🤔 I don't remember this

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

That would be an interesting challenge to solve. Do you already have something similar done for other languages?

Not yet. One of the main idea that I have for solving this is adding another section along with Words and Phrases. It would be something like Characters. And it would generate challenges similar to the ones for words, but it would be only about characters and their pronunciation

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

I am from Bangladesh (aka BD). And this applies to Bangladesh. Bangla speakers are there in both Bangladesh and India (mainly on Calcutta/Kolkata). I'm not aware of the culture about this there.

I think it makes sense to try to have content that is quite neutral and not offensive in either culture. In the future I want to add a feature with optional special skills, such as vocabulary related to a certain job or cultural activity. In case there are interesting cultural differences, maybe those special skills would be the appropriate place for them.

Most of the translation systems have language name and then country. e.g. bn-BD, bn-IN, en-US, en-UK. Couldn't find anything similar in this project. So had to point this out for future readers.

This depends on what's appropriate for the specific language. If the variants are quite similar and use the same (or basically the same) writing system then it might be appropriate to simply have 1 language course for multiple variants, and trying to aim to have a neutral version. (Something that wouldn't sound off in either country, for example.)

When that's not the case then indeed you might want to have a course that's specific to a country.

Looking at these values:

Name: Bangla
IETF BCP 47: bn

IETF BCP 47 refers to the IETF language tag, which accepts an optional country code, so if you have a country-specific (as opposed to "generic") language course then you are able to put the country name there, and you can choose a name for the language that is specific enough, for example "European Portuguese" as opposed to just "Portuguese"

@kantord
Copy link
Owner

kantord commented Mar 3, 2021

I've found a way to show letter writing animation within browser using only CSS+SVG. Any letter in the world can be animated with this. Check this file here / or here.

The letter SVG can be easily made with Inkscape and user just needs to draw how a hand draws characters - one stroke after the other
Supports straight or curved lines (or any kind of vector path really) to express the letter
No JS needed, so should be lighter on system resources
Optionally can be animated with JS on click
Very light downloads, esp. compared to video assets with similar content
No need for video recording or lighting setup ;) - basically anyone can do it
The "software" part of it is just CSS, so just including the styles will be enough for animating hundreds of characters
There are limitations as well which are mentioned in the file source. But one that I can think of is I'm not sure if it can handle word or sentence formations. Maybe it can. But haven't tried it yet.

This is super cool, @adnan360!!!! 🥇 Would you mind creating a new issue for it?

@adnan360
Copy link
Contributor Author

adnan360 commented Mar 3, 2021

The problem with missing definitions is that all words that appear in phrases should have a definition.

Well, I'm starting to get the hang of it a little bit. But I think I still need more resources to be sure of what I learned. I didn't find any good resources for new course writers. Can you point me to some? I didn't find any on project readme (or maybe I didn't search hard enough).

Not sure what are you referring to here. Can you show me an example?

I was referring to your early statement:

Some of the skills were not exported successfully because there are missing definitions

I thought deleting some entries caused the issues.

Which IDs did I revert to previous values? thinking I don't remember this

I remember somewhere on the merge process, some UUIDs I generated was changed. Not sure where I saw it. But I think a guide is definitely needed for new course writers. And especially a user friendly one, because course contributors might not be tech savvy. If there's one I'd love to read that. If there's none, I'd be happy to open an issue for that.

This is super cool, @adnan360!!!! 1st_place_medal Would you mind creating a new issue for it?

Sure. In a minute.

@kantord
Copy link
Owner

kantord commented Mar 4, 2021

Well, I'm starting to get the hang of it a little bit. But I think I still need more resources to be sure of what I learned. I didn't find any good resources for new course writers. Can you point me to some? I didn't find any on project readme (or maybe I didn't search hard enough).

There isn't any more resources for that that I know of, at least not LibreLingo-specific ones. You are among the first people to work on a course, so basically we are building experience and resources right now :-D Sorry if it's difficult. I will try to update the existing guides to add the new things we've learned.

@kantord
Copy link
Owner

kantord commented Mar 4, 2021

But I think a guide is definitely needed for new course writers. And especially a user friendly one, because course contributors might not be tech savvy. If there's one I'd love to read that. If there's none, I'd be happy to open an issue for that.

Yes, if you have some idea how to make the documentation more user-friendly, then please

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants