How to tag addr:city for multilingual city names

Say a country has 3 spoken languages, which is reflected in its administrative names (example for Casablanca, Morocco, which has name=Casablanca ⵜⴰⴷⴷⴰⵔⵜ ⵜⵓⵎⵍⵉⵍⵜ الدار البيضاء (French, Tamazight and Arabic)).

Which scheme should I follow for addresses:

  1. Using all languages first and then adding each language tag
    addr:city=Casablanca ⵜⴰⴷⴷⴰⵔⵜ ⵜⵓⵎⵍⵉⵍⵜ الدار البيضاء
    addr:city:fr=Casablanca
    addr:city:zgh=ⵜⴰⴷⴷⴰⵔⵜ ⵜⵓⵎⵍⵉⵍⵜ
    addr:city:ar=الدار البيضاء

  2. Not using addr:city at all and only using each language tag
    addr:city:fr=Casablanca
    addr:city:zgh=ⵜⴰⴷⴷⴰⵔⵜ ⵜⵓⵎⵍⵉⵍⵜ
    addr:city:ar=الدار البيضاء

I’ve only been tagging addr:city=Casablanca ⵜⴰⴷⴷⴰⵔⵜ ⵜⵓⵎⵍⵉⵍⵜ الدار البيضاء for everything because there’s no community consensus yet here (and a very small community), but I was wondering if it was correct to set 3 languages in a single address. Thanks in advance.

Where the city is mapped with its boundary (as for Casablanca) you can also just not have any addr:city tags at all as long as the object is unambiguously inside the boundaries. Tools like Nominatim will derive the city from the boundaries.

3 Likes

I personally prefer adding addr:city then leaving it empty.

Please also see "Names" in Algeria (which has had absolutely no response :cry:)

That’s not really relevant… mine is asking if it’s correct to add multiple languages in the addr:city tag while the other is asking about finding a consensus for names in all of Algeria.

As OpenStreetMap data is intended to be geospatial (sic!), you can utilize topological inheritance. Adding the addr:city tag to each building in the city would be excessive.

Outline the city boundaries and tag this feature as place=city, name=*, and name:<lang_code>=*. Within the city area, tag addresses without using the addr:city tag. Geocoding and search tools will use the city name in all designated languages to populate the address. For more information, please refer to https://wiki.openstreetmap.org/wiki/Addresses#Country_specific_rules_and_sources

4 Likes

What about addr:street then? They also have multilingual names, and that can’t be derived by topological inheritance. What do you think?

@ilias
If a street has been tagged with name=* and several name:<lang>=* tags, you can follow the following recommendations

  • firstly, make sure that all street segments have the same set of name tags and their values are the same on all segments
  • add the same value to the addr:street key as the default name=* tag of the street.
  • add the house number addr:housenumber
  • repeat the steps for the next house

This will be enough for Nominatim (and other geocoders) to search for the address in all languages specified in name:<lang>=* of the street

Once again, the values of the addr:street tag and name=* must be identical.

PS
There is one more slightly more complicated way to do this, which is to use the
https://wiki.openstreetmap.org/wiki/Relation:associatedStreet

The Ukrainian community has very detailed recommendations on address mapping. I hope you can get an idea of this using online translation tools.
https://wiki.openstreetmap.org/wiki/Uk:Адреси#Звʼязування_будинків_та_вулиць_за_допомогою_звʼязку_assosiatedStreet

2 Likes