Jens Petersen: Internationalization Track at Flock 2017

In the afternoon of Thursday 31st August we had the i18n/l10n/g11n Track at Flock 2017 in Hyannis, MA. We were in the second largest conference room next to the main auditorium, competing for attendance against other sessions like the Modularity track. We had a small interested growing audience through the afternoon.

Fedora i18n

In this longer session Parag Nemade and I started by reviewing i18n Changes in recent Fedora releases since Fedora 24 up to the coming 27 release. Originally I had planned for this session to be more of an open discussion, but with the large room since it would be hard to have detailed longer discussions, I had added more slides to cover various planned and potential future features and topics for discussion.

The slides for this session are here.

Parag reviewed the F24 features for DNF installation of langpacks including the subpackaging of glibc locales, F25 emoji input with ibus and Unicode 9.0. I did a quick demo of ibus-typing-booster including emoji and Unicode symbol input. F26 features libpinyin-2.0 which suports multiple sentence candidates. F27 will have further improvements and also a new Chinese Serif font, as well as Unicode 10.

Then we moved on to discussing some future features:

Langpacks installation

This is an ongoing topic: we are still considering what is the best approach or solution. Currently after Live install of Fedora Workstation, langpacks for LibreOffice for the user’s language are not installed (unlike after a net install). The simplest workaround for now is probably to go into Gnome Software and add the needed language support metapackage from Addons -> Localization manually, or just install the appropriate langpacks metapackage or even the explicit langpack if one knows the langcode… but that is not really friendly enough for general users or that easy to work out. We would prefer that langpacks for the user’s desktop language got installed automatically without any effort or poking around. (Also current glibc-langpack-* and libreoffice-langpack-* (fixed in git master) packages have versioned weak dependencies which causes their langpacks not to be installed immediately if their latest core packages are not up to date yet, but first at the next “dnf update” transaction, which is probably causing additional user confusion.)

One simple workaround would be to include LibreOffice langpacks for some major languages by default, though that would increase the size of the Live iso image further and create unnecessary extra update churn for everyone, so probably not the best solution. Langpack metapackage installation could also be done as an extra step in the installer through a initial-setup Anaconda plugin perhaps, but the user may not be connected to the network when they are doing the Live install from a USB stick say. After that the current ideas become more GNOME specific. Gnome-initial-setup could use PackageKit to pull in the appropriate metapackage after the user as confirmed their desktop language. Gnome-control-center should do the same when switching the desktop to another language. Shaun McCance suggested there could be signal (maybe dbus or dconf?) to trigger such actions.

But there is still a question how to do the actual package installation. If it is done silently in the background there seems a risk the user might logout unknowingly or even attempt to shutdown the computer while the package installation is still taking place. I don’t know if systemd would pause the shutdown?

Input methods

I briefly discussed the overall current state of IMEs (Input Method Engines) and input methods (ibus). First wishing that in the future we could treat IMEs as a logical layer above keyboard layouts (as Microsoft Windows has also done at least) and not on the same level as Keyboard Layouts, since an IME is inherently dependent on keyboard layout even if it overrides it.

For Wayland there is also the question of whether we should use the native Input Method protocol for more secure input. This relates also the recent support for ibus that has been added to Flatpak and ibus upstream by Alex Larsson for flatpak applications to connect to ibus through a flatpak portal. But currently the GTK immodules work okay and no-one seems to be working actively on using Wayland input-method.

Emoji input and rendering

Recently more emoji are being added to each new Unicode release and their usage is proliferating. Unicode 9 also changed some of their character properties which caused rendering regressions in Pango, which have largely been fixed now. Matthias Clasen added emoji input support to GTK3’s simple input context, and together with Behdad recently merged the needed fixes to Cairo and Pango for color emoji rendering to work correctly. We also get some Pango patches merged upstream to improve the rendering of compound emoji, and Peng Wu continues work on fixing the Pango testsuite for emoji for Unicode 9.0. So we now will have emoji input support provided by GTK, ibus (by Takao Fujiwara), and through ibus-typing-booster (Mike Fabian).

