[00:00.000 --> 00:09.520] Hopefully, yeah, I will wait, I just want to test the sound that it works on the other [00:09.520 --> 00:10.520] side. [00:10.520 --> 00:17.680] One, two, three, weblight, weblight, weblight, pontoon, weblight, weblight, weblight, pontoon, [00:17.680 --> 00:23.560] weblight, weblight, weblight, weblight, weblight, weblight, weblight, weblight, weblight, yeah, [00:23.560 --> 00:24.560] it works like that. [00:24.560 --> 00:25.560] This is how you sell weblight. [00:25.560 --> 00:37.800] You just say it a lot of times and, yeah, yeah, great. [00:37.800 --> 00:42.960] So long two days, right, and a lot of to come. [00:42.960 --> 00:49.640] I just want to ask you if you can all do a frowny face, like you just ate something weird, [00:49.640 --> 00:55.520] yeah, test it, test it on yourself because you will need it throughout the talk. [00:55.520 --> 01:00.720] Because you are from different backgrounds, somebody is a developer, somebody is not a [01:00.720 --> 01:07.480] developer, somebody knows weblight very well and somebody came here to get to know weblight. [01:07.480 --> 01:19.400] Somebody was on my talk yesterday who was not, can watch probably tomorrow or the after, [01:19.400 --> 01:25.280] the recording, but I didn't get the link yet, so probably soon it will be. [01:25.280 --> 01:30.320] So the frowny face will be in use if you don't like something, if you feel like you [01:30.320 --> 01:31.960] are bored here. [01:31.960 --> 01:37.480] Just do your frowny face so I know that I should go a little bit quicker through what [01:37.480 --> 01:41.440] I am just talking about, yeah, okay. [01:41.440 --> 01:50.800] So I'm Benjamin, I'm from weblight, I do the talking and Michael there do the coding. [01:50.800 --> 02:00.280] So yeah, that's the weblight team and we also have a teammate named part and he does the [02:00.280 --> 02:04.680] coding part time. [02:04.680 --> 02:06.960] So what's weblight? [02:06.960 --> 02:15.080] And okay, weblight is a Libre localization platform, it's well-documented piece of software, [02:15.080 --> 02:21.600] I want to point it out because sometimes if you want to get to know to the software, [02:21.600 --> 02:23.840] you get to ask a lot of questions to other people. [02:23.840 --> 02:29.280] With weblight you don't have to, but yeah, you can still ask me if you don't find your [02:29.280 --> 02:31.520] answer in the documentation. [02:31.520 --> 02:40.640] It's a couple of the software, it's licensed under GPL3 and all the development is public [02:40.640 --> 02:42.560] on GitHub. [02:42.560 --> 02:51.560] We started as an open source project and it's not going to change because yeah, it's the [02:51.560 --> 02:55.920] best way to develop software. [02:55.920 --> 03:01.800] What weblight should do is to make the tough process of localization and coordination of [03:01.800 --> 03:12.440] a lot of people and having so many things at so many places just easy and it's for [03:12.440 --> 03:18.400] developers, it's for translators, it's for managers, it's for everyone that's involved [03:18.400 --> 03:27.080] in the project of localization and wow, it's a weird color, but next to a logo you will [03:27.080 --> 03:32.760] read it's a verb and yeah, some of our users started using two weblight which means I'm [03:32.760 --> 03:39.720] going to translate something on weblight, so we are a verb too. [03:39.720 --> 03:50.000] It works or is aimed that you will just set it once or tell it that it needs to be set [03:50.000 --> 03:56.480] in some way in the future and it will do itself, so you just set it and forget it and let [03:56.480 --> 04:03.080] it work for you because you don't want to do the work if it can be done by a great piece [04:03.080 --> 04:05.280] of software. [04:05.280 --> 04:12.320] It's supposed to be having all translations, so not just one platform, not just your website [04:12.320 --> 04:20.000] or your app, everything in one place, many, many stands of localization file formats are [04:20.000 --> 04:25.400] supported so you don't have to use weblight just for part of your workflow, put there [04:25.400 --> 04:31.040] everything and it will give you a free time. [04:31.040 --> 04:38.400] Once you have your translations there, you probably want to give it a context and communicate [04:38.400 --> 04:42.680] with other users, you can do that, if you find that search string weird, you can just [04:42.680 --> 04:47.680] add a comment, notify the maintainers and they will know it. [04:47.680 --> 04:53.560] Once you have it integrated, which means in the best way integrate it with your version [04:53.560 --> 04:59.440] control system because that's why Michal started weblight 11 years ago to have some kind of [04:59.440 --> 05:05.560] translation software tightly integrated to what you love to do, you will love to develop [05:05.560 --> 05:11.680] software not to send back and forth or use API calls or write scripts, you just want [05:11.680 --> 05:17.640] to develop your software and let some other software do the parts you don't fancy that [05:17.640 --> 05:19.640] much. [05:19.640 --> 05:27.960] Once you have your translations there, then you go to the editor if you are a translator, [05:27.960 --> 05:33.600] which is a lovely part of weblight where you can see all the context, all the screenshots, [05:33.600 --> 05:38.920] all the communication with other translators and where you can localize the string to your [05:38.920 --> 05:44.480] desired language out of the searched language or multiple languages. [05:44.480 --> 05:51.200] Once that's done, weblight does the magic as Jean Baptiste from Fedora said because there [05:51.200 --> 05:57.600] are all the checks and fix ups so you don't have to control the quality of your, I shouldn't [05:57.600 --> 06:01.560] be in front of that so, right. [06:01.560 --> 06:09.480] You have the quality you want to, not some messy translations that can be understood [06:09.480 --> 06:13.760] differently in the app in the end. [06:13.760 --> 06:24.720] Once this is done or while this has been happening, you have it in a database, we prefer the [06:24.720 --> 06:31.360] elephant but you can also use MariaDB but elephant has more power, more strength for [06:31.360 --> 06:37.480] the best performance and once you finish there, weblight stores it in the underlying [06:37.480 --> 06:43.200] Git repository and that's part of the magic because that's a tool you already know how [06:43.200 --> 06:52.080] to work with so if you are a little bit lost about, let's say you got a merge conflict [06:52.080 --> 06:56.520] because you added the same thing in weblight and in your repository because yeah, you don't [06:56.520 --> 07:01.120] want to wait, you want to have everything continuous, you just solve a merge conflict [07:01.120 --> 07:06.400] and if you don't know how to, it's described in the documentation of weblight so that's [07:06.400 --> 07:13.080] the easy part, that's the way how to make it continuous with as less false as possible [07:13.080 --> 07:23.720] and basically you need to get your translations in then do as less work with help of machine [07:23.720 --> 07:31.320] translation and stuff and then get it out and in and out is very easy because it's just [07:31.320 --> 07:36.160] thinking one Git repository with the other or if you prefer work with the API, weblight [07:36.160 --> 07:43.880] has it so you can do that or if you like to translate in some offline tool, in desktop [07:43.880 --> 07:50.520] application you just download the file for localization files in the file format you [07:50.520 --> 07:56.440] like because weblight can converse this for you and then you can upload it back without [07:56.440 --> 08:03.680] being afraid of making the file invalid and once you have that everything set up you can [08:03.680 --> 08:08.760] reuse your translations because there is a translation memory which you improved by your [08:08.760 --> 08:17.720] manual translations and with machine translation so if you are let's say translating the same [08:17.720 --> 08:23.520] project over and over again for new versions like LibreOffice you can build your translation [08:23.520 --> 08:28.320] memory with help of machine translation with help of your community and in the end you [08:28.320 --> 08:35.880] don't need that much of manual work, you don't need that much questions to the machine translation [08:35.880 --> 08:42.040] engine because you already have your core, your basis in the translation memory which [08:42.040 --> 08:51.040] you can use as a source for the machine translation so that's the reuse and as a result what [08:51.040 --> 08:57.280] you want to get out of weblight is your software in your language because yeah then you truly [08:57.280 --> 09:04.920] own it, you truly own it, you want to reduce as much work as possible because everybody [09:04.920 --> 09:11.760] wants to work on what they desire to do not the manual work that's again and again the [09:11.760 --> 09:21.600] same so let translators do their work, let developers do their work and happily be codependent [09:21.600 --> 09:28.120] you want high quality translators, translations and you want the engagement from the community [09:28.120 --> 09:35.680] because if they have the easy way if they figure out in their UI they are just watching [09:35.680 --> 09:42.560] there is a mistake and then they probably know the best how to correct that mistake [09:42.560 --> 09:49.920] but if they won't find the way how to correct it where they won't send you an email if they [09:49.920 --> 09:56.280] have the tool it's their software they can make it better very easy way make it themselves [09:56.280 --> 10:03.680] it's their software so they can work for the whole community and attract more translators [10:03.680 --> 10:11.360] more users because that's how you do it you of course want to free the time of developers [10:11.360 --> 10:17.200] yeah I think I already said much about it and you want to be prepared for the future [10:17.200 --> 10:22.560] versions and for the future project because usually you use the same translation so you [10:22.560 --> 10:30.120] can be very well prepared for that too Weblight as a project started 11 years ago as a part [10:30.120 --> 10:37.320] time project but now I will probably talk more about it if we have time in the app [10:37.320 --> 10:44.040] but now it's sustainable on itself without any venture funding or something like that [10:44.040 --> 10:52.520] we how we get the funding these are the four ways we offer the hosting services to commercial [10:52.520 --> 11:02.880] customers or to lovely projects like Fedora or some other projects like some other projects [11:02.880 --> 11:11.160] like OpenSUSE because Mikhail started it while working in OpenSUSE are using Weblight for [11:11.160 --> 11:14.880] long years but they hosted themselves and just pay for the support because sometimes [11:14.880 --> 11:19.760] they need a little bit of help with something we also offer custom development because as [11:19.760 --> 11:26.400] we are a small team we are very flexible in delivering new features and as we have the [11:26.400 --> 11:31.640] same code base for everyone no matter if you are a commercial customer of Weblight services [11:31.640 --> 11:39.400] or if you are small or large Libre project you have the same features there so if very [11:39.400 --> 11:46.080] big corporate like some Siemens company will pay for a nice feature you as Android developer [11:46.080 --> 11:51.040] of a small podcast app can use it too and that's great or you can contribute to the [11:51.040 --> 11:55.960] code and they will get it too because you want to support big companies too give them [11:55.960 --> 12:05.800] something back maybe and of course as every Libre project we also accept donations then [12:05.800 --> 12:10.000] you came here probably if you know Weblight to listen about the plans what we planned [12:10.000 --> 12:21.240] for this year and this is it we want to become more enterprise ready the current state because [12:21.240 --> 12:29.000] some of you we met at GNU HealthCon the good thing is that more of a large part of the [12:29.000 --> 12:35.760] work at the backend is done what means enterprise ready at this moment Weblight as it started [12:35.760 --> 12:42.520] as a small project and not aimed to be something that influential and that important to large [12:42.520 --> 12:49.400] groups of people to large projects there is currently just a project and a component [12:49.400 --> 12:55.400] and that's it but you will be able to create multiple levels of grouping let's say for [12:55.400 --> 13:02.440] different versions yay Fedora is happy and we are happy too but give us time give us [13:02.440 --> 13:10.480] time a little bit and of course when you have the large group large community you need to [13:10.480 --> 13:16.400] manage them you need to give them access and at this moment it's possible in Weblight you [13:16.400 --> 13:24.200] can connect your single sign on method like SAML or GitHub or GitLab and manage them there [13:24.200 --> 13:30.400] or you can do it in Django admin some strange thing but this is a history now now you can [13:30.400 --> 13:36.040] manage it fully inside Weblight and there will be even more so you can use Weblight similarly [13:36.040 --> 13:40.800] like you are used to with GitLab GitHub and other tools where you can create the teams [13:40.800 --> 13:49.480] organizations and let them do their work without you having to pay attention to that all good [13:49.480 --> 14:01.880] yeah okay then as Weblight again most of the things are something we didn't plan in the [14:01.880 --> 14:08.280] original way so now Weblight is a little bit rusty to play the big part for large projects [14:08.280 --> 14:15.960] or and some of those is also universal search hints because at this moment search is some [14:15.960 --> 14:25.240] on some levels or on the whole level but can't it's not that convenient and it would search [14:25.240 --> 14:31.080] from one place everything in between so you need to click through and then search for [14:31.080 --> 14:36.880] something this will be changed also to make it easier to navigate because from our operating [14:36.880 --> 14:44.120] system from our cooperative tools we got used to to a nice universal search in on every platform [14:44.120 --> 14:52.000] so you will find that in Weblight too and yeah that's it of course UX can be better [14:52.000 --> 15:00.000] every time we really want to grow the team so yeah if you know a developer tell them [15:00.000 --> 15:05.680] it's a great project they can contribute and they can get paid for it which is really nice [15:05.680 --> 15:15.160] in open source world and yeah we want to continue organic growth and after yesterday talk we [15:15.160 --> 15:19.800] got to some talking maybe we will do something with pontoon maybe not because there won't [15:19.800 --> 15:27.880] be time maybe it will make sense maybe it would not but we would like to be to investigate [15:27.880 --> 15:37.560] that way too and yeah as we still have some time maybe we can talk about how Weblight [15:37.560 --> 15:46.360] began this is where Weblight began this is Michael's office who was on yesterday's talk [15:46.360 --> 15:55.280] lightning talk okay good so this is small room on top of the large concrete building [15:55.280 --> 16:04.000] we built in the Czech Republic and it's like three to four meters something like that and [16:04.000 --> 16:08.480] there used to be all the machinery for the elevators so it's not a garage project it's [16:08.480 --> 16:16.040] basically the elevator project and it's weird because it was like on top of the elevator [16:16.040 --> 16:23.160] there was no elevator at the time when Michael was coding there so yeah we need like higher [16:23.160 --> 16:29.320] elevator or just use the steps and build them before so yeah it takes time and yeah this [16:29.320 --> 16:36.880] is website of Weblight where you can see all the translations that are happening on Hosted [16:36.880 --> 16:47.640] Weblight these are some of our lovely users from the open source community what pushed [16:47.640 --> 16:57.200] us into big feeling of responsibility was when a few years ago Fedora approached us [16:57.200 --> 17:03.200] and realized that they want to use Weblight because it makes sense and it doesn't make [17:03.200 --> 17:08.160] sense to if they want to create a great Linux distributions and they have a lot of other [17:08.160 --> 17:13.360] work they don't want to maintain Zenata because they don't have time that's not their main [17:13.360 --> 17:20.760] business so they switched to Weblight they did it really really well in the migration [17:20.760 --> 17:28.160] process of course they found a lot of bugs we were able to fix them thanks to them because [17:28.160 --> 17:34.080] yeah once a developer finds your bug they are usually or technically skilled people [17:34.080 --> 17:42.560] great to describe what's the problem and then it's very easy to fix it and yeah that's [17:42.560 --> 17:52.280] what got us to the current state and if you want to hear more about this thing why we [17:52.280 --> 17:59.000] feel that there should be something to connect Weblight with other tools and make it easier [17:59.000 --> 18:03.680] for all the communities you can listen to the yesterday's talk why the recording will [18:03.680 --> 18:08.360] be available we will definitely let you know on our website we will definitely let you [18:08.360 --> 18:19.080] know about everything on our Mastodon account and I think we don't need to take the time [18:19.080 --> 18:25.880] about my story just a funny part my story with Weblight became we first met with Michal [18:25.880 --> 18:36.160] at Fosdam in 2017 and I was here with a different project and another Michal yeah popular name [18:36.160 --> 18:41.840] in the Czech Republic introduced me to this Michal that was my colleague that time and [18:41.840 --> 18:48.520] that project that was tourists open source router and then we didn't see with Michal [18:48.520 --> 18:57.040] for two more years and then in 2019 I came here looking for a job in 2018 I came here [18:57.040 --> 19:03.720] with a different project and 2019 I just wanted to return to Fosdam and be in the atmosphere [19:03.720 --> 19:08.880] and that time I was living in Prague Michal was living in Prague we knew each other yeah [19:08.880 --> 19:14.680] but we met here again and we started working together so yeah tell that to people just [19:14.680 --> 19:23.200] come to Fosdam but yeah you already tell them so yeah I think we have like 12 minutes now [19:23.200 --> 19:31.520] for questions so yeah let's talk and you probably you are all smiling there was no [19:31.520 --> 19:39.200] frowny faces okay who has the question hello Jean Baptiste [20:01.520 --> 20:18.160] but we have some kind of a plan so that in the future we can search for translation coming [20:18.160 --> 20:25.120] from whatever data suits because we have Weblight hosted for the federal project we have the [20:25.120 --> 20:32.000] Weblight for Libreface the one that you are hosting and there are many other places where [20:32.000 --> 20:37.560] you can find use for translation but as a translator I would like to search for every [20:37.560 --> 20:43.360] existing translation of some terms and I want to see okay what is oh consistent is my translation [20:43.360 --> 20:49.480] at the moment and should I align on the current way it is translated or maybe it's wrongly [20:49.480 --> 20:55.280] translated in most places and I should go fix the translation okay I would love to see [20:55.280 --> 21:00.920] something that helps us to at least iterate the knowledge not having some kind of magic [21:00.920 --> 21:06.640] tool that we are also looking for as raising the world's translation but just to know what [21:06.640 --> 21:14.160] is the true state of translation and I think the Mozilla people have some tool that allows [21:14.160 --> 21:20.280] them to search for existing translation I would love to see some kind of tool that allows [21:20.280 --> 21:30.200] me to search for a string across all the translation coming from the weblet's instance or even [21:30.200 --> 21:39.400] from other okay I will try to sum up the question now we will see if I was paying attention [21:39.400 --> 21:48.720] so the question was if we plan to introduce some place it's slightly related yesterday [21:48.720 --> 21:53.560] when I had my lighting talk about possible translation MD something like that I meant [21:53.560 --> 22:00.000] to show people show translators one place where they can find the project they want [22:00.000 --> 22:05.800] to translate and Jean Baptiste would like to take to elevate it to weigh another level [22:05.800 --> 22:12.760] to have some kind of shared translation memory or shared glossary where translation translators [22:12.760 --> 22:21.080] can go to and check how to translate the best the best the thing they are currently working [22:21.080 --> 22:32.000] on yesterday on my talk I was trying to be not very imaginative because I usually am [22:32.000 --> 22:39.000] very excited about everything and then there is no time to do that I can imagine something [22:39.000 --> 22:45.480] like you just proposed but I can't imagine anybody doing it because that would just mean [22:45.480 --> 22:51.560] a lot of a lot of people working on it and then we would need to help with some licensing [22:51.560 --> 23:00.840] and stuff so yeah it would be nice I'm not opposed but I can't imagine at the moment [23:00.840 --> 23:06.920] I would start with what I was talking yesterday and then maybe on top of that might be something [23:06.920 --> 23:13.960] to build on currently you can search on hosted Weblight which is pretty large base of open [23:13.960 --> 23:21.280] source project you can search through their translations because they are open and yeah [23:21.280 --> 23:28.200] you can search on discover Weblight for the project so you can realize through their oh [23:28.200 --> 23:36.320] I want to see how Susie or Fedora is translating that or Susie or Fedora is translating that [23:36.320 --> 23:44.040] and yeah you can go from there but you all every time you have to go to that particular [23:44.040 --> 23:51.160] space and search it there so yeah maybe we will just once we have the translation MD [23:51.160 --> 23:58.400] we think about for two years and not doing anything on it and also universe of search [23:58.400 --> 24:05.400] then we will just maybe throw it to some clever people with AI but I'm scared of what would [24:05.400 --> 24:21.960] happen from there so yeah there is another question [24:21.960 --> 24:51.800] so some kind of a okay the question was if [24:51.800 --> 24:58.200] there would if there is any plan to provide if there is any plan to provide some kind [24:58.200 --> 25:04.400] of live preview of the strings that are translated another thing we were the answer is another [25:04.400 --> 25:10.080] thing we were talking about through recent years and that's quite large to develop so [25:10.080 --> 25:16.280] again we would like to do that and you can support this effort if you find help to find [25:16.280 --> 25:23.280] us front and developers [25:23.280 --> 25:51.280] so it's kind of you can do it but it's not and this was not the intention of the teacher [25:51.280 --> 26:00.440] okay I will play a little bit like a sports commentator on the right we have what's your [26:00.440 --> 26:07.440] name twice and on the left we have Michael from web late and twice is having an Android [26:07.440 --> 26:13.840] app and needs to wants to see it before he commits to the version and Michael is saying [26:13.840 --> 26:22.880] it's partially possible and you can talk after the talk into the deep of this topic and we [26:22.880 --> 26:40.080] still have more time I will stop you here stop you here it's not a problem it's not [26:40.080 --> 26:44.400] a problem it can't it's it's a thing that can be solved very easily we will just tell [26:44.400 --> 27:12.400] you go here follow there that's not a problem [27:12.400 --> 27:19.840] you can actually you can actually do this you can actually do this web late uses translation [27:19.840 --> 27:25.640] memory once you have it you can export it import it in tbx which is a standard format [27:25.640 --> 27:34.280] and you can also use web late translation memory as a source for I will repeat the questions [27:34.280 --> 27:41.480] at the end sorry you can use also web late as a source for your machine translation so [27:41.480 --> 27:50.560] it's just clicking in the UI and it should serve your needs the question was if it's [27:50.560 --> 28:00.760] possible to use web late as a source for machine translation can I yeah okay we still have time [28:00.760 --> 28:25.880] is there any other question okay oh yeah [28:25.880 --> 28:31.280] translate is supported as a machine translation source in web late so you can use that but [28:31.280 --> 28:35.440] we are not yet connected with the community and we will be happy to connect with them [28:35.440 --> 28:41.800] and maybe figure out some deeper integration and more promotion in the community and yeah [28:41.800 --> 28:45.200] I will get back to you after the talk and there was one more question [28:45.200 --> 29:06.160] I'm sorry I have to stop you I will go closer to you yeah or if you yeah [29:06.160 --> 29:31.920] yes it's in a context in the editor of web late they're under the source and the field [29:31.920 --> 29:39.960] for the translation there are a few tabs like comments like other translations in neighboring [29:39.960 --> 29:49.400] projects and also or new projects and components and also if you set up your machine translation [29:49.400 --> 29:55.240] engines they will see it there so they don't have to look for it they will your translators [29:55.240 --> 30:08.960] will see there and they will just click to copy it into the translation and like without [30:08.960 --> 30:20.360] without offering translators to to copy it just translate everything to machine translation [30:20.360 --> 30:37.960] you can yes yes there is there is an add-on called automatic translation and you just [30:37.960 --> 30:46.840] in install this add-on and instruct it to use particular or or trans machine translation [30:46.840 --> 30:55.080] engines you set up at your web late instance or for your project to insert translations [30:55.080 --> 31:03.760] or suggestions for untranslated for or for all strings so it is possible the add-on is [31:03.760 --> 31:12.720] called automatic translations and you will find more info in the web late documentation [31:12.720 --> 31:22.360] okay we will get there after the talk thank you very much for being here thank you for [31:22.360 --> 31:40.640] your time and enjoy rest of your FOSDEM experience and see you next year okay okay okay I can [31:40.640 --> 31:54.080] do that it's not all it's just some and there is the next speaker is not here yet so here [31:54.080 --> 32:03.800] we go you can do it you can do it he will just take a picture and we are sad enough I have [32:03.800 --> 32:13.600] no problem I don't care he's the one in charge okay