X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/a790c47923ae5722743ba168eb79f3beabe8a71e..3a43f9fe0421afdf74d2f570ee8987a4022519cf:/app/helpers/browse_helper.rb diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index 2c414004d..cf2bc6474 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,5 +1,3 @@ -require "cgi" - module BrowseHelper def printable_name(object, version = false) id = if object.id.is_a?(Array) @@ -13,16 +11,16 @@ module BrowseHelper # don't look at object tags if redacted, so as to avoid giving # away redacted version tag information. unless object.redacted? - locale = I18n.locale.to_s + available_locales = Locale.list(name_locales(object)) - locale = locale.sub(/-[^-]+/, "") while locale =~ /-[^-]+/ && !object.tags.include?("name:#{I18n.locale}") + locale = available_locales.preferred(preferred_languages) if object.tags.include? "name:#{locale}" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["name:#{locale}"].to_s), :id => tag.bdi(name) elsif object.tags.include? "name" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["name"].to_s), :id => tag.bdi(name) elsif object.tags.include? "ref" - name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["ref"].to_s), :id => content_tag(:bdi, name) + name = t "printable_name.with_name_html", :name => tag.bdi(object.tags["ref"].to_s), :id => tag.bdi(name) end end @@ -73,4 +71,8 @@ module BrowseHelper def icon_tags(object) object.tags.find_all { |k, _v| ICON_TAGS.include? k }.sort end + + def name_locales(object) + object.tags.keys.map { |k| Regexp.last_match(1) if k =~ /^name:(.*)$/ }.flatten + end end