Translation

wvengen edited this page May 27, 2014 · 12 revisions

Adapting software for multiple languages consists of three areas:

  1. Internationalisation (i18n) - adding support in the software to lookup texts. This is mostly a programmer's job.
  2. Translation - translating texts and phrases to different languages. This is a translator's job.
  3. Localisation (l10n) - supporting different number formats, currencies, date representations, etc.

Translators

You can work on translations using localeapp in project 4867 (sign up to edit). Translation updates from localeapp become almost immediately visible on a special foodsoft installation - you might need to wait a couple of seconds and reload to see your changes. Login with admin/secret. Changing the language is possible in the user profile, but also by appending ?locale=hu (or whatever your two-letter language code is) to the url.

Translating software can be tricky, as texts are often very short, sometimes with an unclear context. Please read the translation notes, and feel free to add to them.

Developers

Translations live in the files config/locales/:lang.yml. For some hints on moving from texts in templates to internationalized texts, please see translating templates.

When adding a translation, please add them to localeapp too. This can be done by adding the keys manually (using localeapp or the web interface), or re-importing the whole file (but DO CHECK that you don't overwrite updated translations in localeapp!!!). Then pull changes so that the files contain what is returned from localeapp, which may have different whitespace and such than your edit. We'd like to keep it clean.

We're discussing about details on doing that on our mailing list. TODO this need to be smoothed out in a no-fail step-by-step flow

Foodsoft translation instance

To aid translators, a foodsoft instance for translators is setup on heroku. At the moment this needs to be updated manually. From a clean tree, run LOCALEAPP_KEY=1234567890abcdef script/heroku_deploy. After some time, the instance is created/upated. See script/heroku_deploy more more variables that can be set.

Related links