Mycroft languages

Hi @malevolent, thanks for your feedback.

Mycroft AI is a small startup company, with a handful of full time developers. Unfortunately we cannot make every feature request a priority. There are dozens of languages in the world - which ones would we choose first? Or second?

Instead, what we can do is make the tools and information available to the Mycroft Community to help build out language support, and there are significant efforts under way within our community to improve language support - we even have dedicated languages channels in our Chat platform;

I agree, the documentation is not great - which is why itā€™s marked as experimental - so that itā€™s clear that there are likely to be problems with it. Is there anything specific in the Documentation that I can change? Keep in mind that our documentation is also open source, and we welcome both Issues and PRs.

Do you think I should remove the languages documentation entirely? This would be easy to do and might be better than having confusing documentation available.

Trying to be constructive here, is language support something we should consider putting a Bounty on, as part of our BountySource program?

https://www.bountysource.com/teams/mycroft_ai

In summary we donā€™t have the resources to make language support a priority right now - and instead this effort needs to be driven by the Mycroft Community. We can provide guidance and assistance, but we cannot drive this effort right now.

Kind regards,
Kathy

Hey @KathyReid, thanks for the answer.

What I say is to prepare the code to be localized. Right now english is hardcoded in many places with nice TODO comments for localization. If I do any change, it will be lost on the next mycroft update (lately it upgrades almost every day). Iā€™m not speaking about config files but actual mycroft core python files.

Documentation is outdated/wrong and leads to confusion. You can left it for the braves, but I wouldnā€™t point to anyone there because they will waste their time trying it for nothing. It will be better to point to the mattermost channel instead. I appreciate the effort to unite all the disperse documentation, please donā€™t get me wrong.

If Mycroft Core devs prepare the code to be localized, using which ever method they think the best, and getting the core skills ready only for english (but already enabled for l10n) it will be a huge step forward for lesser contributors, which can translate the skills or modify the 3rd party ones to get them localized as well, and most important, they wonā€™t be lost on upgrades. Doing this, I think, is not so resource-consuming, and each language will improve as fast as their own speakers can translate or develop.

What do you think?

2 Likes

@malevolent thatā€™s excellent feedback, thank you for such a considered response.

What are the key things we need to do in the code for i18n support? Should we track them in an Issue?

I need to find time to see all the stoppers I had find in the past. Please bare in mind Iā€™m just a linux guy, not a developer, so Iā€™m sure I will be wrong in many cases, but I can try to configure my Mark I again, see what I saw english-hardcoded and write down where I found it, here or on an Issue on github. The good thing is that l10n is not a single language, so many contributors from many languages can take a look at the code to see where can they found some issues.

On the other hand, as far as I can remember, some core modules and core skills, developed by Mycroft core devs, are already commented by their developers, thatā€™s why I think Mycroft core devs already have an idea how to tackle this and they are aware of many of these issues, perhaps can the start the issue with the already know.

The important things to do in the code for i18n support, if you ask me, would be to replace all the hardcoded parts with variables, create a .dict (or so) file where people can easy translate all the english words, sentences, etc to their languages, and create a specification for the skills creators to make their skills i18n-ready (many of them . Doing this just for english, would give wings to other language (non-developers) contributors just in translating all the skills.

1 Like

Just to point here what I did some months ago, and now Iā€™m re-trying to do again

Iā€™m going to dig further to see if I can write a comprehensive guide for newcomers and detect some possible changes/improvements to the core code.

The first thing Iā€™ve just discover is how to avoid the loss of all changes by copying the /etc/mycroft/mycroft.conf into /home/mycroft/.mycroft/mycroft.conf, it can seem trivial, but on Mark I you can only ssh with the ā€œpiā€ user, so all the documentation referring ~/.mycroft/mycroft.conf is completely confussing.
Then I will try to explain, as @Jarbas_Ai has explained several times, how to translate the skills, and will try to document as well how to push the translated skill/addon to the original github creator. I guess if each skill grows as per language, mycroft devs should think how to ā€œfilterā€ by language in order to not download all languages when a user should use just one or two.
Finally, Iā€™ll try to hunt those hardcoded english sentences on the core code, if any (many months have passed since last time I see the code and perhaps there is a l10n solution - fallback skill?-).

3 Likes

I am into codingā€¦mostly javaā€¦got to know about this project from openhabā€¦It will be interesting to see if Hindi could be incorporatedā€¦just setting up the environment and trying out various thingsā€¦I can contribute to some extent.