Anvers or Antwerpen? The Map Now Speaks Your Language

FeaturesProduct
The same map of Belgium shown twice side by side. On the left, French labels: Anvers, Gand, Malines, Bruxelles, Louvain. On the right, Dutch labels for the identical view: Antwerpen, Gent, Mechelen, Brussel, Leuven

That is the same view of Belgium twice, at the same moment, from the same data. The only difference is a setting.

Look at what moved. Anvers becomes Antwerpen, Bruxelles becomes Brussel, Gand becomes Gent, Louvain becomes Leuven.

Those are recognisable variations. Ride south-east and it stops being variations at all:

The same view of eastern Belgium twice, French on the left and Dutch on the right. Liege becomes Luik, Namur becomes Namen, Saint-Trond becomes Sint-Truiden, Belgique becomes Belgie

Liège is Luik. Namur is Namen. Saint-Trond is Sint-Truiden. Not spellings of the same word, different words for the same place. A rider who knows Belgium in one language and crosses into the other half of it has always had this problem. Now at least the map picks a side.

What changed

PitStopper has been translated into eight languages for a long time. The map underneath never was. Every button, menu and turn instruction would switch to Italian while the map went on saying whatever the local mapper had typed, which for most of the world is not Italian.

Now the map's labels follow the interface. Set the app to Spanish and the map goes with it.

Where it lives

Settings → Preferences → Language. Two pickers:

  • Interface - the words we write. Buttons, menus, instructions.
  • Map labels - the words OpenStreetMap wrote. Defaults to "Same as interface".

They are separate on purpose, and the override is not a technicality. Plenty of people want to read the app in one language and the map in another: living abroad, riding somewhere they half know, or simply preferring the local spelling of places they are about to visit.

Four countries, before and after

Italy is the one that catches most English speakers out, because the English names are so familiar that the real ones look like a different country.

Italy shown twice. English on the left with Florence, Venice, Milan, Turin, Genoa, Naples. Italian on the right with Firenze, Venezia, Milano, Torino, Genova, Napoli

Florence to Firenze, Venice to Venezia, Turin to Torino, Genoa to Genova. Even the seas change: Mare Ligure, Mare Adriatico. And Croatia becomes Croazia with Zagreb as Zagabria, which is the useful part when you are planning a route that crosses a border.

Germany is quieter but no less practical. Munich to München, Cologne to Köln, Nuremberg to Nürnberg.

Germany shown twice, English labels on the left and German on the right, with Munich becoming Munchen and Cologne becoming Koln

Spain, where the English forms are mostly small corruptions of the Spanish ones, so the map gets subtly more correct rather than dramatically different.

Spain shown twice, English labels on the left and Spanish on the right, with Seville becoming Sevilla and Saragossa becoming Zaragoza

And the Netherlands, where The Hague reverts to Den Haag.

The Netherlands shown twice, English labels on the left and Dutch on the right, with The Hague becoming Den Haag

Local names, for when you are following signs

There is a third option in the map picker, and on a route planner it earns its place: Local names.

It asks for no translation at all. Every place appears exactly as it is written on the ground - and therefore exactly as it appears on the signpost you will be standing under. If you are riding into a town, the name on your map matching the name on the sign at the edge of it is worth more than the name you would use at home.

It is the setting to reach for the night before, when the planning turns into navigating.

What does not change, and why

Two honest limits, both worth knowing before you go looking for them.

Street names do not translate. We measured a street-level tile of Brussels: of 129 road labels, none carried a translated name. Place names in the same tile carried 69 languages. That is not a gap in PitStopper, it is how OpenStreetMap works - a street has one name, the one on the sign, and only the rare road with an official second name has more.

Which we think lands well. Zoomed out to plan, the towns and countries are in your language. Zoomed in to ride, the street names are as signposted. That is the arrangement you would have chosen.

Non-Latin scripts already showed both, and still do. Set the map to Japanese and Japan looks exactly as it did before, because it was never only English there:

A map of the Tokyo region with each place labelled twice, the Latin reading above the Japanese characters: Tokyo above the kanji for Tokyo, Chiba, Kawasaki, Yokosuka

Every place carries the Latin reading above the local script. That is right for a reader of either, so we left it alone rather than forcing it to pick one. The setting still changes Japan's neighbours, and it changes the rest of the world for a Japanese reader.

Nothing extra to download

This costs nothing on the wire, which is the pleasing part. The vector tiles we already serve carry the names in every language: one tile of Europe holds 78 different name fields. The data has been arriving all along and we simply were not asking for it. The change is a rewrite of the map style's label expressions in the browser, before the map is drawn.

Two details we took some care over, if you like that sort of thing. A label expression the code does not recognise is left exactly as its author wrote it rather than half-rewritten, because a style rendered as intended beats a style rendered by guesswork. And motorway shields are skipped - the E40 is a number, not a name, and no language has an opinion about it.

Eight languages, and room for more

The picker offers the eight PitStopper itself speaks: English, French, German, Spanish, Italian, Dutch and Japanese, plus Local names. The tiles carry 75. Adding another to the map is now a one-line change rather than a project, so if you want yours, say so.