From: Florian M. Schäfer Date: Sun, 20 Jul 2014 05:33:59 +0000 (+0200) Subject: Added wikidata links to the browse helper X-Git-Tag: live~5412 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/7764f6fc28610799b09ea62e48189aa51e341e41?ds=inline;hp=-c Added wikidata links to the browse helper 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. --- 7764f6fc28610799b09ea62e48189aa51e341e41 diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index e70ec204e..3574d454a 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -61,6 +61,8 @@ module BrowseHelper def format_value(key, value) if wp = wikipedia_link(key, value) link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[:title]) + elsif wdt = wikidata_link(key, value) + link_to h(wdt[:title]), wdt[:url], :title => t('browse.tag_details.wikidata_link', :page => wdt[:title]) elsif url = wiki_link("tag", "#{key}=#{value}") link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value) elsif url = telephone_link(key, value) @@ -149,6 +151,16 @@ private } end + def wikidata_link(key, value) + if key == "wikidata" and value =~ /^[Qq][1-9][0-9]*$/ + return { + :url => "//www.wikidata.org/wiki/#{value}?uselang=#{I18n.locale}", + :title => value + } + end + return nil + end + def telephone_link(key, value) # does it look like a phone number? eg "+1 (234) 567-8901 " ? return nil unless value =~ /^\s*\+[\d\s\(\)\/\.-]{6,25}\s*$/ diff --git a/config/locales/en.yml b/config/locales/en.yml index fe5f58d51..1518349f3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -180,6 +180,7 @@ en: wiki_link: key: "The wiki description page for the %{key} tag" tag: "The wiki description page for the %{key}=%{value} tag" + wikidata_link: "The %{page} item on Wikidata" wikipedia_link: "The %{page} article on Wikipedia" telephone_link: "Call %{phone_number}" note: