This is my Google Summer of Code proposal for OpenStreetMap this year
Internationalization setup for OSM web pages and map tiles
I would like to develop an internationalization setup for OpenStreetMap web pages and map tiles that would actually enable users who do not know English use it in their local languages. This idea is inspired from Things to do in the osm wiki, Things to do#Task: Internationalisation.
The problem is that OpenStreetMap is currently available only in English. So people in different parts of the world who speak different languages, especially those who doesn't know English can't derive the best out of the osm.
This further extends into the fact that it also prevents them from actively taking part in mapping their localities and contributing directly with much needed raw data. Also, sometimes conflicts turn up in maps regarding different place names of same places in different locales.
Therefore, the web pages and the map tiles needs to be available in different local languages as far as possible. So, an internationalization (i18n) setup is quite evident. In this process every valid user will have a choice of the locale/language in which he wants to see the openstreetmap. This can also minimize the conflict of place names from the fact that every user can set his own locale in his 'preferences'.
- Rakesh reads in a Hindi-medium school. He wants an updated map of say Europe in Hindi. Or my grandmother knows only Bengali and she wants to know the possible routes between two places. In both these cases, localized environment can prove very helpful. Note that, Hindi  and Bengali  are two popular native languages of India. Specifically, Hindi alone is used by 40% of the Indian population.
- Suppose a place 'X' is known by name 'A' in language 'one' and by name 'B' in language 'two'. A person can easily set his language preferences and enjoy the respective localized name of that particular place, e.g., the Cyprus naming conflicts . There are several instances of multi-lingual place names as given here: Multilingual names
There are number of issues that needs to be addressed. The i18n setup first includes the generation of 'pot' files (message templates) for different sections of the web pages. This can be done with the help of ri18n or ruby-gettext libraries .
The next step involves setting up of a mechanism by which message translations or 'po' files (submitted by translators), will be incorporated in the subversion repository in respective language branches, and the web pages can be updated periodically so as to automatically render the translations. Also, an option has to be created in user preferences of a valid user for setting his default language preferences. The generic list of languages and corresponding codes can be obtained from .
The same holds true for the map tiles where simply 'po' files has to be generated from their xml meta-data. The preparatory works to internationalize the map tiles can be done in the stipulated time. Now, every map tile has to be rendered separately according to the translation messages of each language branch.
A direct extension to this i18n setup is to create a WebUI that will actually show the progress of translation for each language. Translators can even create an account and submit their message translations in there, just for example, WebUI of Fedora l10n project .
Also internationalization of map tiles can be improved/optimized further as rendering the same map tile for different language branches takes lot of server power.
Benefit of OpenStreetMap
The ability for the users to see openstreetmap in different locales/languages will actually help increase the user base of osm.
Already one of main reasons people choose osm over others because of the fact that its' released under cc-license and kept as much updated and error-free as possible. I want to further enhance the advantage with this proposal.
- Till April 18: Discuss the idea with openstreetmap community.
- April 25: Get myself more familiar with the internals of openstreetmap especially the rails port in there.
- May 3: Brush up Ruby on Rails which is required to do the setup.
- May 6: Setup a local osm server for testing the setup.
- May 12: Identify the basic requirements to generate and merge message translation files for the web pages.
- May 26: Create a rough implementation to generate the message templates or 'pot' files using ri18n libraries.
- June 25: Setup the mechanism to merge the 'po' message translation files and render the web pages.
- July 5: Add the ability for the users to set the language/locale of the osm web page in their 'Preferences'.
- July 12: Submit for mid-term evaluations.
- July 26: Identify and implement the preparatory method to internationalize map tiles.
- July 30: Polish the implementations.
- August 5: Test the features and take comments from potential end-users and translators.
- August 10: Write any associated documentations.
- August 18: Time out and final submission.
- I would like to carry forward the 'future expansion' works with the help & support of the osm community even after this.
I am a 20-year old Computer Science and Engineering student based at Durgapur, which is located in the state of West Bengal in eastern India.
Being in the open source world for last couple of years, I have contributed in different open source projects. I am also a translator for Bengali(India) language (which is my local language, code: bn_IN) for some of these projects. I even took part in the mapping parties of FreeMapIndia2008. Now, around here in this state of West Bengal, Bengali is the most popular language. So to say, more or less every state of India boasts of its' local language. This applies to many other countries as well. Localized osm can make much headway into schools, colleges and different government institutions. Thus, i am very enthusiastic about this proposal, because i would love to see the OpenStreetMap used more and more in different parts of the world.
Discussions & Updates
Current Status: Internationalization
Please check Talk:GSoC Applications 2008