]> git.openstreetmap.org Git - rails.git/blob - app/helpers/browse_helper.rb
48dd590a20faa16d05c2dddc1cd6609ead18baab
[rails.git] / app / helpers / browse_helper.rb
1 module BrowseHelper
2   def link_to_page(page, page_param)
3     return link_to(page, page_param => page)
4   end
5   
6   def printable_name(object, version=false)
7     name = t 'printable_name.with_id', :id => object.id.to_s
8     if version
9       name = t 'printable_name.with_version', :id => name, :version => object.version.to_s
10     end
11     if object.tags.include? "name:#{I18n.locale}"
12       name = t 'printable_name.with_name',  :name => object.tags["name:#{I18n.locale}"].to_s, :id => name
13     elsif object.tags.include? 'name'
14       name = t 'printable_name.with_name',  :name => object.tags['name'].to_s, :id => name
15     end
16     return name
17   end
18
19   def wiki_link(type, key, tag)
20     wiki_data = YAML.load_file("#{RAILS_ROOT}/config/wiki-tag-and-key-description.yml")
21     my_locale = I18n.locale.to_s
22
23     if type == "key"
24       ret = key
25       lookup = key
26     else
27       ret = tag
28       lookup = key + "=" + tag
29     end
30
31     # Try our native language
32     has_primary = wiki_data[my_locale][type][lookup] rescue false
33     if has_primary
34       ret = wikify(type, key, tag, lookup, wiki_data[my_locale][type][lookup])
35     else
36       # Fall back on English
37       has_fallback = wiki_data["en"][type][lookup] rescue false
38       if has_fallback
39         ret = wikify(type, key, tag, lookup, wiki_data["en"][type][lookup])
40       end
41     end
42
43     return ret
44   end
45
46   def wikify(type, key, tag, text, wiki)
47     my_locale = I18n.locale
48     url = "http://wiki.openstreetmap.org/wiki/#{wiki}?uselang=#{my_locale}"
49     
50     if type == "key"
51       return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.key', :key => key)) + '">' + h(text) + '</a>'
52     else
53       return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.tag', :key => key, :value => tag)) + '">' + h(tag) + '</a>'
54     end
55   end
56 end