Tool to find and fix incomplete multi-lingual names

There seems to have been a number of topics talking about names recently, so I’ll add my own to that…

For data consumers to properly use multi-lingual names, having the value of name being duplicated in the relevant language name:xx tag is recommended. However, there are many objects where this is not the case. Additionally, there are also places which have some language-specific name, but don’t have anything in name. Some of these can be easily fixed, others require more changes to be made.

I made this website to find such issues and allow an easy way to fix them:

(It may look familiar, as it is based on the same backend as my phone number report.)

A you can see, some things shown here will highlight other mapping errors, such as changing either the main name tag or a language tag without changing the other. As with all validation tools, not everything here is necessarily an error so don’t just go through applying some incorrect fix just to clear the errors.

Also, most areas have very large numbers of incomplete names, and so this may guide you to those errors, but may not be the best tool to fix them. For example, I have found a number of roads or rivers with many parts, all with the same issue. It is easier to fix them in JOSM than clicking the same button 200 times.

Let me know of any issues or improvements that could be made.

5 Likes

That sounds very interesting, but I don’t think I quite understand yet what exactly needs to be changed or fixed. For example: Node: ‪China Schloss‬ (‪78666931‬) | OpenStreetMap
Report URL: OSM Incomplete Names Report - Regierungsbezirk Tübingen

I don’t want to mess up the data with a change and then a revert, but if I understand the orange button correctly, then China Schloss would be moved from name to name:de meaning that name would no longer exist at all? Or would name be duplicated in name:de?

Generally speaking, though, you first notice how many names in other languages don’t actually exist in the local context. (Node: ‪Gießenbrücke‬ (‪148580288‬) | OpenStreetMap)
The “Gießenbrücke” (If you really want to translate, it’s “Watering Bridge”) definitely does not have a Russian name anywhere on the ground. I go there very often, and there really isn’t a single thing where the name appears in Russian. It certainly wasn’t a Russian occupation zone back then either. So where could this name have come from? I strongly suspect Google Translate. (Did that even exist 14 years ago? Changeset: 12641511 | OpenStreetMap)
I mean, if it really is our thing to add translated names everywhere, why hasn’t anyone added name:en=Watering Bridge yet?

As far as I can tell, these are all direct translations from German. If I understand the wiki correctly, one shouldn’t just add directly translated names unless they’re actually used that way in the language and locally. If that’s the case, there should be another button in the tool: Remove all language variants except name

Looking at your screenshot, I would otherwise add “Küstenmann” (Coast Man) for ‘Costa’ under name:de. Or Zunftfurt for Guildford, Speerfurt/Pfeilfurt for Dartford and Giftotter or Tödliche Schlange (literally Deadly Snake) for Taipan.

And then I find myself here again:

If there is name and name:xx (where xx != local language) you should add the name as well to name:de in your case.

1 Like

It would duplicate name to name:de, perhaps “duplicate” is clearer than “copy”.

Hmm, I found this too. I haven’t removed any yet, but a button to remove other language tags could be added.

That seems to be the guidance, although the case isn’t made convincingly, and suggests that transliterations can be helpful.

1 Like

This is brilliant, thank you! I’ve been looking for something like this to check name:cy for a while.

1 Like

However, note that this won’t show all objects with name:cy, only those where name doesn’t match any other name tag (like name:en or name:cy)

1 Like

I agree with you that in general, we shouldn’t add names in foreign languages that are either the same as the local language or translations of the name into a foreign language. Only if a place genuinely has a different name in a foreign language it should be added (name:nl=Berlijn with name=Berlinfor instance). But I think we should make an exception for languages that use a different script. The example you mention about the Russian name of Gießenbrücke is not a translation but a transliteration, i.e. how that name would be written in a different script. It helps Russians visiting Gießenbrücke to correctly pronounce the name if they can’t read Latin script (though unlikely, I think) or don’t know how to pronounce ß (more likely). Transliterated back to Latin script it reads Gisenbryuke; Cyrillic script doesn’t have a letter for the ü sound).

