Map internationalization
OpenStreetMap defaults to the local or official language in each part of the world, but a significant number of places and features are also translated into other languages. In addition, multilingual names are available for features in many multilingual areas and some areas that use non-Latin scripts. Besides being localized themselves, OpenStreetMap-based software applications and frameworks often allow users to experience the map in their own language.
Websites
Serving worldwide alternate maps requires a lot of resources, but there are some providers:
- openstreetmap.de displays names in German where available.
- tracesmap.com, offers more than 18 language labels on top of a customized OSM-Carto map.
- maps.wikimedia.org.[note 1] Read more on blog.wikimedia.org
- OpenMapTiles, MapLibre GL JS and Mapbox (Sites are more intended as developer demos than web destinations in their own right)
- The osMap project serves ten different versions with name displays in English, Czech, Danish, Dutch, French, German, Italian, Polish, Portuguese or Spanish. Transliteration and fallbacks are used if no name tag is available in the said language.
- OpenStreetMap Americana labels places and other features in your preferred language (among the languages offered by OpenMapTiles). City and town labels additionally contain the names in the local languages.
There are some maps for special languages in specific areas:
- Bilingual map of Thailand (and some parts of neighboring countries)
- openstreetmap.in multilingual map of india + diary describing it
- tile.osm.be shows the names in French, Dutch and German for Belgium map
- openstreetmap.by shows the names in English, Russian, Belarusian and Belarusian Classical Orthography for Belarus map
- Map in Breton language
- User diary discusses on how to render non default names using "name:xx" tag in OSM-Carto
Tile servers
The following services provide raster or vector tiles that contain multilingual names:
Service | Format | Languages | Notes |
---|---|---|---|
Mapbox | MVT, PNG, JPEG | 9 | Demo; Mapbox GL documentation; Mapbox Streets source documentation; API documentation (advanced) |
MapTiler Cloud | MVT, PNG, JPEG | 55 | Demo |
OpenMapTiles | MVT | 57 | Demo |
Skobbler | Raster | 7 | Use Mapcreator to customize the map to display names of places and streets in many different language combinations. |
Wikimedia | PNG | ∞ | Demo |
MapTiles API | Raster | 3 | Serving tiles in English, French or Spanish. |
API.Wikiocity | MVT, PNG | 21 | Demo |
Geoapify | MVT | 57 | Tutorial describing how to change map language. |
Tracestrack | PNG | 18 | Demo |
Tile servers based on the Mapbox Vector Tile (MVT) format can be used with multiple client-side libraries, such as Mapbox GL and Tangram.
Projects of historical interest
The Frisian language map was probably the first example of OpenStreetMap Map Internationalization (2008) but seems to be broken now. See User:Lambertus#Frisian language map (Fryske kaart).
For his GSoC project Arindam Ghosh mainly worked on Website Internationalization Ideas 2008, but had some other thoughts on map Internationalization. See Talk:GSoC Applications 2008#I18n of OSM pages and map tiles.
User:Mikel experimented with rendering place names in Arabic.
Multilingual maps Wikipedia project was project kicked off in 2012 to set up rendering infrastructure for Wikipedia (Demo website: http://mlm.jochentopf.com/). Uses tiles hosted on tile.openstreetmap.de:8002 (currently offline).
Before it shut down, WMF-DE's toolserver.org used to have a tile server with a separate layer for each Wikipedia language edition. The replacement tileserver on the WMF Tools Labs only supported English and German. There was also a Multilingual country list (also offline due to toolserver.org shutdown), it has been supplanted by translated labels in Wikidata for each country or territory (and all other places) and querying them with its API.
See also
- Other internationalization challenges.
- Map internationalization (India)
Notes
- ↑ Set desired language code in the URL e.g. ?lang=ja.