fedora i18n · fedora i18n past, present, future jens petersen flock 2014, prague. about jens...
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:
juhp on freenode, github, twitter