“I just enjoy translating, it’s like opening one’s mouth and hearing someone else’s voice emerge.”

― Dame Iris Murdoch

A few months ago, we outlined our desire to provide stronger language support for Mycroft, noting that localization support is hard. The desire from our Community for better language support, especially for French, German, Dutch and Italian, was echoed in the 2018 Picroft Survey results.

We’re now delighted to announce the first release of Mycroft Translate – a platform for enabling the Community to help translate Skills into other languages.

Choosing a platform for translation

Our recent intern, Masters of Computer Science postgraduate student, Andrew Wilson, undertook an evaluation of platforms. We initially were attracted to Zanata because of its intuitive user interface and ease of setup, but eventually settled on Pootle. Pootle has a closer alignment with our existing technology stack, being based on Python and Django. We made the decision to backend Pootle on to Postgres as the database layer, again reflecting existing deployments. Pootle is highly configurable, and extensible. That means we can add support for additional languages in the future, particularly languages that may have only small groups of speakers around the world.

Languages chosen for the initial release

For our initial release of Mycroft Translate, we’ve chosen a small number of languages that are available for translation, as we are anticipating some ‘teething problems’ with the new platform, and want to constrain these.

Our decisions here are informed by a number of drivers; existing translations of Skills by the Community, our web analytics which tell us where in the world our Community is based, and additional factors – such as our desire to cater for more ‘niche’ languages that have limited populations – such as Cymraeg (Welsh), íslenska (Icelandic), andʻŌlelo Hawaiʻi (Hawai’ian) – but which are vitally important for the communities who speak them. At the moment, we’ve opened up two CJK-grouped languages, although we’re not sure exactly how well the platform will handle the non-Latin characters these languages require.

Quality assurance and approval workflow

Within the platform, we’ve implemented a workflow that ensures each translation is reviewed before being accepted. Over time, we anticipate building out volunteer translation teams for each language, with Community members able to curate provided translations. This ensures both Community ownership of language support with Mycroft, and enables strong quality control as people fluent in a language are overseeing how it is used with open source voice.

The roles and permissions within the platform are;

Role name Role permissions How ascribed Registered users Suggest a translation At login Language Team Member Suggest a translation

Review a translation By a Language Chair Language Chair, ie

Mycroft French Language Chair

or Mycroft Portuguese Language Chair Provide translations without review

Review suggested translations

Administer all translations for a language

Administer all user permissions for a language By another Language Chair or By Mycroft Staff Member

How you can participate in Mycroft Translate efforts and help bring YOUR language to Mycroft?

Participating in Mycroft Translate is just one of the ways you can get involved with the Mycroft Community. Providing translations is very straightforward, as outlined below.

Create an account and sign in

Unfortunately we haven’t yet integrated the Pootle platform with home.mycroft.ai – something we hope to do in the future. For now, you’ll have to create a separate account on https://translate.mycroft.ai.

Once you log in, you’ll be able to see the Projects available for translation. All the vocab words for translation from the Mycroft Skills repo on GitHub are in the mycroft-skills project.

Choose the language and project you wish to provide translations for

Next, choose the language you’d like to provide translations for from the Language dropdown.

Then, choose the “mycroft-skills” project from the Project dropdown.

Next, select the Skill you wish to provide translations for.

Next, choose ‘Continue Translation’.

Then enter your translation, and press the ‘Submit’ button. It’s that simple!

At the moment we’re unable to handle multi-line translations – for instance where a phrase or sentence needs to be used to translate a word from English, but are following up to see how we can enable this.

What’s next on the Languages Roadmap?

Earlier in the year, we published our open and transparent Roadmaps for each of the key streams of the Mycroft ecosystem. For the Languages stream, we anticipate firstly building more automation into the existing platform – essentially being able to import new vocab and dialog from Skills as they become available, and also export translations from Pootle into GitHub via the GitHub API. This will likely take us a few weeks, as we envisage quite a few kinks to work through.

Want more information?

We have a dedicated email address for questions related to Mycroft Translate – you can mail us at translate@mycroft.ai. You can also check out the Languages topics on our Community Forum, or the Languages Channels in Mycroft Chat.