Introducing Mycroft Translate

@Jarbas_Ai @robb_nl @andlo @Dominik @piretro999

Thank you all so much for your helpful and constructive feedback - very much appreciated. Let me take the comments one by one.

Context

This is by far the most frequent feedback we’ve received about Mycroft Translate - it’s difficult to translate terms without having the context in which the translation occurs. We’re not sure exactly how to tackle this yet - without actually running the Skill, or having a web interface which allows you to hear how the interaction plays, it’s hard to infer context. So this one is “to do” - ideas as always warmly welcomed.

Translating technical terms like (?P<Entity>.) in phrases

Our online help will address how to handle this as well. In summary, the stuff in brackets ( ) or curly brackets { } should be left as is.

Guidance on tone, formality and level of politeness

Different languages often have different tones and levels of politeness in different situations. What we’re doing here is writing some inline help for Pootle that provides guidance on the best levels of formality and politeness to use. For now, if you’re unsure of the best translation, please just leave the phrase.

Additional languages

We’ve had several requests for additional languages, and we’re delighted to see so much additional interest! We need to work through the process for adding languages in our development environment, however we definitely plan to add more languages.

1 Like

Hello,

I just registered on Mycroft translate. I hope I will be able to make some contributions soon.

I have several questions first :

  • It seems the roles described here are not enforced. For example, just after registering, I am already able to put translations, without validation ( Language Chair role)

  • Is there a way to validate a suggestion ? Pootle documentation seems to show a green check to validate one, but I cannot see anything like this in my interface.

  • If we are all able to provide direct translation without going in “suggestion mode”, what is the correct (polite ?) behavior or workflow we should use ? Translation or suggestion first ? The first one make the work faster, the second one is more quality focused. (In my humble opinion, direct translation are a good choice for the beginning, in order to have a fully functional translated project fast. Quality could come after)

  • What is the process to merge translation in the main (git) project ? Is there some automatic tool we should wait for ? What is the frequency ? Should we make some git pull request with the translation files inside ? If so, what is the best way to retrieve data from Pootle and integrate it in the project source code ?

  • Related to the last question : could you enable the API access to Pootle data (https://pootle.readthedocs.io/en/stable-2.5.1/api/index.html) ? This should be useful for us to retrieve data automatically, and maybe make some tooling to put back translation file intto Mycroft.

Many thanks

On the sentence

tell me (the|our) (current )?(?P<Entity>.*) (status|state|value|sensor)

I need to put a word between (current) and (?P<Entity>.*), would it end like

(actual) de ?(?P<Entity>.*)

@forslund is the regex King :crown:, so he will have a better idea, however, I would combine actual and de;

(actual de) ?(?P<Entity>.*)

Best, K.

Did you put a blank space intentionally after the first question mark? I supposed ?(?P<Entity>.*) was an indivisible block.

Apologies, edited to have the correct syntax.

I’m in no way an expert but I think in the original:

(the|our) (current )?(?P<Entity>.*) (status|state|value|sensor)

the sequence "current " is optional using the ? (non-greedy)

So Something like this maybe:
(german) (optional-german )?word (?P<Entity>.*) (other german)

Not sure if all these german fields are sane but that’s the gist of it.

1 Like

I didn’t know about optional (it seems ? is always greedy) (my regex skills are very limited, just to grep some logs :stuck_out_tongue: ). It seems pretty useful, but it arises a question regarding the translations.

What we need to do to write a real question mark in pootle, perhaps a scape character like \?

In a .rx file it would be escaped as you suggest with a ? the other file types don’t use regexes…

well the spotify skill uses regexes in dialog files just to be confusing (and having a way of translating non-adapt regexes)

My regex skills are also very limited. There’s so much you can do with them.

I translated just a few german words/sentences. But now it seems that all phrases have already been translated to german. Is there nothing more to translate or do i miss something?

Regards
Thorsten

Exactly, currently there are no more german translation left…

German translation is completed for now, but we intend to upload new Skill data very soon. We are working on getting this automated.

I’m sorry to “repost”, but is it possible my questions got lost in the thread ?
@KathyReid, maybe you could help me ?

Hi there @dalgwen, firstly my apologies, I did miss your message in the thread.

Roles

We plan to implement the Roles that are outlined over the next few weeks - our initial release of Mycroft Translate was very much a minimum viable product. We also need to grow each language Community so that there are people involved who may wish to take on the Language Chair role for each language. So, yes, this will be enforced soon.

Workflow

We’re very intereted in hearing from the Translate Community around what sort of workflow the Community feels is most appropriate; we take a lot of the cues for what we do from our Community - after all our Community is a huge part of the success of the Mycroft ecosystem. Personally, I think you’ve captured a great approach - focus on quantity of translations first, then we can go back and refine for quality later on.

Exporting translations from Pootle to GitHub

My esteemed colleage @forslund has recently been working on an automation for this part of the workflow. The automation will take the translated phrases from Pootle, then using the GitHub API, will open PRs on the relevant Skills. If the Skills are under Mycroft control, then they will be auto-merged, or if not, it will be up to the Skill Author to accept the merge request - as always giving the Skill Author control over their work.

API access to Pootle data

Great question. We’re using version 2.8.2 of Pootle which doesn’t seem to have the API documented, so I don’t have a clear answer for you on this one yet I’m afraid.

Kind regards, Kathy

Great !
Thank you for your reply.

Just one question remains (maybe other people in this thread can answer):

  • Is there a way to validate a suggestion ? Pootle documentation seems to show a green check to validate one, but I cannot see anything like this in my interface.

Is this check also missing on your interface, or is it just me ?

@dalgwen you’re very welcome.

Validation won’t be available unfortunately until we implement the permissions framework.

More German translations now available :slight_smile:

Fantastisch!

https://translate.mycroft.ai/de/mycroft-skills/

Great. It’s a simple way to support the mycroft project.

Los geht’s mit der Übersetzung :slight_smile: .

@KathyReid
I’m unsure about the kind of tranlation of plugins.
When i should translate >>> “FindTaskOnList”: [ <<< i am not sure if this should be translated?
It seems more like a constant or variable name from the source code of the plugin.

Should i skip these kind of translations?
If it should be translated which of the following options would be the best?

a) “FindTaskOnList”: [ --> “FindeAufgabeAufListe”: [
b) “FindTaskOnList”: [ --> “Finde Aufgabe auf Liste”: [

Ciao @KathyReid

the italian translation is almost completed on https://translate.mycroft.ai/it/mycroft-skills/
but i do not see any merge in the periodic skills update

what is missing ?