HowTo translate Redmine to your own language

Redmine can easily be translated to any language.

There are a few things to translate:

Say you want to translate Redmine to Finnish (fi as defined in the IANA Language Subtag Registry):

  1. Copy /config/locales/en.yml to /config/locales/fi.yml.
  2. Copy /public/javascripts/jstoolbar/lang/jstoolbar-en.js to /public/javascripts/jstoolbar/lang/jstoolbar-fi.js.
  3. Copy /public/help/en/* to /public/help/fi/*.
  4. Change the general_lang_name key with the full name of the new language in fi.yml (eg. general_lang_name: Finnish).
  5. Clear the application cache to make the new language available in Redmine (eg. rake tmp:cache:clear).

Then:

  1. Translate every string in fi.yml and jstoolbar-fi.js files and translate the content of the four help files (wiki_syntax_textile.html, wiki_syntax_markdown.html, wiki_syntax_detailed_textile.html & wiki_syntax_detailed_markdown.html).
  2. Test your translation with the rake tasks listed below. If you get errors related to locales, you must fix them.
  3. Submit your translation here (as plain file or patch, login required). Select "Translation" in Category listbox.
  4. Wait until your Issue will be fixed.
  5. Enjoy your work :)
  6. GOTO 4 if needed.

Test rake tasks

On Ruby 1.9 or higher:

rake locales:check_parsing_by_psych

On all Ruby versions:

rake locales:check_interpolation

Whole test (Optional)

rake test

"rake test" takes a very long time and it runs automatically on CI server.
See Continuous integration.

Restrictions

All these files must be UTF-8 encoded. Do not use HTML entities in translated strings.

Check that your files do not have a BOM (Byte-order mark). A BOM can be removed with the following command:

awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile

As of 2009-02-21, only updates based on the new translation files (found in /config/locales) should be submitted.

Updates to the language files

The file: "en.yml" acts as the main language file. You can check if it has new strings by running:

rake locales:update

This copies any new strings to other translation files (with the English translation as default value).