Internationalization of Publiclab.org
Project Title: Internationalization of Publiclab.org
Abstract/Summary: Developing Internationlization infrastructure on Publiclab.org and setting up translation crowdsourcing platform.
Version Control: Github
Organization Mailing List: https://groups.google.com/forum/?hl=en#!forum/plots-dev
Github Organization Page: Publiclab
Repository Contributed to: plots2
All commits made during the period can be found here: https://github.com/publiclab/plots2/commits?author=jiteshjha
Internationalization is a design process that ensures a product (usually a software application) can be adapted to various languages and regions without requiring engineering changes to the source code. Localization (which is potentially performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once, or as an integral part of ongoing development).
(Taken from Wikipedia)
The project primarily involved introducing the Ruby on Rails I18n(I + (some 18 characters) + N = InternationalizatioN) infrastructure to plots2 codebase. This was primarily achieved by rails-I18n gem. Multiple views and controller files were made I18n-friendly in the process. Separate preference field for the language as a locale tag [Pending as a Pull Request] and switching controls in the header/footer of the website is now available to enable the user to manually set the preferred language.
I18n Community Platform
All our Internationalization efforts are now hosted on Transifex - an excellent localization platform. Over 71 translation files in English language has been uploaded for translation to different languages. Over 3300 sentences/words are now available for translation here. An easy introduction to Transifex as a translator can be found on this Wiki page. For code contributions, an easy introduction to I18n in Ruby on Rails can be found here.
How to Use
- Go to https://publiclab.org/
- Click on "Login" tab on the header. Under "Language" sub-tab, choose any preferred language. (In our example, we choose "Deutsch")
- All texts on the page will appear in the chosen language.
Considerable number of views and controller are now Internationalized as evident in the config/locale directory structure. Locale tags code and logic is almost complete in this pull request, and locale-specific subdomain is now working locally but fails few I18n-related tests. As the work behind these tasks is almost complete, it would take only a couple of days before these are merged.
I would like to thank my mentors Jeffrey Warren and Liz Barry for the guidance and extremely helpful feedback on this project, and to the whole Publiclab.org community and GSoC-2016 students for their constant support.
I have learned and benefited a lot in this project, and as a result of a very positive experience I am looking forward to continue contributing to Publiclab and be a part of this journey. Really excited for the September 2016 Open Hour!