If you visit Bulgaria, you would appreciate a map that shows the names of places in Latin script, wouldn’t you? Therefore we add int_name=Varna and name:de=Warna to name=Варна. The same is true for Bulgarians visiting Gießenbrücke, so I think it’s a good idea to add name:bg=Гисенбрюке too, even though the spelling happens to be the same as in Russian and even though probably nobody in Bulgaria has ever hear of Gießenbrücke so it’s unlikely to have a significantly different name in Bulgarian.

Also Good practice - OpenStreetMap Wiki

Yeah, that’s clear. But what should be added in my example? Node: ‪China Schloss‬ (‪78666931‬) | OpenStreetMap

You suppose to add name:de=China Schloss, so there is at least one name=name:*

2 Likes

I’m surprised many in Italy have a name for Dartford. It’s clearly gone up in the world from the time most Brits could not tell you which end of the tunnel it was. :slightly_smiling_face:

1 Like

If the Bulgarian name is used locally, yes add name:bg=Гисенбрюке but if you are only making a general transliteration I would say no. There is no ground truth to record in OSM; the transliteration could instead be supplied by the displaying program/app.

2 Likes

I agree that a general transliteration is not sufficient to add a language specific name, but I would question the word “locally”. There are probably many places where no Bulgarians live which still have a name in Bulgarian, e.g. the Antarctic, the moon, … It is sufficient that Bulgarians use the name when speaking about the place, not just “locally”.

3 Likes

I’m OK with Bulgarian speakers adding name:bg=”<Антарктида>” (assuming Google can spell).

I don’t think that someone mapping the south pole should tag it with every language used (or not) by the United Nations.

But these not the issues that this tool addresses.

Transliteration is not translation: the name is still German, but written in a script (Bulgarian Cyrillic) that is not commonly used for German and unlikely to be displayed on any sign. I think it is still very useful for Bulgarians travelling to that place to be able to see an approximation of its pronunciation on their map. I think it is not controversial to give a place name in Bulgaria in both Cyrillic and Latin script, even if the Latin version is not displayed on any sign. I don’t see how it could be controversial to do the reverse too.

Proper transliteration required local knowledge such as the pronunciation of the name or specific transliteration rules, and therefore cannot be automated. That’s why it needs a human do to it correctly. OSM seems like a good place to store the transliterations.

5 Likes

that’s easy for someone who hasn’t even a name themselves. Which languages should be omitted?

For reference Node: ‪South Pole‬ (‪436012592‬) | OpenStreetMap
last edit was “Fix Hungarian name of South Pole”

I meant that one should only add names/languages when one has “local” knowledge of the pair.

I’m happy for someone in Budapest to make that fix, but if I, as a a non-Hungarian-speaker were on a field trip to a place and mapping it, I would not look the Hungarian name up on the web but only add the Hungarian name if there was a Hungarian speaker present to confirm it for me.

3 Likes

Though if some name is locally used for remote object it is fine to add it.

I do not need to travel to North Korea to know what is its Polish name

2 Likes

I find it strange that we need to provide a “translation” into… the same language. To me, it looks like the tool is reporting too many false positives, and will encourage data duplication.

Here is an example: the small town of Kessel in Flanders (which is a monolingual NL-speaking part of Belgium) has name=Kessel and nothing more.
Then, a mapper comes in and adds a Latin translation as name:la=Castellum.

Now, the tool wants to encourage mappers to provide name:nl=Kessel.

It’s explained on the wiki:

https://wiki.openstreetmap.org/wiki/Multilingual_names#Repeating_name_with_language_specific_tag

1 Like

Another solution in this case would be to remove the name:la which is unlikely to have been used by anyone alive in the past 200 years

People who want to note historical names of small towns can use OpenHistoricalMap or maybe Wikidata

2 Likes