Internationalization

What is internationalization
Internationalization (often abbreviated "i18n") is the process of making a website or other software usable in multiple languages. It also includes adapting features such as date/time display and measurements to different international audiences.

Broadly speaking, there are two main parts to i18n:


 * Internationalization proper, in which the software is prepared so that it's translatable.
 * Localization (aka "l10n"), in which translations and other tweaks (eg. date formats) are specified for each language/locale that is going to be supported.

The combination of i18n and l10n means that you can use the site in any language for which a localization has been provided.

Why it's important
Internationalization means our software (i.e. the Growstuff website) is more useable by a wider variety of people. We want our membership to be more numerous and more diverse, sharing a range of food gardening experiences from around the world.

International crop identification
It's important for people to be able to refer to and find Crops in their own language. For instance, a US user might know something as "arugula" while an Australian would call the same thing "rocket". There are many well known examples just within English dialects (zucchini/courgette, eggplant/aubergine, bell pepper/capsicum, etc). However, it's even more important when we consider the full range of languages our members may speak. Even if someone is fluent in English, they may not know the name for "artichoke", "hazelnut", or "wormwood". If we don't provide local names for things, it will be almost impossible for many people to use the site.

Our first goal is to provide international names for all our crops, based on the linkages between pages in Wikipedia. That is, the English Wikipedia page Tomato links, in the sidebar to the Finnish page Tomaatti and the Tagalog page Kamatis. We can extract these linkages and record them in our database, using the Wikipedia API and/or the Freebase API, giving us reasonable coverage of most crops in most commonly-spoken languages.

When searching or working with crops anywhere on Growstuff, people should be able to search for "tomato", "tomaatti", "kamatis", "番茄", or "ᒥᓗᑦᓱᑳᒐᖅ" and find the right thing.

A logged-in member should be able to set their language preferences and, when navigating the site, should see crop names expressed in their preferred language. Hints as to the other names for the crop (especially the "system name", which will be in US English) should be readily available, perhaps through a tooltip-style popup.

Web UI translation
This refers to the navigation/information on the website, for instance the terms used in menus, labels on forms, error messages, etc.

Internationalizing -- and more importantly localizing -- an open source software project requires enormous volunteer effort. Translation requires skilled native speakers, and the translators have to work constantly to keep up with changes to the site to prevent everything appearing in a mishmash of English-plus-other-language.

One comparable project, Dreamwidth, has decided against localizing their software/site, at least in the foreseeable fugure. Their reasons are described in this mailing list post, which makes good reading if you want to understand the challenges involved.

Growstuff's approach is basically the same as Dreamwidth's: we're not planning to provide our website/software in other languages at this point, because the likely result is a mess that's worse than no translation at all. However, as time and resources permit, we would like to translate our UI into other languages.

Dates and measures
We hope to offer options to members to choose their preferred date formats and units of measure.

Documentation
We hope to support community documentation efforts in a range of languages, most likely via this wiki.