From 7764f6fc28610799b09ea62e48189aa51e341e41 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Florian=20M=2E=20Sch=C3=A4fer?= Date: Sun, 20 Jul 2014 07:33:59 +0200 Subject: [PATCH] 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. --- app/helpers/browse_helper.rb | 12 ++++++++++++ config/locales/en.yml | 1 + 2 files changed, 13 insertions(+) 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: -- 2.43.2