 So, my name is James Peterson. Thanks for coming to this talk. I'd like to present a few things that we've been doing for internationalisation. It's mostly things that are in Fidora. At the end, I'll open up a discussion for future plans and ideas that we have. I'm using this abbreviation I to name for internationalisation. It's a long word. This is about software internationalisation and more sort of software, not translation. Today, I've got a few topics. I don't have much time. This is just a short talk, but just briefly, we'll talk a bit about Unicode updates, GWC tail sub-packaging, line packs with DNF, and Emoji, emoticon input, and typing Booster, which is a suggested input method. Maybe there's another client. So first up, this is some work that we've been doing. This is actually work mostly done by Mike Fabian, who's here for my team. We started this a little while back. I think GWC had been lagging behind in Unicode, so no one was really paying much attention to it. I especially minded a lot of work cleaning up some of the Python scripts, making it a lot more automated process now. Now we've done three times, maybe three in Unicode, seven, eight, and nine in Fedora 25. The Unicode nine pack is still not actually an upstream GWC. It's still a waiting review, unfortunately, but we're hoping to get it in soon. Also, we started tracking a bit more other packages, which also contain Unicode data, like ICU, and so on, G-Lib 2, and so on. Then slightly related, but this is also G-Lib C, but it's up-packaging. So G-Lib C, Nomin, Fedora, and so on, all the locales are shipped in a very large archive file, which is like, well, maybe over 100 megabytes. You can do various hacks to kind of cut that down for, I don't know, cloud or containers and so on. But in Fedora 24, we introduced this sub-packaging, which means that you can, if you want, install just the specific locales for the languages that you need. So for example, you could install just English locales or Japanese or whatever you want. So you could have very small footprint for locales. This uses the local directories. But Fedora Workstation and I think also Fedora Server still include the large local archive. So yeah, this is in this G-Lib C all line packs sub-package. But if you do a minimal install, like just a very small one, and you'll just get something like a G-Lib C line packs E, which is a small one. And if you want the source, the local sources to define your own locales in this separate package too. So everything's been split up quite nicely. It's been good. Also somewhere later than to that, and the last feature uses some of this technology too is the line pack support for DNF. So previously, Jerm had a plug-in which allowed pulling in line packs automatically. So say you're in some language like, I don't know, German or something, and then you install the LibreOffice. Then it would pull in the LibreOffice, the German line pack for LibreOffice. But when we moved, when Fedora moved to DNF, that no longer worked, because well, there were some hooks missing in DNF, which were not available. So, but this implementation is somewhat different. It doesn't use a plug-in. It uses these weak RPM dependencies. So for example, for example, line packs D is installed. Then Andrew installs the LibreOffice, then it will pull in the line packs for the German line pack for LibreOffice. I'm not sure how many of you are familiar with input methods. I don't know. How many of you have heard of the iBus or not many. Okay. So in Fedora 25, we have a new feature in iBus, which is emoji input. This is done by Tepad Fujiwara. So I'll do a very quick demo. So in order for this to work, you need to have at least one input method installed in your system. So here I have a few actually. But so normally if you're a European user, you may well only have one input source for your keyboard layout different, but anyway. So, but installing an extra input method will switch to using iBus. So yeah, rather than just the straightforward direct input. And then if I press Ctrl E, then this at sign appears. And then I can type something like smile. And you can see black and white emoji comes. So they're not ideal. We're doing some work to try to get Cairo to render colored emoji, but that's not quite ready yet. So that's all right. So I can get back to my slides. Again, Mike has been doing work on typing booster, which is a kind of a suggestive input method, rather like on your smartphones and so on, which you start typing, it'll predict what you're trying. And I think the original implementation, there are many input sources for typing booster, one for each language. And they're associated with some unspiled dictionary. So they're using that. But in the recent typing booster now, it's possible to input different languages, even though you're using a particular input source. And also nice feature, it can also do emoji input and also unit code input. Shall I do the demo now? Or do you want to, Mike? I don't know if you want to show now. If I type something which could match an emoji, then you see number six. First, you get some text-based matches. And if it's possible to match the input string against an emoji, then the last match in the first page of the candidates table will show an emoji. And that means you will probably see some more if you scroll down. And you can do something like do a right mouse click on the emoji. And then you get related stuff, other types of buildings. The castle was a building similar to that. This is a cave. You can go back. And that was Danish. So what is castle in Danish? Slot. Slot. Slot. Slot. Slot. It's also a lot of languages. And that's why I can use it to translate. So it works in multiple languages. And this one is now working in Danish and English. And that means if you switch between typing, Danish and English, you don't have to switch between different input methods. You just type and it remembers three grams of words. So it remembers the last few words you typed. And if you type something like I am and start an expert with a letter, then because the two words before were English, the prediction you will get in the candidates list will be English, most likely, depending on what you typed before in such circumstances. And if it had been Danish, then you will get automatically Danish predictions and you don't have to switch input methods during that. Yeah, that's the word I think. One of the nice features of this is that it has, unlike other input methods, you can actually go back and pre-edit. Okay. I have to do that. Let me try something else. Like I could type integral or something that I down here. I like this one myself. Anyway, yep. All right. Great. So, okay, I'm going to skip this one. I'm going to mention right briefly. So Pongo in Beijing has also been doing some enhancements to our lip-pinging and improving the corpus, I think, with this open-gram tool. Then for Zenata, I don't know how many people know about Zenata. Zenata is a kind of a web-based translation management platform. And there's a Java client, which is a bit heavy, maybe, or well, I don't know. It's not actually packaged in Fedora, I think, but there's a Python client. But for a while, the Python client was not being maintained so much. And it's indeed quite a lot of work in the last year to try and update it. And, well, I wouldn't say it's got major parity, but at least it's now working pretty well. And most of the main features are just working, yes. And Akira Tiger has done a Zenata client in JavaScript, just called Zenata.js. I don't think it's actually in Fedora, but anyway, it's on, yeah, the Node.js. And there's also Grunt kind of library which can integrate Zenata tasks into JavaScript builds and so on. Okay, it's not some time, but... So, another project which we're kind of starting working on is this package translation statistics system. This should be a web application which should allow to give some view of the status of translations across different Fedora releases or in the future maybe also other projects or products. So the idea is to actually look at what's in downstream packages and then compare with what's in upstream or what's in Zenata or other platforms and being able to picture across different languages and different other package groups and so on for how we're doing on translations. And hopefully it'll be useful also for testers and other sort of stakeholders like that. So I don't think it'll be ready in time for Fedora 27, hopefully it may have something to show off. Otherwise, some of the things that we're thinking about, so I mentioned I think briefly that the typing boost at the moment has many input sources and I think Mike's planning to kind of combine it into one single unified input source and then have some UI in there to select what languages, preferences you have. And when we're planning to make some improvements further to the IBUS emoji UI to make it easier to select emoji. And I think I mentioned also about the color emoji rendering. So I think it's sort of partially working in Fedora 25 maybe, but there are some more patches and things that are needed and for it to work well, it does put in more work to be done there. And we also have some plan to make a kind of IIT and Lint tool, which should be a tool that developers can use to look at their projects to get the status, IIT and status of the network, say some C or Python project they were able to get. It might be able to alert you to strings that haven't been marked for translation and so on. And it kind of raises out some, we're working on some kind of documentation for IIT and M for developers so that it's easy to catch up on kind of best practices and that's some work there. Also for lip-inging, there's plans to have different multiple-sentence candidates. At the moment, it can only do kind of phrase candidates, but it's single candidates. And then there's Unicode 10, I guess, and there's some other plans as well. Well, I could probably open up for questions. I have a few questions myself, so we could use IIT and for some of these things like modularity, what it means, containers or atomic, even flat pack, how to do iBus and flat pack applications and so on. But that's more or less what I have, so if anyone has any questions, do I? Yeah, so the question is, if there's anyone who works on this IIT and Lint tool, I think there's not a lot. I think there is some Python tool, which right now the name escapes me, so that might be some kind of starting point, but right now we don't have any work on that much, I think. Which language does it recognize? It relates to the input method you have actually installed, so let's say you've got English and Danish, so you would only recognize English and Danish. Okay, so it wouldn't recognize Japanese, for example, if you didn't install all the Japanese layout. Okay, so the question is about typing boost, what languages it recognizes so I think, well, I'm putting my camera. I'm using, at the moment, Japanese, German, Spanish, and French. You can set it up as a user interface, that's a problem. User interface only allows you to expand first language, like French, whatever, and then they can use it as a second language. And if you are calling that, you can configure it in the command plan and set it with the right keyboard, that's a problem. So the support for more than two languages is already implemented only in the setup you are using. Yeah, so just summarizing, I think basically every language which has a huntsbell dictionary right for selling support, I think. Right, okay. So it moves towards what we experience on Android, for example. I think we're just writing the word suggestions, so you can also use this to help provide languages at the same time without searching. You get nice predictions of all the languages, but I'm trying to do the same for a desktop, as the previous service. I'd also like to ask about the drop-down menu, because, you know, that just shows the suggestions in hardened, so this is no shelf, no three. In general, how about other environments?