 So ladies and gentlemen, please welcome our next speaker, Noriko Mizumoto. Hello, my name is Noriko Mizumoto. Thank you for coming to my talk. This is the very first time for me, so I'm getting very, very nervous. If you have any questions, please feel free to throw it straight away. Let me introduce myself a bit. I am Noriko Mizumoto, Red Hat Employee. My section is called the Localization Service Team under the Globalization. Today, I'd like to introduce what is the localization is. First, I'd like to talk about what is the localization. Visually, I'd like to introduce you and show you how it looks like. And then go through the internationalization and then push to the Xanata platform. When you, if you are the developers or the programmers or the maintenance, and then looking at to localize your application, then you have to go through the work process. Internationalization is kind of the preparation, that application to be localized, so that this has to be done first. After the internationalization, then, well, the file itself, the translator can work, but it's much more safe and better way to use the translation platform is called Xanata, that has been briefly introduced by the previous talk. Push to the Xanata platform means that push the file itself to the Xanata platform. And then it's ready to be localized by the translators. Localization won't happen in the, automatically. It isn't a machine translation. Every, every language translator will work manually to translate every strings in the Xanata. And then once completed the files, what happens is, again, the developer has to pull the files to repackage the application itself. And that is a work, that is a work for all. And at the end, we'd like to talking about a little bit the tips when you, when you are thinking about to localize your application itself. First, what is localization? This is a part manager, part manager program. Everybody probably know that to create the battery machine. The left is English version. And then right is localized Japanese version. You can see the buttons, say file or edit, view, help on the top has been localized. And also the status of every battery machine is stopped, has also localized. But in this state, probably many of the users these days do understand the file or edit such a small button. So what's the point to localize? Now with the same programs, try to create the new battery machine, then widget comes up. Now widget is a little bit longer to explain how to create machines nicely. So as you can see in English, still simple and clear instruction there. And then you can choose which format you'd like to use to create your virtual machine. But I think the many of you here in this room can speak the non-English languages as well. To me, I am the Japanese and my mother tongue is the Japanese. So if I can read those explanations in Japanese, it just looks like a right-hand side. It's much more intuitive, I would say. If you see the English screen, I would say I need two to three minutes for one screen. And this is five steps. So that means two times five, so ten minutes. I need to ten minutes to create the virtual machine. But for the localized version, it's so quick. Click, click, click. Probably I can make the virtual machine in a minute. That's how the localized version makes user friendly. This is how it looks like a documentation. We do the localized documentation as well, like installation guide. Such an operating system or the bigger system or complicated application or the program, maybe the developer would like to document for the users how to use it or how to install or the reference guide. Those also can be localized. Again, the left-hand side is English and the right-hand side is Japanese. Exactly the same structure, but the older explanation is in Japanese here. Now, first step is internationalized. Internationalized, as I explained, is a preparation. One of our preparation, not necessarily to do the every time you want it to localize. Once the internationalized, done, and that's it. This is not somebody do, but the developer itself do the internationalization process. I will show you a little bit more. If the developer developing on the Linux, highly likely using the getTekist, I think. And when this is, sorry, right-hand side is how to use the getTekist. Simply, it's kind of the introduction. And you can find fedora-project.org, how to do internationalization through getTekist. So I don't go through details about this, because I am not going to talk about internationalization today, but how it looks like. And then left-hand side is a JAPO repository. Use the getTekist, you will get the source file called POT pod file. And then underneath, there is a JAPO, FRPO, CSPO, or ZH-TW, which means traditional Chinese PO. So the source file, and then the language PO follows in the one repository. Another example is logging tooling. If developers is developing an application in J-BOSS, then getTekist no longer work. So usually, they are going to use the logging tool. Again, the right-hand side is briefly an introduction about how to use the logging tool to internationalize. When J-BOSS application internationalized, then the file is going to be not the PO file, but I18n underscore en dot property file. This is a source file, it's called a source file. It's an English file. And then the localizable, translatable file is going to be the I18n underscore FR again dot property file. This is how it looks like. If internationalized, those files will be ready. In the one repository. So now, ready to localize. So as explained, this time we're going to use the Zanata. Push to the Zanata. This has to be done by the developer. Zanata is not only one platform we use. As it says, the GNOME localization team use the downline where I am belonging to as well. And LibreOffice localization use the puto. And then Fedora localization team using the Zanata. In person, I think the Zanata is very much translators friendly platform, comparing than the downline or the puto. But I don't talk much about the puto or the downline. But basically, all those platforms work almost the same. It's bridging the developer and the translators. This is the PO for how it looks like. Developers can actually pass this file to the specific translator like a Japanese translator say one developer would like to localize the application just to the Japanese and then he might pass this file to me. Then I can go through this file using the Vi or the e-mark or whatever the preferable editors to localize, say MSGID and MSG-SDR. Between the double quotation has to be translated. However, when using the editors, it's so simple. It's so easy to insert the wrong characters between somewhere you don't have to or delete something accidentally. But I didn't say I didn't notice it and then pass back to the developers. And developers repackage this file to include the localized version in the package and then try to run and then suddenly the package itself stopped working. Developers has no idea why it stopped working and then thinking about, oh, this is a localization and this is the typical way that the developers hate and dislike translators. They don't know anything at all about the localization, about the technical thingies. So that's why using the Xanata is the point, befriend to the developers and the translators. This is how to create the project. First, the developer has to create the project. This is, again, the only one time. It's so easy. Go to the project, create a new project and then insert the necessary field and that's it. Now, empty project being created. So there, the place that push the PO files or the property files or whatever. You can see in the new project, there is a file format. GetText is a PO file. PO directly, it is for mainly the documentation. Documentation, the base file is XML and then they do have, when they convert it to a PO file then there is a multiple POT file. Software is only one POT file but the documentation has a multiple POT file so they have it directly or the hierarchy so that they have to choose the directly PO directly. And then properties and other format. It's pretty much many various formats supported by Zanata. And right-hand side is an Anaconda example, how it looks like. And then there is a branch for the rail, branch for the Fedora. So the translator size can be, can choose which branch they gonna work. For Fedora people, they like to use, they like to translate the Fedora 24 then go to the 24 branch. For internal translator, who translating the rail 6 minor version or rail 7 minor version, they might go the rail 7 branch. Here the localization is not automated. Localization is every translator's work so I'd like to introduce a little bit about the localization team of the Fedora. Translative. We have, as Praveen already explained, we have 80, total 81 language teams are registered at the moment. We're talking about how many language teams are active then it's up and down so can't give you the clear idea but roughly about 40 plus language teams are active at the moment. Every language team might have only one translator to the big matured teams would be, I'd say, 8 to 10 or more translators. For Japanese teams, active translators are around 5 to 6 translators but the registered translators, just registered including in active more than 100 translators are registered. It's 875 officially registered translators. That means we do have a trans-atalyst mailing list which shared mailing list. All the translator has to join this mailing list and then common language is English so we can share the information and announcement or the discussion across the language will be happened in this mailing list and then registered by the 875 people. That means we have 875 translators registered at the moment. This is all inclusive in active translators so actually the active translator is less than this number. Zanata has a couple of platforms and this is fedora.zanata.org is a fedora specific instance. For login, you have to use the FAS account. It's the same thing applies to the developer who wanted to make a project. They have to have an FAS account. We have a wiki page so anyone who would like to know a little bit more about the localization please go to the wiki page. We have a home page. At the moment we are having a bi-weekly meeting if you're interested you can join us but probably we might bi-weekly monthly is still talking about so the frequency may change. Now this is how it looks like for the translators. Left hand side is just after choosing the branch. There are the many language available if you are the... Which one did I choose it? Well if I am the Japanese translator then choose the Japanese language and if you are the French translator choose the French language and then there it says Anaconda click that one and then we'll show it called the editor screen and then left is English string and then right is a translatable field it's already translated but usually it's empty, untranslated if anything changed from the previous the English strings then it would be fudgy marked there something changed so that the translator do understand something changed and once translation completed it says 100% so now the time to pull by developers we notify to the developers we don't This is how to page so developers have to go through this page to learn how to pull the translation but in short it's another dash CLI pull dash SRC dash C trans this is one command that you can pull that's it and once you... this one command will pull whole the translations if you pull just... I don't think so but if you want to choose pull just one language there is a way to go and also just one language probably you can pull from the user interface but as Zanata team said that this is... using the command line is the recommended way to pull the translation and I think this is a comfortable way for the developers as well last one tips for localization right in English what the stupid thing I'm talking about you might say but that means some developers would like to develop the software in Spanish because their mother language is Spanish I mean the user interface but if they develop in Spanish and then localize into Japanese then developer has to find the translator who are capable to translate from Spanish to Japanese there is a way smaller number of translators who can translate from Spanish to Japanese comparing the translator who can translate English to Japanese so I don't say that English is a higher priority but because the English is a common language so it is better to write the English for the user interface to be translated so that it would be most easy to grab any kind of the language translators pay attention to the strings this is a headache, a common headache for the translators substitutions, it's just a substitution translator never know what's in there developers put the substitution as a user interface they do understand what's in there but we don't and then as I said it looks like that this is es.po and right hand side it's kind of the list of the strings so we just imagine what's going to be in the substitution if there is only substitutions and there is no explanation so when you use the substitutions please pay attention if this can be understandable for the translator and again the multiple substitution this is another problem the grammatical problem English is subject, verb and objective but for the Japanese or many other engine languages will be translated, skip the subject and then object and verb so the substitution order can be changed but if translator sees same substitution one, two, three translator knows we can't change this order otherwise the translation will mess up and then took so many hours how to translate without changing the order this is a challenge for the translator so if you can please avoid using multiple substitutes and the second one is development cycle the previous talk talking about the string freeze the translator will be more active after string freeze because before the string freeze strings can be changed of course so if translate and then changed it is kind of waste of the time so most likely translator wait until the date of the string freeze and then be active to translate and then we are looking at the translation deadline and once the translation deadline passed then we're going to be inactive the problem is developers push the files regardless of the string freeze or regardless of the translation deadline and then pull, of course nothing happens and then at the end the operating system partially unlocalized so that the user said oh Fedora not partially localized for my language for the translator size I translated 100% at the end of the deadline how come this happens this string is unlocalized I haven't seen the strings during my translation period and then that thing can demotivate the translator so please pay attention about the development cycle and we do understand that sometimes it has to be break string has to be changed out of this period we do understand so just let us know that string has to be changed then we will say yes we can accommodate then we will start to work out of the period but it goes silent break nothing being informed then nobody knows so nothing happens, translation not happens so if you need to change the strings out of the scope then let us know provide test environment this is not going to happen for the Fedora but sometimes Jbo so the other project may happens if say like OpenStack or Orbot is mainly online tools, online applications that means translators can't install any developing packages so it is nice to prepare the test environment to go through because as it says we see just the strings and give a translation sometimes we just guess how the strings comes up in what situation so say printing is this in a way that printing or is just known of the printing is different translation so if you give a test environment we can go through how it looks like and we can change it correctly so test environment is a very important part for the translators team and it is very much useful and the communicate with the localization team we are I think almost happy smiling people so don't be afraid to communicate to us pin us we are happy to answer any questions and finally I like you if you can speak other than English please join a localization team so that you can understand how the localization works also you yourself can join to localize your application as well and the others how to join quickly go through the create a Fedora account system subscribe to mailing list introduce yourself sign up to Zenata start translating that's all we need so simple to join this is surrounding teams check team coordinator is Adam not sure he is a Red Hat employee Hungarian team coordinator is Dolcan Hopa he is known Red Hat people he's a very kind and long contributing coordinator Slovak team coordinator is Marek he's a Red Hat employee German team is coordinator is Roman and Polish team coordinator is again Piotro he's also the Fedora localization steering committee members with me and also the administrator of the Fedora Fedora.Zanata.org instance so if you guys too shy to join straight away probably these guys can give the better answer finally if you like to shoot a questions after these sessions I'm always on the RIC FreeNode Fedora G11N channels my nickname is Noriko underscore sorry Noriko all the no capitals N-O-R-I-K-O or you can send me an email Noriko at redhat.com that's all my talk is any questions I can answer now if I can yes this mistake is maybe not exactly wrong word but a word that is not very precise and it stays in software everyone understand it somehow and it is there for few generations of this software so how is your policy will you change this or will you leave it because your users are used to it and nowadays everyone knows what this means even if you know that maybe it's not the translation the question is what is any policy that can define this is a good transition or bad transition maybe fix is that right we do it really depends on the team but in this case very I think talking about the sensitive translations it depending on the translator and then this can happen not only in Fedora this happens in the GNOME or the other project usually what happen is first communication the other one translator and another translator who has the different opinion and then both cannot agree the others then usually we ask the coordinator or the moderator if there is a moderator in that team and that moderator or the coordinator will give a decision finally but it is the best way to talk one person to the other person and have a best solution for which is the best translation that is why that Zanata has review feature it's called review feature translated strings go through to the package but also the reviewer can take it this translation is good then the status will be changed from the translated to approved nothing changed in the package or in the user interface at the end but we can see that the translated status is just translated but approved status is approved by someone else that means kind of the stump that this is good quality translation any question again I'm sorry yes Remy yes we just talked about the sprints and local sprints last FAD Tokyo also Leona she is pretty much active about Albanian sprints she has already done a couple of them and she is already planning the sprints and we've just spread the word to the sprints but at this moment the coordinator is very keen because they are busy so we need ambassador's team's help to organize it I just talked with where is Fale Italian ambassador as well he is going to organize the spring unfortunately there is no well there is ambassador for Japan but he is a bit kind of inactive ambassador so we cooperate with ambassador to give more sprints as well they are a bit great I will be there thank you very much Remy thank you yes any question yes there is space I think in the PO file to I'm not sure I'm not a techie person so I can't tell how to but there is a space to the developer and that can be viewable in Zanata yes thank you is any other questions I can answer yes is your application part of the fedora right Zanata has itself as I said separate instance at the moment if it is not fedora or the package do not want to be a part of the fedora there is a translate another instance for other open source packages I will show you the later after this talk but there is another instance you can join but that instance there is no team but haven't been formed just like a fedora fedora is more likely we have sprints and we have real teams Albanian teams Italy teams Japanese team but that instance is just a framework there is a no coordinator there is a no moderator but there is an instance yes I recommend to use Zanata as upstream yes is any platform are you using like a transifx or anything else what platform are you using for the translation that case not necessarily the fedora Zanata.org instance is not limited to the fedora package itself because there is say the anaconda will be used by other packages because inside of the fedora Zanata.org instance then you can use the fedora localization team in full so if you move into the fedora Zanata.org then you can think you can use the biggest resource of open source localization team but that can be not necessary to be only for the fedora but that transition can be used upstream for the other packages as well I understand that the situation we are talking about with the Zanata team Zanata team will account but they are going to implement feature organization with that features more upstream project can join and then choose the teams and then the fedora people can be translated not necessarily the fedora people just be able to form their own transition team without sacrificing the resource itself so unfortunately I can't have Zanata team today so it's hard to explain about that features but probably next time with Zanata team probably will be able to give a more good answer about this feature so can I finish my talk if everybody happy thank you very much for coming thank you