OLPC Localization
You don't have to wait until XOs are announced for your country to start localizing Linux, Sugar, and Activities into your languages. Remember you can create a Live CD in your language to run on any x86 computer, including Macs. If you support a language well, you also support people learning your language.
Localization is the process not just of translation to a local language, but of adapting content to other local requirements, whether of law, culture, or custom. In order to localize software, it must first be internationalized. That is, any assumptions derived from the language, culture, and customs of the developers must be removed. Much content can be written in a neutral international manner, but there are specific items that must be programmed so that the local equivalents can be easily substituted.
Programmers in the US and Europe for decades were able to assume 1 character = 1 byte, but this is no longer the case. The most common character encoding today is the variable-length UTF-8 form of Unicode. We cannot assume that money is in US dollars. We cannot assume that people have family names, or area codes, or ZIP codes. Even when people have family names, the family name is not always the last name. And so on.
OLPC got caught out on this with the first batch of prototypes delivered to Spanish-speaking students. It turns out that the initial login text field was programmed to accept only 7-bit ASCII, so the children with accents in their names were not able to enter them correctly. This in spite of the presence of 8-bit Latin-1 letters on the keytops.
Introduction to Localization
OLPC's target population of schoolchildren live in nearly 200 countries, where more than 6,000 languages are spoken. The 100 most common languages would suffice for reaching 99%+ of children in first or second languages, but hundreds more would be needed for education in traditional cultures and languages of large populations. OLPC can play a large part in recording and preserving thousands more languages before they would otherwise disappear forever.
Internationalization (I18n)
Preparing software so that it can be localized
- Cultural and national neutrality
- Unicode
- Writing directions
- Stretching and shrinking of text
- Locales: Formats for numbers, times, dates, currency, names, addresses, phone numbers
- File names
- Grammar issues: gender, number, phrasing
- Punctuation
- Style and usage
- Switching languages in activities
- Mixing languages in documents
Languages of Target Countries
- Haiti: Kreyol Aiysyen, French
- Rwanda: Kinyarwanda, French
- Cambodia: Khmer
- Afghanistan: Dari (Eastern Farsi), Pashto, possibly Hazaragi and Aimaq
- Uruguay: Spanish
Of these, Kreyol Aiysyen, Khmer, and the languages of Afghanistan have not been started.
Other Languages
Translation project have begun in Afrikaans, Amharic, Arabic, Aymara, Basque, Bengali, Catalan, Chinese (China), Chinese (Hong Kong), Chinese (Taiwan), Czech, Danish, Dutch, English, English (South African), English (US), Finnish, Friulian, Galician, Georgian, German, Greek, Hausa, Hindi, Icelandic, Igbo, Italian, Japanese, Korean, Macedonian, Maltese, Nepali, Persian, Polish, Portuguese, Portuguese (Brazil), Quechua, Romanian, Russian, Serbian, Slovenian, Sotho, Swedish, Thai, Turkish, Ukrainian, Urdu, Vietnamese, Wolof, Yoruba, pseudo L10n
Support for Language Learning
Localization Process
- po files
- builds
- Pootle repository for OLPC localization
- community
- Localization mailing list
- #olpc-pootle IRC channel
- Localizing your own software
- Python Localization
- Etoys projects