CityZenApp / AndroidApp

CityZen Android App, OpenStreetMap base-map
http://cityzenapp.co/
Mozilla Public License 2.0
75 stars 29 forks source link

Use user language #21

Open jbelien opened 7 years ago

jbelien commented 7 years ago

If available display the name in user language.

For instance display tag name:fr for French speaking user if available and if not display default tag name.

rskikuli commented 7 years ago

Very interesting proposal @jbelien. I was wondering if this is an option from OSM. do you have any info on this so that we can research and take a decision on the implementation of this feature in the next release?

jbelien commented 7 years ago

Map :

I'm guessing that the app currently use map from https://tile.openstreetmap.org/ (that's the map display on https://www.openstreetmap.org/) ; On this map the name tag is displayed (usually, it's the name in the country language). To be able to change the names displayed on your map, you should switch to VectorTiles instead of Raster tiles. There is a new project that does just that : https://openmaptiles.org/languages I'm not a Java expert, so I don't know how "easy" it is to embed those VectorTiles in CityZen app but that what I would do :)

Other remark, if you use map from https://tile.openstreetmap.org/ , you probably should change that anyway considering the tile usage policy : https://operations.osmfoundation.org/policies/tiles/

POI data :

When you resquest data from the OpenStreetMap API, instead of requesting only the name tag, you (probably) can request the other name tags (like name:fr for the name in French). I never used the API so far but I can check how to do it if you need more assistance.

PanderMusubi commented 5 years ago

See OsmAnd on how they fixed this. The default is to show the local name, but you can choose to show the name in English (or anyother language) when available instead of the local name.

For example, a map in Japan shows the names in kanji but many foreign users would like to see the romaji (romanized version).