At the same time there are a couple of competing color emoji fonts now: the older Emoji One (recent releases apparently have a problematic license), Google’s Noto Emoji, Emoji Two (a free fork of Emoji One). However Noto has the best coverage, already supporting Unicode 10, so we feel it would make the better default emoji font for Fedora. It is not really possible currently to user-configure a preferred Emoji font without tweaking fontconfig rules or installing/removing the font packages.

Really great progress has been made anyway, so things are starting to look a lot brighter in this area in which the Linux Desktop has been lagging.

Glibc locales

Mike Fabian and Rafał Lużyński became upstream glibc locale maintainers and they have been busy reviewing the backlog of patches and merging fixes. This follows on from earlier work Mike did updating glibc to Unicode 7, 8, 9, and now 10, which got merged quickly this time due to this change. Work will also start on merging CLDR locale data to glibc which should lead to better cross-platform consistency.


I already mentioned about the ibus support that has recently been added to Flatpak and ibus in the Input Method section above. Additionally for fontconfig changes are being discussed upstream to allow flatpak apps to get corrected cache file paths due to the difference in prefix from the host system. So all this should lead to a better i18n experience for Flatpak users.


Pravin Satpute talked briefly about fonts and I briefly demoed that at least for the Wikipedia multilingual list of languages we have quite good language font coverage now in a default Fedora install.

Modularity and Atomic

What the Modularity initiative means for i18n packages is still open for discussion.
Do we need modules or fonts and input methods? I don’t know yet. Perhaps not so much, but after doing one of the Modularity User Test sessions at Flock, I think that language modules maybe will make sense for locales, fonts, input-methods, and langpacks, etc. Module profiles might allow installing different sets or sizes of packages for Workstation than Atomic for example.

Also it is not clear yet how locales should be handled for Atomic and langpacks for Atomic Workstation (or even Flatpak for that matter). Should they be done using overlays?

Other ideas

Pravin talked on QA related to i18n, and then I closed with a few wilder ideas:
dynamic locale switching, separation of translations from packages, multilingual configuration (locale and font fallback).


In the following session, Sundeep Anand described his Translation Statistics projects called Transtats. This is a web application for tracking the status of translations of packages across upstream (Github, Pagure, etc), the translation system (Zanata, Transifex, Damned Lies, etc), and downstream in Fedora or other distros. Later there are plans to track not just translation stats, but also down to even the string level, so it should be possible to detect string breakage after string freeze for example. It is hoped that this tool (written in Python and Django) which we plan to deploy in Fedora infrastructure, will help different interested parties to better see and understand the current translation status of Fedora, be they developers who will be able to check that their packages are well translated and carry the latest translations, testers or project managers wanting to know how well core packages are translated across releases, or obviously translators keen to see how well and quickly their work is getting up- and down-stream. We hope this service will increase the quality and quantity of translations we see in Fedora and upstream projects.

To do all this Transtats has to do a number of things, including following the schedule for Fedora releases, tracking package builds (this is still pending), pulling translation statistics from translation systems, mapping packages in releases to translation system and upstream branches. It is planned also that Transtats will send out notifications to developers and translators when certain events happen.


In the last session which focused more on l10n, Pravin Satpute described the status of Fedora G11n, Alex Eng presented the latest developments around the Zanata translation system, and Jean-Baptiste discussed the state of Fedora L10n with some nice graphic slides.

After some post-session discussions, some of us went for dinner together on the Hyannis Main St. Overall it was a very beneficial day and everyone seemed to get a lot out of it.

Source From:
Original article title: Jens Petersen: Internationalization Track at Flock 2017.
This full article can be read at: Jens Petersen: Internationalization Track at Flock 2017.


Random Article You May Like

Leave a Reply

Your email address will not be published. Required fields are marked *