Analogous to wikipedia tags this links any wikidata tag with its item
page on wikidata.
For now it's restricted to the plain wikidata=* tag (namespaces like
operator:wikidata=* and similar are not yet supported) and only accepts
the values with the format Q<number>.
International phone numbers become links using the official URI scheme
as per http://tools.ietf.org/html/rfc3966.
It is not limited to key=phone, so it can be used in other keys as well.
When creating a wikipedia link from a tag, the function
is (correctly) appending "?userlang=#{I18N.lang}" to the URL,
but doing this breaks the reference to a specific section
of a wikipedia article (if there is any).
For example, if the tag is "wikipedia=Article#Section", the function
would create a link to "../Article#Section?uselang=xx", and then the
browser wouldn't be able to correctly find the section. The correct
link result should be "../Article?uselang=xx#Section".
This commit fixes this by verifying if there is a reference to a
specific section of the article, and then putting "?uselang=#{I18N.lang}"
between the article's name and the section name.
The update-wiki-pages script normalizes " " to "_" (since MediaWiki
does it by design), but I didn't normalize it back in the
browse_helper.
Consequently objects with tags like "source=Isle of Man Government
aerial imagery (2001)" were never linked to the wiki correctly.
Bail out straight away if the tag value is a URL rather than waiting
until we have parsed the key as we may change the value in the process
of parsing the key.
The semantics are as documented on
http://wiki.openstreetmap.org/wiki/Key:wikipedia, i.e.:
# English Wikipedia article Foobar
wikipedia=Foobar
# German Wikipedia article Foobar
wikipedia:de=Foobar
wikipedia=de:Foobar
If someone gives a http:// link we just pass it through.
feature use the name key corresponding to the user's
locale. E.g. "name:is" for Icelandic.
This will fall back on "name". The interface will be equivalent unless
the user has selected another language than English in the preferences
and objects with localized name:* tags corresponding to the user's
language are being displayed.
output. Makes e.g. "#{name}, v#{object.version.to_s}" which is used in
the changeset browser translatable.
I'm still not happy with how the anchor is constructed. we're linking
from /browse/changeset/1234 to e.g. node "[[366672999, v1]]" even
though the page we're linking to might take us to that node at version
2. The link should be "[[366672999]], v1" instead.
But that's something to solve later.