-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Address field dropdowns should choose a name in the relevant language #10541
Comments
Hello! Please take a look at this solution @1ec5 whenever you can. I have prioritized |
Following up on some of my half-baked suggestions in #10541 (comment):
Note that this file currently only consults country-coder, but country-coder has declined to include language-territory information: rapideditor/country-coder#131. So that’s why I suggested Nominatim. Consulting Nominatim isn’t foolproof, but it’s more language-neutral than what’s currently in this PR. The Nominatim API integration lives in modules/services/nominatim.js. There’s a That’s as far as I got at a glance, but feel free to explore this approach some more and ask in Nominatim’s discussion board if you need more help.
You’d call One other potential approach I had forgotten was that the Multilingual Name field already fetches information about which countries speak which languages. You could make this field behave similarly. iD/modules/ui/fields/localized.js Lines 36 to 39 in b5d45e3
Unfortunately, it isn’t very granular. For example, the entry for the U.S. lists a lot of languages that the postal service does not speak, and you’d have no way of knowing that the preferred language in Québec is French, not English: iD/data/territory_languages.json Line 241 in b5d45e3
iD/data/territory_languages.json Line 40 in b5d45e3
But in combination with the user’s preferred language as used by |
As far as I know, most postal services and other addressing authorities use only one name at a time in each part of an address (street, city, etc.), even if OSM would give those features multiple values in
name=*
as a linguistic compromise.For example, I recently had to retag a bunch of POIs where a mapper had previously accepted iD’s suggestion of
addr:street=Bellaire Boulevard;Đại Lộ Sàigòn
based on this nearby street, which is taggedname=Bellaire Boulevard;Đại Lộ Sàigòn
. This street has two values inname=*
because of dual wayfinding signs. But neither the U.S. Postal Service nor the county records manager recognizes “Đại Lộ Sàigòn” as a street name for addressing purposes. Even if they did, they still wouldn’t recognize a dual name. (Do other countries’ postal systems work like this? Please correct me if I’m wrong.)Ideally, iD would somehow know that it should use
name:en=Bellaire Boulevard
instead, because that’s the standard language for addressing in most of the U.S. We might be able to use data/territory_languages.json for this purpose, but it gets tricky in multilingual countries where the countrywide default language may not be a good fit. Since iD also consults Nominatim, maybe it can access thedefault_language=*
from the surrounding boundaries, or it could base the decision on the interface language. (Not great, but this is a fallback.) Or maybe iD could simply use thename=*
but truncate it at the first delimiter (a semicolon in this case).iD/modules/ui/fields/address.js
Line 58 in 4ffc0bc
The text was updated successfully, but these errors were encountered: