fedora i18n · fedora i18n past, present, future jens petersen flock 2014, prague. about jens...

Post on 11-Oct-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Fedora i18nPast, Present, Future

Jens Petersen

Flock 2014, Prague

About

● Jens Petersen● Red Hat since 2001● i18n Engineering Team● Born in Denmark● Lived 15 years now in Japan● Fedora Haskell SIG

FOSS and i18n

Freedom to read and write in one's own native language

Fedora i18n | Jens Petersen4

OS i18n

● Encodings and Locales

● Fonts

● Input Methods

● Packaging

Fedora i18n | Jens Petersen5

Internationalization vs Localization

i18n:

● Encodings and locales

● International fonts and complex text rendering

● Input methods for complex text input

● Gettext

● Language tools

l10n:

● Software translation● strings extracted

using gettext, etc

● Documentation translation

● Publican, etc

● Transifex, Zanata, etc

Fedora i18n | Jens Petersen6

Encodings and default locales

Past

Native charset encodings and locales

iso8859-{1,2,...},

EUC, S_JIS, GB2312,

etc, etc, etc

Rpmbuild still defaults to LANG=C !

Present

Unicode encodingand locales

UTF-8

Note: Fedora console does not use CIJK locales

Fedora i18n | Jens Petersen7

Installer

Fedora i18n | Jens Petersen8

Installer language (EL5 era)

Fedora i18n | Jens Petersen9

Installer keyboard selection (EL5 era)

Fedora i18n | Jens Petersen10

Installer language (EL6 era)

Fedora i18n | Jens Petersen11

Installer keyboard selection (EL6 era)

Fedora i18n | Jens Petersen12

Installer language selection (F20/F21)

Fedora i18n | Jens Petersen13

Installer keyboard selection (F20/F21)

Fedora i18n | Jens Petersen14

GDM

Fedora i18n | Jens Petersen15

GDM (EL5 era)

Fedora i18n | Jens Petersen16

GDM language (EL5)

Fedora i18n | Jens Petersen17

GDM (EL6 era)

Fedora i18n | Jens Petersen18

Current GDM

Fedora i18n | Jens Petersen19

Gnome-initial-setup

Fedora i18n | Jens Petersen20

Gnome-initial-setup Input Sources

Fedora i18n | Jens Petersen21

Gnome-initial-setup IME

Fedora i18n | Jens Petersen22

Fonts and Rendering

Fedora i18n | Jens Petersen23

Evolution of fonts and rendering

● Bitmap fonts

xfs

X fontsets

FreeType

● Outline fonts● TrueType, OpenType

Fontconfig

Pango

Harfbuzz

Fedora i18n | Jens Petersen24

Fonts coverage

Fedora i18n | Jens Petersen25

Asian Fonts

● Japanese: vlgothic (also IPA)

● Chinese: WQY Zenhei, cjkuni

● Korean: Baekmuk → Nanum

● Indic: Lohit● Rewriting of OpenType tables and rules

● New fonts appearing from Google, etc● Eg Noto, Caladia, Carlito, etc

Fedora i18n | Jens Petersen26

Fonts-tweak-tool

Fedora i18n | Jens Petersen27

Input methods

Fedora i18n | Jens Petersen28

Input methods evolution

XIM → iiimf → scim → ibus → ...

Fedora i18n | Jens Petersen29

e.g. Japanese input method backend evolution

Canna → anthy → libkkc

Fedora i18n | Jens Petersen30

ibus under GNOME 2

Fedora i18n | Jens Petersen31

GNOME 3 ibus integration

Fedora i18n | Jens Petersen32

Input Methods

● Japanese: ibus-kkc/libkkc

● Chinese: ibus-libpinyin/libpinyin● ibus-chewing, ibus-table, ibus-cangjie● ibus-libzhuyin in development

● Korean: ibus-hangul

● M17n: for Indic and many other languages● Including input without native keyboard

● ibus-typing-booster provides suggestions and basic predictions

Fedora i18n | Jens Petersen33

Next Generation Input method(for Wayland etc)

Traditional IM architecture

Pinyin engine

Hangul engine

Cangjie engine

Kana Kanji engine

Languagedata

GTK immodule

Panel UI

XIM server

Complexengine

Simpleengine

Custom protocol

SCIM, etc.

IBus architecture

gnome-shell

ibus-daemon

Pinyin engine

Hangul engine

Cangjie engine

Kana Kanji engine

GTK immodule

D-Bus protocolPanel

Client

Proposed architecture

IM server library

IM clientlibrary

GTK immodule

Kana Kanji engine

IM panellibrary

gnome-shell

Complex engine process

IM backendlibrary

Kana Kanji engine

Simple engine process

Hangul engine

Cangjie engineIM backend

library

CreateEngine, ShowCandidateList,RegisterMenu, ...

Sessionbus

Proposed architecture

IM server library

IM clientlibrary

GTK immodule

Kana Kanji engine

IM panellibrary

gnome-shell

Complex engine process

IM backendlibrary

Kana Kanji engine

Simple engine process

Hangul engine

Cangjie engineIM backend

library

Directly talkwithout daemon

KeyPress, FocusIn, ...

Fedora i18n | Jens Petersen38

Packaging

Fedora i18n | Jens Petersen39

Comps

● @fonts

● @input-methods

● Lang-packs

● Language groups → yum-langpacks

● system-config-language

Fedora i18n | Jens Petersen40

Looking Ahead

Fedora i18n | Jens Petersen41

Wanted or nice to have

● Subpackaging of glibc locales?● Needed for Cloud, small Server, etc

● Bilingual searching

● Better spellchecking● Eg Hunspell: aa → å, but not oe → ø and ae → æ

● Restricting keyboard layout choices by geometry?

Fedora i18n | Jens Petersen42

XDG folders i18n

Fedora i18n | Jens Petersen43

Plans

● Wayland input method integration

● Enhancements to smart input methods

● Revamping localized man-pages and hunspell

● Glibc unicode and locales refreshing

● dnf-langpacks

Fedora i18n | Jens Petersen44

Fedora i18n sub-project

Fedora i18n | Jens Petersen45

FAS i18n-team pseudouser

● 255 packages in pkgdb

● i18n-bugs mailing-list for bugzilla mail

Fedora i18n | Jens Petersen46

Summary of what we do

● Package maintenance and packaging● Fonts● Input methods● Other: yum-langpacks, langtable, comps, etc

● Upstream development● ibus● fontconfig● gettext● Contribute to gnome, glibc, etc

Fedora i18n | Jens Petersen47

Fedora i18n Communication

● Fedora i18n mailing-list

● Freenode #fedora-i18n IRC channel

● Weekly meeting in #fedora-meeting (APAC time)

● http://fedoraproject.org/wiki/I18N

● Welcome more Fedora community collaboration and interaction

Fedora i18n | Jens Petersen48

Thank you

Fedora i18n Project

http://fedoraproject.org/wiki/I18N

Contact me:

petersen@redhat.com

juhp on freenode, github, twitter

top related