Thursday, 8 September 2011

Crowd (collaborative) translation Rails plugin.

This plugin is to add collaborative language translation (also known as crowd translation) functionality to your site!

If you use several languages, you can ask your users to help you to translate your web application into other languages (crowd translation). This plugin helps you to manage this process. All installation instructions and the source code can be found at github: crowd-translate.

When you manage your languages you normally have parametrized strings pairs (key-translation) "login_required":"Login required for this action." Then, depending on the current language, string "login_required" will be substitued by either english or russian or something else.

This plugin allows to keep track of key-translation pairs and users can provide their own translation for different languages in a collaborative way. It helps you to generate the resulting language files for languages you use. You also have a rather flexible rights management - you can specify who is able to add translations and who is not.

See below for screenshots, small howto and explanations. If you have any questions, post comments here or on github.

Statistics page
Translation interface

Translation Howto

We have four basic statuses of every string to translate.

untranslated - No human translation is done for this string
needs review - String was translated but approval is required by admin
reviewed - String translation is approved and ready to be used in Yoursite
improvement - An improvement or errors fix was added for the already reviewed string and waits for approval by admin.

Automatic machine translation

Untranslated strings have an automatic machine translation. Change it if appropriately or leave it if it is correct, then submit the string translation.

Reviewers and ordinary translators

If you are a reviewer, your changes will not require confirmation and become 'reviewed' as soon as you submit them. If you are not a reviewer, your changes will have a status 'needs_review' and will require confirmation by admin. We will grant you reviewer right, once we are sure that you are serious about this work.


On the 'View stats' page you can see how many sentences are there for every language: how many untranslated, reviewed, etc. You can directly jump to specific translation page from the statistics page.


If you set notifications to "Yes" for a specific language, then when new untranslated strings are added to this language set, you will receive a notification by email.


You can search for a keywords in a translation set for specific language.


  1. Hey there, this is one of the best guides I have ever noticed. I often try teaching myself the secrets of translation programming and I think this is the most informative blog I have came across with in the meantime. Keep up the nice work! John.

  2. I would prefer it with PHP.
    Anyway thank you for your great job !

    Someone can post a method to install this on a server?

  3. Upgrade to rails 3 or 4 would be good no?

  4. I plan to switch it into nodejs + mongodb
    don't think I will support rails anymore ...
    I am switching all my projects from rails to nodejs

  5. Hi, Evengy. If you want to collaboratively translate software, I recommend you check out the localization platform