Localization: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{stub}}
{{stub}}
This is the Intro page for Localization of the OLPC. This needs filling out.
This is the Intro page for Localization of the OLPC. This needs filling out.
{{TOCright}}



[[#1|English]] | [[#2|espanol]] | [[#3|Korean]]
[[#1|English]] | [[#2|espanol]] | [[#3|Korean]]

Revision as of 16:08, 27 April 2007

This article is a stub. You can help the OLPC project by expanding it.

This is the Intro page for Localization of the OLPC. This needs filling out.

English | espanol | Korean

Problem Statement

Internationalization technology is technology for representing and composing the languages spoken, taught or used in your countries. Localization is the process of taking software or content and adapting it for local use.

Localization involves fonts, script layout, input methods, speech synthesis, musical instrumentation, collating order, dictionaries, and spelling checkers, among other issues.

Linux is already more widely localized than Microsoft Windows since no cooperation from a vendor is required to do so: having said this, cooperation with the free software and content community is vital to reduce overall work required.

The size of the problem is huge. Ethnologue has extensive information on the languages of the world.

Localization Topics

This is an outline of (some of) the topics and tools, and issues of localization.

Character Sets

Unicode is fully supported in “modern” applications and toolkits used in free software. Legacy character set support also present, but modern applications are use Unicode.

Collation order (the sorting order when text is sorted by Linux) is generally well supported in the C library.

Script Layout

OLPC primarily concentrates on using the Pango library, which is able to layout most “hard” languages, including: Arabic, the Indic languages, Hebrew, Persian, Thai, etc. It has a modular puggable layout engine and supports vertical text, bi-directional layout is supported. Overall, some issues remain – but overall Pango in pretty good shape and can handle most scripts already.

Fonts

To share content and preserve cultural heritage OLPC's goal must be and is full coverage of all the world's languages. Linux using the Fontconfig system has a better concept of language coverage of fonts than other systems. This system is used to configure the font system and determine what set of fonts are needed to cover a set of languages.

The formats of fonts supported on Linux include OpenType, TrueType and many others: see Freetype for details. Most of the current font formats supported by Freetype are obsolete, and by far the best results on the screen will be had from OpenType and TrueType format fonts. Type 1 fonts are useful primarily for printing; the renderer for Type1 fonts in Freetype we have today is not very good, and Type 1 does not support programmatic hinting for low resolution screens.

Free Fonts

Free fonts are available for most scripts in the world, though some fonts are licensed incorrectly for completely free redistribution. OLPC itself has a relatively high resolution screen; this helps us considerably, particularly in grayscale mode at 200DPI.

Need for Screen Fonts

However, we also need our applications and content to be usable on other screens everywhere, so we need to work together on extending the coverage we have today on high quality screen fonts. The "DejaVu" font family (derived from Bitstream Vera) covers most Latin alphabets and some other languages. This family has in general good "hinting" for screen use. SIL International also builds fonts for a number of additional languages of local interest.

Helping with these or other efforts to build fonts or to increase coverage of existing fonts is greatly appreciated. Pooling efforts on hinting glyphs, which is boring but important work, and/or donations and buyouts are also being investigated.

Keyboards

OLPC Keyboard layouts document OLPC's currently available keyboard layouts: further layouts are a modest amount of work, requiring people with local expertise to work with OLPC staff to generate new layouts.

Input Methods

An input method is software that allows typing of complex characters, for example for languages such as Chinese, Japanese, Korean. Some issues remain, for example: Arabic ligatures, by avoiding putting them on the keyboard we've avoided the need for an input method. However, such workarounds may not be feasible for your language.

Free software systems now are using SCIM - Smart Common Input Method Platform. SCIM is replacing older input method systems.

We need to know what languages are taught as “foreign” languages, as well as are native, to design keyboards that are most useful in country. For example, the Nigerian keyboard is designed to allow easy entry of English, Hausa, and Yoruba, which are common languages in much of Nigeria. The "US/International" covers most of the western European languages.

Speech Synthesis

There are size vs. fidelity vs. localization effort required trade-offs between the speech synthesis software that is available, which includes festival, flite, espeak are available.

Espeak is small enough for us to often bundle and covers quite a few languages: ~10 languages currently supported tuned by native speakers with 10 more languages underway.

Synthesis is essential or accessibility to content by people with vision problems, and will need to be integrated with the ATK library used, as well as literacy training, other uses as part of a GUI. Full localization therefore involves selection of a suitable synthesis system and integration into the ATK framework, along with localization of that system for the particular language involved.

Speech synthesis is usually not a good guide for pronunciation learning languages – but it may be better than a poor teacher who has never had the opportunity to learn from a native speaker of that language.

Music and Sound Samples

We want much more than dead white male western instruments for dead white male composers!

Clean samples of your musical instruments and music needed!

Samples need appropriate licensing terms.

Dictionaries, Spelling Checkers, Thesaurus

Support exists for most major languages.

Spelling, Hyphenation, Thesaurus dictionaries may be needed for different parts of Linux, which may or may not apply to OLPC directly; for example you can check:

Of these, the first three are most immediately interesting to OLPC.


Character Recognition

Stroke/character recognizer localization is of some interest with the pen/tablet: in the future when we have a touch screen they will become essential.

Current Shortcomings

There are some real shortcomings where help is needed. These include:

  • Non-Gregorian calendars
  • Non-Latin digits (Roozbeh Pournader has patches, but these are not yet integrated and may need help).
  • and the sheer scale of the localization problem will eventually require changes in free software projects.

Localization Techniques

It only takes a small team to localize Linux for a language: e.g. Welsh, Icelandic, which are relatively small languages, have been pretty fully localized by small teams.

You can do the work yourself, hire the work out, or find volunteers among universities (worldwide), the world wide internet and free software community. Add to existing projects whenever possible. By checking with some of the major free software projects (e.g. Gnome, OpenOffice, Mozilla, KDE), you can often locate people already at work in your language.

Work directly in the software and content projects whenever possible. This makes your work available worldwide, while lessens the ongoing work. If you keep your localization work local, others cannot benefit from your work and effort and your software and content will be that much harder to localize.===Localization Techniques=== It only takes a small team to localize Linux for a language: e.g. Welsh, Icelandic, which are relatively small, have been pretty fully localized by small teams.

You can do the work yourself, hire the work out, or find volunteers among universities (worldwide), the world wide internet and free software community. Add to existing projects whenever possible.

Work in the projects whenever possible. This makes your work available worldwide, while lessens the ongoing work. If you keep your localization work local, others cannot benefit from your work and effort and your software and content will be that much harder to localize as it changes.

Tools

Some example tools include:

  • pootle and kbabel for offline translation
  • rosetta (online translation)

Most software uses the GNU “gettext” libraries and standard .po files, including Sugar; Firefox and OpenOffice have their own systems for historical reasons.

The cldr project is worth watching, though OpenOffice is the first major project using this.

Remember, contribute your translations to the “upstream” projects to minimize long term effort: share your work with the world. Do not presume that if one Linux distribution has your effort that you are finished; some Linux distributions are not good about working with the community that builds and distributes the original software.

Licensing

Next Steps

Sugar Localization

General Linux Localization

Current l10n projects

library exchange

activities (include links to upstream localization where appropriate)

  • camera — en | es | ko | pt
  • web?
  • read?
  • write?
  • blockparty?

==Lo


Country groups and descriptions


Korean-based Nations and Regional Communities using Korean

Korea map.gif

People using Korean as their native language are those in South Korea (한국인) and North Korea (조선인). Some Chinese and those with other nationalities, living in the Nothern part of Korea also are using Korean as their second language, because of some historical issues. They are called as 고려인(Korea-in) and 조선족 (Chosun-zok or Korean Chinese) respectively.

Currently OLPC Korea (or XO Korea) is covering all those nations and regions. In a near future, we hope there will be regional XO groups for those.


There's also a matrix to keep track of Translated pages.