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~4376 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/7764f6fc28610799b09ea62e48189aa51e341e41?ds=sidebyside 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. --- 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: