 Hello, everyone, to today's Bite Size. I'm very glad that Marcel could make it. And he is going to talk about his work on translating NFCOR and NextFlow training material. So the stage is yours. Hello, everyone. Thanks, Fransiska and everyone else for having me. It's great to be here. It's great to be able to contribute to the Bite Size initiative. So today I'm going to talk mostly about translating material, but I'm going to also mention other efforts related to localization, translating content on NextFlow and NFCOR, right? So my name is Marcel. I'm a developer advocate at Sikero Labs for NextFlow and NFCOR. You can reach me out on Twitter, on GitHub, with me, Roberto Dentos, my handle. So the first thing that we're going to talk today is basically like what is localization? Which basically is how to translate content to be able to have content that people from different languages can be able to understand and contribute. And at some point, a lot of people reaching me and Phil and Chris and other people asking for translated content, asking for an easier way for people who doesn't feel so confident in English to be able to contribute and to follow NFCOR and NextFlow. So at some point it became really clear to us that we had to start working with that, to try to find something that could help these people, make them more comfortable and confident to learn NextFlow, to be able to contribute, to discuss. So we became clear that we had to do something. But then where to start? What should we translate, when, how? And a lot of people they start showing up to contribute during the mentorship. I think two or three people, they mentioned they wanted to help translating content or giving talks in their native language, where they live. Some people suggested to translate the documentation. Some people suggested other things. So a lot of ideas came up. We knew we had to do something. But then it was important to be smart about the way we would do that. I mean, we are not too many people, right? So even though a lot of people showed up to contribute, it would still be like six, seven, eight, 10 people. So not a lot of people. And we have a huge amount of documentation, right? A huge amount of content. So we had to be smart about how to use these people to be able to translate content. The original idea of translating documentation was kind of risky because the documentation is not only very, very large. It's also very often changed. So even if you managed to translate everything, like all the documentation of Nextflow and NFCore, the chance that it would be outdated was very high. So in a few days probably, the documentation would be already different in English. We'd have to translate it into another language. And even though we have some paid contributors like me or Chris and Phil, but so for Portuguese it would be fine because I could be watching from very close. But if you're talking about Hindi or some other language that we don't have anyone in the team that are fluent, it would be very hard to make sure it would be updated. And the risk of having outdated material was very bad because it could give a totally different, really impression to the community that maybe we don't value the translation, we don't value localization, we don't care about them. So it was very risky to translate something that would be good now, but then it would be very bad in a few days or weeks or months. So where to start? The idea that came up was to translate training material because they're much more stable. They don't change as often and they're not that long. And also they're easier to translate because they are like kind of informal language to explain something. Sometimes the communication is very straight. And unless you know very much about the technology, you don't feel so confident about changing that. So for the training material, it's more welcoming for newcomers to contribute. It doesn't change it often and it's not as long as the documentation, right? So in the end our cost-benefit analysis convinced us that indeed the training material was the best place to start with translation. So at the beginning, the main training material that we had in general was at the train.secure.io website. It was originally written and maintained by Secure Labs. It used ASCII doc technology, which was okay, but there are several limitations, several issues we wanted to overcome and it was very tricky on ASCII doc. And at some point, very recently, a few showed us material for MK docs and that we should use Markdown as we were using a lot of parts of the community. And he made a huge effort to convert everything to material for MK docs and then other people joined and we were able to convert the whole training content to this new technology that was much easier to change, much more powerful and even much more beautiful. So now we've been using material for MK docs. We decided to convert the training material to a more community effort. So it's now hosted at training.nexford.io. Even though the original content was created by Secure Labs, it was donated to the community, so it belongs to the community. It's maintained by the community. It's much easier for the community to contribute, much faster, much easier. We have indeed a lot of people that contributed compared to the past and by having this new format and this new domain with new people, with new technology, it was exactly at the time where this opportunity for localization came up because a lot of people wanted to contribute around the same time we were doing this conversion. And then we were able to find this plugin called MK docs static IATN, internalization, which makes it very, very easy. Once it's set up, it's very easy to maintain and contribute different versions of the content in another language. So that's how we have now the training material. It's hosted at training.nexford.io. It's very, very similar to the original content that we had before in training.secure.io, but it's more beautiful, it's more organized, and it's been proved a lot in the past two or three months. And of course, now we have it in other languages also. So once we set it up, we were able to write this translating that MD file in the GitHub repository, explaining how you can contribute, the contributing model that we have. It's kind of obvious for people who are very experienced, who are already experienced with GitHub, but for people who are not, it's very important to have it very clear. After all, a lot of times people that contribute to content, to translation, to documentation, they're not very skilled with GitHub. So we made sure that it was very clear how to do that on the translating that MD file. So basically you make a fork of the GitHub repository, the training material of GitHub repository, you work on your local copy on your fork, you check the mk.dobs.demo file to see if the language that you want to contribute is already set up there, which is basically one, it's very, very easy to see soon. Then you go to the file, the original file that you have, which is in English, you just duplicate it, add the language code of your language that you can check in a link that is shown in this, translate.md. And once you've done that, you just change the new file, the file name.pt, for example, .md, you keep changing it. And in the end, you just open a whole request to change that. Same thing for image files or any other type of file, you just add a language code and everything else that we're taking care of by this plugin, right? You're free to tag all the contributors with the add symbol to request a review. So whole request, they need at least a review before they are merged. And there's an important note at the end. I'm gonna talk about it in the next slide so it's clear to you. So let's just skip that for now. So here's one example of the first contribution that was done in Spanish. So as you can see in the bottom here, the MK.NET ML file, it's just a matter of, yeah, it's a bit, the image is a bit larger than the screen, but basically you put your language code at some point below languages, you give a name to your language and you give the code is here, right? The code is here. So basically that's what you do. And you create the file.theCode and you can just put the content at the place where the English content were, okay? So this is the graph of contribution that we had for the whole history of the training material. So it's very, very old, right? So it goes even, I think over two years ago. And at some point there was some small changes that you can see here because September in 2021, it's a one. And around April in 2022, you see there was some change here. I think this was right when Chris was hired, Chris Hagar. So one of the first things he, no, maybe I think it was around, no, yeah, I think Chris joined in June. So in July and June, Chris and I started working on that, mostly Chris, because I hadn't joined Sekeroy yet. So I was doing some contributions as a volunteer effort. And then in October, I was already in Sekeroy, joined at the end of July. I said contributing a lot. So there was a lot of contribution around the end of the year, close to the training that we had. And I've got training in October, 2022. It was a lot of work to make sure that the training material was better at this. Oh, sorry, sorry, sorry. I was in the wrong year. So it was here, it makes more sense now. So here in this, you see in July, there was a lot of contributions, but this was mostly Chris than I. I think the other Chris also contributed a bit and feel also, but you see this huge help here, this huge amount of contributions was mostly by one, two, three people, maybe. So it was really like a lot of stuff that was easy to fix, like typos and very easy to fix. And very few people working on that. So even though it looks like a lot of contributions for the community size, not a lot, because it's like employees by Sekeroy. It was a Sekeroy content, less of low hanging fruits, let's say. So even though it looks nice, we had lots of contributions here, it was just like pay people to do that, very few people and so on. It was October before training and during training. And then we have this year now. You see, it's a lot of contributions for a longer period and a lot of people involved. And most people were volunteers. This is the thing I like. This is the real community appearing, in my opinion. And as you can see now, we have over 20 contributors, over 20 people who have contributed to this repository, which is basically training material, right? So we have people who has worked in Sekeroy or work at Sekeroy, but we have lots of people who have no ties to Sekeroy. So this is like Yara from Brazil, João from Brazil. You have, I forgot the name of this researcher. He's from South Africa. But you can see the other contributors who have people from all over the world. You have Annabella from Argentina. You have Pablo from Spain. You have people from all over the world that contributed in this period for the improving of the material, but also through this translation. So I really like this chart because it shows that for a long time we've been working on the training material, but ever since became a community material, and we opened up this opportunity for localization, a lot of people came to help. And it's just amazing to see how many people have been using this training material in other languages and commented and shared the local trainings and all these things. It's very, very nice. You see that it's being used, not only that it's very nice, that it brought a lot of people to work together, but also that a lot of people are using it and enjoying it. So the current studies that we have is that the English content is a very nice quality because it's been improved a lot. A lot of people have doubt into the English content to make sure everything is working. Multiple trainings have occurred, so everything is working, everything is fine. We were able to translate the whole training material to Portuguese and it's up to date. So it's translated and it matches the English version 100%. For the French version, it's about 30% translated and the part that is translated is up to date. And Spanish is about 2% and up to date, but actually there's some pull requests that are being reviewed, so the number is actually higher. So how do we know that? 100% is easy, right? Because we translated everything, but how do we know the 2%, the 30% and all this thing? How do we track that? So there's a technology called GitLocalize. It's very interesting. So basically GitLocalize, it watches a GitHub repository and I mean, it watch like the files that match a block that you define, it pays attention to when they are updated and when the original files are updated. So the debugging.md, for the debugging section of the training material, then you have debugging.pt.md for the Portuguese translation, debugging.fr.md for the French translation, debugging.es.md for the Spanish translation and so on. So by watching that very closely, every time you change the original English file and all the languages equivalent file doesn't change, GitLocalize, you should, you know, this isn't complete. Now it's only 99%, 98% translated. And it watches what it's called segments so that very small parts of the file are being taken care of to make sure that, you know, where it was changed. So by using that, we can watch very closely these tables of every language. We can have editors and moderators for every language. So it's a very, very powerful tool, and it's free in the plan that we have. So the way they make money is to providing this bridge between software developers and professional translators. In this case, we translate ourselves, but if we needed translation services, that's how they make money. We have an issue right now with the GitLocalize because the way that originally it was made so that you use the platform to translate this so it has an integration with GitHub and then you open up a request from the GitLocalize platform and it's gonna open a GitHub repository. And we don't do that because it kind of breaks the breakdown code for materials for breakdown that we're using. So we have this limitation. We have been talking to them to make sure this is gonna work better in the near future. They are very responsive, we are working on that. But so far because of that, sometimes we have some weird things like the 101% here and say that it's incomplete, even though it's not. So it's a very good tool to watch and manage this translation effort, but it's not perfect for our need. So we've been close contact with them to make sure it's gonna be more tailored for our situation. And I believe it's gonna be soon because they're very responsive, they really wanna help, it's very, very nice. So one thing we also did was to create a project board on GitHub, make sure it was easy to manage everything. As you can imagine that like weeks before the training material, we have so many different things that we want to change and improve and test. And then we have people that want to contribute with Spanish and French and Portuguese and Fixing in English. So I was in charge of this initiative for translation. So I made sure that everything was organized and easy to reach and understand who was doing what. So I created this project board to be able to organize everything. And it was a very good initiative. So if you haven't used GitHub before or anything, it's a good thing to use to make sure that you, was ready to review, was being done and using tags and using labels and who is assigned what. So I think it was a good experience. And it was not only written material. So we had the NFCOR training in March now, the last one. And for the first time ever, we had a training delivered in multiple languages at the same time. So we had English as always. Was done by Chris Huckard. We had a Portuguese version that was done by me. We had a Spanish version that was done by Julio Mipetro and Gisela Gabernet. We had the French version given by Maxime Garcia and the Hindi version given by Abhinav Sharma. So this, it's not only interesting and very amazing in my opinion, because it was done in multiple languages, but also this was the most complete training that NFCOR has ever done. So basically the full training material right now, which is very, very long, we gave it from the very beginning to the end plus a significant part of the NFCOR documentation. So it was a four day two hour each session, very complete in a very nice rhythm in my opinion, mostly because it's on YouTube. So you can just change the speed or pause if you want. So in my opinion, it was a very nice training of very, very nice content. All these guys, they made amazing, amazingly. Like it was very nice to watch some of their talk was very, very nice. So I was very happy at the end that we were able to conduct this effort to have it in multiple languages. And I already saw that a lot of people were very happy about it using it. Obviously most people gonna watch it in English be them native speakers of English or not, just because it's more, you just go to the English, you don't even know what they are in other languages. But some people watch in the other languages, it was clear that a lot of people were able were able to benefit from the training. And otherwise they wouldn't be because they are not so confident in English. They are shy, they don't think confidently. Now they just would rather watch it in a different language and now we have it. It's not all the language of course, but a lot of language that are very common around our community. We also had another effort which was the region Latin America channel on the next floor NFCOR Slack. So a lot of people from Latin America requested for a long time a place to be able to speak in Portuguese and Spanish and to try to grow the community. Like as you probably know in North America and Europe the next floor NFCOR community is huge. It's very, very large. But if you go to other places like Middle East and Africa and Asia and Pacific and Latin America and the Caribbean the community is much smaller. And the Latin American community specifically it was growing on Slack compared to the other ones but people were still a bit disconnected. And some people started to ask for a channel where they would be more comfortable to speak in Portuguese or Spanish or to ask more beginner questions, let's say. And at some point we got some requests we decided, okay, let's try this out. And now we have this channel which is communicating between the two Slack. So you just have to be in one to be able to participate in this channel and comment and read content. And we had seen a lot of initiatives there. I mean, the translation mostly started there the translation initiative. So it was very, very nice to see this happening. So that's it. I will welcome any question you may have about the F4 or anything else. You can contribute in this first link which is the GitHub repository of the training material. You're welcome to join the next floor in the NFCore Slack in these two next links and I'm also open for any type of contact in my email. So thanks for having me and thanks for paying attention. Thank you very much. And really thank you for this impressive work. I think this will help a lot to get like some people in the NFCore boat that would otherwise not have dared. Yeah, definitely. Yeah, do we have any questions from the audience? It doesn't seem to be the case. Then I would like to thank you again and I would like to thank the audience for listening in. And as usual, I also would like to thank the John Zuckerberg Initiative for funding our talks and also actually this translation efforts are part funded by the John Zuckerberg Initiative. Exactly. Thank you very much. Thank you. Have a nice day, everyone.