Our vision at Geni is to solve the problem of genealogy by empowering genealogists all over the world to work together and create the world’s single family tree. Of course, to solve such a large problem, there are many smaller problems that must be solved first.
It’s almost a certainty that one of your ancestors lived in a different region and spoke a different language than you speak. In fact, there’s even a great chance that one or more of your close relatives doesn’t even speak the same language that you do.
As our community grew, we realized that a significant portion of our users spoke and wrote in languages other than English, but Geni was an English-only site. For us to truly realize our vision, it became obvious that we must allow people that read any language to use our product. We needed to implement a translation solution.
There were several third-party options available, including the i18n support for Ruby and Facebook's Translations app. We decided that i18n was not a realistic solution; Geni changes too frequently and the support for outdated translations was prohibitive.
Ultimately we decided that the existing solutions weren’t good enough, so we decided to build our own. This shouldn’t be a surprise to anyone familiar with the origins of Yammer.
The solution we created is so dynamic, and it has worked so well, that we have decided to make it available for use as an open source project. Today we officially announce our release of tr8n to the Ruby development community.
Tr8n is a Rails engine plugin that provides a framework for crowd-sourcing translations into hundreds of languages. The power of the engine comes from its intuitive and friendly user interface that allows site users and/or professional translators to rapidly translate the site into supported languages.
The flexible and robust rules engine that powers tr8n allows for any combination of language specific rules in any translatable sentence. Translators can create rules for phrases and sentences that depend on gender rules, number rules or other rules supported by the engine. The language specific rules can be configured by the language managers for any language.
The engine comes with a set of powerful administration tools that allow site admins to manage any aspect of the engine; including the enabling and disabling of its features and the monitoring of the translation process. Tr8n translation engine is based on a robust and flexible pluggable architecture where language rule types and the syntax of the “tr” tokens can be configured or extended by RoR developers for any application deployment.
Our implementation of tr8n has been an enormous success, with over 150,000 translations in 70 languages. To experiment with tr8n, stop by Geni.com, sign up for an account, and you’ll immediately be able to use the translation tools:
Clicking on the language drop-down displays the initial tr8n dialog, where you can choose your language and opt to use the translation tools.
After enabling tr8n translations, all content on the page that has been properly wrapped will appear with green links. To edit a word, phrase or sentence, right-click on it and you’ll be provided another tr8n menu that allows you to view current translations, vote for them, or add your own:
There are several resources available for developers that are interested in tr8n: