Tweak wikipedia links stuff

This commit is contained in:
Tom Hughes 2010-04-22 10:41:53 +01:00
parent c9a3091ca8
commit d2585ea044
2 changed files with 20 additions and 21 deletions

View file

@ -26,7 +26,7 @@ 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.wiki_link.wikipedia', :page => wp['title'])
link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[: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)
else
@ -49,32 +49,31 @@ private
end
def wikipedia_link(key, value)
# English Wikipedia by default
lang = 'en'
if key == 'wikipedia' or key =~ /^wikipedia:(\S+)$/
mylang = $1
# Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
return nil if value =~ /^http:\/\//
if mylang
lang = mylang
if key == "wikipedia"
# This regex should match Wikipedia language codes, everything
# from de to zh-classical
elsif value =~ /^([a-z-]{2,12}):(.+)$/
if value =~ /^([a-z-]{2,12}):(.+)$/
# Value is <lang>:<title> so split it up
lang = $1
# Don't display e.g. "en:Foobar" as the title, just "Foobar"
value = $2
else
# Value is <title> so default to English Wikipedia
lang = 'en'
end
locale = I18n.locale.to_s
return {
'url' => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{locale}",
'title' => value
}
elsif key =~ /^wikipedia:(\S+)$/
# Language is in the key, so assume value is a simple title
lang = $1
else
# Not a wikipedia key!
return nil
end
# Some k/v's are wikipedia=http://en.wikipedia.org/wiki/Full%20URL
return nil if value =~ /^http:\/\//
return {
:url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}",
:title => value
}
end
end