Hi everyone, almost a full room. Welcome to the Translate of Daffro. There was a dad joke
popping up in my head for all this week. I would like to say welcome to the Translate of
Daffro where we speak your language, but now I can say welcome to the Translate of Daffro.
I'm going to be the hardest room I had to pause them. I'm Tom Nemor. I've been living
and breeding open source since the very beginning of my professional career. I've
recontrobuting to all kinds of open source projects from Asturisk, which is a voice
over IP, a server to Octoblue, an intimate of things platform. But about six years ago I started
contributing to Malermost. I started with translations from there I branched out to write
some documentation that some blog posts, that even some programming for them. Through those
years I became the webplate administrator for Malermost. I'm not the webplate expert. There
are other people here in the room that are definitely more an expert at webplate, of course.
I somehow became the unofficial translation community manager and two years ago I gave
a presentation about how we nurture our translator community here at Fossham, but the community
translator community of Malermost. For those who are not familiar with the Malermost project,
the chat center platform used in high-stake environments. It offers a massive amount of integration
possibilities. It allows teams to orchestrate sophisticated workflows and automate manual
processes. So far the marketing department, let's dive into translations. Since the very
beginning of the most project, translations were a community driven effort. We prioritized
quality before quantity, which we want to feel that the translations feel native, not
like a bad machine translation. That feels weird to say in a presentation about automatic
translations. I know that but I will fix that later. Right now we are shipping
better most in 22 official languages and I think we have another 20 languages that are not
officially supported and behind the feature flag. They are not official because they are lagging
to way too much translations to given good and user experience. But to make the work of the translator
more visible even for the translators than themselves, we make them visible behind the feature flag.
Just for scale, each language is about 1,700 strings, strings with which is roughly 85,000
words. That is about 200 pages for each language. So it is quite a lot of work if you have to
start from zero for a new language. What they talk about, automatic translations, we did the
first experiment and it said boom. Then we did something like, let's do this again and then
we end with some questions. Okay, or first experiment. As you can imagine, like every other IT company
or any company in the world, the last two years, management was very excited about AI. They wanted
to see if we could use large language models or specialized AI to lower the load for the human
translators. My very first test was just uploading a JSON file into the people and that
didn't work at all because all the ITs, the unique identifiers were translated as well so that
didn't work. So I ignored automatic translations for a while. And then I got to wear that
template at an output translation add-on and that triggered me and made me curious. And I decided
to give it a try. We picked our two smallest components in matter most, playbooks and calls
because we didn't want to break the whole product at once or intentions were good. And we decided
to only target the translated strings. We didn't want to mess around with the stuff that humans
already have translated with so much love and effort. I was still convinced that AI can't do it better.
But under the hood, the attentive listener already noticed that we used the template for translations.
I was at that moment not aware that you can pick a single language for auto translations. I
thought it had to be the full package or nothing but I learned it yesterday at the births of a
feather that you can. We used deple for our translations because we had a brief survey
a few years ago for what we had to do without translators. What are you already using
professional personal for your translations and they deple came out like okay we used that and
we use it now for the automatic suggestions in a web late. But I am just wondering I have questioned
for the room. Do you use deple or do you use other platforms? Or maybe I don't know.
I don't know. Open AI, Amazon translate, Google translate is there. Anyone who wants to shout out
something? Yeah. We often need to translate pretty much in German and for that we are always
fine that deple is the most divine. Yeah just for the recording translating from English to
German and deple is very good at it and they use deple or German translate or has the same
experience. We use translation of deple of these guides. We use my memory service which is a free
translation memory repository and it's very very accurate for Brazil Portuguese.
Okay. You will get a very high heat on the quality of the presentation.
Good. Guides. Yeah and can you and in Libra office yeah okay for Libra office and very good in
Brazilian. Modzilla from right Google's auto and now Google's auto and now yep.
Yeah. Hello through the Python API but translating stream by stream it lacks the context
and I'm dealing with medical software and it doesn't know the context of these streams
and the translation can be a bit. Yeah also deple for in a medical environment
but it's missing context. Yeah that's the same experience I have that context is key for and
I think you. Yeah.
Yeah.
All of them have similar issues in the mainly context and translate it to yourself. Yeah.
Okay. Google translate the young lex and deple. Yeah yeah I have an experience in the past
now it's improving from day to day that's known it was from pledge to from Dutch to pledge
made a lot of process and it was it was exactly but one sentence the context of the sentence in the
egg in the Dutch. Yeah. Okay. Yeah. Yeah. Yeah I have the experience with Libra
Transparency. Yeah Libra Transparency. Yeah.
Yeah. Yeah. Yeah. Yeah. It's the expected quality. Yeah. Okay. Um okay this is Gwynchett
um how easy it was to configure the add-on. Um we marked the strings as needing added
that way they we were sure that they would show up to each translator to be reviewed and then it was
quite sure and we were quite clear that yeah the quality of the string was probably not right
like I already stated we only used the untranslated strings and we used yeah deple and the vaple
translation uh remember we good um we have all green and vapulate fine we have all green and get
up fine let's merge it and ship it the daily build was building fine we are using the daily
build on our community server and after a few hours we got the message that the product was
crushing in some languages and that our translations were the culprit so we had our uh Starship
serial number eight moment successful flight and then you land and then it explodes in your face.
Okay what did we miss? Um people was a little bit too enthusiastic it was also translating
the placeholders you can see an example here uh yeah it's in Dutch my native language and others
has been translated to uh anderen um we had there are tests in vapulate to catch this tip from a
pro make sure that you are enabled in all components and not only in your large component that was
one of our mistakes uh our deaths have C.I. tests very well for a good C.I. test but they
weren't really anticipating this error because they were uh yeah we haven't uh checked in
vapulate for this so we don't have to check that and they're remitted as well and so we had to remove
the voltage translations there were a few hundred ones and then we checked we fixed our vapulate
config or deaths added more robust C.I. tests and the placeholders are now keep our no longer
translated so that's a bit better. Good that was our first test and we are we were happy we could
call it a success and we had something like okay we could use a small break from and now and then
we'll see how we'll proceed but a few weeks after this first experiment I received a message from
Malermost staff that they needed 100% Korean translations for an important customer
unknown to me so don't ask me and so the question was can we out of translate Malermost into Korean
the customer was find it it were automatic translations quality had to be good enough but not perfect
it was challenging because we had 7000 translated strings at that moment we had zero human Korean
translators at that time and we had three months to deliver yeah okay we did it how did we do it
um we created a new project in Ratlate based on the forks of the original repos because you
can't use the same get up repository in a different project in Ratlate if I'm not mistaken
that was never I got I stripped out every language from the repository except Dutch my native
language and Korean I wanted to keep Dutch and there so I could see what it was doing and if it was
working we enabled the auto translation plugin that was the easiest part of course we waited a few hours
and today we had 100% translations and you can be so lucky in life at that moment a new community
translator shows up a Korean community translator and says hey I want to contribute oh I have a nice
very nice job for you I have 340 broken ICU strings with where the placeholders have been translated
can you take a look at them and fix them and he did at that time also a staff member from
most set but I am a native Korean speaker how can I help catch some random strings and okay
they were saying okay this is good it's good enough it's not perfect but it's good enough and I created
five separated PRs for each component one if we had to roll back then it would be easy then
one of the parts is that I made a new project as well we merged our translations every Monday
and reviewing those Korean translations took some time and if I kept them in the official project then
yeah they should be merged so I should have removed them every time from the PR and that was too much
of a hassle so I made a new project and put cool requests in there one of the benefits was as
well that we could use these five cool requests to make a specific build for the customer to test
and he was fine with it so yeah where are we now the demo for the customer went well
we released the version but the auto translations two weeks ago so we called that a success
and speaking about success that's a space shuttle landing at night there was a talk
past year before that as well where have the woman intact gone this is a space shuttle mission
114 for the people who are interested in it was the first mission after the discovery
re-entry that the one that went faulty and disintegrated on re-entry and I'm saying this because
this is a female pilot that is flying this space shuttle by hand landing and she was the first
fighter pilot you you respite pilot first female dust pilot and first female commander
and on a mission with very high stakes sorry space shuttle is our special interest but I want to give
a lean Collins yeah the recognition the recognition for what he has done for all
accomplishments I'm a father of two orders so I am a natural feminist good
back to matter most back to translations our Korean translator is still active and he is now
fixing inconsistent translations like the word choice in sentences is often
translated in a different word you notice that and he is fixing that and he is really happy that
with the auto translations because it reduced his workload and he says okay those strings are marked
translate you know auto translated so we can actually filter on them and go through them and fix
what fixing the one that's are needed so we are almost there for Q&A but I have a question first
two years ago after my previous talk some other translator community managers reached out to me
after my talk and we had an interesting chat and although all over our products differ a lot
we have the most important thing in common and find translator community and we are all struggling
with the same things how to be as open and welcoming as possible but also how to keep our translation safe
how to make the rather invisible work of translator more visible and show them or appreciation
we don't know what AI will bring us so my plan is of I have the ID let me say that
that I would like to build a translator community manager's community I just think
matter most and they said okay you can use your dedicated matter most server that we are already
using for our translations create a channel over there feel free to join it's free you don't have to pay for it
and if you want to have a chat with each other you're more than welcome we can only learn from each
other so that's it time for questions drop your stickers and the things and bands afterwards
how we talk to your community translators about automatic translation and what are their feelings
in different situations where you've just done the whole thing
the question is have you talked with your translators about the auto translations plans
yeah we have a weekly post in our localization channel we announced that we were planning to do that
that we gave also the context that it was very important for us to keep the humans in the loop
that they keep and we're kept in control because yeah we are not going to tell them and it's
definitely not our plan either to say we're going to replace you by AI no AI has to be
helpful has to be a tool that we can use to make the workload a bit less for translators
and if we were not if the test was not going well we should also say okay we're not going
to go further with this we are not pushing this to work you this was a test we want to try it
my plan is now on to we have three lagging ship languages where there is no human translator
anymore the plan is to translate these as well with AI because we got a feedback that it's
helps people to start translating now you see people come in the translate four five
fifty hundred strings and they leave and we hope that we're going to try if we didn't use AI
and have some translations that they are more encouraged to fix translations fixing is easier
than starting from scratch in my experience
you can also use the AI to provide more context for the strings because the AI can
understand and the light or the dress even like you can even write scripts you can
attend us the language scripts but instead of you know testing to just take a screenshot
in the context we just think of yes so you can also kind of using your you know test you
some information yeah question it's not really question is more remark that you can use AI
also for giving more context you can script make a script that takes screenshots and at
these screenshots together when you're uploading them to an LNM for providing more context
is that correct but I'm
yeah also saying you can upload your source code as well and it can reach your source code as well
and go get more context in that way thank you
what I'm wondering when you were doing the automatic translations at first how useful
were public memories for the translation of MetaVos or did you not rely on the public
memories at all we did not rely on public memory oh yeah the question is the true rely on
public memories before you started out with translating and the true rely on them we did not
and why not there is no specific reason why we didn't probably because we didn't think about it
to be honest
it's artificial intelligence the translation in French artificial sciences is not right
because the translation is coming from the intelligence service at an end in French
so the inductive is a very traditional super super system you could eat that stuff that
the name something like that so in Chinese it's more broader the solidification of our sentence
how do you manage this problem the question is French and Chinese have quite different
words for technology that we are using like the word AI and if we have encountered any issues
with that and I can yeah for as far as we know we didn't have any issues with that but
French is officially supported language so yeah there were not that many French
but we for those two languages we have active community translators so we didn't have any
output translations for them because they were already 100% translated so I can't help you
any more questions
it was a pull request from the question is we are using web late for translations I was mentioning
pull requests and normally yeah translators don't take pull requests that is true we don't
make pull requests there is also a CI check on that in matter of most that translations can
only come from web late but we can override that but actually I did use web late
for making pull requests on Monday when we merged all the regular translations then I uploaded
the Korean translate and it was locked we merged pull back in into web late I rebased and then
I uploaded the Korean translations make you pull requests merged and rebased again
okay that was it thank you and now you're part of Stephen Goodman