Page MenuHomePhabricator

cardinal directions in geocoordinate datatype are not localized
Open, MediumPublic

Description

The geocoordinate datatype expects cardinal directions to be entered as N,E,S,W and so on and does not take other languages into account.


Version: master
Severity: normal

Details

Reference
bz49385

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 2:04 AM
bzimport set Reference to bz49385.
bzimport added a subscriber: Unknown Object (MLST).

neil wrote:

Here are some for starters. taken from the various language variants of http://en.wikipedia.org/wiki/Cardinal_direction :

English:

N North
S South
E East
W West

French:

N Nord
S Sud
E Est
O Ouese

German:

N Norden
S Süden
O Osten
W Westen

Italian:

N Nord
S Sud
E Est
O Ovest

Spanish:

N Norte
S Sur
E Este
O Oeste

Dutch:

N Noord
Z Zuid
O Oost
W West

neil wrote:

Notice that this reveals a potential source of problems on input.

Internationalization of the initials of the cardinal points, without knowledge of the locale the input is coming from, can make input ambiguous and locale-dependent: if we receive a coordinate of the form "33 N 22 O", does that mean the Italian "33 Nord 22 Ovest" = 33 N 22 W, or, in Dutch, "33 Noord 22 Oost" = 33 N 22 E ?

neil wrote:

Here is a listing of the names of the cardinal points in some other languages:

http://www.compassmuseum.com/diverstext/cardinals.htm

Note the use of "Severní" for "North" in Czech, and "észak" for North in Hungarian.

Given that large number of alternatives, and the use of the same initials for quite different cardinal points in different languages, it's hard to see how internationalized input could work in the general case, without a specific locale identifier being supplied with each string.

neil wrote:

We should also allow for the coordinate reference system to be specified in all cases.

WGS84 has become almost universal for informal geocoordinates, thanks to GPS, and Wikipedia's mapping tools all assume WGS84 is used, so it's probably reasonable to assume that as a default, but there's lots of high-resolution geodata out there with different coordinate reference systems, for which discarding the CRS will result in significant errors.

Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).

neil wrote:
Dutch:

N Noord
Z Zuid
O Oost
W West

This is not correct!

Note that the cardinal directions (the directions in a compass) are something different than the labels of coordinates. The English N, E, S and W used in coordinates are derived from Northern Hemisphere, Eastern Hemisphere, Southern Hemisphere, and Western Hemisphere. For most languages this results in the same abbreviation as the ones for North, East, South and West. However for example for Dutch it is different. Like "on 30 degrees north" would be translated as "op 30 graden noorderbreedte" (literally "on 30 degrees northern latitude"), short version: 30° NB.

The Dutch abbreviations for coordinates are:
NB - noorderbreedte
ZB - zuiderbreedte
OL - oosterlengte
WL - westerlengte

See also: https://commons.wikimedia.org/wiki/Module:I18n/coordinates

Proposed solution: An converter that uses the language that an user chooses in the Universial Language Selector (ULS) extension to convert cardianal directions both ways: both from the user language and to english, and from english to the user language. This would be used for two seperate usecases:

  1. When adding/modifying an geo coordinate: The coordinate converter would convert the cardinal directions from the language that the user chose to English, which would then be stored in the database.
  2. When viewing an geo coordinate: The coordinate corverter would convert the cardinal directions from the database in English to the language that the user chose.